EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CbmRichReconstruction.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file CbmRichReconstruction.h
1 
10 #ifndef CBM_RICH_RECONSTRUCTION
11 #define CBM_RICH_RECONSTRUCTION
12 
13 #include "FairTask.h"
14 
15 #include <string>
16 
17 class TClonesArray;
18 class CbmRichRingFinder;
23 
24 using std::string;
25 
35 {
36 public:
41 
45  virtual ~CbmRichReconstruction();
46 
50  void SetParContainers();
51 
55  virtual InitStatus Init();
56 
60  virtual void Exec(
61  Option_t* opt);
62 
66  virtual void Finish();
67 
69  void SetRunProjection(bool b){fRunProjection = b;}
70  void SetRunFinder(bool b){fRunFinder = b;}
71  void SetRunFitter(bool b){fRunFitter = b;}
73 
74  void SetExtrapolationName(const string& n){fExtrapolationName = n;}
75  void SetProjectionName(const string& n){fProjectionName = n;}
76  void SetFinderName(const string& n){fFinderName = n;}
77  void SetFitterName(const string& n){fFitterName = n;}
78  void SetTrackAssignName(const string& n){fTrackAssignName = n;}
79 
85 
90  void SetMinNofStsHits(Int_t minNofStsHits){fMinNofStsHits = minNofStsHits;}
91 
92 private:
93  TClonesArray* fRichHits;
94  TClonesArray* fRichRings;
95  TClonesArray* fRichProjections;
96  TClonesArray* fRichTrackParamZ;
97  TClonesArray* fGlobalTracks;
98 
99  CbmRichRingFinder* fRingFinder; // pointer to ring finder algorithm
100  CbmRichRingFitterBase* fRingFitter; // pointer to ring fitting algorithm
101  CbmRichTrackExtrapolationBase* fTrackExtrapolation; // pointer to track extrapolation algorithm
102  CbmRichProjectionProducerBase* fProjectionProducer; // pointer to projection producer
103  CbmRichRingTrackAssignBase* fRingTrackAssign; // pointer to track assignment algorithm
104 
105  // What do you wan to run.
111 
112  // Algorithm names for each step of reconstruction.
113  string fExtrapolationName; // name of extrapolation algorithm
114  string fProjectionName; // name of track projection algorithm
115  string fFinderName; // name of ring finder algorithm
116  string fFitterName; // name of ring fitter algorithm
117  string fTrackAssignName; // name of track-ring matching algorithm
118 
119  Double_t fZTrackExtrapolation; // Z coordinate to which one wants to extrapolate STS tracks
120  Int_t fMinNofStsHits; // minimum number of Sts hits for extrapolation to RICH detector
121 
125  void InitExtrapolation();
126 
130  void InitProjection();
131 
135  void InitFinder();
136 
140  void InitFitter();
141 
145  void InitTrackAssign();
146 
150  void RunExtrapolation();
151 
155  void RunProjection();
156 
160  void RunFinder();
161 
165  void RunFitter();
166 
170  void RunTrackAssign();
171 
176 
181 
183 };
184 
185 #endif