CbmRoot
PairAnalysisEvent.cxx
Go to the documentation of this file.
1 // //
3 // Authors:
4 // Julian Book <Julian.Book@cern.ch>
5 /*
6 
7  Event that holds all information needed for the of analysis (including fast simulations).
8  Init() the PairAnalysisTrack array fTracks and provides easy access to:
9 
10  hits GetHits( ECbmModuleId det)
11  hit matches GetHitMatches(ECbmModuleId det)
12  points GetPoints( ECbmModuleId det)
13 
14  clusters GetCluster( ECbmModuleId det)
15 
16  for each sub-detector.
17 
18 */
19 // //
21 #include <Rtypes.h>
22 #include <TArrayS.h>
23 #include <TMatrixFSym.h>
24 #include <TObjArray.h>
25 #include <TParticle.h>
26 
27 
28 #include "FairMCPoint.h"
29 #include "FairRootManager.h"
30 #include "FairTrackParam.h"
31 
32 #include "FairMCEventHeader.h"
33 
34 #include "CbmGlobalTrack.h"
35 #include "CbmKFVertex.h"
36 #include "CbmMCTrack.h"
37 #include "CbmMuchTrack.h"
38 #include "CbmRichRing.h"
39 #include "CbmStsTrack.h"
40 #include "CbmTofHit.h"
41 #include "CbmTrackMatchNew.h"
42 #include "CbmTrdTrack.h"
43 #include "CbmVertex.h"
44 
45 #include "PairAnalysisEvent.h"
46 #include "PairAnalysisTrack.h"
47 
49 
51  : TNamed()
52  , fTracks(new TObjArray(1)) // array of papa tracks
53 {
54  //
55  // Default Constructor
56  //
57  fTracks->SetOwner(kTRUE);
58 }
59 
60 //______________________________________________
61 PairAnalysisEvent::PairAnalysisEvent(const char* name, const char* title)
62  : TNamed(name, title)
63  , fTracks(new TObjArray(1)) // array of papa tracks
64 {
65  //
66  // Named Constructor
67  //
68  fTracks->SetOwner(kTRUE);
69 }
70 
71 //______________________________________________
73  //
74  // Default Destructor
75  //
76  delete fPrimVertex;
77 
78  // fTracks->Clear("C");
79  fGlobalTracks->Delete(); //global tracks
80  fMCHeader->Delete(); //mc tracks
81  fMCTracks->Delete(); //mc tracks
82 
83  fTrdTracks->Delete(); //TRD tracks
84  fStsTracks->Delete(); //STS tracks
85  fMuchTracks->Delete(); //MUCH tracks
86  fRichRings->Delete(); //RICH rings
87 
88  fStsMatches->Delete(); //STS matches
89  fMuchMatches->Delete(); //MUCH matches
90  fTrdMatches->Delete(); //TRD matches
91  fRichMatches->Delete(); //RICH matches
92 
93  fMvdPoints->Delete(); //MVD hits
94  fStsPoints->Delete(); //STS hits
95  fMuchPoints->Delete(); //MUCH hits
96  fRichPoints->Delete(); //RICH hits
97  fTrdPoints->Delete(); //TRD hits
98  fTofPoints->Delete(); //TOF matches
99 
100  fMvdHits->Delete(); //MVD hits
101  fStsHits->Delete(); //STS hits
102  fMuchHits->Delete(); //MUCH hits
103  fMuchHitsStraw->Delete(); //MUCH hits
104  fTrdHits->Delete(); //TRD hits
105  fRichHits->Delete(); //RICH hits
106  fTofHits->Delete(); //TOF hits
107 
108  fTrdCluster->Delete(); //TRD cluster
109 
110  fRichProjection->Delete();
111  fMvdHitMatches->Delete(); //MVD hits
112  fStsHitMatches->Delete(); //STS hits
113  fMuchHitMatches->Delete(); //MUCH hits
114  fRichHitMatches->Delete(); //RICH hits
115  fTrdHitMatches->Delete(); //TRD hits
116  fTofHitMatches->Delete(); //TOF hits
117 
118  fFastTracks->Delete();
119 }
120 
121 //______________________________________________
122 void PairAnalysisEvent::SetInput(FairRootManager* man) {
123  //
124  // setup the track/hit branches
125  //
126  fGlobalTracks = (TClonesArray*) man->GetObject("GlobalTrack");
127  fTrdTracks = (TClonesArray*) man->GetObject("TrdTrack");
128  fStsTracks = (TClonesArray*) man->GetObject("StsTrack");
129  fMuchTracks = (TClonesArray*) man->GetObject("MuchTrack");
130  fRichRings = (TClonesArray*) man->GetObject("RichRing");
131  // fPrimVertex = (CbmVertex*) man->GetObject("PrimaryVertex"); // Get pointer to PrimaryVertex object from IOManager if it exists
132  // Get pointer to PrimaryVertex object from IOManager if it exists
133  // The old name for the object is "PrimaryVertex" the new one
134  // "PrimaryVertex." Check first for the new name
135  fPrimVertex = dynamic_cast<CbmVertex*>(man->GetObject("PrimaryVertex."));
136  if (nullptr == fPrimVertex) {
137  fPrimVertex = dynamic_cast<CbmVertex*>(man->GetObject("PrimaryVertex"));
138  }
139  // MC matches and tracks
140  fMCHeader = (FairMCEventHeader*) man->GetObject("MCEventHeader.");
141  fMCTracks = (TClonesArray*) man->GetObject("MCTrack");
142  fStsMatches = (TClonesArray*) man->GetObject("StsTrackMatch");
143  fMuchMatches = (TClonesArray*) man->GetObject("MuchTrackMatch");
144  fTrdMatches = (TClonesArray*) man->GetObject("TrdTrackMatch");
145  fRichMatches = (TClonesArray*) man->GetObject("RichRingMatch");
146  // hits
147  fMvdHits = (TClonesArray*) man->GetObject("MvdHit");
148  fStsHits = (TClonesArray*) man->GetObject("StsHit");
149  fMuchHits = (TClonesArray*) man->GetObject("MuchPixelHit");
150  fMuchHitsStraw = (TClonesArray*) man->GetObject("MuchStrawHit");
151  fTrdHits = (TClonesArray*) man->GetObject("TrdHit");
152  fRichHits = (TClonesArray*) man->GetObject("RichHit");
153  fTofHits = (TClonesArray*) man->GetObject("TofHit");
154  // hit matches (matches are accessed directly via CbmHit::GetMatch)
156  (TClonesArray*) man->GetObject("MvdHitMatch"); //needed for mvd matching
157  fStsHitMatches = (TClonesArray*) man->GetObject("StsHitMatch");
158  fRichHitMatches = (TClonesArray*) man->GetObject("RichHitMatch");
159  fTrdHitMatches = (TClonesArray*) man->GetObject("TrdHitMatch");
160  fTofHitMatches = (TClonesArray*) man->GetObject("TofHitMatch");
161  fMuchHitMatches = (TClonesArray*) man->GetObject("MuchPixelHitMatch");
162  // fMuchHitStrawMatches = (TClonesArray*) man->GetObject("MuchStrawHitMatch");
163  // mc points
164  fMvdPoints = (TClonesArray*) man->GetObject("MvdPoint");
165  fStsPoints = (TClonesArray*) man->GetObject("StsPoint");
166  fRichPoints = (TClonesArray*) man->GetObject("RichPoint");
167  fMuchPoints = (TClonesArray*) man->GetObject("MuchPoint");
168  fTrdPoints = (TClonesArray*) man->GetObject("TrdPoint");
169  fTofPoints = (TClonesArray*) man->GetObject("TofPoint");
170  // cluster
171  fTrdCluster = (TClonesArray*) man->GetObject("TrdCluster");
172 
173  fRichProjection = (TClonesArray*) man->GetObject("RichProjection");
174  // fast track
175  fFastTracks = (TClonesArray*) man->GetObject("FastTrack");
176 
177  // if(fMCTracks) printf("PairAnalysisEvent::SetInput: size of mc array: %04d \n",fMCTracks->GetSize());
178 }
179 
180 //______________________________________________
182  //
183  // initialization of track arrays
184  //
185  fTracks->Clear("C");
186  if (!fGlobalTracks && !fFastTracks) return;
187 
188  // DEBUG stuff
189  if (0) {
190  fprintf(stderr,
191  "check %s: has %d points in %p \n",
192  "MVD",
195  fprintf(stderr,
196  "check %s: has %d points in %p \n",
197  "STS",
200  fprintf(stderr,
201  "check %s: has %d points in %p \n",
202  "RICH",
205  fprintf(stderr,
206  "check %s: has %d points in %p \n",
207  "TRD",
210  fprintf(stderr,
211  "check %s: has %d points in %p \n",
212  "TOF",
215 
216  fprintf(stderr,
217  "check %s: has %d hitMatches in %p \n",
218  "MVD",
221  fprintf(stderr,
222  "check %s: has %d hitMatches in %p \n",
223  "STS",
226  fprintf(stderr,
227  "check %s: has %d hitMatches in %p \n",
228  "RICH",
231  fprintf(stderr,
232  "check %s: has %d hitMatches in %p \n",
233  "TRD",
236  fprintf(stderr,
237  "check %s: has %d hitMatches in %p \n",
238  "TOF",
241 
242  fprintf(stderr,
243  "check %s: has %d hits in %p \n",
244  "MVD",
247  fprintf(stderr,
248  "check %s: has %d hits in %p \n",
249  "STS",
252  fprintf(stderr,
253  "check %s: has %d hits in %p \n",
254  "RICH",
257  fprintf(stderr,
258  "check %s: has %d hits in %p \n",
259  "TRD",
262  fprintf(stderr,
263  "check %s: has %d hits in %p \n",
264  "TOF",
267  }
268 
269  // get primary kf vertex or create one from mc header
270  CbmKFVertex* vtx = 0x0;
271  if (!fPrimVertex && fMCHeader) {
272  TMatrixFSym cov(3);
273  fPrimVertex = new CbmVertex("mcvtx",
274  "mc vtx",
275  fMCHeader->GetX(),
276  fMCHeader->GetY(),
277  fMCHeader->GetZ(),
278  1.0,
279  1,
280  fMCHeader->GetNPrim(),
281  cov);
282  } else if (!fPrimVertex && !fMCHeader) {
283  TMatrixFSym cov(3);
284  fPrimVertex = new CbmVertex("defaultvtx",
285  "default vtx",
286  0.,
287  0.,
288  0.,
289  1.0,
290  1,
291  TMath::Max(fGlobalTracks->GetEntriesFast(),
292  fFastTracks->GetEntriesFast()),
293  cov);
294  }
295  if (fPrimVertex) vtx = new CbmKFVertex(*fPrimVertex);
296 
297  TArrayS matches;
298  if (fMCTracks) matches.Set(fMCTracks->GetEntriesFast());
299 
301  for (Int_t i = 0; i < (fGlobalTracks ? fGlobalTracks->GetEntriesFast() : 0);
302  i++) {
303  // global track
304  CbmGlobalTrack* gtrk =
305  static_cast<CbmGlobalTrack*>(fGlobalTracks->UncheckedAt(i));
306  if (!gtrk) continue;
307 
308  Int_t itrd = gtrk->GetTrdTrackIndex();
309  Int_t ists = gtrk->GetStsTrackIndex();
310  Int_t irich = gtrk->GetRichRingIndex();
311  Int_t itof = gtrk->GetTofHitIndex();
312  Int_t imuch = gtrk->GetMuchTrackIndex();
313 
314  // reconstructed tracks
315  CbmTrdTrack* trdTrack = 0x0;
316  if (fTrdTracks && itrd >= 0)
317  trdTrack = static_cast<CbmTrdTrack*>(fTrdTracks->At(itrd));
318  CbmStsTrack* stsTrack = 0x0;
319  if (fStsTracks && ists >= 0)
320  stsTrack = static_cast<CbmStsTrack*>(fStsTracks->At(ists));
321  CbmRichRing* richRing = 0x0;
322  if (fRichRings && irich >= 0)
323  richRing = static_cast<CbmRichRing*>(fRichRings->At(irich));
324  CbmTofHit* tofHit = 0x0;
325  if (fTofHits && itof >= 0)
326  tofHit = static_cast<CbmTofHit*>(fTofHits->At(itof));
327  CbmMuchTrack* muchTrack = 0x0;
328  if (fMuchTracks && imuch >= 0)
329  muchTrack = static_cast<CbmMuchTrack*>(fMuchTracks->At(imuch));
330 
331  // track and TOFhit matches
332  CbmTrackMatchNew* stsMatch = 0x0;
333  if (fStsMatches && stsTrack)
334  stsMatch = static_cast<CbmTrackMatchNew*>(fStsMatches->At(ists));
335  Int_t istsMC = (stsMatch && stsMatch->GetNofHits() > 0
336  ? stsMatch->GetMatchedLink().GetIndex()
337  : -1);
338  CbmTrackMatchNew* muchMatch = 0x0;
339  if (fMuchMatches && muchTrack)
340  muchMatch = static_cast<CbmTrackMatchNew*>(fMuchMatches->At(imuch));
341  Int_t imuchMC = (muchMatch && muchMatch->GetNofHits() > 0
342  ? muchMatch->GetMatchedLink().GetIndex()
343  : -1);
344  CbmTrackMatchNew* trdMatch = 0x0;
345  if (fTrdMatches && trdTrack)
346  trdMatch = static_cast<CbmTrackMatchNew*>(fTrdMatches->At(itrd));
347  Int_t itrdMC = (trdMatch ? trdMatch->GetMatchedLink().GetIndex() : -1);
348  CbmTrackMatchNew* richMatch = 0x0;
349  if (fRichMatches && richRing)
350  richMatch = static_cast<CbmTrackMatchNew*>(fRichMatches->At(irich));
351  Int_t irichMC = (richMatch && richMatch->GetNofHits() > 0
352  ? richMatch->GetMatchedLink().GetIndex()
353  : -1);
354  CbmMatch* tofMatch = 0x0;
355  if (fTofHitMatches && tofHit)
356  tofMatch = static_cast<CbmMatch*>(
357  fTofHitMatches->At(itof)); //tofMatch = tofHit->GetMatch();
358  FairMCPoint* tofPoint = 0x0;
359  if (tofMatch && tofMatch->GetNofLinks() > 0)
360  tofPoint = static_cast<FairMCPoint*>(
361  fTofPoints->At(tofMatch->GetMatchedLink().GetIndex()));
362  Int_t itofMC = (tofPoint ? tofPoint->GetTrackID() : -1);
363 
364  Int_t imvdMC = GetMvdMatchingIndex(stsTrack);
365 
366  // rich projection
367  FairTrackParam* richProj = 0x0;
368  if (fRichProjection)
369  richProj = static_cast<FairTrackParam*>(fRichProjection->At(i));
370 
371  // monte carlo track based on the STS match!!!
372  Int_t iMC = istsMC;
373  CbmMCTrack* mcTrack = 0x0;
374  if (fMCTracks && iMC >= 0)
375  mcTrack = static_cast<CbmMCTrack*>(fMCTracks->At(iMC));
376  // increment position in matching array
377  if (mcTrack && fMCTracks) matches[iMC]++;
378 
379  // build papa track
380  fTracks->AddAtAndExpand(new PairAnalysisTrack(vtx,
381  gtrk,
382  stsTrack,
383  muchTrack,
384  trdTrack,
385  richRing,
386  tofHit,
387  mcTrack,
388  stsMatch,
389  muchMatch,
390  trdMatch,
391  richMatch,
392  richProj,
393  i),
394  i);
395 
396  // set MC label and matching bits
397  PairAnalysisTrack* tr =
398  static_cast<PairAnalysisTrack*>(fTracks->UncheckedAt(i));
399  if (iMC < 0) iMC = -999; // STS tracks w/o MC matching
400  tr->SetLabel(iMC);
401  // NOTE: sts track matching might include mvd points
402  tr->SetBit(BIT(14 + ToIntegralType(ECbmModuleId::kMvd)), (iMC == imvdMC));
403  tr->SetBit(BIT(14 + ToIntegralType(ECbmModuleId::kSts)), (iMC == istsMC));
404  tr->SetBit(BIT(14 + ToIntegralType(ECbmModuleId::kRich)), (iMC == irichMC));
405  tr->SetBit(BIT(14 + ToIntegralType(ECbmModuleId::kTrd)), (iMC == itrdMC));
406  tr->SetBit(BIT(14 + ToIntegralType(ECbmModuleId::kTof)), (iMC == itofMC));
407  tr->SetBit(BIT(14 + ToIntegralType(ECbmModuleId::kMuch)), (iMC == imuchMC));
408  }
409 
410  // loop over all fast tracks and add them
411  // NOTE: only when there are no global tracks
412  if (!fGlobalTracks || !fGlobalTracks->GetEntriesFast()) {
413 
414  // loop over all fast tracks
415  for (Int_t i = 0; i < (fFastTracks ? fFastTracks->GetEntriesFast() : 0);
416  i++) {
417  // fast(sim) track
418  TParticle* ftrk = static_cast<TParticle*>(fFastTracks->UncheckedAt(i));
419  if (!ftrk) continue;
420 
421  // monte carlo track
422  Int_t iMC = ftrk->GetFirstMother();
423  CbmMCTrack* mcTrack = 0x0;
424  if (fMCTracks && iMC >= 0)
425  mcTrack = static_cast<CbmMCTrack*>(fMCTracks->At(iMC));
426  // increment position in matching array
427  if (mcTrack && fMCTracks) matches[iMC]++;
428  // build papa track
429  fTracks->AddAtAndExpand(new PairAnalysisTrack(ftrk, mcTrack), i);
430  }
431  }
432 
433  // number of multiple matched tracks
434  fMultiMatch = (Int_t) matches.GetSum();
435 }
436 
437 
438 //______________________________________________
440  //
441  // intialize the papa track and return it
442  //
443 
444  // check intitialisation
445  if (fTracks->GetSize() < 0 || UInt_t(fTracks->GetSize()) <= pos
446  || !fTracks->UncheckedAt(pos))
447  Fatal("PairAnalysisEvent::GetTrack",
448  "Event initialisation failed somehow !!!");
449 
450  return static_cast<PairAnalysisTrack*>(fTracks->UncheckedAt(pos));
451 }
452 
453 //______________________________________________
455  //
456  // number of track matches
457  //
458  switch (det) {
459  case ECbmModuleId::kSts:
460  return (fStsMatches ? fStsMatches->GetEntriesFast() : 0);
461  case ECbmModuleId::kMuch:
462  return (fMuchMatches ? fMuchMatches->GetEntriesFast() : 0);
463  case ECbmModuleId::kTrd:
464  return (fTrdMatches ? fTrdMatches->GetEntriesFast() : 0);
465  case ECbmModuleId::kRich:
466  return (fRichMatches ? fRichMatches->GetEntriesFast() : 0);
467  default: return 0;
468  }
469 }
470 
471 //______________________________________________
473  //
474  // number of hit matches
475  //
476  if (!GetHitMatches(det)) {
477  return 0;
478  } else {
479  return (GetHitMatches(det)->GetEntriesFast());
480  }
481 }
482 
483 //______________________________________________
485  //
486  // number of reconstructed hits
487  //
488  if (!GetHits(det)) {
489  return 0;
490  } else {
491  return (GetHits(det)->GetEntriesFast());
492  }
493 }
494 
495 //______________________________________________
497  //
498  // number of reconstructed hits
499  //
500  if (!GetPoints(det)) {
501  return 0;
502  } else {
503  return (GetPoints(det)->GetEntriesFast());
504  }
505 }
506 
507 //______________________________________________
508 TClonesArray* PairAnalysisEvent::GetHits(ECbmModuleId det) const {
509  //
510  // get hits array for certain detector
511  //
512  //TODO: add much straw hits
513  switch (det) {
514  case ECbmModuleId::kMvd: return fMvdHits;
515  case ECbmModuleId::kSts: return fStsHits;
516  case ECbmModuleId::kMuch: return fMuchHits; //pixel
517  case ECbmModuleId::kTrd: return fTrdHits;
518  case ECbmModuleId::kRich: return fRichHits;
519  case ECbmModuleId::kTof: return fTofHits;
520  default: return 0x0;
521  }
522 }
523 
524 //______________________________________________
526  //
527  // get hit matches array for certain detector
528  //
529  //TODO: add much straw hits
530  switch (det) {
531  case ECbmModuleId::kMvd: return fMvdHitMatches;
532  case ECbmModuleId::kSts: return fStsHitMatches;
533  case ECbmModuleId::kMuch: return fMuchHitMatches; //pixel
534  case ECbmModuleId::kTrd: return fTrdHitMatches;
536  case ECbmModuleId::kTof: return fTofHitMatches;
537  default: return 0x0;
538  }
539 }
540 
541 //______________________________________________
542 TClonesArray* PairAnalysisEvent::GetPoints(ECbmModuleId det) const {
543  //
544  // get mc points array for certain detector
545  //
546  switch (det) {
547  case ECbmModuleId::kMvd: return fMvdPoints;
548  case ECbmModuleId::kSts: return fStsPoints;
549  case ECbmModuleId::kMuch: return fMuchPoints;
550  case ECbmModuleId::kTrd: return fTrdPoints;
551  case ECbmModuleId::kRich: return fRichPoints;
552  case ECbmModuleId::kTof: return fTofPoints;
553  default: return 0x0;
554  }
555 }
556 
557 //______________________________________________
558 TClonesArray* PairAnalysisEvent::GetCluster(ECbmModuleId det) const {
559  //
560  // get cluster array for certain detector
561  //
562  switch (det) {
563  // case ECbmModuleId::kMvd: return fMvdCluster;
564  // case ECbmModuleId::kSts: return fStsCluster;
565  // case ECbmModuleId::kMuch:return fMuchCluster; //pixel
566  case ECbmModuleId::kTrd: return fTrdCluster;
567  // case ECbmModuleId::kRich:return fRichCluster;
568  // case ECbmModuleId::kTof: return fTofCluster;
569  default: return 0x0;
570  }
571 }
572 
573 //______________________________________________
574 void PairAnalysisEvent::Clear(Option_t* /*opt*/) {
575  //
576  // clear arrays
577  //
578  fTracks->Clear("C");
579  // fGlobalTracks->Delete(); //global tracks
580  // fTrdTracks->Delete(); //TRD tracks
581  // fStsTracks->Delete(); //STS tracks
582  // fMCTracks->Delete(); //mc tracks
583  // fStsMatches->Delete(); //STS matches
584 }
585 
586 //______________________________________________
588  //
589  // calculate the standalone mvd mc matching
590  //
591  Int_t idx = -1;
592  if (!track || !fMvdHitMatches) return idx;
593 
594  CbmTrackMatchNew* trackMatch = new CbmTrackMatchNew();
595 
596  Int_t nofMvdHits = track->GetNofMvdHits();
597  for (Int_t iHit = 0; iHit < nofMvdHits; iHit++) {
598  const CbmMatch* hitMatch =
599  static_cast<CbmMatch*>(fMvdHitMatches->At(track->GetMvdHitIndex(iHit)));
600  if (!hitMatch) continue;
601  Int_t nofLinks = hitMatch->GetNofLinks();
602  for (Int_t iLink = 0; iLink < nofLinks; iLink++) {
603  const CbmLink& link = hitMatch->GetLink(iLink);
604  const FairMCPoint* point =
605  static_cast<const FairMCPoint*>(fMvdPoints->At(link.GetIndex()));
606  if (NULL == point) continue;
607  trackMatch->AddLink(
608  CbmLink(1., point->GetTrackID(), link.GetEntry(), link.GetFile()));
609  }
610  }
611  if (trackMatch->GetNofLinks()) {
612  idx = trackMatch->GetMatchedLink().GetIndex();
613  }
614 
615  //delete surplus stuff
616  delete trackMatch;
617 
618  return idx;
619 }
PairAnalysisEvent::fMCTracks
TClonesArray * fMCTracks
Definition: PairAnalysisEvent.h:69
PairAnalysisEvent::fStsTracks
TClonesArray * fStsTracks
Definition: PairAnalysisEvent.h:84
CbmMatch::GetMatchedLink
const CbmLink & GetMatchedLink() const
Definition: CbmMatch.h:37
CbmMatch
Definition: CbmMatch.h:22
CbmVertex.h
PairAnalysisEvent::GetNumberOfPoints
Int_t GetNumberOfPoints(ECbmModuleId det) const
Definition: PairAnalysisEvent.cxx:496
CbmGlobalTrack::GetMuchTrackIndex
Int_t GetMuchTrackIndex() const
Definition: CbmGlobalTrack.h:40
CbmMatch::GetLink
const CbmLink & GetLink(Int_t i) const
Definition: CbmMatch.h:35
CbmMatch::GetNofLinks
Int_t GetNofLinks() const
Definition: CbmMatch.h:38
ClassImp
ClassImp(PairAnalysisEvent) PairAnalysisEvent
Definition: PairAnalysisEvent.cxx:48
PairAnalysisEvent::fRichHits
TClonesArray * fRichHits
Definition: PairAnalysisEvent.h:93
PairAnalysisEvent::fMuchHitsStraw
TClonesArray * fMuchHitsStraw
Definition: PairAnalysisEvent.h:91
PairAnalysisEvent::fStsHits
TClonesArray * fStsHits
Definition: PairAnalysisEvent.h:89
CbmGlobalTrack::GetRichRingIndex
Int_t GetRichRingIndex() const
Definition: CbmGlobalTrack.h:41
PairAnalysisEvent::GetMvdMatchingIndex
Int_t GetMvdMatchingIndex(CbmStsTrack *track) const
Definition: PairAnalysisEvent.cxx:587
i
int i
Definition: L1/vectors/P4_F32vec4.h:25
PairAnalysisEvent::fMultiMatch
Int_t fMultiMatch
Definition: PairAnalysisEvent.h:111
CbmGlobalTrack.h
ECbmModuleId::kMvd
@ kMvd
Micro-Vertex Detector.
ECbmModuleId
ECbmModuleId
Definition: CbmDefs.h:33
PairAnalysisEvent::fRichPoints
TClonesArray * fRichPoints
Definition: PairAnalysisEvent.h:78
CbmRichRing
Definition: CbmRichRing.h:17
PairAnalysisEvent::fMuchTracks
TClonesArray * fMuchTracks
Definition: PairAnalysisEvent.h:85
PairAnalysisTrack
Definition: PairAnalysisTrack.h:37
CbmRichRing.h
ECbmModuleId::kTof
@ kTof
Time-of-flight Detector.
PairAnalysisEvent::fTrdHitMatches
TClonesArray * fTrdHitMatches
Definition: PairAnalysisEvent.h:102
PairAnalysisEvent::fStsMatches
TClonesArray * fStsMatches
Definition: PairAnalysisEvent.h:70
PairAnalysisEvent::Init
void Init()
Definition: PairAnalysisEvent.cxx:181
PairAnalysisEvent::fTrdPoints
TClonesArray * fTrdPoints
Definition: PairAnalysisEvent.h:79
PairAnalysisEvent::fTrdCluster
TClonesArray * fTrdCluster
Definition: PairAnalysisEvent.h:105
CbmMuchTrack
Definition: CbmMuchTrack.h:16
PairAnalysisEvent::fPrimVertex
CbmVertex * fPrimVertex
Definition: PairAnalysisEvent.h:107
PairAnalysisEvent::GetPoints
TClonesArray * GetPoints(ECbmModuleId det) const
Definition: PairAnalysisEvent.cxx:542
PairAnalysisEvent::fStsPoints
TClonesArray * fStsPoints
Definition: PairAnalysisEvent.h:76
PairAnalysisEvent::GetNumberOfHits
Int_t GetNumberOfHits(ECbmModuleId det) const
Definition: PairAnalysisEvent.cxx:484
PairAnalysisEvent::fRichMatches
TClonesArray * fRichMatches
Definition: PairAnalysisEvent.h:73
PairAnalysisEvent::GetNumberOfMatches
Int_t GetNumberOfMatches(ECbmModuleId det) const
Definition: PairAnalysisEvent.cxx:454
CbmStsTrack::GetNofMvdHits
Int_t GetNofMvdHits() const
Definition: CbmStsTrack.h:84
PairAnalysisEvent::fGlobalTracks
TClonesArray * fGlobalTracks
Definition: PairAnalysisEvent.h:82
PairAnalysisEvent::fFastTracks
TClonesArray * fFastTracks
Definition: PairAnalysisEvent.h:108
CbmStsTrack.h
Data class for STS tracks.
CbmGlobalTrack::GetStsTrackIndex
Int_t GetStsTrackIndex() const
Definition: CbmGlobalTrack.h:38
PairAnalysisEvent::GetNumberOfHitMatches
Int_t GetNumberOfHitMatches(ECbmModuleId det) const
Definition: PairAnalysisEvent.cxx:472
CbmMuchTrack.h
PairAnalysisEvent::fTracks
TObjArray * fTracks
Definition: PairAnalysisEvent.h:109
PairAnalysisEvent::fMuchMatches
TClonesArray * fMuchMatches
Definition: PairAnalysisEvent.h:71
PairAnalysisEvent::fTrdTracks
TClonesArray * fTrdTracks
Definition: PairAnalysisEvent.h:83
PairAnalysisEvent::GetTrack
PairAnalysisTrack * GetTrack(UInt_t pos)
Definition: PairAnalysisEvent.cxx:439
PairAnalysisEvent::fTofPoints
TClonesArray * fTofPoints
Definition: PairAnalysisEvent.h:80
CbmGlobalTrack::GetTrdTrackIndex
Int_t GetTrdTrackIndex() const
Definition: CbmGlobalTrack.h:39
CbmTrackMatchNew.h
CbmMatch::AddLink
void AddLink(const CbmLink &newLink)
Definition: CbmMatch.cxx:42
CbmVertex
Definition: CbmVertex.h:26
PairAnalysisEvent::fMuchPoints
TClonesArray * fMuchPoints
Definition: PairAnalysisEvent.h:77
ECbmModuleId::kRich
@ kRich
Ring-Imaging Cherenkov Detector.
PairAnalysisEvent::fRichHitMatches
TClonesArray * fRichHitMatches
Definition: PairAnalysisEvent.h:100
PairAnalysisEvent::PairAnalysisEvent
PairAnalysisEvent()
PairAnalysisEvent::fRichProjection
TClonesArray * fRichProjection
Definition: PairAnalysisEvent.h:96
PairAnalysisEvent::SetInput
void SetInput(FairRootManager *man)
Definition: PairAnalysisEvent.cxx:122
CbmTrackMatchNew::GetNofHits
Int_t GetNofHits() const
Definition: CbmTrackMatchNew.h:34
PairAnalysisEvent::fMvdHits
TClonesArray * fMvdHits
Definition: PairAnalysisEvent.h:88
PairAnalysisEvent::fTofHits
TClonesArray * fTofHits
Definition: PairAnalysisEvent.h:94
PairAnalysisTrack.h
ECbmModuleId::kTrd
@ kTrd
Transition Radiation Detector.
CbmTrdTrack
Definition: CbmTrdTrack.h:22
PairAnalysisEvent
Definition: PairAnalysisEvent.h:25
PairAnalysisEvent::fMuchHits
TClonesArray * fMuchHits
Definition: PairAnalysisEvent.h:90
CbmGlobalTrack
Definition: CbmGlobalTrack.h:26
richProj
TClonesArray * richProj
Definition: Compute_distance.h:18
PairAnalysisEvent::fTrdMatches
TClonesArray * fTrdMatches
Definition: PairAnalysisEvent.h:72
PairAnalysisEvent::GetCluster
TClonesArray * GetCluster(ECbmModuleId det) const
Definition: PairAnalysisEvent.cxx:558
CbmMCTrack.h
PairAnalysisEvent::fStsHitMatches
TClonesArray * fStsHitMatches
Definition: PairAnalysisEvent.h:99
PairAnalysisEvent::GetHits
TClonesArray * GetHits(ECbmModuleId det) const
Definition: PairAnalysisEvent.cxx:508
PairAnalysisEvent::fMvdPoints
TClonesArray * fMvdPoints
Definition: PairAnalysisEvent.h:75
CbmMCTrack
Definition: CbmMCTrack.h:34
ToIntegralType
constexpr auto ToIntegralType(T enumerator) -> typename std::underlying_type< T >::type
Definition: CbmDefs.h:24
PairAnalysisEvent::fTrdHits
TClonesArray * fTrdHits
Definition: PairAnalysisEvent.h:92
CbmStsTrack::GetMvdHitIndex
Int_t GetMvdHitIndex(Int_t iHit) const
Definition: CbmStsTrack.h:70
pos
TVector3 pos
Definition: CbmMvdSensorDigiToHitTask.cxx:60
ECbmModuleId::kMuch
@ kMuch
Muon detection system.
CbmTrackMatchNew
Definition: CbmTrackMatchNew.h:19
PairAnalysisEvent::fTofHitMatches
TClonesArray * fTofHitMatches
Definition: PairAnalysisEvent.h:103
CbmTofHit
Definition: core/data/tof/CbmTofHit.h:26
PairAnalysisEvent::GetHitMatches
TClonesArray * GetHitMatches(ECbmModuleId det) const
Definition: PairAnalysisEvent.cxx:525
PairAnalysisEvent::~PairAnalysisEvent
virtual ~PairAnalysisEvent()
Definition: PairAnalysisEvent.cxx:72
CbmGlobalTrack::GetTofHitIndex
Int_t GetTofHitIndex() const
Definition: CbmGlobalTrack.h:42
PairAnalysisEvent::fMCHeader
FairMCEventHeader * fMCHeader
Definition: PairAnalysisEvent.h:68
CbmTrdTrack.h
PairAnalysisTrack::SetLabel
void SetLabel(Int_t lbl)
Definition: PairAnalysisTrack.h:62
CbmStsTrack
Definition: CbmStsTrack.h:37
PairAnalysisEvent::fMvdHitMatches
TClonesArray * fMvdHitMatches
Definition: PairAnalysisEvent.h:98
PairAnalysisEvent::fMuchHitMatches
TClonesArray * fMuchHitMatches
Definition: PairAnalysisEvent.h:101
ECbmModuleId::kSts
@ kSts
Silicon Tracking System.
CbmKFVertex.h
PairAnalysisEvent.h
CbmKFVertex
Definition: CbmKFVertex.h:6
PairAnalysisEvent::Clear
virtual void Clear(Option_t *opt="C")
Definition: PairAnalysisEvent.cxx:574
PairAnalysisEvent::fRichRings
TClonesArray * fRichRings
Definition: PairAnalysisEvent.h:86