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 "FairMCPoint.h"
19 #include "PndMCTrack.h"
20 
21 #include "PndGemHit.h"
22 #include "PndGemTrackFinder.h"
23 #include "PndGemDigiPar.h"
24 
25 #include <vector>
26 
27 struct TrackSegment {
28  Int_t stationIndex[2];
29  Int_t hitIndex[4];
30  Double_t trackMom;
31  Double_t trackPhi;
32  Double_t trackTheta;
34 };
35 
37 
38  public:
41 
43  virtual ~PndGemTrackFinderOnHits();
44 
50  virtual Int_t DoFind(TClonesArray *hitArray, TClonesArray *trackArray, TClonesArray *trackCandArray);
51 
53  void SetVerbose(const Int_t &verbose) { fVerbose = verbose; };
54  void SetPrimary(const Int_t &primary) { fPrimary = primary; };
55  void SetSigmaMult(Double_t tempd) { fSigmaMult = tempd; };
56 
57  private:
58  PndGemDigiPar *fDigiPar;
59 
61  TClonesArray *fMCTrackArray;
62  TClonesArray *fMCPointArray;
63 
65  // PndGemStructure *fGemStructure;
66 
73  Int_t fVerbose;
74 
79  Int_t fPrimary;
80 
81  Double_t fSigmaMult;
82 
83  // Parameters, taken from the digiPar file
84  Double_t fParThetaA;
85  Double_t fParThetaB;
86 
87  Double_t fParTheta0;
88  Double_t fParTheta1;
89  Double_t fParTheta2;
90  Double_t fParTheta3;
91 
92  Double_t fParRadPhi0;
93  Double_t fParRadPhi2;
94 
95  Double_t fParMat0[3];
96  Double_t fParMat1[3];
97 
99  Int_t fNofEvents; // event counter
100  Int_t fMCAvailable;
101  Int_t fNofClHits;
102 
103  Int_t fNofExpectedTrackSegments;
104  Int_t fNofFoundTrackSegments;
105  std::vector<TrackSegment> fTrackSegments;
106  Int_t FindTrackSegments(TClonesArray *hitArray, Int_t stat1Id, Int_t stat2Id);
107  Int_t MatchTrackSegments();
108  void RemoveCloneTracks(Int_t nofRecoTracks);
109  Int_t CreateTracks(TClonesArray *hitArray, TClonesArray *trackArray, TClonesArray *trackCandArray, Int_t nofRecoTracks);
110 
111  void PrintTrackSegments(TClonesArray *hitArray);
112  void PrintTracks(TClonesArray *hitArray, Int_t nofRecoTracks);
113  void PrintMCTrackSegments(TClonesArray *hitArray);
114  void PrintMCTracks(TClonesArray *hitArray, Int_t nofRecoTracks);
115 
117  virtual void SetParContainers();
118 
120  virtual void Init();
121 
122  ClassDef(PndGemTrackFinderOnHits, 1);
123 };
124 
125 #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)