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 "PndMCTrack.h"
21 
22 #include "PndGemHit.h"
23 #include "PndGemTrackFinder.h"
24 #include "PndGemDigiPar.h"
25 
26 #include <vector>
27 
29  Int_t stationIndex[2];
30  Int_t sensorNumber[2];
31  Int_t hitIndex[2];
32  Double_t trackMom;
33  Double_t trackPhi;
34  Double_t trackTheta;
36 };
37 
39 
40  public:
43 
45  virtual ~PndGemTrackFinderOnHitsTB();
46 
52  virtual Int_t DoFind(TClonesArray *hitArray, TClonesArray *trackArray, TClonesArray *trackCandArray);
53 
55  void SetVerbose(const Int_t &verbose) { fVerbose = verbose; };
56  void SetPrimary(const Int_t &primary) { fPrimary = primary; };
57  void SetSigmaMult(Double_t tempd) { fSigmaMult = tempd; };
58 
59  private:
60  PndGemDigiPar *fDigiPar;
61 
63  TClonesArray *fMCTrackArray;
64  TClonesArray *fMCPointArray;
65 
67  // PndGemStructure *fGemStructure;
68 
75  Int_t fVerbose;
76 
81  Int_t fPrimary;
82 
83  Double_t fSigmaMult;
84 
85  // Parameters, taken from the digiPar file
86  Double_t fParThetaA;
87  Double_t fParThetaB;
88 
89  Double_t fParTheta0;
90  Double_t fParTheta1;
91  Double_t fParTheta2;
92  Double_t fParTheta3;
93 
94  Double_t fParRadPhi0;
95  Double_t fParRadPhi2;
96 
97  Double_t fParMat0[3];
98  Double_t fParMat1[3];
99 
100  TStopwatch fTimer;
101 
102  Double_t fPrepTime;
103  Double_t fSegmTime;
104  Double_t fMatchTime;
105  Double_t fRemoveTime;
106  Double_t fWriteTime;
107  Double_t fAllTime;
108 
110  Int_t fNofEvents; // event counter
111  Int_t fMCAvailable;
112  Int_t fNofClHits;
113 
114  Int_t fNofExpectedTrackSegments;
115  Int_t fNofFoundTrackSegments;
116  std::vector<TrackSegmentTB> fTrackSegments;
117  Int_t FindTrackSegments(TClonesArray *hitArray, Int_t stat1Id, Int_t stat2Id);
118  Int_t MatchTrackSegments();
119  void RemoveCloneTracks(Int_t nofRecoTracks);
120  Int_t CreateTracks(TClonesArray *hitArray, TClonesArray *trackArray, TClonesArray *trackCandArray, Int_t nofRecoTracks);
121 
122  void PrintTrackSegments(TClonesArray *hitArray);
123  void PrintTracks(TClonesArray *hitArray, Int_t nofRecoTracks);
124  void PrintMCTrackSegments(TClonesArray *hitArray);
125  void PrintMCTracks(TClonesArray *hitArray, Int_t nofRecoTracks);
126 
128  virtual void SetParContainers();
129 
131  virtual void Init();
132 
133  virtual void Finish();
134 
135  ClassDef(PndGemTrackFinderOnHitsTB, 1);
136 };
137 
138 #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)