PandaRoot
PndGemTrackFinderOnHits.h
Go to the documentation of this file.
1 // -------------------------------------------------------------------------
2 // ----- PndGemTrackFinderOnHits header file -----
3 // ----- Created 02.06.2009 by R. Karabowicz -----
4 // -------------------------------------------------------------------------
5 
15 #ifndef PNDGEMTRACKFINDERONHITS_H
16 #define PNDGEMTRACKFINDERONHITS_H
17 
18 #include "PndMCTrack.h"
19 
20 #include "PndGemHit.h"
21 #include "PndGemTrackFinder.h"
22 #include "PndGemDigiPar.h"
23 
24 #include <vector>
25 
26 struct TrackSegment {
27  Int_t stationIndex[2];
28  Int_t hitIndex[4];
29  Double_t trackMom;
30  Double_t trackPhi;
31  Double_t trackTheta;
33 };
34 
36 
37  public:
40 
42  virtual ~PndGemTrackFinderOnHits();
43 
49  virtual Int_t DoFind(TClonesArray *hitArray, TClonesArray *trackArray, TClonesArray *trackCandArray);
50 
52  void SetVerbose(const Int_t &verbose) { fVerbose = verbose; };
53  void SetPrimary(const Int_t &primary) { fPrimary = primary; };
54  void SetSigmaMult(Double_t tempd) { fSigmaMult = tempd; };
55 
56  private:
57  PndGemDigiPar *fDigiPar;
58 
60  TClonesArray *fMCTrackArray;
61  TClonesArray *fMCPointArray;
62 
64  // PndGemStructure *fGemStructure;
65 
72  Int_t fVerbose;
73 
78  Int_t fPrimary;
79 
80  Double_t fSigmaMult;
81 
82  // Parameters, taken from the digiPar file
83  Double_t fParThetaA;
84  Double_t fParThetaB;
85 
86  Double_t fParTheta0;
87  Double_t fParTheta1;
88  Double_t fParTheta2;
89  Double_t fParTheta3;
90 
91  Double_t fParRadPhi0;
92  Double_t fParRadPhi2;
93 
94  Double_t fParMat0[3];
95  Double_t fParMat1[3];
96 
98  Int_t fNofEvents; // event counter
99  Int_t fMCAvailable;
100  Int_t fNofClHits;
101 
102  Int_t fNofExpectedTrackSegments;
103  Int_t fNofFoundTrackSegments;
104  std::vector<TrackSegment> fTrackSegments;
105  Int_t FindTrackSegments(TClonesArray *hitArray, Int_t stat1Id, Int_t stat2Id);
106  Int_t MatchTrackSegments();
107  void RemoveCloneTracks(Int_t nofRecoTracks);
108  Int_t CreateTracks(TClonesArray *hitArray, TClonesArray *trackArray, TClonesArray *trackCandArray, Int_t nofRecoTracks);
109 
110  void PrintTrackSegments(TClonesArray *hitArray);
111  void PrintTracks(TClonesArray *hitArray, Int_t nofRecoTracks);
112  void PrintMCTrackSegments(TClonesArray *hitArray);
113  void PrintMCTracks(TClonesArray *hitArray, Int_t nofRecoTracks);
114 
116  virtual void SetParContainers();
117 
119  virtual void Init();
120 
121  ClassDef(PndGemTrackFinderOnHits, 1);
122 };
123 
124 #endif
void SetPrimary(const Int_t &primary)
Abstract base class for concrete Gem track finding algorithm.
OnHits track finding algorithm.
Digitization Parameter Class for GEM part.
Definition: PndGemDigiPar.h:30
void SetSigmaMult(Double_t tempd)
void SetVerbose(const Int_t &verbose)