~christopher-hunt08/maus/maus_integrated_kalman

« back to all changes in this revision

Viewing changes to src/common_cpp/DataStructure/SciFiHelicalPRTrack.hh

MAUS-v2.3.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
 *
16
16
 */
17
17
 
18
 
/** @class SciFiHelicalPRTrack
19
 
 *
20
 
 *
21
 
 */
22
 
 
23
18
#ifndef _SRC_COMMON_CPP_DATASTRUCTURE_SCIFIHELICALPRTRACK_HH_
24
19
#define _SRC_COMMON_CPP_DATASTRUCTURE_SCIFIHELICALPRTRACK_HH_
25
20
 
40
35
 
41
36
namespace MAUS {
42
37
 
 
38
/** @class SciFiHelicalPRTrack
 
39
 *  @author A. Dobbs
 
40
 *  @brief Class representing helical tracks in the tracker formed by pattern recognition
 
41
 */
43
42
class SciFiHelicalPRTrack : public SciFiBasePRTrack {
44
43
  public:
45
44
 
46
45
    /** Default constructor */
47
46
    SciFiHelicalPRTrack();
48
47
 
49
 
    /** Constructor from SimpleCircle and SimpleLine Without explicit chi squared setting */
 
48
    /** @brief Constructor from SimpleCircle and SimpleLine
 
49
     *
 
50
     *  Constructor from SimpleCircle and SimpleLine, without explicit chi squared setting
 
51
     *  @param tracker The tracker number
 
52
     *  @param charge The track charge
 
53
     *  @param pos0 Intercept of helix with tracker reference surface
 
54
     *  @param phi0 Initial turning angle
 
55
     *  @param circle SimpleCircle class used to construct track
 
56
     *  @param line_sz SimpleLine class used to construct track
 
57
     *  @param point_spread Not implemented
 
58
     *  @param phi The spacepoint turning angles
 
59
     *  @param spoints Pointers to the associated spacepoints
 
60
     *  @param covariance Covariances of the fits
 
61
     */
50
62
    SciFiHelicalPRTrack(int tracker, int charge, ThreeVector pos0, double phi0,
51
63
                        SimpleCircle circle, SimpleLine line_sz, double point_spread,
52
64
                        DoubleArray phi, SciFiSpacePointPArray spoints,
145
157
    /** Get the track type, for straight, 1 for helical */
146
158
    int get_type() const { return _type; }
147
159
 
148
 
 
149
160
  private:
150
 
    int _tracker;
151
 
    int _charge;
152
 
    static const int _type = 1; // 0 for straight, 1 for helical
153
 
 
154
 
    double _R;
155
 
    double _phi0;
156
 
    double _dsdz;
157
 
    double _line_sz_c;
158
 
    double _line_sz_chisq;
159
 
    double _circle_x0;
160
 
    double _circle_y0;
161
 
    double _circle_chisq;
162
 
    double _point_spread;
163
 
 
164
 
    ThreeVector _pos0; // Intercept of helix with tracker reference surface, not used at present
165
 
    DoubleArray _phi;
 
161
    int _tracker;                 /** Tracker number, 0 for upstream, 1 for downstream */
 
162
    int _charge;                  /** The charge of the track */
 
163
    static const int _type = 1;   /** Track type identifier, 0 for straight, 1 for helical */
 
164
    double _R;                    /** Radius of the track fit */
 
165
    double _phi0;                 /** Initial turning angle [radians]. Confusing, to be removed. */
 
166
    double _dsdz;                 /** Gradient of the s-z fit in tracker local coordinates */
 
167
    double _line_sz_c;            /** Intercept of the s-z fit in tracker local coordinates */
 
168
    double _line_sz_chisq;        /** ChiSq of the s-z fit */
 
169
    double _circle_x0;            /** x coordo f the circle centre in tracker local coordinates */
 
170
    double _circle_y0;            /** y coord of the circle centre in tracker local coordinates */
 
171
    double _circle_chisq;         /** ChiSq of the circle (x-y) fit */
 
172
    double _point_spread;         /** Not implemented */
 
173
 
 
174
    ThreeVector _pos0;  /** Intercept of helix with tracker reference surface, not implemented */
 
175
    DoubleArray _phi;   /** The turning angles of the spacepoints [radians] */
166
176
 
167
177
    MAUS_VERSIONED_CLASS_DEF(SciFiHelicalPRTrack)
168
178
};