11#include <FairRootManager.h>
14#include <TClonesArray.h>
15#include <TStopwatch.h>
97 logOut << setw(20) << left << GetName() <<
" [";
98 logOut << fixed << setw(8) << setprecision(1) << right << timer.RealTime() * 1000. <<
" ms] ";
103 LOG(info) << logOut.str();
117 LOG(info) <<
"=====================================";
118 LOG(info) << GetName() <<
": Run summary";
119 LOG(info) <<
"Timeslices : " <<
fNumTs;
121 LOG(info) <<
"Time / TS : " << fixed << setprecision(2) << 1000. *
fTimeTot / double(
fNumTs) <<
" ms";
122 LOG(info) <<
"=====================================";
131 LOG(info) <<
"==================================================";
132 LOG(info) << GetName() <<
": Initialising ";
135 FairRootManager* frm = FairRootManager::Instance();
139 fDigiEvents = frm->InitObjectAs<
const std::vector<CbmDigiEvent>*>(
"DigiEvent");
143 LOG(info) << GetName() <<
": Found branch DigiEvent";
146 if (frm->GetObject(
"CbmEvent")) {
147 LOG(error) << GetName() <<
": Found branch CbmEvent! Aborting...";
151 frm->Register(
"CbmEvent",
"Reco events",
fRecoEvents, IsOutputBranchPersistent(
"CbmEvent"));
152 if (frm->GetObject(
"StsDigi")) {
153 LOG(error) << GetName() <<
": Found branch StsDigi! Aborting...";
159 frm->RegisterAny(
"BmonDigi",
fBmonDigis, kFALSE);
163 frm->RegisterAny(
"MvdDigi",
fMvdDigis, kFALSE);
167 frm->RegisterAny(
"StsDigi",
fStsDigis, kFALSE);
171 frm->RegisterAny(
"RichDigi",
fRichDigis, kFALSE);
175 frm->RegisterAny(
"MuchDigi",
fMuchDigis, kFALSE);
179 frm->RegisterAny(
"TrdDigi",
fTrdDigis, kFALSE);
183 frm->RegisterAny(
"TofDigi",
fTofDigis, kFALSE);
187 frm->RegisterAny(
"FsdDigi",
fFsdDigis, kFALSE);
192 fRecoEvents =
dynamic_cast<TClonesArray*
>(frm->GetObject(
"CbmEvent"));
194 LOG(error) << GetName() <<
": Neither DigiEvent nor CbmEvent branch found! Aborting...";
199 LOG(info) <<
"==================================================";
ClassImp(CbmConverterManager)
Class characterising one event by a collection of links (indices) to data objects,...
Task class for interfacing storable raw events in the CbmDigiEvent format to the current offline reco...
std::vector< CbmTrdDigi > * fTrdDigis
std::vector< CbmBmonDigi > * fBmonDigis
size_t fNumTs
Number of processed timeslices.
size_t fNumEvents
Number of events.
std::vector< CbmMvdDigi > * fMvdDigis
virtual void Exec(Option_t *opt)
Task execution.
std::vector< CbmRichDigi > * fRichDigis
const std::vector< CbmDigiEvent > * fDigiEvents
virtual ~CbmTaskMakeRecoEvents()
Destructor.
double fTimeTot
Execution time.
std::vector< CbmFsdDigi > * fFsdDigis
std::vector< CbmTofDigi > * fTofDigis
std::vector< CbmMuchDigi > * fMuchDigis
void FillTree(gsl::span< const Digi > inVec, std::vector< Digi > *outVec, CbmEvent *event, ECbmDataType digiType)
Fill the tree structure with digis from CbmDigiEvent.
CbmTaskMakeRecoEvents()
Constructor.
virtual void Finish()
Finish timeslice.
virtual InitStatus Init()
Task initialisation.
std::vector< CbmStsDigi > * fStsDigis
void FillTreeMvd(gsl::span< const CbmMvdRawDigi > inVec, std::vector< CbmMvdDigi > *outVec, CbmEvent *event)
Fill the tree with MVD digis.
TClonesArray * fRecoEvents