CbmRoot
Loading...
Searching...
No Matches
CbmDigitization.h
Go to the documentation of this file.
1/* Copyright (C) 2018-2020 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Volker Friese [committer] */
4
9
10#ifndef CBMDIGITIZATION_H
11#define CBMDIGITIZATION_H 1
12
13#include "CbmDaq.h"
14#include "CbmDefs.h"
16#include "CbmDigitizeInfo.h"
17#include "Defs.h"
18#include "TList.h"
19#include "TNamed.h"
20#include "TString.h"
21#include "TSystem.h"
22
23#include <Logger.h>
24
25#include <map>
26#include <vector>
27
28class TGeoManager;
29class CbmDigitizeBase;
30
31
32class CbmDigitization : public TNamed {
33
34 public:
37
38
40 virtual ~CbmDigitization();
41
42
49 void AddInput(UInt_t inputId, TString fileName, cbm::sim::TimeDist dist = cbm::sim::TimeDist::Poisson,
50 Double_t eventRate = 0., ECbmTreeAccess mode = ECbmTreeAccess::kRegular);
51
52
61 void AddInput(TString fileName, cbm::sim::TimeDist dist = cbm::sim::TimeDist::Poisson, Double_t eventRate = 0.,
63 {
64 AddInput(0, fileName, dist, eventRate, mode);
65 }
66
74 Bool_t AddParameterAsciiFile(TString fileName);
75
76
83 void Deactivate(ECbmModuleId system);
84
85
91 void DeactivateAllBut(ECbmModuleId system);
92
93
100 void EmbedInput(UInt_t inputId, TString fileName, UInt_t targetInputId,
102
103
110 void GenerateRunInfo(Bool_t choice = kTRUE) { fGenerateRunInfo = choice; }
111
115 void DefaultInit();
116
118 void Run() { Run(-1, -1); }
119
120
124 void Run(Int_t nEvents) { Run(0, nEvents); }
125
126
131 void Run(Int_t event1, Int_t event2);
132
133
137 void SetCreateMatches(Bool_t choice = kTRUE) { fCreateMatches = choice; }
138
139
151 void SetDigitizer(ECbmModuleId system, CbmDigitizeBase* digitizer, TString branch = "", Bool_t persistent = kTRUE);
152
153
160 void SetMode(cbm::sim::Mode mode) { fMode = mode; }
161
162
170 void SetMonitorFile(const char* fileName) { fMoniFile = fileName; }
171
172
179 void SetOutputFile(TString fileName, Bool_t overwrite = kFALSE);
180
181
185 void SetParameterRootFile(TString fileName);
186
187
191 void SetProduceNoise(Bool_t choice = kTRUE) { fProduceNoise = choice; }
192
193
200 void SetStartTime(Double_t time) { fSource->SetTimeStart(time); }
201
202
212 void SetTimeSliceLength(Double_t length) { fTimeSliceLength = length; }
213
214
220 void StoreAllTimeSlices(Bool_t choice = kTRUE) { fDaq->StoreAllTimeSlices(choice); }
221
230 // TODO: This does not work, since the defaulot digitizers are not instantiated
231 // at instation of this class, but in the Exec() method.
233
234
235 private:
236 Bool_t fIsInit = kFALSE;
238 Double_t fTimeSliceLength = -1.;
240 ;
242 std::map<ECbmModuleId, CbmDigitizeInfo*> fDigitizers = {};
245 TString fOutFile = {};
246 TString fParRootFile = {};
247 TList fParAsciiFiles = {};
248 TString fMoniFile = {};
252
253
256
257
260
261
271
272
280
281
291 TString GetGeoTag(ECbmModuleId system, TGeoManager* geo);
292
293
295 void SetDefaultBranches();
296
297
299};
300
301#endif /* CBMDIGITIZATION_H */
ECbmTreeAccess
Definition CbmDefs.h:192
ECbmModuleId
Enumerator for module Identifiers.
Definition CbmDefs.h:45
int Int_t
bool Bool_t
CBM task class for filling digis into time slices.
Definition CbmDaq.h:44
Source class for the input to digitization in CBM.
void EmbedInput(UInt_t inputId, TString fileName, UInt_t targetInputId, ECbmTreeAccess mode=ECbmTreeAccess::kRegular)
Embed an input file into another one.
Int_t CheckInput()
Check the presence of input branches.
void SetParameterRootFile(TString fileName)
Set the parameter file name.
void SetStartTime(Double_t time)
Set the start time of the run.
void DefaultInit()
Initialize the branches, digitizers and parameter files With default values.
void DeactivateAllBut(ECbmModuleId system)
Deactivate all systems except the specified one.
void SetCreateMatches(Bool_t choice=kTRUE)
Set creation of links to MC.
CbmDigitization()
Constructor.
void SetMonitorFile(const char *fileName)
Set the monitor file name.
Int_t CreateDefaultDigitizers()
Instantiate the default digitisers for the active systems.
TString fMoniFile
Resource monitoring information.
void Run()
Process all events from input.
ClassDef(CbmDigitization, 3)
void SetDigitizer(ECbmModuleId system, CbmDigitizeBase *digitizer, TString branch="", Bool_t persistent=kTRUE)
Set a digitizer explicitly.
void SetOutputFile(TString fileName, Bool_t overwrite=kFALSE)
Set the output file name.
CbmDigitizeBase * GetDigitizer(ECbmModuleId system)
Get the pointer on a given digitizer if existing.
std::map< ECbmModuleId, CbmDigitizeInfo * > fDigitizers
void AddInput(TString fileName, cbm::sim::TimeDist dist=cbm::sim::TimeDist::Poisson, Double_t eventRate=0., ECbmTreeAccess mode=ECbmTreeAccess::kRegular)
Add an input file.
Bool_t AddParameterAsciiFile(TString fileName)
Add an ASCII parameter file.
void SetTimeSliceLength(Double_t length)
Set length of the time-slices.
TString fOutFile
Output data (digis)
TList fParAsciiFiles
ASCII parameter files.
void StoreAllTimeSlices(Bool_t choice=kTRUE)
Store all time-slices.
void SetProduceNoise(Bool_t choice=kTRUE)
Set production of inter-event noise.
void Deactivate(ECbmModuleId system)
Deactivate a system for digitisation.
void GenerateRunInfo(Bool_t choice=kTRUE)
Write run info (default is kTRUE)
cbm::sim::Mode fMode
void Run(Int_t nEvents)
Process nEvents from input, starting with the first event.
CbmDigitization(const CbmDigitization &)=delete
Copy constructor forbidden.
CbmDigitizationSource * fSource
Input source.
virtual ~CbmDigitization()
Destructor.
TString GetGeoTag(ECbmModuleId system, TGeoManager *geo)
Get the geometry tag of a system from a TGeoManager.
Double_t fTimeSliceLength
TString fParRootFile
ROOT parameter file.
void SetDefaultBranches()
Default settings for digitizers.
CbmDigitization operator=(const CbmDigitization &)=delete
Assignment operator forbidden.
void SetMode(cbm::sim::Mode mode)
Set event-by-event mode.
void AddInput(UInt_t inputId, TString fileName, cbm::sim::TimeDist dist=cbm::sim::TimeDist::Poisson, Double_t eventRate=0., ECbmTreeAccess mode=ECbmTreeAccess::kRegular)
Add an input file.
Abstract base class for CBM digitisation tasks.
TimeDist
Definition Defs.h:29