CbmRoot
Loading...
Searching...
No Matches
CbmLitFindGlobalTracks.h
Go to the documentation of this file.
1/* Copyright (C) 2009-2021 GSI/JINR-LIT, Darmstadt/Dubna
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Andrey Lebedev [committer], Volker Friese */
4
21#ifndef CBMLITFINDGLOBALTRACKS_H_
22#define CBMLITFINDGLOBALTRACKS_H_
23
24#include "CbmVertex.h"
26#include "base/CbmLitPtrTypes.h"
27#include "base/CbmLitTypes.h"
28#include "data/CbmLitHit.h"
29
30#include "FairTask.h"
31
32#include "TStopwatch.h"
33
34#include <string>
35#include <vector>
36
37class TClonesArray;
38class CbmEvent;
39
40using std::string;
41using std::vector;
42
43class CbmLitFindGlobalTracks : public FairTask {
44public:
49
54
58 virtual InitStatus Init();
59
63 virtual void Exec(Option_t* opt);
64
68 virtual void Finish();
69
73 virtual void SetParContainers();
74
75 /* Setters */
76 void SetTrackingType(const string& trackingType) { fTrackingType = trackingType; }
77 void SetMergerType(const string& mergerType) { fMergerType = mergerType; }
78 void SetFitterType(const string& fitterType) { fFitterType = fitterType; }
79
80private:
85
89 void ConvertInputData(CbmEvent* event);
90
94 void ConvertOutputData(CbmEvent* event);
95
96 /*
97 * \brief Calculate length of the global track
98 */
99 void CalculateLength(CbmEvent* event);
100
101 /*
102 * \brief Calculate and set the parameter set in the primary vertex of the global track
103 */
105
109 void ClearArrays();
110
114 void ReadInputBranches();
115
120
125
130
135
137
138 // Pointers to data arrays
139 // Input
140 TClonesArray* fMvdHits; // CbmMvdHit array
141 TClonesArray* fStsTracks; // CbmStsTrack array
142 TClonesArray* fStsHits; // CbmStsHit
143 TClonesArray* fMuchPixelHits; // CbmMuchPixelHit array
144 TClonesArray* fTrdHits; // CbmTrdHit array
145 TClonesArray* fTofHits; // CbmTofHit array
146 TClonesArray* fEvents;
147 // Output
148 TClonesArray* fMuchTracks; // output CbmMuchTrack array
149 TClonesArray* fTrdTracks; // output CbmTrdTrack array
150 TClonesArray* fTofTracks; // output CbmTofTrack array
151 TClonesArray* fGlobalTracks; //output CbmGlobalTrack array
152
153 CbmVertex* fPrimVertex; // Pointer to the primary vertex
154
155 // LIT data arrays
157 HitPtrVector fLitHits; // MUCH+TRD hits
159 TrackPtrVector fLitOutputTracks; // output Lit tracks
160 TofTrackPtrVector fLitOutputTofTracks; // output Lit TOF tracks
161
162 // Tools
163 TrackFinderPtr fFinder; // track finder
164 HitToTrackMergerPtr fMerger; // hit-to-track merger
165 TrackFitterPtr fFitter; // track fitter
166 // track propagator
167 // Used to propagate STS track to the last STS station!!!
168 // Since this cannot be done in parallel mode!!!
170
171 // Settings
172 // Tracking method to be used
173 // "branch" - branching method
174 // "nn" - nearest neighbor method
176
177 // Merger method to be used
178 // "nearest_hit" - assigns nearest hit to the track
180
181 // Track fitter to be used for the final track fit
182 // "lit_kalman" - forward Kalman track fit with LIT propagation and TGeo navigation
184
185 // stopwatches
186 TStopwatch fTrackingWatch; // stopwatch for tracking
187 TStopwatch fMergerWatch; // stopwatch for merger
188
189 // counters
190 Long64_t fNofTs = 0; // timeslice counter
191 Long64_t fNofEvents = 0; // event counter
192 Long64_t fNofStsTracks = 0; // STS tracks
193 Long64_t fNofMuchHits = 0; // MUCH hits
194 Long64_t fNofTrdHits = 0; // TRD hits
195 Long64_t fNofTofHits = 0; // TOF hits
196 Long64_t fNofGlbTracks = 0; // Global tracks
197 Double_t fTime = 0.; // Processing time
198 Long64_t fEventNo; // event counter (old)
199
202
204};
205
206#endif /* CBMLITFINDGLOBALTRACKS_H_ */
Helper class to access detector presence.
Base data class for hits.
Typedefs for algorithm interfaces.
Typedefs for data structures used in littrack.
vector< CbmLitTofTrack * > TofTrackPtrVector
Definition CbmLitTypes.h:37
boost::shared_ptr< CbmLitTrackFitter > TrackFitterPtr
boost::shared_ptr< CbmLitTrackFinder > TrackFinderPtr
boost::shared_ptr< CbmLitTrackPropagator > TrackPropagatorPtr
boost::shared_ptr< CbmLitHitToTrackMerger > HitToTrackMergerPtr
std::vector< CbmTofTrack * > TrackPtrVector
Definition CbmTofTypes.h:26
std::vector< CbmTofHit * > HitPtrVector
Definition CbmTofTypes.h:20
Class characterising one event by a collection of links (indices) to data objects,...
Definition CbmEvent.h:34
Helper class to access detector presence.
virtual void Finish()
Inherited from FairTask.
void ConvertOutputData(CbmEvent *event)
Convert output data LIT data classes to CBMROOT data classes.
void SetFitterType(const string &fitterType)
void SetMergerType(const string &mergerType)
TofTrackPtrVector fLitOutputTofTracks
CbmLitFindGlobalTracks & operator=(const CbmLitFindGlobalTracks &)
void ConvertInputData(CbmEvent *event)
Convert input data from CBMROOT data classes to LIT data classes.
void RegisterOutputBranches()
Register output data branches (tracks) to the tree.
virtual ~CbmLitFindGlobalTracks()
Destructor.
CbmLitFindGlobalTracks(const CbmLitFindGlobalTracks &)
void ClearArrays()
Clear arrays and frees the memory.
void PrintStopwatchStatistics()
Print output stopwatch statistics for track-finder and hit-to-track merger.
void CalculateLength(CbmEvent *event)
void InitTrackReconstruction()
Create and initialize track finder and track merger objects.
void RunTrackReconstruction()
Run the track reconstruction.
void SelectTracksForTofMerging()
Select tracks for further merging with TOF.
virtual void SetParContainers()
Inherited from FairTask.
virtual void Exec(Option_t *opt)
Inherited from FairTask.
void ReadInputBranches()
Accesses input data branches (hits, tracks, events) from the tree.
virtual InitStatus Init()
Inherited from FairTask.
void CalculatePrimaryVertexParameters(CbmEvent *event)
ClassDef(CbmLitFindGlobalTracks, 1)
void SetTrackingType(const string &trackingType)