CbmRoot
|
Source class for reading from files resulting from online processing (containing raw Digis) More...
#include <CbmSourceDigiTimeslice.h>
Public Member Functions | |
CbmSourceDigiTimeslice (const char *fileName="") | |
Constructor. | |
CbmSourceDigiTimeslice (const CbmSourceDigiTimeslice &)=delete | |
Copy constructor - not implemented. | |
CbmSourceDigiTimeslice & | operator= (const CbmSourceDigiTimeslice &)=delete |
Assignment operator - not implemented. | |
virtual | ~CbmSourceDigiTimeslice () |
Destructor. | |
virtual void | Close () |
Close source after end of run. | |
virtual Source_Type | GetSourceType () |
Source type. | |
virtual Bool_t | Init () |
Initialisation. | |
virtual Bool_t | InitUnpackers () |
Initialise unpackers (forced by base class, not relevant here) | |
Int_t | ReadEvent (UInt_t=0) |
Read one time slice from file. | |
virtual Bool_t | ReInitUnpackers () |
Re-Initialise unpackers (forced by base class, not relevant here) | |
virtual void | Reset () |
Reset (forced by base class, not relevant here) | |
virtual void | SetParUnpackers () |
Set unpacker parameters (forced by base class, not relevant here) | |
void | SetSourceType (Source_Type type) |
Set the Source Type. | |
Bool_t | SpecifyRunId () |
Set Run ID (forced by base class, not relevant here) | |
Private Member Functions | |
template<typename TVecobj > | |
Bool_t | RegisterVector (FairRootManager *ioman, std::vector< TVecobj > *&vec) |
template<typename TVecobj > | |
std::enable_if< std::is_member_function_pointer< decltype(&TVecobj::GetTime)>::value, void >::type | Timesort (std::vector< TVecobj > *vec=nullptr) |
Private Attributes | |
std::string | fInputFileName = {} |
std::unique_ptr< cbm::algo::RecoResultsInputArchive > | fArchive = nullptr |
std::vector< CbmBmonDigi > * | fBmonDigis = nullptr |
std::vector< CbmStsDigi > * | fStsDigis = nullptr |
std::vector< CbmMuchDigi > * | fMuchDigis = nullptr |
std::vector< CbmTrdDigi > * | fTrdDigis = nullptr |
std::vector< CbmTofDigi > * | fTofDigis = nullptr |
std::vector< CbmRichDigi > * | fRichDigis = nullptr |
Source_Type | fSourceType = Source_Type::kONLINE |
type of source that is currently used | |
CbmTimeSlice * | fTimeslice = nullptr |
CbmTsEventHeader * | fTsEventHeader = nullptr |
size_t | fNumTs = 0 |
Source class for reading from files resulting from online processing (containing raw Digis)
The online process creates std::vector of Digis for each detector per timeslice. These are saved to file using the BOOST streamer. This class allows to read such files and get the Digis into the ROOT tree for offline analysis. It creates a branches containing the Digis vector with names following established conventions; one tree entry corresponds to one timelice.
Definition at line 32 of file CbmSourceDigiTimeslice.h.
CbmSourceDigiTimeslice::CbmSourceDigiTimeslice | ( | const char * | fileName = "" | ) |
Constructor.
fileName | Name of (single) input file. |
More input files can be added by the method AddInputFile.
Definition at line 18 of file CbmSourceDigiTimeslice.cxx.
|
delete |
Copy constructor - not implemented.
|
inlinevirtual |
Destructor.
Definition at line 49 of file CbmSourceDigiTimeslice.h.
|
virtual |
Close source after end of run.
Definition at line 23 of file CbmSourceDigiTimeslice.cxx.
References fBmonDigis, fMuchDigis, fNumTs, fRichDigis, fStsDigis, fTofDigis, and fTrdDigis.
|
inlinevirtual |
Source type.
Definition at line 57 of file CbmSourceDigiTimeslice.h.
References fSourceType.
|
virtual |
Initialisation.
Definition at line 52 of file CbmSourceDigiTimeslice.cxx.
References fArchive, fBmonDigis, fInputFileName, fMuchDigis, fRichDigis, fStsDigis, fTimeslice, fTofDigis, fTrdDigis, fTsEventHeader, and RegisterVector().
|
inlinevirtual |
Initialise unpackers (forced by base class, not relevant here)
Definition at line 63 of file CbmSourceDigiTimeslice.h.
|
delete |
Assignment operator - not implemented.
Int_t CbmSourceDigiTimeslice::ReadEvent | ( | UInt_t | = 0 | ) |
Read one time slice from file.
FIXME: Add PSD and FSD to the output of RawDigis in algo/global and reco/app
Definition at line 126 of file CbmSourceDigiTimeslice.cxx.
References fArchive, fBmonDigis, fMuchDigis, fNumTs, fRichDigis, fStsDigis, fTimeslice, fTofDigis, fTrdDigis, fTsEventHeader, CbmTimeSlice::SetStartTime(), CbmTsEventHeader::SetTsIndex(), CbmTsEventHeader::SetTsStartTime(), and Timesort().
|
private |
Definition at line 39 of file CbmSourceDigiTimeslice.cxx.
Referenced by Init().
|
inlinevirtual |
Re-Initialise unpackers (forced by base class, not relevant here)
Definition at line 69 of file CbmSourceDigiTimeslice.h.
|
inlinevirtual |
Reset (forced by base class, not relevant here)
Definition at line 72 of file CbmSourceDigiTimeslice.h.
|
inlinevirtual |
Set unpacker parameters (forced by base class, not relevant here)
Definition at line 75 of file CbmSourceDigiTimeslice.h.
|
inline |
Set the Source Type.
type | Source type |
Definition at line 80 of file CbmSourceDigiTimeslice.h.
References fSourceType.
|
inline |
Set Run ID (forced by base class, not relevant here)
Definition at line 83 of file CbmSourceDigiTimeslice.h.
|
inlineprivate |
Definition at line 124 of file CbmSourceDigiTimeslice.h.
Referenced by ReadEvent().
|
private |
Input archive
Definition at line 91 of file CbmSourceDigiTimeslice.h.
Referenced by Init(), and ReadEvent().
|
private |
Branch vectors of Digis
Definition at line 94 of file CbmSourceDigiTimeslice.h.
Referenced by Close(), Init(), and ReadEvent().
|
private |
|
private |
Definition at line 96 of file CbmSourceDigiTimeslice.h.
Referenced by Close(), Init(), and ReadEvent().
|
private |
Time-slice counter
Definition at line 117 of file CbmSourceDigiTimeslice.h.
Referenced by Close(), and ReadEvent().
|
private |
Definition at line 99 of file CbmSourceDigiTimeslice.h.
Referenced by Close(), Init(), and ReadEvent().
|
private |
type of source that is currently used
Definition at line 105 of file CbmSourceDigiTimeslice.h.
Referenced by GetSourceType(), and SetSourceType().
|
private |
Definition at line 95 of file CbmSourceDigiTimeslice.h.
Referenced by Close(), Init(), and ReadEvent().
|
private |
Time-slice header (old version)
Definition at line 110 of file CbmSourceDigiTimeslice.h.
Referenced by Init(), and ReadEvent().
|
private |
Definition at line 98 of file CbmSourceDigiTimeslice.h.
Referenced by Close(), Init(), and ReadEvent().
|
private |
Definition at line 97 of file CbmSourceDigiTimeslice.h.
Referenced by Close(), Init(), and ReadEvent().
|
private |
Time-slice event header
Definition at line 113 of file CbmSourceDigiTimeslice.h.
Referenced by Init(), and ReadEvent().