StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StFtpcConfMapPoint.hh
1 // $Id: StFtpcConfMapPoint.hh,v 1.5 2004/04/06 18:36:13 oldi Exp $
2 // $Log: StFtpcConfMapPoint.hh,v $
3 // Revision 1.5 2004/04/06 18:36:13 oldi
4 // New data mebers for pad and time position and pad and time sigma added.
5 // Reference to StFtpcHit added.
6 // Possibility to update StFtpcHit coordinates directly included.
7 //
8 // Revision 1.4 2004/02/12 19:37:09 oldi
9 // *** empty log message ***
10 //
11 // Revision 1.3 2000/11/10 18:34:31 oldi
12 // New constructor added.
13 //
14 // Revision 1.2 2000/07/18 21:22:15 oldi
15 // Changes due to be able to find laser tracks.
16 // Cleanup: - new functions in StFtpcConfMapper, StFtpcTrack, and StFtpcPoint
17 // to bundle often called functions
18 // - short functions inlined
19 // - formulas of StFormulary made static
20 // - avoid streaming of objects of unknown size
21 // (removes the bunch of CINT warnings during compile time)
22 // - two or three minor bugs cured
23 //
24 // Revision 1.1 2000/05/11 15:14:40 oldi
25 // Changed class names *Hit.* due to already existing class StFtpcHit.cxx in StEvent
26 //
27 
29 // //
30 // StFtpcConfMapPoint class - derived FTPC Hit class to represent additional data //
31 // needed by the conformel mapping track algorithm. //
32 // //
34 
35 #ifndef STAR_StFtpcConfMapPoint
36 #define STAR_StFtpcConfMapPoint
37 
38 #include "StFtpcPoint.hh"
39 #include "StFtpcVertex.hh"
40 
42 
43 private:
44 
45  // Interaction point
46  Double_t mXt; // x-value of the interaction point
47  Double_t mYt; // y-value of the interaction point
48  Double_t mZt; // z-value of the interaction point
49 
50  Double_t mXterr; // error of mXt
51  Double_t mYterr; // error of mYt
52  Double_t mZterr; // error of mZt
53 
54  // conformal mapping coordinates
55  Double_t mXprime; // transformed x
56  Double_t mYprime; // transformed y
57 
58  Double_t mXprimeerr; // error of mXprime
59  Double_t mYprimeerr; // error of mYprime
60 
61  // coordinates with respect to the vertex
62 
63  // cartesian coordinates
64  Double_t mXv; // x with respect to vertex
65  Double_t mYv; // y with respect to vertex
66  Double_t mZv; // z with respect to vertex
67 
68  Double_t mXverr; // error of mXv
69  Double_t mYverr; // error of mYv
70  Double_t mZverr; // error of mZv
71 
72  // spherical coordinates
73  Double_t mPhi; // angle phi
74  Double_t mEta; // pseudorapidity
75 
76  // distances to the conformal mapping fits
77  Double_t mCircleDist; // distance from the fitted circle
78  Double_t mLengthDist; // distance from the length fit
79 
80 
81 public:
82 
83  StFtpcConfMapPoint(); // default constructor
84  StFtpcConfMapPoint(StFtpcPoint *point, StFtpcVertex *vertex); // "copy" constructor
85  StFtpcConfMapPoint(Long_t row,
86  Long_t sector,
87  Long_t n_pads,
88  Long_t n_bins,
89  Long_t max_adc,
90  Long_t charge,
91  Float_t padpos,
92  Float_t timepos,
93  Float_t padpossigma,
94  Float_t timepossigma,
95  Double_t x,
96  Double_t y,
97  Double_t z,
98  Double_t x_err,
99  Double_t y_err,
100  Double_t z_err,
101  Double_t s_phi,
102  Double_t s_r,
103  Long_t flags); // constructor to handle points given directly from the cluster finder
104  StFtpcConfMapPoint(Double_t *x, Int_t row, StFtpcVertex *vertex); // constructor for arbitrary coordinates
105  virtual ~StFtpcConfMapPoint(); // destructor
106 
107  // getter
108  Double_t GetCircleDist() const { return mCircleDist; }
109  Double_t GetLengthDist() const { return mLengthDist; }
110 
111  Double_t GetPhi() const { return mPhi; }
112  Double_t GetEta() const { return mEta; }
113 
114  Double_t GetXprime() const { return mXprime; }
115  Double_t GetYprime() const { return mYprime; }
116  Double_t GetXprimeerr() const { return mXprimeerr; }
117  Double_t GetYprimeerr() const { return mYprimeerr; }
118 
119  Double_t GetXt() const { return mXt; }
120  Double_t GetYt() const { return mYt; }
121  Double_t GetZt() const { return mZt; }
122  Double_t GetXterr() const { return mXterr; }
123  Double_t GetYterr() const { return mYterr; }
124  Double_t GetZterr() const { return mZterr; }
125 
126  Double_t GetXv() const { return mXv; }
127  Double_t GetYv() const { return mYv; }
128  Double_t GetZv() const { return mZv; }
129  Double_t GetXverr() const { return mXverr; }
130  Double_t GetYverr() const { return mYverr; }
131  Double_t GetZverr() const { return mZverr; }
132 
133  // setter
134  void SetDist(Double_t c, Double_t l) { mCircleDist = c; mLengthDist = l; }
135  void SetCircleDist(Double_t f) { mCircleDist = f; }
136  void SetLengthDist(Double_t f) { mLengthDist = f; }
137 
138  void SetPhi(Double_t f) { mPhi = f; }
139  void SetEta(Double_t f) { mEta = f; }
140 
141  void SetXprime(Double_t f) { mXprime = f; }
142  void SetYprime(Double_t f) { mYprime = f; }
143  void SetXprimeerr(Double_t f) { mXprimeerr = f; }
144  void SetYprimeerr(Double_t f) { mYprimeerr = f; }
145 
146  void SetXt(Double_t f) { mXt = f; }
147  void SetYt(Double_t f) { mYt = f; }
148  void SetZt(Double_t f) { mZt = f; }
149  void SetXterr(Double_t f) { mXterr = f; }
150  void SetYterr(Double_t f) { mYterr = f; }
151  void SetZterr(Double_t f) { mZterr = f; }
152 
153  void SetXv(Double_t f) { mXv = f; }
154  void SetYv(Double_t f) { mYv = f; }
155  void SetZv(Double_t f) { mZv = f; }
156  void SetXverr(Double_t f) { mXverr = f; }
157  void SetYverr(Double_t f) { mYverr = f; }
158  void SetZverr(Double_t f) { mZverr = f; }
159 
160  void Setup(StFtpcVertex *vertex); // does the usual setup in the right order
161  void SetAngles(); // calculate spherical angles and set values
162  void SetIntPoint(const Double_t in_x = 0., const Double_t in_y = 0., const Double_t in_z = 0.,
163  const Double_t in_x_err = 0., const Double_t in_y_err = 0., const Double_t in_z_err = 0.); // set interaction point
164  void SetShiftedCoord(); // set shifted coordinates
165  void SetAllCoord(const StFtpcConfMapPoint *hit); // set conformal mapping coordinates in respect to given hit
166  void SetConfCoord(); // conformal mapping
167 
168  ClassDef(StFtpcConfMapPoint, 1) //Ftpc conformal mapping point class
169 };
170 
171 #endif