PandaRoot
BSEmcWaveformGenerationProcess.h
Go to the documentation of this file.
1 //----------------------------------------------------------------------
2 // Author List:
3 // Phil Strother Original author
4 // Dima Melnichuk - adaption for PANDA
5 // Philipp Mahlberg - integration in timebased simulation concept
6 //----------------------------------------------------------------------
7 #ifndef BSEMCWAVEFORMGENERATIONPROCESS_HH
8 #define BSEMCWAVEFORMGENERATIONPROCESS_HH
9 
10 #include <string>
11 
12 #include "Rtypes.h"
13 #include "RtypesCore.h"
14 #include "TString.h"
15 
16 #include "PndInputContainerI.h"
17 #include "PndProcess.h"
18 
19 #include "BSEmcDigiPar.h"
20 #include "BSEmcDigitizationData.h"
21 
25 class BSEmcDigiPar;
26 class BSEmcMCHit;
27 class TBuffer;
28 class TClass;
29 class TMemberInspector;
31 template <class T>
32 class PndInputContainerI;
33 
45 class BSEmcWaveformGenerationProcess : public PndProcess<BSEmcDigitizationData> {
46  public:
47  // Constructors
48  BSEmcWaveformGenerationProcess(BSEmcAbsWaveformSimulator *t_simulator = nullptr, Bool_t t_storewaves = kTRUE, Bool_t t_storeData = kTRUE, Bool_t t_timebased = kFALSE);
49  // Destructor
51 
52  virtual void SetDetectorName(const std::string &t_detectorName) /*override*/;
53  virtual void SetData(BSEmcDigitizationData *t_data) /*override*/;
54  virtual void SetupParameters(const PndParameterRegister *t_parameterRegister) /*override*/;
55  virtual void Process() /*override*/;
56 
57  void RunTimebased(Bool_t t_timebased = kTRUE) { fActivateBuffering = t_timebased; };
58  void SetStorageOfData(Bool_t t_storeWaves = kTRUE) { fStoreWaves = (t_storeWaves); };
59  void StoreDataClass(Bool_t t_storeData = kTRUE) { fStoreDataClass = t_storeData; };
60 
61  void SetWaveformBranchName(const TString &t_branchName) { fWaveformBranchName = t_branchName; }
62  void SetWaveformDataBranchName(const TString &t_branchName) { fWaveformDataBranchName = t_branchName; }
63  void SetPhotonStatisticParName(const std::string &t_photonStatParName) { fPhotonStatisticParName = t_photonStatParName; }
64 
65  protected:
66  void SetSimulator(BSEmcAbsWaveformSimulator *t_simulator) { fSimulator = t_simulator; }
67 
68  TString fHitBranchName{""};
69  TString fWaveformBranchName{""};
75 
76  Bool_t fStoreWaves{kFALSE};
77  Bool_t fStoreDataClass{kFALSE};
78  Bool_t fActivateBuffering{kFALSE};
79  std::string fPhotonStatisticParName{""};
81  Bool_t fUse_photon_statistic{kFALSE};
83  Double_t fExcessNoiseFactor{0};
84  Double_t fOverlapTime{0};
85 
87 };
88 
89 #endif /*BSEMCWAVEFORMGENERATIONPROCESS_HH*/
Base Process class.
Definition: PndProcess.h:24
Base class Process to create waveforms out of BSEmcMCHits.
void RunTimebased(Bool_t t_timebased=kTRUE)
virtual void Process()
The actual data transformation (digitizing, clustering, etc.) should be defined here.
void SetPhotonStatisticParName(const std::string &t_photonStatParName)
void SetStorageOfData(Bool_t t_storeWaves=kTRUE)
Abstract base class for waveform simulator.
virtual void SetDetectorName(const std::string &t_detectorName)
Set the Detector name. Important, as most EmcParameter need to know for which detector they need to b...
buffer for waveforms, used by BSEmcFwEndcapTimebasedWaveforms
virtual void SetData(BSEmcDigitizationData *t_data)
Pass the data container ptrs to the process, and store pointers in class members. ...
virtual void SetupParameters(const PndParameterRegister *t_parameterRegister)
Fetch all parameters from the PndParameterRegister.
PndInputContainerI< BSEmcMCHit > * fHitArray
void SetWaveformBranchName(const TString &t_branchName)
Helper class to indirect the Parameter fetching via the FairRuntimeDb.
BSEmcWaveformGenerationProcess(BSEmcAbsWaveformSimulator *t_simulator=nullptr, Bool_t t_storewaves=kTRUE, Bool_t t_storeData=kTRUE, Bool_t t_timebased=kFALSE)
void SetWaveformDataBranchName(const TString &t_branchName)
represents the deposited energy of one emc crystal from simulation
Definition: BSEmcMCHit.h:32
void SetSimulator(BSEmcAbsWaveformSimulator *t_simulator)
Container for runtime parameters that are required for the transformation from BSEmcMCHits to BSEmcDi...
Definition: BSEmcDigiPar.h:23
DataStruct to pass addresses to data Container between BSEmcDigitizerTask and PndProcess<BSEmcDigitiz...
ClassDef(BSEmcWaveformGenerationProcess, 2)
void StoreDataClass(Bool_t t_storeData=kTRUE)