CbmRoot
Loading...
Searching...
No Matches
CbmTaskMakeRecoEvents.h
Go to the documentation of this file.
1/* Copyright (C) 2021 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Volker Friese [committer] */
4
5
6#ifndef CBMTASKMAKERECOEVENTS_H
7#define CBMTASKMAKERECOEVENTS_H 1
8
9
10#include "CbmDefs.h"
11#include "CbmDigiEvent.h"
12#include "CbmEvent.h"
13
14#include <FairTask.h>
15
16#include <gsl/span>
17#include <vector>
18
19class TClonesArray;
20
21
40class CbmTaskMakeRecoEvents : public FairTask {
41
42
43 public:
46
47
50
51
53 virtual ~CbmTaskMakeRecoEvents();
54
55
57 virtual void Exec(Option_t* opt);
58
59
61 virtual void Finish();
62
63
66
67
68 private: // methods
70 virtual InitStatus Init();
71
72
82 template<typename Digi>
83 void FillTree(gsl::span<const Digi> inVec, std::vector<Digi>* outVec, CbmEvent* event, ECbmDataType digiType)
84 {
85 size_t startIndex = outVec->size();
86 size_t stopIndex = startIndex + inVec.size();
87 outVec->insert(outVec->end(), inVec.begin(), inVec.end());
88 for (size_t index = startIndex; index < stopIndex; index++)
89 event->AddData(digiType, index);
90 }
91
92
93 private: // members
94 const std::vector<CbmDigiEvent>* fDigiEvents = nullptr;
95 TClonesArray* fRecoEvents = nullptr;
96 std::vector<CbmBmonDigi>* fBmonDigis = nullptr;
97 std::vector<CbmStsDigi>* fStsDigis = nullptr;
98 std::vector<CbmRichDigi>* fRichDigis = nullptr;
99 std::vector<CbmMuchDigi>* fMuchDigis = nullptr;
100 std::vector<CbmTrdDigi>* fTrdDigis = nullptr;
101 std::vector<CbmTofDigi>* fTofDigis = nullptr;
102 std::vector<CbmPsdDigi>* fPsdDigis = nullptr;
103 double fTimeTot = 0.;
104 size_t fNumTs = 0;
105 size_t fNumEvents = 0;
106
108};
109
110#endif /* CBMTASKMAKERECOEVENTS_H */
ECbmDataType
Definition CbmDefs.h:90
Class characterising one event by a collection of links (indices) to data objects,...
Definition CbmEvent.h:34
void AddData(ECbmDataType type, uint32_t index)
Definition CbmEvent.cxx:33
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.
CbmTaskMakeRecoEvents(const CbmTaskMakeRecoEvents &)=delete
Copy constructor (disabled)
virtual void Exec(Option_t *opt)
Task execution.
std::vector< CbmRichDigi > * fRichDigis
std::vector< CbmPsdDigi > * fPsdDigis
const std::vector< CbmDigiEvent > * fDigiEvents
virtual ~CbmTaskMakeRecoEvents()
Destructor.
double fTimeTot
Execution time.
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 & operator=(const CbmTaskMakeRecoEvents &)=delete
Assignment operator (disabled)
virtual void Finish()
Finish timeslice.
virtual InitStatus Init()
Task initialisation.
ClassDef(CbmTaskMakeRecoEvents, 1)
std::vector< CbmStsDigi > * fStsDigis