FairRoot/PandaRoot
PndTrkCTFindTrackInXY2.h
Go to the documentation of this file.
1 #ifndef PndTrkCTFindTrackInXY2_H
2 #define PndTrkCTFindTrackInXY2_H 1
3 
4 #include "PndTrkVectors.h"
5 // Root includes
6 #include "TROOT.h"
7 
8 
10  // inputs;
12  Double_t *Cosine; // for the Legiandre fit;
16  Double_t (*info)[7];
17  Short_t maxhitsinfit;
20  bool * Mvdhits;
21  Short_t nMvdPixelHit;
22  Short_t nMvdStripHit;
23  Short_t number_straws; // this is the number of all straws in the Stt detector;
24  Short_t * nParContiguous;
25  Short_t (*ListParContiguous)[6]; // this is the list of contiguous TubeID ;
26  Double_t r_stt_inner_par_max; // r_stt_inner_par_max ==> radius of the circumscribed
27  // circumference to the
28  //; outer hexagon defining THE INNER axial Stt straw region;
29  Double_t *Sinus; // for the Legiandre fit;
30  Short_t *StrawCode;
31  Short_t *StrawCode2;
32  Short_t *TubeID ; // TubeID[i] = Tube ID corresponding to i-th Stt hit;
33  Short_t *SttStrawOn;// SttStrawOn[i] >= 0 --> it is the Stt hit number corresponding to Stt
34  // i-th Tube ID; tSttStrawOn[i] == -1 --> i-th Stt straw NOT hit;
35  Double_t thetamax; // input, maximum of Theta range (usually 2PI radians);
36  Double_t thetamin; // input, minimum of Theta range (usually 0 radians);
41 
42  // outputs;
45  Short_t* Charge;
50  Short_t *ListHitsinTrack;
57  Short_t *nHitsinTrack;
65 
66 
67 //---
68 
69 
73  Short_t *FiConformalIndex;
75  Short_t* HitsinBoxConf;
76  int icounter; // counter useful for debugging;
80  Short_t* ListSttParHits;
82  Short_t maxstthits;
84  Short_t* nBoxConf;
85  Short_t nFicell; // Fi cell of the seed hit;
86  Short_t nfidivconformal;
87  Short_t nRcell; // R cell of the seed hit;
88  Short_t nrdivconformal;
89  Short_t nSciTilHits;
91  Int_t nsttparhit;
92  void * posizSciT;
96  Short_t *RConformalIndex;
101  bool* TypeConf;
104  bool YesSciTil;
105  };
106 
107 
108 class PndTrkCTFindTrackInXY2 : public TObject
109 {
110 
111 
112  public:
113 
116 
117 
120 
121 
122 
123 
124 //----------------
125 
127  Double_t delta, // input;
128  Double_t highqualitycut, // input;
129  Double_t FiRangeMvdLow, // input;
130  Double_t FiRangeMvdUp, // input;
131  Short_t maxmvdpixelhitsintrack, // input;
132  Short_t maxmvdstriphitsintrack, // input;
133  Short_t nMvdPixelHit, // input;
134  Short_t nMvdStripHit, // input;
135  Double_t Ox, // input;
136  Double_t Oy, // input;
137  Double_t R, // input;
138  Double_t * XMvdPixel, // input;
139  Double_t * XMvdStrip, // input;
140  Double_t * YMvdPixel, // input;
141  Double_t * YMvdStrip, // input;
142 
143  Short_t &nPixelHitsinTrack, // output
144  Short_t *ListPixelHitsinTrack, // output; dimensionality : [MAXMVDSTRIPHITSINTRACK];
145  Short_t &nStripHitsinTrack, // output
146  Short_t *ListStripHitsinTrack // output; dimensionality : [MAXMVDSTRIPHITSINTRACK];
147  );
148 
149 
150  Short_t AssociateSciTilHit(
151  Double_t dimensionscitil,
152  Double_t *esse, // output, list of S of the SciTil hits associated.
153  bool* InclusionListSciTil,
154  Short_t *List, // output, list of SciTil hits associated (max. 2);
155  Short_t maxscitilhitsintrack,
156  Short_t nSciTilHits,
157  Double_t Oxx,
158  Double_t Oyy,
159  Double_t posizSciTil[][3],
160  Double_t Rr
161  );
162 
164  Double_t fiCenter, // input, fi of the (0,0) in the Helix reference frame;
165  Double_t fi_low_limit[2], // input; fi low limit of the Stt detector in the Helix frame;
166  Double_t fi_up_limit[2], // input; fi up limit of the Stt detector in the Helix frame;
167  Double_t (*info)[7], // input
168  Short_t *ListHitsinTrack, // input
169  Short_t nHitsinTrack, // input
170  Double_t Oxx, // input
171  Double_t Oyy, // input
172 
173  Short_t & charge, // output; charge of the particle;
174  Double_t & FiRangeMvdLow, // output; Fi range of possible Mvd hits; FiRangeMvdLow always
175  // between 0 and 2PI; and always FiRangeMvdLow<FiRangeMvdUp;
176  Double_t & FiRangeMvdUp, // output; Fi range of possible Mvd hits;
177  Double_t & Fi_low_limit, // output;
178  Double_t & Fi_up_limit // output;
179 
180  );
181 
182 
185  int istampa,
186  int IVOLTE
187  );
188 
189 
191  Short_t Charge, // input;
192  Double_t info[][7], // input;
193  Int_t nHits, // input;
194  Double_t oX, // input;
195  Double_t oY, // input;
196  Short_t * ListHits // input and output (ordered);
197  );
198 
199 
200  void OrderingUsingFi(
201  Short_t Charge, // input;
202  Double_t info[][7], // input;
203  Int_t nHits, // input;
204  Double_t oX, // input;
205  Double_t oY, // input;
206  Short_t * ListHits // input and output (ordered);
207  );
208 
209  void OrderingUsingR(
210  Double_t info[][7], // input;
211  Int_t nHits, // input;
212  Short_t * ListHits // input and output (ordered);
213  );
214 
215 
216 
217 
219  Short_t *auxListHitsinTrack,
220  bool *InclusionListStt,
221  Double_t Fi_low,
222  Double_t Fi_up,
223  Double_t info[][7],
224  Short_t *ListSttParHits,
225  Int_t NhitsParallel,
226  Double_t Oxx,
227  Double_t Oyy,
228  Double_t Rr,
229  Double_t strawradius
230  );
231 
232 
233 
235  Short_t *auxListHitsinTrack,
236  bool *InclusionListStt,
237  Double_t Fi_low,
238  Double_t Fi_up,
239  Double_t info[][7],
240  Short_t *ListSttParHits,
241  Int_t NhitsParallel,
242  Double_t Oxx,
243  Double_t Oyy,
244  Double_t Rr,
245  Double_t maximum_distance
246  );
248 
249 };
250 
251 #endif
ClassDef(PndTrkCTFindTrackInXY2, 1)
void AddMvdHitsToSttTracks(Double_t delta, Double_t highqualitycut, Double_t FiRangeMvdLow, Double_t FiRangeMvdUp, Short_t maxmvdpixelhitsintrack, Short_t maxmvdstriphitsintrack, Short_t nMvdPixelHit, Short_t nMvdStripHit, Double_t Ox, Double_t Oy, Double_t R, Double_t *XMvdPixel, Double_t *XMvdStrip, Double_t *YMvdPixel, Double_t *YMvdStrip, Short_t &nPixelHitsinTrack, Short_t *ListPixelHitsinTrack, Short_t &nStripHitsinTrack, Short_t *ListStripHitsinTrack)
Short_t AssociateSciTilHit(Double_t dimensionscitil, Double_t *esse, bool *InclusionListSciTil, Short_t *List, Short_t maxscitilhitsintrack, Short_t nSciTilHits, Double_t Oxx, Double_t Oyy, Double_t posizSciTil[][3], Double_t Rr)
Short_t TrkAssociatedParallelHitsToHelix5(Short_t *auxListHitsinTrack, bool *InclusionListStt, Double_t Fi_low, Double_t Fi_up, Double_t info[][7], Short_t *ListSttParHits, Int_t NhitsParallel, Double_t Oxx, Double_t Oyy, Double_t Rr, Double_t strawradius)
Short_t TrkAssociatedParallelHitsToHelix6(Short_t *auxListHitsinTrack, bool *InclusionListStt, Double_t Fi_low, Double_t Fi_up, Double_t info[][7], Short_t *ListSttParHits, Int_t NhitsParallel, Double_t Oxx, Double_t Oyy, Double_t Rr, Double_t maximum_distance)
int nHits
Definition: RiemannTest.C:16
Double_t
bool FindTrackInXYProjection(struct FindTrackInXYProjection2_InputOutputData *InOut, int istampa, int IVOLTE)
void OrderingUsingR(Double_t info[][7], Int_t nHits, Short_t *ListHits)
void DecideWhichAngularRangeAndCharge(Double_t fiCenter, Double_t fi_low_limit[2], Double_t fi_up_limit[2], Double_t(*info)[7], Short_t *ListHitsinTrack, Short_t nHitsinTrack, Double_t Oxx, Double_t Oyy, Short_t &charge, Double_t &FiRangeMvdLow, Double_t &FiRangeMvdUp, Double_t &Fi_low_limit, Double_t &Fi_up_limit)
void OrderingUsingConformal(Short_t Charge, Double_t info[][7], Int_t nHits, Double_t oX, Double_t oY, Short_t *ListHits)
void OrderingUsingFi(Short_t Charge, Double_t info[][7], Int_t nHits, Double_t oX, Double_t oY, Short_t *ListHits)
Double_t R
Definition: checkhelixhit.C:61