PandaRoot
BSEmcMultiWaveformSimulator.h
Go to the documentation of this file.
1 #ifndef BSEMCMULTIWAVEFORMSIMULATOR_HH
2 #define BSEMCMULTIWAVEFORMSIMULATOR_HH
3 
4 #include <vector>
5 
6 #include "Rtypes.h"
7 #include "RtypesCore.h"
8 
10 
11 class BSEmcAbsPulseshape;
12 class BSEmcMultiWaveform;
13 class TClonesArray;
15 class BSEmcWaveform;
16 class BSEmcWaveformData;
17 class TBuffer;
18 class TClass;
19 class TMemberInspector;
20 
28  public:
30  BSEmcMultiWaveformSimulator(Double_t t_sampleRate, BSEmcAbsPulseshape *t_pulseshape, Int_t t_wfMultiplicity);
31 
35  virtual void AddModifier(BSEmcAbsWaveformModifier *t_wfModifier, Int_t t_wfIndex);
36 
37  virtual Double_t GetTotalScale(Int_t t_wfIndex);
38 
39  protected:
41  virtual BSEmcWaveform *MakeWaveform(BSEmcWaveformData *t_wfData, TClonesArray *t_arrayToStore = nullptr) /*override*/;
42  virtual BSEmcWaveform *MakeSingleWaveform(Double_t t_hitEnergy, Double_t t_hitTime, TClonesArray *t_arrayToStore = nullptr, Int_t t_detId = -1, Int_t t_trackId = -1,
43  Int_t t_hitIndex = -1) /*override*/;
44 
45  private:
46  Int_t fWfMultiplicity{-1};
47  std::vector<Int_t> fIndexList{};
48 
49  BSEmcMultiWaveform *MultiplyWaveform(const BSEmcWaveform *t_singleWaveform, TClonesArray *t_arrayToStore);
50 
52 };
53 
54 #endif /*BSEMCMULTIWAVEFORMSIMULATOR_HH*/
virtual BSEmcWaveform * CallModifiers(BSEmcWaveform *t_wf)
represents a simulated waveform in an emc crystal
Definition: BSEmcWaveform.h:63
virtual BSEmcWaveform * MakeWaveform(BSEmcWaveformData *t_wfData, TClonesArray *t_arrayToStore=nullptr)
Simulator to create BSEmcMultiWaveform.
interface for waveform modifiers
ClassDef(BSEmcAbsWaveformSimulator, 3)
virtual void AddModifier(BSEmcAbsWaveformModifier *t_wfModifier, Int_t t_wfIndex)
pulseshape interface
represents a simulated waveform in an emc crystal, used by BSEmcFwEndcapTimebasedWaveforms ...
virtual BSEmcWaveform * MakeSingleWaveform(Double_t t_hitEnergy, Double_t t_hitTime, TClonesArray *t_arrayToStore=nullptr, Int_t t_detId=-1, Int_t t_trackId=-1, Int_t t_hitIndex=-1)
Class to hold multiple waveforms from one Emc Hit / ADC readout.