FairRoot/PandaRoot
PndTrkComparisonMCtruth.h
Go to the documentation of this file.
1 #ifndef PndTrkComparisonMCtruth_H
2 #define PndTrkComparisonMCtruth_H 1
3 
4 // #include "FairRootManager.h"
5 #include "PndTrkVectors.h"
6 #include "PndMCTrack.h"
7 // Root includes
8 #include "TROOT.h"
9 #include "TClonesArray.h"
10 
11 
14  Short_t *Charge;
21  TClonesArray *fMCTrackArray;
22  TClonesArray *fMvdMCPointArray;
24  TClonesArray *fSciTHitArray;
25  TClonesArray *fSciTPointArray;
26  TClonesArray *fSttPointArray;
27  FILE *HANDLE;
28  FILE *HANDLE2;
30  int istampa;
31  int IVOLTE;
33  bool *keepit;
40  Short_t *ListTrackCandHit;
55  Short_t *MCParalAloneList;
56  Short_t *MCSkewAloneList;
57  Double_t *MCSkewAloneX; // dimension : [MAXSTTHITS]
58  Double_t *MCSkewAloneY; // dimension : [MAXSTTHITS]
61  Short_t *MCSciTilAloneList; // equivalent to a matrix
62  // [nTotalCandidates][nSciTilHits];
65  Short_t *nHitsInMCTrack;
66  Short_t *nHitsInSciTile;
67  Short_t *nMCMvdPixelAlone;
68  Short_t *nMCMvdStripAlone;
69  Short_t *nMCParalAlone;
70  Short_t *nMCSciTilAlone;
71  Short_t *nMCSkewAlone;
72  Short_t *nMvdPixelCommon;
75  Short_t nMvdPixelHit;
77  Short_t *nMvdStripCommon;
78  Short_t nMvdStripHit;
80  Short_t *nParalCommon;
81  Short_t *nSciTilCommon;
82  Short_t nSciTilHits;
85  Short_t *nSkewCommon;
87  Short_t *nSpuriParinTrack;
89  Int_t nSttHit;
96  Short_t *ParalCommonList;
97  Short_t *ParSpuriList;
102  Short_t *SciTilCommonList; // equivalent to a matrix
103  // [nTotalCandidates][MAXSCITILHITSINTRACK];
104  Short_t *SciTilSpuriList; // equivalent to a matrix
105  // [nTotalCandidates][MAXSCITILHITSINTRACK];
106  Short_t *SkewCommonList;
107  Short_t *SkewSpuriList;
108  bool *SttSZfit;
118  };
119 
120  // inizio cambio_in_perl
121 
123 {
124 
125 
126  public:
127 
132 
135  Double_t CVEL,
136  Vec <Short_t> *daTrackFoundaTrackMC,
137  TClonesArray *fMCTrackArray,
138  Vec <Int_t> *FromPixeltoMCTrack,
139  Vec <Int_t> *FromStriptoMCTrack,
140  Vec <int> *FromSciTiltoMCTrackList,
141  // dimension nSciTilHits*nMCTracks, equivalent to a matrix
142  // of dimension [nSciTilHits][nMCTracks].
143  Vec <bool> *keepit,
144  Vec <Double_t> *info,
145  Vec <Short_t> *ListSttParHitsinTrack,
146  Vec <Short_t> *ListMvdPixelHitsinTrack,
147  Vec <Short_t> *ListSciTilHitsinTrack,
148  Vec <Short_t> *ListSttSkewHitsinTrack,
149  Vec <Short_t> *ListMvdStripHitsinTrack,
150  int MAXMVDPIXELHITSINTRACK,
151  int MAXMVDSTRIPHITSINTRACK,
152  int MAXSCITILHITSINTRACK,
153  int MAXSTTHITSINTRACK,
154  Vec <int> *nFromSciTiltoMCTrack,
155  Vec <Short_t> *nSttParHitsinTrack,
156  int nMCTracks,
157  Vec <Short_t> *nMvdPixelHitsinTrack,
158  Short_t nSciTilHits,
159  Vec <Short_t> *nSciTilHitsinTrack,
160  // dimension [MAXTRACKSPEREVENT][MAXSCITILHITSINTRACK]
161  Vec <Short_t> *nSttSkewHitsinTrack,
162  Vec <Short_t> *nMvdStripHitsinTrack,
163  Short_t nTracksFoundSoFar,
164  Vec <Double_t> *Ox,
165  Vec <Double_t> *Oy,
166  Vec <Double_t> *R,
167  Vec <Double_t> *X1,
168  Vec <Double_t> *Y1,
169  Vec <Double_t> *X2,
170  Vec <Double_t> *Y2,
171  Vec <Double_t> *X3,
172  Vec <Double_t> *Y3,
173  int IVOLTE
174 
175  );
176 
177  int ComparisonwithMC(
179  );
180 
182  Double_t Oxx, // center from wich distance is calculated
183  Double_t Oyy, // center from wich distance is calculated
184  Double_t Rr,
185  Double_t tanlow,
186  Double_t tanmid,
187  Double_t tanup,
188  Double_t alfa, // intersection circumference parameter
189  Double_t beta, // intersection circumference parameter
190  Double_t gamma // intersection circumference parameter
191  );
192 void getMCInfo(
194  Double_t CVEL,
195  Double_t * Cx,
196  Double_t * Cy,
197  TClonesArray *fMCTrackArray,
198  Int_t MCTrack,
199  Double_t * Rr
200  );
201 
203  Vec <Short_t> *daTrackFoundaTrackMC,
204  Vec <Int_t> *FromPixeltoMCTrack,
205  Vec <Int_t> *FromStriptoMCTrack,
206  Vec <bool> *keepit,
207  Vec <Short_t> *ListMvdPixelHitsinTrack,
208  Vec <Short_t> *ListMvdStripHitsinTrack,
209  int MAXMVDPIXELHITSINTRACK,
210  int MAXMVDSTRIPHITSINTRACK,
211  Short_t nMvdPixelHit,
212  Short_t nMvdStripHit,
213  Vec <Short_t> *nMvdPixelHitsinTrack,
214  Vec <Short_t> *nMvdStripHitsinTrack,
215  Short_t nSttTrackCand, // input
216 
217  Vec <Short_t> *nMvdPixelCommon,
218  Vec <Short_t> *MvdPixelCommonList,
219  Vec <Short_t> *nMvdPixelSpuriinTrack,
220  Vec <Short_t> *MvdPixelSpuriList,
221  Vec <Short_t> *nMCMvdPixelAlone,
222  Vec <Short_t> *MCMvdPixelAloneList,
223 
224  Vec <Short_t> *nMvdStripCommon,
225  Vec <Short_t> *MvdStripCommonList,
226  Vec <Short_t> *nMvdStripSpuriinTrack,
227  Vec <Short_t> *MvdStripSpuriList,
228  Vec <Short_t> *nMCMvdStripAlone,
229  Vec <Short_t> *MCMvdStripAloneList
230  );
231 
232 void MvdMatchtoMC(
235  TClonesArray *fMvdMCPointArray,
236  Short_t nMvdMCPoint,
237  int istampa,
238  int IVOLTE,
239  Short_t nMvdPixelHit,
240  Short_t nMvdStripHit,
241  Vec <Double_t> *refindexMvdPixel,
242  Vec <Double_t> *refindexMvdStrip,
243  Vec <Double_t> *XMvdPixel,
244  Vec <Double_t> *XMvdStrip,
245  Vec <Double_t> *YMvdPixel,
246  Vec <Double_t> *YMvdStrip,
247  Vec <Double_t> *ZMvdPixel,
248  Vec <Double_t> *ZMvdStrip,
249  Vec <Int_t> *FromPixeltoMCTrack,
250  Vec <Int_t> *FromStriptoMCTrack
251  );
252 
253  void SciTilMatchtoMC(
255  Double_t CVEL,
257  TClonesArray *fMCTrackArray,
258  Vec <int> *FromSciTiltoMCTrackList,
259  TClonesArray *fSciTHitArray,
260  Short_t fSciTilMaxNumber,
261  TClonesArray *fSciTPointArray,
262  Vec <int> *nFromSciTiltoMCTrack,
263  Short_t *nHitsInSciTile,
264  int nMCTracks,
265  Short_t nSciTilHits,
266  Short_t *OriginalSciTilList,
267  Vec <Double_t> *XSciTilCenter,
268  Vec <Double_t> *YSciTilCenter,
269  Vec <Double_t> *ZSciTilCenter
270 
271  );
272 
274  Vec <Short_t> *daTrackFoundaTrackMC,
275  Vec <int> *FromSciTiltoMCTrackList,
276  // of dimension [nSciTilHits][nMCTracks]
277  Vec <bool> *keepit,
278  Vec <Short_t> *ListSciTilHitsinTrack,
279  // [MAXTRACKSPEREVENT][MAXSCITILHITSINTRACK]
280  int MAXSCITILHITSINTRACK, // input
281  Short_t *MCSciTilAloneList, // output; equivalent to a matrix of dimension
282  // [MAXTRACKSPEREVENT][MAXSCITILHITSINTRACK]
283  Vec <int> *nFromSciTiltoMCTrack,
284  Short_t *nMCSciTilAlone, // output
285  int nMCTracks, // input
286  Short_t nSciTilHits, // input
287  Vec <Short_t> *nSciTilHitsinTrack,
288  Short_t *nSciTilCommon, // output
289  Short_t *nSciTilSpuriinTrack, // output
290  Short_t nSttTrackCand, // input
291  Short_t *SciTilCommonList, // output; equivalent to a matrix of dimension
292  // [MAXTRACKSPEREVENT][MAXSCITILHITSINTRACK]
293  Short_t *SciTilSpuriList // output; equivalent to a matrix of dimension
294  // [MAXTRACKSPEREVENT][MAXSCITILHITSINTRACK].
295  );
296 
297  void stampaMCTracks(
299  Double_t CVEL,
300  TClonesArray* fMCTrackArray,
301  int nMCTracks
302  );
303 
304 void SttMatchedSpurious(
305  Vec <Short_t> *daTrackFoundaTrackMC,
306  Vec <bool> *InclusionListStt,
307  Vec <Double_t> *info,
308  Vec <bool> *keepit,
309  int MAXSTTHITS,
310  int MAXSTTHITSINTRACK,
311  int MAXTRACKSPEREVENT,
312  Vec <Short_t> *ListSttParHitsinTrack,
313  Vec <Short_t> *ListSttSkewHitsinTrack,
314  Vec <Short_t> *MCParalAloneList,
315  Vec <Short_t> *MCSkewAloneList,
316  Vec <Short_t> *nHitsInMCTrack,
317  Vec <Short_t> *nSttParHitsinTrack,
318  Vec <Short_t> *nMCParalAlone,
319  Vec <Short_t> *nMCSkewAlone,
320  Vec <Short_t> *nParalCommon,
321  Vec <Short_t> *nSkewCommon,
322  Vec <Short_t> *nSkewHitsInMCTrack,
323  Vec <Short_t> *nSttSkewHitsinTrack,
324  Vec <Short_t> *nSpuriParinTrack,
325  Vec <Short_t> *nSpuriSkewinTrack,
326  Short_t nSttHits,
327  Short_t nTracksFoundSoFar, // those found by PR
328  Vec <Short_t> *ParalCommonList,
329  Vec <Short_t> *ParSpuriList,
330  Vec <Short_t> *SkewCommonList,
331  Vec <Short_t> *SkewSpuriList
332 
333  );
334 
335  // fine cambio_in_perl
336 
338 
339 };
340 
341 #endif
void MvdMatchtoMC(Double_t ERRORSQPIXEL, Double_t ERRORSQSTRIP, TClonesArray *fMvdMCPointArray, Short_t nMvdMCPoint, int istampa, int IVOLTE, Short_t nMvdPixelHit, Short_t nMvdStripHit, Vec< Double_t > *refindexMvdPixel, Vec< Double_t > *refindexMvdStrip, Vec< Double_t > *XMvdPixel, Vec< Double_t > *XMvdStrip, Vec< Double_t > *YMvdPixel, Vec< Double_t > *YMvdStrip, Vec< Double_t > *ZMvdPixel, Vec< Double_t > *ZMvdStrip, Vec< Int_t > *FromPixeltoMCTrack, Vec< Int_t > *FromStriptoMCTrack)
void getMCInfo(Double_t BFIELD, Double_t CVEL, Double_t *Cx, Double_t *Cy, TClonesArray *fMCTrackArray, Int_t MCTrack, Double_t *Rr)
Double_t FindDistance(Double_t Oxx, Double_t Oyy, Double_t Rr, Double_t tanlow, Double_t tanmid, Double_t tanup, Double_t alfa, Double_t beta, Double_t gamma)
const Double_t BFIELD
int ComparisonwithMC(PndTrkComparisonMCtruth_io_Data ioData)
Double_t
void AssociateFoundTrackstoMCquater(Double_t BFIELD, Double_t CVEL, Vec< Short_t > *daTrackFoundaTrackMC, TClonesArray *fMCTrackArray, Vec< Int_t > *FromPixeltoMCTrack, Vec< Int_t > *FromStriptoMCTrack, Vec< int > *FromSciTiltoMCTrackList, Vec< bool > *keepit, Vec< Double_t > *info, Vec< Short_t > *ListSttParHitsinTrack, Vec< Short_t > *ListMvdPixelHitsinTrack, Vec< Short_t > *ListSciTilHitsinTrack, Vec< Short_t > *ListSttSkewHitsinTrack, Vec< Short_t > *ListMvdStripHitsinTrack, int MAXMVDPIXELHITSINTRACK, int MAXMVDSTRIPHITSINTRACK, int MAXSCITILHITSINTRACK, int MAXSTTHITSINTRACK, Vec< int > *nFromSciTiltoMCTrack, Vec< Short_t > *nSttParHitsinTrack, int nMCTracks, Vec< Short_t > *nMvdPixelHitsinTrack, Short_t nSciTilHits, Vec< Short_t > *nSciTilHitsinTrack, Vec< Short_t > *nSttSkewHitsinTrack, Vec< Short_t > *nMvdStripHitsinTrack, Short_t nTracksFoundSoFar, Vec< Double_t > *Ox, Vec< Double_t > *Oy, Vec< Double_t > *R, Vec< Double_t > *X1, Vec< Double_t > *Y1, Vec< Double_t > *X2, Vec< Double_t > *Y2, Vec< Double_t > *X3, Vec< Double_t > *Y3, int IVOLTE)
const Double_t ERRORSQSTRIP
void SciTilMatchedSpurioustoTrackCand(Vec< Short_t > *daTrackFoundaTrackMC, Vec< int > *FromSciTiltoMCTrackList, Vec< bool > *keepit, Vec< Short_t > *ListSciTilHitsinTrack, int MAXSCITILHITSINTRACK, Short_t *MCSciTilAloneList, Vec< int > *nFromSciTiltoMCTrack, Short_t *nMCSciTilAlone, int nMCTracks, Short_t nSciTilHits, Vec< Short_t > *nSciTilHitsinTrack, Short_t *nSciTilCommon, Short_t *nSciTilSpuriinTrack, Short_t nSttTrackCand, Short_t *SciTilCommonList, Short_t *SciTilSpuriList)
const int MAXSTTHITSINTRACK
const Double_t CVEL
const Double_t ERRORSQPIXEL
ClassDef(PndTrkComparisonMCtruth, 1)
void MvdMatchedSpurioustoTrackCand(Vec< Short_t > *daTrackFoundaTrackMC, Vec< Int_t > *FromPixeltoMCTrack, Vec< Int_t > *FromStriptoMCTrack, Vec< bool > *keepit, Vec< Short_t > *ListMvdPixelHitsinTrack, Vec< Short_t > *ListMvdStripHitsinTrack, int MAXMVDPIXELHITSINTRACK, int MAXMVDSTRIPHITSINTRACK, Short_t nMvdPixelHit, Short_t nMvdStripHit, Vec< Short_t > *nMvdPixelHitsinTrack, Vec< Short_t > *nMvdStripHitsinTrack, Short_t nSttTrackCand, Vec< Short_t > *nMvdPixelCommon, Vec< Short_t > *MvdPixelCommonList, Vec< Short_t > *nMvdPixelSpuriinTrack, Vec< Short_t > *MvdPixelSpuriList, Vec< Short_t > *nMCMvdPixelAlone, Vec< Short_t > *MCMvdPixelAloneList, Vec< Short_t > *nMvdStripCommon, Vec< Short_t > *MvdStripCommonList, Vec< Short_t > *nMvdStripSpuriinTrack, Vec< Short_t > *MvdStripSpuriList, Vec< Short_t > *nMCMvdStripAlone, Vec< Short_t > *MCMvdStripAloneList)
void stampaMCTracks(Double_t BFIELD, Double_t CVEL, TClonesArray *fMCTrackArray, int nMCTracks)
void SttMatchedSpurious(Vec< Short_t > *daTrackFoundaTrackMC, Vec< bool > *InclusionListStt, Vec< Double_t > *info, Vec< bool > *keepit, int MAXSTTHITS, int MAXSTTHITSINTRACK, int MAXTRACKSPEREVENT, Vec< Short_t > *ListSttParHitsinTrack, Vec< Short_t > *ListSttSkewHitsinTrack, Vec< Short_t > *MCParalAloneList, Vec< Short_t > *MCSkewAloneList, Vec< Short_t > *nHitsInMCTrack, Vec< Short_t > *nSttParHitsinTrack, Vec< Short_t > *nMCParalAlone, Vec< Short_t > *nMCSkewAlone, Vec< Short_t > *nParalCommon, Vec< Short_t > *nSkewCommon, Vec< Short_t > *nSkewHitsInMCTrack, Vec< Short_t > *nSttSkewHitsinTrack, Vec< Short_t > *nSpuriParinTrack, Vec< Short_t > *nSpuriSkewinTrack, Short_t nSttHits, Short_t nTracksFoundSoFar, Vec< Short_t > *ParalCommonList, Vec< Short_t > *ParSpuriList, Vec< Short_t > *SkewCommonList, Vec< Short_t > *SkewSpuriList)
Double_t R
Definition: checkhelixhit.C:61
void SciTilMatchtoMC(Double_t BFIELD, Double_t CVEL, Double_t DIMENSIONSCITIL, TClonesArray *fMCTrackArray, Vec< int > *FromSciTiltoMCTrackList, TClonesArray *fSciTHitArray, Short_t fSciTilMaxNumber, TClonesArray *fSciTPointArray, Vec< int > *nFromSciTiltoMCTrack, Short_t *nHitsInSciTile, int nMCTracks, Short_t nSciTilHits, Short_t *OriginalSciTilList, Vec< Double_t > *XSciTilCenter, Vec< Double_t > *YSciTilCenter, Vec< Double_t > *ZSciTilCenter)
const Double_t DIMENSIONSCITIL