FairRoot/PandaRoot
PndEmcFullStackedWaveformSimulator.h
Go to the documentation of this file.
1 //#pragma once
2 #ifndef PNDEMCFULLSTACKEDWAVEFORMSIMULATOR_H_
3 #define PNDEMCFULLSTACKEDWAVEFORMSIMULATOR_H_
4 
6 #include <vector>
7 
9 class PndEmcWaveform;
11 class TClonesArray;
12 
13 #include <iostream>
14 
22 {
23  public:
27 
28  virtual void Init(Double_t samplingBeforeFirstPulse, Double_t samplingAfterLastPulse, Double_t cutoff, Double_t activeTimeIncrement);
29 
30  virtual void GetAbsoluteTimeInterval(PndEmcWaveformData* wfData, Double_t& startTime, Double_t& activeTime); //in ns
31 
32  virtual Double_t GetTimeBeforeFirstHit(PndEmcWaveformData* ) { return fSamplingBeforeFirstPulse; } //in ns //wfData //[R.K.03/2017] unused variable(s)
33 
34  virtual Double_t GetScale() { return fScale; }
36 
37  virtual Double_t GetPulseRiseTime() { return fPulseRiseTime; };
38 
39  protected:
40  virtual PndEmcWaveform* MakeWaveform(PndEmcWaveformData* wfData, TClonesArray* arrayToStore=NULL);
41  virtual PndEmcWaveform* MakeSingleWaveform(Double_t hitEnergy, Double_t hitTime, TClonesArray* arrayToStore=NULL, Int_t detId=-1, Int_t trackId=-1, Int_t hitIndex=-1);
42 
43  virtual Double_t CalcWaveForTime(Double_t absoluteTime, PndEmcWaveformData* wfData);
45 
46  private:
47  // don't allow copying (-Weffc++)
50 
51  private:
54  Double_t fCutoff; //<! minimum pulse after which waveform simulation is terminated. Given as corresponding energy/GeV when cutoff value treated as pulse amplitude.
55 
57 
60 
62 
64 
65 
67 };
68 
69 #endif
virtual Double_t CalcWaveForTime(Double_t absoluteTime, PndEmcWaveformData *wfData)
Calculate pulse value at given time.
PndEmcFullStackedWaveformSimulator & operator=(const PndEmcFullStackedWaveformSimulator &)
virtual PndEmcWaveform * MakeWaveform(PndEmcWaveformData *wfData, TClonesArray *arrayToStore=NULL)
Create PndEmcWaveform.
Double_t CalcSingleWaveForTime(Double_t absoluteTime, Double_t energy, Double_t pulseTime)
Return pulse at given time and for given energy.
Abstract base class for waveform simulator.
virtual void GetAbsoluteTimeInterval(PndEmcWaveformData *wfData, Double_t &startTime, Double_t &activeTime)
Get time interval for which the signal is above the cutoff.
Double_t
ClassDef(PndEmcFullStackedWaveformSimulator, 1)
virtual Double_t GetTimeBeforeFirstHit(PndEmcWaveformData *)
virtual void Init(Double_t samplingBeforeFirstPulse, Double_t samplingAfterLastPulse, Double_t cutoff, Double_t activeTimeIncrement)
Init the simulator.
represents a simulated waveform in an emc crystal
virtual PndEmcWaveform * MakeSingleWaveform(Double_t hitEnergy, Double_t hitTime, TClonesArray *arrayToStore=NULL, Int_t detId=-1, Int_t trackId=-1, Int_t hitIndex=-1)
Create a PndEmcWaveform from the given parameters of a single hit.
Double_t fPulseRiseTime
total rising time of pulse in ns
pulseshape interface
Double_t fSamplingAfterLastPulse
in ns. additional time interval after waveform falls below cutOff value
represents a simulated waveform in an emc crystal, used by PndEmcFWEndcapTimebasedWaveforms ...
Double_t fSamplingBeforeFirstPulse
in ns. additional time interval before waveform starts
Double_t energy
Definition: plot_dirc.C:15