PandaRoot
PndGemTrackFinderOnHitsTB.h
Go to the documentation of this file.
1 // -------------------------------------------------------------------------
2 // ----- PndGemTrackFinderOnHitsTB header file -----
3 // ----- Created 02.06.2009 by R. Karabowicz -----
4 // -------------------------------------------------------------------------
5 
15 #ifndef PNDGEMTRACKFINDERONHITSTB_H
16 #define PNDGEMTRACKFINDERONHITSTB_H
17 
18 #include "TStopwatch.h"
19 
20 #include "FairMCPoint.h"
21 #include "PndMCTrack.h"
22 
23 #include "PndGemHit.h"
24 #include "PndGemTrackFinder.h"
25 #include "PndGemDigiPar.h"
26 
27 #include <vector>
28 
30  Int_t stationIndex[2];
31  Int_t sensorNumber[2];
32  Int_t hitIndex[2];
33  Double_t trackMom;
34  Double_t trackPhi;
35  Double_t trackTheta;
37 };
38 
40 
41  public:
44 
46  virtual ~PndGemTrackFinderOnHitsTB();
47 
53  virtual Int_t DoFind(TClonesArray *hitArray, TClonesArray *trackArray, TClonesArray *trackCandArray);
54 
56  void SetVerbose(const Int_t &verbose) { fVerbose = verbose; };
57  void SetPrimary(const Int_t &primary) { fPrimary = primary; };
58  void SetSigmaMult(Double_t tempd) { fSigmaMult = tempd; };
59 
60  private:
61  PndGemDigiPar *fDigiPar;
62 
64  TClonesArray *fMCTrackArray;
65  TClonesArray *fMCPointArray;
66 
68  // PndGemStructure *fGemStructure;
69 
76  Int_t fVerbose;
77 
82  Int_t fPrimary;
83 
84  Double_t fSigmaMult;
85 
86  // Parameters, taken from the digiPar file
87  Double_t fParThetaA;
88  Double_t fParThetaB;
89 
90  Double_t fParTheta0;
91  Double_t fParTheta1;
92  Double_t fParTheta2;
93  Double_t fParTheta3;
94 
95  Double_t fParRadPhi0;
96  Double_t fParRadPhi2;
97 
98  Double_t fParMat0[3];
99  Double_t fParMat1[3];
100 
101  TStopwatch fTimer;
102 
103  Double_t fPrepTime;
104  Double_t fSegmTime;
105  Double_t fMatchTime;
106  Double_t fRemoveTime;
107  Double_t fWriteTime;
108  Double_t fAllTime;
109 
111  Int_t fNofEvents; // event counter
112  Int_t fMCAvailable;
113  Int_t fNofClHits;
114 
115  Int_t fNofExpectedTrackSegments;
116  Int_t fNofFoundTrackSegments;
117  std::vector<TrackSegmentTB> fTrackSegments;
118  Int_t FindTrackSegments(TClonesArray *hitArray, Int_t stat1Id, Int_t stat2Id);
119  Int_t MatchTrackSegments();
120  void RemoveCloneTracks(Int_t nofRecoTracks);
121  Int_t CreateTracks(TClonesArray *hitArray, TClonesArray *trackArray, TClonesArray *trackCandArray, Int_t nofRecoTracks);
122 
123  void PrintTrackSegments(TClonesArray *hitArray);
124  void PrintTracks(TClonesArray *hitArray, Int_t nofRecoTracks);
125  void PrintMCTrackSegments(TClonesArray *hitArray);
126  void PrintMCTracks(TClonesArray *hitArray, Int_t nofRecoTracks);
127 
129  virtual void SetParContainers();
130 
132  virtual void Init();
133 
134  virtual void Finish();
135 
136  ClassDef(PndGemTrackFinderOnHitsTB, 1);
137 };
138 
139 #endif
Abstract base class for concrete Gem track finding algorithm.
Digitization Parameter Class for GEM part.
Definition: PndGemDigiPar.h:30
void SetPrimary(const Int_t &primary)
OnHits track finding algorithm.
void SetVerbose(const Int_t &verbose)