CbmRoot
|
#include <CbmMvdDigitizer.h>
Public Types | |
typedef std::pair< std::unique_ptr< CbmMvdDigi >, std::unique_ptr< CbmMatch > > | Data |
Short for data to be handled (pair of digi and match) More... | |
Public Member Functions | |
CbmMvdDigitizer () | |
CbmMvdDigitizer (const char *name, Int_t mode=0, Int_t iVerbose=1) | |
~CbmMvdDigitizer () | |
void | Exec (Option_t *opt) |
ECbmModuleId | GetSystemId () const |
Detector system ID. More... | |
void | SetPileUp (Int_t pileUp) |
void | SetDeltaEvents (Int_t deltaEvents) |
void | SetBgFileName (TString fileName) |
void | SetDeltaName (TString fileName) |
void | SetBgBufferSize (Int_t nBuffer) |
void | SetDeltaBufferSize (Int_t nBuffer) |
void | SetMisalignment (Float_t misalignment[3]) |
void | BuildEvent () |
void | ShowDebugHistograms () |
void | SetProduceNoise () |
virtual void | ResetArrays () |
Clear data arrays. More... | |
Bool_t | CheckOutput () |
Check the output for being time-sorted. More... | |
void | ClearOutput () |
Clear the output arrays. More... | |
ULong64_t | FillTimeSlice (CbmTimeSlice *timeSlice) |
Move data from the DaqBuffer into the current time slice. More... | |
ULong64_t | FillTimeSlice (CbmTimeSlice *timeSlice, Double_t fillTime) |
Move data from the DaqBuffer into the current time slice. More... | |
ULong64_t | GetDaqBufferSize () const |
Size of DAQ buffer @value Number of data in the DAQ buffer. More... | |
virtual ULong64_t | GetDaqBufferSize () const =0 |
Size of DAQ buffer @value Number of data in the DAQ buffer. More... | |
std::string | GetDaqBufferStatus () const |
Debug output of DAQ buffer status @value String with status of DAQ buffer. More... | |
virtual std::string | GetDaqBufferStatus () const =0 |
Status of DAQ buffer @value Status string of the DAQ buffer. More... | |
Double_t | GetDaqBufferTimeFirst () const |
Time stamp of first data in the DAQ buffer @value Time stamp of first data in the DAQ buffer. More... | |
virtual Double_t | GetDaqBufferTimeFirst () const =0 |
Time of first datum in DAQ buffer @value Time of first datum in DAQ buffer. More... | |
Double_t | GetDaqBufferTimeLast () const |
Time stamp of last data in the DAQ buffer @value Time stamp of last data in the DAQ buffer. More... | |
virtual Double_t | GetDaqBufferTimeLast () const =0 |
Time of last datum in DAQ buffer @value Time of last datum in DAQ buffer. More... | |
void | RegisterOutput () |
Register the output arrays. More... | |
void | SendData (CbmMvdDigi *digi, CbmMatch *match=nullptr) |
Send a digi and the corresponding match object to the DAQ. More... | |
virtual void | FillCustomData (Double_t, Bool_t=kTRUE) |
Fill custom data into time slice. More... | |
void | GetEventInfo () |
Get event information. More... | |
Double_t | GetEventTime () const |
Current event time @value Start time of current event [ns]. More... | |
void | SetCreateMatches (Bool_t choice=kTRUE) |
Set creation of links to MC. More... | |
void | SetEventMode (Bool_t choice=kTRUE) |
Set event-by-event mode. More... | |
void | SetProduceNoise (Bool_t choice=kTRUE) |
Set production of inter-event noise. More... | |
Protected Attributes | |
Bool_t | fEventMode |
Bool_t | fProduceNoise |
Flag for event-by-event mode. More... | |
Bool_t | fCreateMatches |
Flag for production of inter-event noise. More... | |
Int_t | fCurrentInput |
Flag for creation of links to MC. More... | |
Int_t | fCurrentEvent |
Number of current input. More... | |
Int_t | fCurrentMCEntry |
Number of current MC event. More... | |
Double_t | fCurrentEventTime |
Number of current MC entry. More... | |
Private Member Functions | |
virtual InitStatus | Init () |
virtual InitStatus | ReInit () |
virtual void | Finish () |
void | Register () |
void | GetMvdGeometry () |
void | Reset () |
void | PrintParameters () |
CbmMvdDigitizer (const CbmMvdDigitizer &) | |
CbmMvdDigitizer | operator= (const CbmMvdDigitizer &) |
ClassDef (CbmMvdDigitizer, 1) | |
ULong64_t | FillTimeSlice (CbmTimeSlice *timeSlice, Bool_t checkLimit, Double_t fillTime) |
Move data from the DaqBuffer into the current time slice. More... | |
Private Attributes | |
Int_t | fMode |
Bool_t | fShowDebugHistos |
Bool_t | fNoiseSensors |
CbmMvdDetector * | fDetector |
TClonesArray * | fInputPoints |
TClonesArray * | fMcPileUp |
TClonesArray * | fTmpMatch |
TClonesArray * | fTmpDigi |
Temporary TClonesArray to absorb from MvdDetector. More... | |
std::vector< CbmMvdDigi * > | fDigiVect |
Temporary TClonesArray to absorb from MvdDetector. More... | |
std::vector< CbmMatch * > | fMatchVect |
Temporary storage for CbmDaq. More... | |
std::pair< Float_t, Int_t > | fPerformanceDigi |
Temporary storage for CbmDaq. More... | |
UInt_t | fDigiPluginNr |
Double_t | fFakeRate |
Int_t | fNPileup |
Int_t | fNDeltaElect |
Int_t | fDeltaBufferSize |
Int_t | fBgBufferSize |
Float_t | epsilon [3] |
TString | fInputBranchName |
TString | fBgFileName |
TString | fDeltaFileName |
TStopwatch | fTimer |
ROOT timer. More... | |
CbmMvdPileupManager * | fPileupManager |
CbmMvdPileupManager * | fDeltaManager |
TString | fBranchName |
Output branch name. More... | |
std::vector< CbmMvdDigi > * | fDigis |
std::vector< CbmMatch > * | fMatches |
Output array (Digi) More... | |
std::multimap< double, Data > | fDaqBuffer |
Output array (CbmMatch) More... | |
Definition at line 26 of file CbmMvdDigitizer.h.
|
inherited |
Short for data to be handled (pair of digi and match)
Definition at line 43 of file CbmDigitize.h.
CbmMvdDigitizer::CbmMvdDigitizer | ( | ) |
Default constructor
Definition at line 37 of file CbmMvdDigitizer.cxx.
CbmMvdDigitizer::CbmMvdDigitizer | ( | const char * | name, |
Int_t | mode = 0 , |
||
Int_t | iVerbose = 1 |
||
) |
Standard constructor
name | Task name |
mode | 0 = MAPS, 1 = Ideal |
Definition at line 66 of file CbmMvdDigitizer.cxx.
CbmMvdDigitizer::~CbmMvdDigitizer | ( | ) |
Destructor
Definition at line 97 of file CbmMvdDigitizer.cxx.
References fDeltaManager, fMcPileUp, and fPileupManager.
|
private |
void CbmMvdDigitizer::BuildEvent | ( | ) |
Definition at line 343 of file CbmMvdDigitizer.cxx.
References fDeltaManager, fInputPoints, fMcPileUp, fNDeltaElect, fNPileup, fPileupManager, CbmMvdPileupManager::GetEvent(), CbmMvdPileupManager::GetNEvents(), i, and points.
Referenced by Exec().
|
inlinevirtualinherited |
Check the output for being time-sorted.
Implements CbmDigitizeBase.
Definition at line 63 of file CbmDigitize.h.
|
private |
|
inlinevirtualinherited |
void CbmMvdDigitizer::Exec | ( | Option_t * | opt | ) |
Definition at line 109 of file CbmMvdDigitizer.cxx.
References BuildEvent(), CbmMvdDetector::Exec(), CbmDigitizeBase::fCurrentEvent, CbmDigitizeBase::fCurrentEventTime, fDetector, fDigiPluginNr, fDigiVect, fInputPoints, fMatchVect, fTimer, fTmpDigi, fTmpMatch, CbmDigitizeBase::GetEventInfo(), CbmMvdDetector::GetOutputDigiMatchs(), CbmMvdDetector::GetOutputDigis(), CbmDigitize< CbmMvdDigi >::SendData(), and CbmMvdDetector::SendInput().
|
inlinevirtualinherited |
Fill custom data into time slice.
fillTime | Time until data can be filled |
limit | If kTRUE, only data up to fillTime will be treated; otherwise, all. |
This method allows the digitizer to implement additional functionality than writing digis and match objects. It will be called from CbmDaq.
Definition at line 68 of file CbmDigitizeBase.h.
|
inlinevirtualinherited |
Move data from the DaqBuffer into the current time slice.
timeSlice | Pointer to current time slice object @value Number of digi objects filled into the time slice. |
For regular time slices, all data with time stamp within the interval of the current time slice are moved from the buffer to the time slice. For time slices of type kFlexible or kEvent, all data will be moved.
Implements CbmDigitizeBase.
Definition at line 101 of file CbmDigitize.h.
|
inlineprivateinherited |
Move data from the DaqBuffer into the current time slice.
timeSlice | Pointer to current time slice object |
fillTime | Time up to which data will be moved [ns] @value Number of digi objects filled into the time slice. |
For regular time slices, all data with time stamp within the interval of the current time slice are moved from the buffer to the time slice. For time slices of type kFlexible or kEvent, all data will be moved.
If checkLimit is selected, only data with time stamp less than fillTime are moved.
Definition at line 256 of file CbmDigitize.h.
|
inlinevirtualinherited |
Move data from the DaqBuffer into the current time slice.
timeSlice | Pointer to current time slice object |
fillTime | Time up to which data will be moved [ns] @value Number of digi objects filled into the time slice. |
Move data with time stamp up to fillTime from the buffer to the time slice. For regular time slices, only data with time stamp within the time slice interval will be moved. For time slices of type kFlexible or kEvent, all data up to fillTime will be moved.
Implements CbmDigitizeBase.
Definition at line 118 of file CbmDigitize.h.
|
privatevirtual |
Virtual method Finish
Definition at line 296 of file CbmMvdDigitizer.cxx.
References fDetector, CbmMvdDetector::Finish(), and PrintParameters().
|
inlineinherited |
Size of DAQ buffer @value Number of data in the DAQ buffer.
Definition at line 128 of file CbmDigitize.h.
|
pure virtualinherited |
Size of DAQ buffer @value Number of data in the DAQ buffer.
Implemented in CbmDigitize< Digi >.
|
inlineinherited |
Debug output of DAQ buffer status @value String with status of DAQ buffer.
Definition at line 136 of file CbmDigitize.h.
|
pure virtualinherited |
Status of DAQ buffer @value Status string of the DAQ buffer.
Implemented in CbmDigitize< Digi >.
|
inlineinherited |
Time stamp of first data in the DAQ buffer @value Time stamp of first data in the DAQ buffer.
Definition at line 150 of file CbmDigitize.h.
|
pure virtualinherited |
Time of first datum in DAQ buffer @value Time of first datum in DAQ buffer.
Implemented in CbmDigitize< Digi >.
|
inlineinherited |
Time stamp of last data in the DAQ buffer @value Time stamp of last data in the DAQ buffer.
Definition at line 161 of file CbmDigitize.h.
|
pure virtualinherited |
Time of last datum in DAQ buffer @value Time of last datum in DAQ buffer.
Implemented in CbmDigitize< Digi >.
|
inherited |
Get event information.
MC input number, entry number and event time are taken from FairEventHeader and stored in the private data members for convenience. Note that the MC entry number need not coincide with the event number, for instance if the run does not start with the first MC entry, or in the case of mixed MC inputs to digitization.
Definition at line 48 of file CbmDigitizeBase.cxx.
References CbmDigitizeBase::fCurrentEvent, CbmDigitizeBase::fCurrentEventTime, CbmDigitizeBase::fCurrentInput, and CbmDigitizeBase::fCurrentMCEntry.
Referenced by Exec(), CbmPsdSimpleDigitizer::Exec(), CbmRichDigitizer::Exec(), CbmTofDigitize::Exec(), CbmMuchDigitizeGem::Exec(), CbmTrdDigitizer::Exec(), and CbmStsDigitize::Exec().
|
inlineinherited |
Current event time @value Start time of current event [ns].
Definition at line 107 of file CbmDigitizeBase.h.
References CbmDigitizeBase::fCurrentEventTime.
|
private |
Definition at line 321 of file CbmMvdDigitizer.cxx.
|
inlinevirtual |
Detector system ID.
Implements CbmDigitizeBase.
Definition at line 48 of file CbmMvdDigitizer.h.
References kMvd.
|
privatevirtual |
Intialisation
Definition at line 196 of file CbmMvdDigitizer.cxx.
References CbmMvdDetector::AddPlugin(), fBgBufferSize, fBgFileName, fDeltaBufferSize, fDeltaFileName, fDeltaManager, fDetector, fDigiPluginNr, fInputBranchName, fInputPoints, fMcPileUp, fMode, fNDeltaElect, fNoiseSensors, fNPileup, fPileupManager, fShowDebugHistos, CbmMvdPileupManager::GetNEvents(), CbmMvdDetector::GetPluginArraySize(), CbmMvdDetector::Init(), CbmMvdDetector::Instance(), CbmDigitize< CbmMvdDigi >::RegisterOutput(), CbmMvdDetector::SetProduceNoise(), and CbmMvdDetector::ShowDebugHistos().
|
private |
|
private |
Print digitisation parameters
Definition at line 326 of file CbmMvdDigitizer.cxx.
Referenced by Finish().
|
private |
Register the output arrays to the IOManager
|
inlineinherited |
Register the output arrays.
Arrays for the digis and the match objects will be created and registered as output to the ROOT tree. The current implementation uses std::vector as container.
Definition at line 175 of file CbmDigitize.h.
|
privatevirtual |
Reinitialisation
Definition at line 291 of file CbmMvdDigitizer.cxx.
|
private |
Clear the hit arrays
Definition at line 305 of file CbmMvdDigitizer.cxx.
|
virtual |
Clear data arrays.
Definition at line 310 of file CbmMvdDigitizer.cxx.
References fDigiVect, fMatchVect, fMcPileUp, fTmpDigi, and fTmpMatch.
|
inlineinherited |
Send a digi and the corresponding match object to the DAQ.
digi | Pointer to digi object (template parameter) |
match | Pointer to match object |
TODO: The interface should be unique pointers, meaning that the digitisers have to create objects by unique pointers from the start.
Definition at line 219 of file CbmDigitize.h.
|
inline |
Definition at line 54 of file CbmMvdDigitizer.h.
References fBgBufferSize.
|
inline |
Definition at line 52 of file CbmMvdDigitizer.h.
References fBgFileName.
|
inlineinherited |
Set creation of links to MC.
Choice | If kTRUE, the match objects will be created |
Definition at line 143 of file CbmDigitizeBase.h.
References CbmDigitizeBase::fCreateMatches.
Referenced by CbmDigitization::Run().
|
inline |
Definition at line 55 of file CbmMvdDigitizer.h.
References fDeltaBufferSize.
|
inline |
Definition at line 51 of file CbmMvdDigitizer.h.
References fNDeltaElect.
|
inline |
Definition at line 53 of file CbmMvdDigitizer.h.
References fDeltaFileName.
|
inlineinherited |
Set event-by-event mode.
Choice | If kTRUE, the digitizer will run in event-by-event mode |
Definition at line 149 of file CbmDigitizeBase.h.
References CbmDigitizeBase::fEventMode.
Referenced by CbmDigitization::Run().
|
inline |
Definition at line 56 of file CbmMvdDigitizer.h.
|
inline |
Definition at line 50 of file CbmMvdDigitizer.h.
References fNPileup.
|
inline |
Definition at line 64 of file CbmMvdDigitizer.h.
References fNoiseSensors.
|
inlineinherited |
Set production of inter-event noise.
Choice | If kTRUE, the digitizer will produce noise |
Definition at line 155 of file CbmDigitizeBase.h.
References CbmDigitizeBase::fProduceNoise.
Referenced by CbmDigitization::Run().
|
inline |
Definition at line 62 of file CbmMvdDigitizer.h.
References fShowDebugHistos.
|
private |
Definition at line 99 of file CbmMvdDigitizer.h.
Referenced by SetMisalignment().
|
private |
Definition at line 98 of file CbmMvdDigitizer.h.
Referenced by Init(), and SetBgBufferSize().
|
private |
Definition at line 102 of file CbmMvdDigitizer.h.
Referenced by Init(), and SetBgFileName().
|
privateinherited |
Output branch name.
Definition at line 230 of file CbmDigitize.h.
|
protectedinherited |
Flag for production of inter-event noise.
Definition at line 161 of file CbmDigitizeBase.h.
Referenced by CbmRichDigitizer::AddDigisToOutputArray(), CbmDigitize< CbmTrdDigi >::ClearOutput(), CbmStsDigitize::CreateDigi(), CbmDigitize< CbmTrdDigi >::FillTimeSlice(), CbmPsdSimpleDigitizer::Init(), CbmDigitize< CbmTrdDigi >::RegisterOutput(), and CbmDigitizeBase::SetCreateMatches().
|
protectedinherited |
Number of current input.
Definition at line 163 of file CbmDigitizeBase.h.
Referenced by CbmMuchDigitizeGem::BufferSignals(), Exec(), CbmPsdSimpleDigitizer::Exec(), CbmRichDigitizer::Exec(), CbmTofDigitize::Exec(), CbmMuchDigitizeGem::Exec(), CbmTrdDigitizer::Exec(), CbmMuchDigitizeGem::GenerateNoise(), CbmDigitizeBase::GetEventInfo(), and CbmRichDigitizer::ProcessMcEvent().
|
protectedinherited |
Number of current MC entry.
Definition at line 165 of file CbmDigitizeBase.h.
Referenced by CbmMuchDigitizeGem::AddCharge(), CbmRichDigitizer::AddNoiseDigis(), CbmMuchDigitizeGem::BufferSignals(), CbmPsdSimpleDigitizer::Exec(), Exec(), CbmRichDigitizer::Exec(), CbmTofDigitize::Exec(), CbmMuchDigitizeGem::Exec(), CbmTrdDigitizer::Exec(), CbmStsDigitize::Exec(), CbmMuchDigitizeGem::GenerateNoise(), CbmDigitizeBase::GetEventInfo(), CbmDigitizeBase::GetEventTime(), CbmTofDigitize::MergeSameChanDigis(), CbmRichDigitizer::ProcessMcEvent(), CbmStsDigitize::ProcessMCEvent(), and CbmRichDigitizer::ProcessPoint().
|
protectedinherited |
Flag for creation of links to MC.
Definition at line 162 of file CbmDigitizeBase.h.
Referenced by CbmMuchDigitizeGem::AddCharge(), CbmMuchDigitizeGem::BufferSignals(), CbmMuchDigitizeGem::Exec(), CbmTrdDigitizer::Exec(), CbmDigitizeBase::GetEventInfo(), CbmTofDigitize::MergeSameChanDigis(), CbmRichDigitizer::ProcessMcEvent(), and CbmStsDigitize::ProcessMCEvent().
|
protectedinherited |
Number of current MC event.
Definition at line 164 of file CbmDigitizeBase.h.
Referenced by CbmMuchDigitizeGem::AddCharge(), CbmMuchDigitizeGem::BufferSignals(), CbmTrdDigitizer::Exec(), CbmDigitizeBase::GetEventInfo(), CbmTofDigitize::MergeSameChanDigis(), CbmRichDigitizer::ProcessMcEvent(), and CbmStsDigitize::ProcessMCEvent().
|
privateinherited |
Output array (CbmMatch)
DAQ buffer. Here, the digis and matches are buffered until they are filled into the time slice output (ROOT branch). The map key is the digi time.
Definition at line 239 of file CbmDigitize.h.
|
private |
Definition at line 97 of file CbmMvdDigitizer.h.
Referenced by Init(), and SetDeltaBufferSize().
|
private |
Definition at line 103 of file CbmMvdDigitizer.h.
Referenced by Init(), and SetDeltaName().
|
private |
Definition at line 110 of file CbmMvdDigitizer.h.
Referenced by BuildEvent(), Init(), and ~CbmMvdDigitizer().
|
private |
Definition at line 78 of file CbmMvdDigitizer.h.
|
private |
Definition at line 92 of file CbmMvdDigitizer.h.
|
privateinherited |
Definition at line 231 of file CbmDigitize.h.
|
private |
Temporary TClonesArray to absorb from MvdDetector.
Definition at line 87 of file CbmMvdDigitizer.h.
Referenced by Exec(), and ResetArrays().
|
protectedinherited |
Definition at line 159 of file CbmDigitizeBase.h.
Referenced by CbmRichDigitizer::AddDigi(), CbmTofDigitize::DigitizeDirectClusterSize(), CbmMuchDigitizeGem::Exec(), CbmStsDigitize::Exec(), CbmMuchDigitizeGem::Finish(), CbmStsDigitize::Finish(), CbmTofDigitize::Init(), CbmRichDigitizer::Init(), CbmTrdDigitizer::Init(), CbmMuchDigitizeGem::Init(), CbmStsDigitize::InitParams(), and CbmDigitizeBase::SetEventMode().
|
private |
Definition at line 94 of file CbmMvdDigitizer.h.
|
private |
Definition at line 101 of file CbmMvdDigitizer.h.
Referenced by Init().
|
private |
Definition at line 80 of file CbmMvdDigitizer.h.
Referenced by BuildEvent(), Exec(), and Init().
|
privateinherited |
Output array (Digi)
Definition at line 232 of file CbmDigitize.h.
|
private |
Temporary storage for CbmDaq.
Definition at line 88 of file CbmMvdDigitizer.h.
Referenced by Exec(), and ResetArrays().
|
private |
Definition at line 81 of file CbmMvdDigitizer.h.
Referenced by BuildEvent(), Init(), ResetArrays(), and ~CbmMvdDigitizer().
|
private |
Hit producer mode (0 = MAPS, 1 = Ideal)
Definition at line 73 of file CbmMvdDigitizer.h.
Referenced by Init().
|
private |
Definition at line 96 of file CbmMvdDigitizer.h.
Referenced by BuildEvent(), Init(), and SetDeltaEvents().
|
private |
Definition at line 76 of file CbmMvdDigitizer.h.
Referenced by Init(), and SetProduceNoise().
|
private |
Definition at line 95 of file CbmMvdDigitizer.h.
Referenced by BuildEvent(), Init(), and SetPileUp().
|
private |
Temporary storage for CbmDaq.
Definition at line 90 of file CbmMvdDigitizer.h.
|
private |
Pileup manager
Definition at line 109 of file CbmMvdDigitizer.h.
Referenced by BuildEvent(), Init(), and ~CbmMvdDigitizer().
|
protectedinherited |
Flag for event-by-event mode.
Definition at line 160 of file CbmDigitizeBase.h.
Referenced by CbmRichDigitizer::Exec(), CbmStsDigitize::InitParams(), and CbmDigitizeBase::SetProduceNoise().
|
private |
Definition at line 75 of file CbmMvdDigitizer.h.
Referenced by Init(), and ShowDebugHistograms().
|
private |
|
private |
Temporary TClonesArray to absorb from MvdDetector.
Definition at line 85 of file CbmMvdDigitizer.h.
Referenced by Exec(), and ResetArrays().
|
private |
Definition at line 84 of file CbmMvdDigitizer.h.
Referenced by Exec(), and ResetArrays().