18#include "FairRootManager.h"
19#include "FairRunAna.h"
20#include "FairRuntimeDb.h"
23#include "TClonesArray.h"
33using std::setprecision;
38 : FairTask(
"STSFindTracks")
62 : FairTask(name, iVerbose)
114 LOG(info) <<
"+ " << setw(20) << GetName() <<
": Event " << setw(6) << right <<
fNEvents <<
", real time " << fixed
115 << setprecision(6) <<
fTimer.RealTime() <<
" s, hits: " <<
fStsHits->GetEntriesFast()
116 <<
", tracks: " << nTracks;
131 FairRunAna* run = FairRunAna::Instance();
132 if (!run) LOG(fatal) << GetName() <<
" SetParContainers: No analysis run";
134 FairRuntimeDb* db = run->GetRuntimeDb();
135 if (!db) LOG(fatal) << GetName() <<
" SetParContainers: No runtime database";
138 fGeoPar = (CbmGeoStsPar*) db->getContainer(
"CbmGeoStsPar");
141 fDigiPar = (CbmStsDigiPar*) db->getContainer(
"CbmStsDigiPar");
150 LOG(info) <<
"---------------------------------------------";
151 LOG(info) <<
" Initialising " << GetName() <<
" ....";
154 FairRootManager* ioman = FairRootManager::Instance();
155 if (!ioman) LOG(fatal) << GetName() <<
" Init: No FairRootManager";
156 fStsHits = (TClonesArray*) ioman->GetObject(
"StsHit");
158 LOG(error) << GetName() <<
"::Init: No StsHit array!";
162 fMvdHits = (TClonesArray*) ioman->GetObject(
"MvdHit");
164 LOG(warning) << GetName() <<
" Init: No MVD hits available!";
165 LOG(warning) << GetName() <<
" Init: Running track finding without MVD hits";
170 fTracks =
new TClonesArray(
"CbmStsTrack", 100);
171 ioman->Register(
"StsTrack",
"STS",
fTracks, IsOutputBranchPersistent(
"StsTrack"));
188 LOG(error) << GetName() <<
"::Init: No track finder selected!";
191 LOG(info) << GetName() <<
" Track finder engine " <<
fFinder->GetName() <<
" selected";
203 LOG(info) << GetName() <<
" intialised ";
204 LOG(info) <<
"---------------------------------------------";
218 LOG(info) <<
"============================================================";
219 LOG(info) <<
"===== " << GetName() <<
": Run summary ";
220 LOG(info) <<
"===== ";
221 LOG(info) <<
"===== Good events : " << setw(6) <<
fNEvents;
222 LOG(info) <<
"===== Failed events : " << setw(6) <<
fNEventsFailed;
223 LOG(info) <<
"===== Average time : " << setprecision(4) << setw(8) << right <<
fTime / Double_t(
fNEvents) <<
" s";
224 LOG(info) <<
"===== ";
225 LOG(info) <<
"===== Found tracks per event : " << fixed << setprecision(0) <<
fNTracks / Double_t(
fNEvents);
226 LOG(info) <<
"============================================================";
ClassImp(CbmConverterManager)
Data class for a reconstructed hit in the STS.
Data class for STS tracks.
virtual void SetParContainers()
CbmStsTrackFinder * fFinder
virtual void Exec(Option_t *opt)
virtual InitStatus Init()
virtual ~CbmStsFindTracks()
MC-based track finding in the STS.
void SetMvdHitArray(TClonesArray *hits)
void SetTrackArray(TClonesArray *tracks)
void SetField(FairField *field)
void FillEloss()
Calculate the median energy loss for the tracks and fill the respective data members.
void SetVerbose(Int_t verbose)
void SetStsHitArray(TClonesArray *hits)