PandaRoot
PndEmcMultiWaveformSimulator.h
Go to the documentation of this file.
1 #ifndef PNDEMCMULTIWAVEFORMSIMULATOR_H_
2 #define PNDEMCMULTIWAVEFORMSIMULATOR_H_
3 
5 #include <vector>
6 
9 class TClonesArray;
10 
18  public:
20  PndEmcMultiWaveformSimulator(Double_t sampleRate, PndEmcAbsPulseshape *pulseshape, Int_t wfMultiplicity);
21 
25  virtual void AddModifier(PndEmcAbsWaveformModifier *wfModifier, Int_t wfIndex);
26 
27  virtual Double_t GetTotalScale(Int_t wfIndex);
28 
29  protected:
31  virtual PndEmcWaveform *MakeWaveform(PndEmcWaveformData *wfData, TClonesArray *arrayToStore = nullptr);
32  virtual PndEmcWaveform *MakeSingleWaveform(Double_t hitEnergy, Double_t hitTime, TClonesArray *arrayToStore = nullptr, Int_t detId = -1, Int_t trackId = -1, Int_t hitIndex = -1);
33 
34  private:
35  Int_t fWfMultiplicity;
36  std::vector<Int_t> fIndexList;
37 
38  PndEmcMultiWaveform *MultiplyWaveform(const PndEmcWaveform *singleWaveform, TClonesArray *arrayToStore);
39 
41 };
42 
43 #endif
virtual PndEmcWaveform * CallModifiers(PndEmcWaveform *wf)
interface for waveform modifiers
virtual void AddModifier(PndEmcAbsWaveformModifier *wfModifier, Int_t wfIndex)
Simulator to create PndEmcMultiWaveform.
virtual PndEmcWaveform * MakeWaveform(PndEmcWaveformData *wfData, TClonesArray *arrayToStore=nullptr)
ClassDef(PndEmcAbsWaveformSimulator, 3)
represents a simulated waveform in an emc crystal
Class to hold multiple waveforms from one Emc Hit / ADC readout.
pulseshape interface
represents a simulated waveform in an emc crystal, used by PndEmcFWEndcapTimebasedWaveforms ...
virtual PndEmcWaveform * MakeSingleWaveform(Double_t hitEnergy, Double_t hitTime, TClonesArray *arrayToStore=nullptr, Int_t detId=-1, Int_t trackId=-1, Int_t hitIndex=-1)