CbmRoot
Loading...
Searching...
No Matches
CbmRichReconstruction.h
Go to the documentation of this file.
1/* Copyright (C) 2012-2021 UGiessen/JINR-LIT, Giessen/Dubna
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Semen Lebedev [committer] */
4
14#ifndef CBM_RICH_RECONSTRUCTION
15#define CBM_RICH_RECONSTRUCTION
16
17#include <FairTask.h>
18
19#include <string>
20
21class TClonesArray;
27class CbmEvent;
28
29using std::string;
30
39class CbmRichReconstruction : public FairTask {
40 public:
45
50
51
55 virtual InitStatus Init();
56
60 virtual void Exec(Option_t* opt);
61
65 virtual void Finish();
66
68 void SetRunProjection(bool b) { fRunProjection = b; }
69 void SetRunFinder(bool b) { fRunFinder = b; }
70 void SetRunFitter(bool b) { fRunFitter = b; }
71 void SetRunTrackAssign(bool b) { fRunTrackAssign = b; }
72
73 void SetExtrapolationName(const string& n) { fExtrapolationName = n; }
74 void SetProjectionName(const string& n) { fProjectionName = n; }
75 void SetFinderName(const string& n) { fFinderName = n; }
76 void SetFitterName(const string& n) { fFitterName = n; }
77 void SetTrackAssignName(const string& n) { fTrackAssignName = n; }
78
79 void SetUseHTAnnSelect(bool select) { fUseHTAnnSelect = select; }
80 void SetUseHTSubdivide(bool select) { fUseHTSubdivide = select; }
81
87
89 {
90 this->SetRunExtrapolation(false);
91 this->SetRunProjection(false);
92 this->SetRunTrackAssign(false);
93 this->SetUseHTAnnSelect(false);
94 this->SetUseHTSubdivide(false);
95 }
96
97 private:
98 TClonesArray* fRichHits = nullptr;
99 TClonesArray* fRichRings = nullptr;
100 TClonesArray* fRichProjections = nullptr;
101 TClonesArray* fRichTrackParamZ = nullptr;
102 TClonesArray* fGlobalTracks = nullptr;
103 TClonesArray* fCbmEvents = nullptr;
104
105 std::array<Double_t, 6> fCalcTime{0., 0., 0., 0., 0., 0.};
106
107 Int_t fNofTs = 0;
108 Int_t fNofEvents = 0;
109 Int_t fTotalNofHits = 0;
110 Int_t fTotalNofRings = 0;
113
114
115 // pointers to the algorithms
121
122 // What do you want to run.
123 bool fRunExtrapolation = true;
124 bool fRunProjection = true;
125 bool fRunFinder = true;
126 bool fRunFitter = true;
127 bool fRunTrackAssign = true;
128
129 // Run ring-candidate selection algorithm based on ANN
130 bool fUseHTAnnSelect = true;
131
132 // Subdivide the RICH plain at y=0 to run both parts in parallel
133 bool fUseHTSubdivide = true;
134
135 // Algorithm names for each step of reconstruction.
136 string fExtrapolationName = "littrack";
137 string fProjectionName = "analytical";
138 string fFinderName = "hough";
139 string fFitterName = "ellipse_tau";
140 string fTrackAssignName = "closest_distance";
141
142 // Z coordinate where STS tracks will be extrapolated.
143 // Initialized later using geometry.
144 Double_t fZTrackExtrapolation = -1; //260.
145
150
155
160
165
170
174 void ProcessData(CbmEvent* event);
175
179 void RunExtrapolation(CbmEvent* event);
180
184 void RunProjection(CbmEvent* event);
185
189 void RunFinder(CbmEvent* event);
190
194 void RunFitter(CbmEvent* event);
195
199 void RunTrackAssign(CbmEvent* event);
200
205
210
212};
213
214#endif
Class characterising one event by a collection of links (indices) to data objects,...
Definition CbmEvent.h:34
Base class for STS track projections onto the photodetector plane.
Main class for running event reconstruction in the RICH detector.
std::array< Double_t, 6 > fCalcTime
void SetProjectionName(const string &n)
void SetUseHTAnnSelect(bool select)
void SetFitterName(const string &n)
CbmRichReconstruction(const CbmRichReconstruction &)
Copy constructor.
void SetFinderName(const string &n)
CbmRichReconstruction & operator=(const CbmRichReconstruction &)
Assignment operator.
CbmRichRingTrackAssignBase * fRingTrackAssign
ClassDef(CbmRichReconstruction, 1)
void SetExtrapolationName(const string &n)
virtual ~CbmRichReconstruction()
Destructor.
void SetUseHTSubdivide(bool select)
virtual void Finish()
Inherited from FairTask.
CbmRichTrackExtrapolationBase * fTrackExtrapolation
virtual InitStatus Init()
Inherited from FairTask.
void SetZTrackExtrapolation(Double_t z)
Set Z coordinate where STS tracks will be extrapolated.
CbmRichReconstruction()
Default constructor.
void SetTrackAssignName(const string &n)
void ProcessData(CbmEvent *event)
virtual void Exec(Option_t *opt)
Inherited from FairTask.
CbmRichProjectionProducerBase * fProjectionProducer
Abstract base class for concrete Rich Ring fitting algorithms. Each derived class must implement the ...
Base class for RICH rings - STS tracks matching algorithms.