FairRoot/PandaRoot
|
Waveform simulator. More...
#include <PndEmcFullStackedWaveformSimulator.h>
Public Member Functions | |
PndEmcFullStackedWaveformSimulator () | |
PndEmcFullStackedWaveformSimulator (Double_t sampleRate, PndEmcAbsPulseshape *pulseShape) | |
virtual | ~PndEmcFullStackedWaveformSimulator () |
virtual void | Init (Double_t samplingBeforeFirstPulse, Double_t samplingAfterLastPulse, Double_t cutoff, Double_t activeTimeIncrement) |
Init the simulator. More... | |
virtual void | GetAbsoluteTimeInterval (PndEmcWaveformData *wfData, Double_t &startTime, Double_t &activeTime) |
Get time interval for which the signal is above the cutoff. More... | |
virtual Double_t | GetTimeBeforeFirstHit (PndEmcWaveformData *) |
virtual Double_t | GetScale () |
virtual PndEmcWaveform * | Get1GevWaveform () |
virtual Double_t | GetPulseRiseTime () |
virtual PndEmcWaveform * | Simulate (PndEmcWaveformData *wfData, TClonesArray *arrayToStore=NULL) |
virtual PndEmcWaveform * | SimulateSinglePulse (Double_t hitEnergy, Double_t hitTime, TClonesArray *arrayToStore=NULL, Int_t detId=-1, Int_t trackId=-1, Int_t hitIndex=-1) |
virtual Double_t | GetTotalScale () |
virtual Double_t | GetSampleRate () |
virtual void | AddModifier (PndEmcAbsWaveformModifier *wfModifier) |
Protected Member Functions | |
virtual PndEmcWaveform * | MakeWaveform (PndEmcWaveformData *wfData, TClonesArray *arrayToStore=NULL) |
Create PndEmcWaveform. More... | |
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. More... | |
virtual Double_t | CalcWaveForTime (Double_t absoluteTime, PndEmcWaveformData *wfData) |
Calculate pulse value at given time. More... | |
Double_t | CalcSingleWaveForTime (Double_t absoluteTime, Double_t energy, Double_t pulseTime) |
Return pulse at given time and for given energy. More... | |
void | SyncWithADCClock (Double_t &time) |
virtual PndEmcWaveform * | CallModifiers (PndEmcWaveform *wf) |
ClassDef (PndEmcAbsWaveformSimulator, 3) | |
Protected Attributes | |
TList | fListOfWaveformModifiers |
Double_t | fSampleRate |
sampling rate of SADC. In 1/ns More... | |
Private Member Functions | |
PndEmcFullStackedWaveformSimulator (const PndEmcFullStackedWaveformSimulator &) | |
PndEmcFullStackedWaveformSimulator & | operator= (const PndEmcFullStackedWaveformSimulator &) |
ClassDef (PndEmcFullStackedWaveformSimulator, 1) | |
Private Attributes | |
Double_t | fSamplingBeforeFirstPulse |
in ns. additional time interval before waveform starts More... | |
Double_t | fSamplingAfterLastPulse |
in ns. additional time interval after waveform falls below cutOff value More... | |
Double_t | fCutoff |
PndEmcAbsPulseshape * | fPulseshape |
Double_t | fScale |
Height of 1GeV pulse. More... | |
PndEmcWaveform * | f1GeVWaveform |
Double_t | fPulseRiseTime |
total rising time of pulse in ns More... | |
Double_t | fActiveTimeIncrement |
Waveform simulator.
Definition at line 21 of file PndEmcFullStackedWaveformSimulator.h.
PndEmcFullStackedWaveformSimulator::PndEmcFullStackedWaveformSimulator | ( | ) |
Definition at line 18 of file PndEmcFullStackedWaveformSimulator.cxx.
PndEmcFullStackedWaveformSimulator::PndEmcFullStackedWaveformSimulator | ( | Double_t | sampleRate, |
PndEmcAbsPulseshape * | pulseShape | ||
) |
Definition at line 22 of file PndEmcFullStackedWaveformSimulator.cxx.
|
virtual |
Definition at line 27 of file PndEmcFullStackedWaveformSimulator.cxx.
References f1GeVWaveform.
|
private |
|
inlinevirtualinherited |
Definition at line 68 of file PndEmcAbsWaveformSimulator.h.
References PndEmcAbsWaveformSimulator::fListOfWaveformModifiers.
Referenced by PndEmcMultiWaveformSimulator::AddModifier().
|
protected |
Return pulse at given time and for given energy.
Time in the pulse is absoluteTime-
absoluteTime Time for which to calculate value. pulseTime
energy | Energy of the pulse. |
pulseTime | Time when the pulse starts. |
Definition at line 152 of file PndEmcFullStackedWaveformSimulator.cxx.
References fPulseshape, and PndEmcAbsPulseshape::value().
Referenced by CalcWaveForTime(), Init(), and MakeSingleWaveform().
|
protectedvirtual |
Calculate pulse value at given time.
absoluteTime | Time for which to calculate value. |
wfData | Waveform including the hit map. |
Definition at line 164 of file PndEmcFullStackedWaveformSimulator.cxx.
References CalcSingleWaveForTime(), Double_t, energy, and PndEmcWaveformData::GetHitMap().
Referenced by GetAbsoluteTimeInterval(), and MakeWaveform().
|
inlineprotectedvirtualinherited |
Reimplemented in PndEmcMultiWaveformSimulator.
Definition at line 82 of file PndEmcAbsWaveformSimulator.h.
References PndEmcAbsWaveformSimulator::fListOfWaveformModifiers.
Referenced by PndEmcAbsWaveformSimulator::Simulate(), and PndEmcAbsWaveformSimulator::SimulateSinglePulse().
|
private |
|
protectedinherited |
|
inlinevirtual |
returns 1GeV equivalent waveform
might be used for calibration etc.
Implements PndEmcAbsWaveformSimulator.
Definition at line 35 of file PndEmcFullStackedWaveformSimulator.h.
References f1GeVWaveform.
|
virtual |
Get time interval for which the signal is above the cutoff.
wfData | Waveform | |
[out] | startTime | Start time of waveform (adjusted by fSamplingBeforeFirstPulse) |
[out] | activeTime | Active time of waveform(s) |
Implements PndEmcAbsWaveformSimulator.
Definition at line 126 of file PndEmcFullStackedWaveformSimulator.cxx.
References CAMath::Abs(), CalcWaveForTime(), fActiveTimeIncrement, fCutoff, fPulseRiseTime, fSamplingAfterLastPulse, fSamplingBeforeFirstPulse, fScale, PndEmcWaveformData::GetHitMap(), and PndEmcAbsWaveformSimulator::SyncWithADCClock().
|
inlinevirtual |
Definition at line 37 of file PndEmcFullStackedWaveformSimulator.h.
References fPulseRiseTime.
Referenced by PndEmcFWEndcapTimebasedWaveforms::Init().
|
inlinevirtualinherited |
Definition at line 66 of file PndEmcAbsWaveformSimulator.h.
References PndEmcAbsWaveformSimulator::fSampleRate.
Referenced by Init(), MakeSingleWaveform(), and MakeWaveform().
|
inlinevirtual |
Get 1GeV pulse height equivalient of simulator generated waveform
Implements PndEmcAbsWaveformSimulator.
Definition at line 34 of file PndEmcFullStackedWaveformSimulator.h.
References fScale.
Referenced by PndEmcMultiWaveformSimulator::GetTotalScale().
|
inlinevirtual |
maximum timeinterval generated waveforms are ahead of causal detector hits
Information is needed by timebased simulation framework. E.g. provokeed by simulation of preceding baseline samples
Reimplemented from PndEmcAbsWaveformSimulator.
Definition at line 32 of file PndEmcFullStackedWaveformSimulator.h.
References fSamplingBeforeFirstPulse.
|
inlinevirtualinherited |
Get 1GeV pulse height equivalent of waveform at end of modification chain
Definition at line 55 of file PndEmcAbsWaveformSimulator.h.
References Double_t, PndEmcAbsWaveformSimulator::fListOfWaveformModifiers, and PndEmcAbsWaveformSimulator::GetScale().
|
virtual |
Init the simulator.
samplingBeforeFirstPulse | Time to start sampling before first pulse, in ns |
samplingAfterLastPulse | Time to stop sampling after last pulse, in ns |
cutoff | Threshold under which signal is considered to have stopped, in GeV |
activeTimeIncrement | Increment when checking if pulse is over cutoff, in ns |
Definition at line 41 of file PndEmcFullStackedWaveformSimulator.cxx.
References Bool_t, CalcSingleWaveForTime(), Double_t, f1GeVWaveform, fActiveTimeIncrement, fCutoff, fPulseRiseTime, fSamplingAfterLastPulse, fSamplingBeforeFirstPulse, fScale, PndEmcAbsWaveformSimulator::GetSampleRate(), and MakeSingleWaveform().
Referenced by PndEmcFWEndcapTimebasedWaveforms::Init().
|
protectedvirtual |
Create a PndEmcWaveform from the given parameters of a single hit.
hitEnergy | ... |
hitTime | ... |
arrayToStore | ... |
detId | ... |
trackId | ... |
hitIndex | ... |
Implements PndEmcAbsWaveformSimulator.
Reimplemented in PndEmcMultiWaveformSimulator.
Definition at line 231 of file PndEmcFullStackedWaveformSimulator.cxx.
References CalcSingleWaveForTime(), Double_t, fCutoff, fPulseRiseTime, PndEmcAbsWaveformSimulator::fSampleRate, fSamplingAfterLastPulse, fSamplingBeforeFirstPulse, fScale, PndEmcAbsWaveformSimulator::GetSampleRate(), PndEmcWaveform::SetSampleRate(), and PndEmcAbsWaveformSimulator::SyncWithADCClock().
Referenced by Init(), and PndEmcMultiWaveformSimulator::MakeSingleWaveform().
|
protectedvirtual |
Create PndEmcWaveform.
wfData | PndEmcWaveformData containing the hits. |
arrayToStore | If not null, the new PndEmcWaveform is created in this TClonesArray. |
Implements PndEmcAbsWaveformSimulator.
Reimplemented in PndEmcMultiWaveformSimulator.
Definition at line 184 of file PndEmcFullStackedWaveformSimulator.cxx.
References CalcWaveForTime(), Double_t, PndEmcAbsWaveformSimulator::fSampleRate, PndEmcWaveformData::GetDetectorId(), PndEmcAbsWaveformSimulator::GetSampleRate(), PndEmcWaveformData::GetTimeOfLastSample(), and PndEmcWaveform::SetSampleRate().
Referenced by PndEmcMultiWaveformSimulator::MakeWaveform().
|
private |
|
inlinevirtualinherited |
Simulate Waveform based on wfData object
The PndEmcWaveformData object is used by the emc timebased simulation
Definition at line 31 of file PndEmcAbsWaveformSimulator.h.
References PndEmcAbsWaveformSimulator::CallModifiers(), and PndEmcAbsWaveformSimulator::MakeWaveform().
Referenced by PndEmcWaveformBuffer::AddNewDataToTClonesArray().
|
inlinevirtualinherited |
Simulate waveform consisting of single pusle
Definition at line 34 of file PndEmcAbsWaveformSimulator.h.
References PndEmcAbsWaveformSimulator::CallModifiers(), and PndEmcAbsWaveformSimulator::MakeSingleWaveform().
|
inlineprotectedinherited |
Definition at line 78 of file PndEmcAbsWaveformSimulator.h.
References PndEmcAbsWaveformSimulator::fSampleRate.
Referenced by GetAbsoluteTimeInterval(), and MakeSingleWaveform().
|
private |
Definition at line 59 of file PndEmcFullStackedWaveformSimulator.h.
Referenced by Get1GevWaveform(), Init(), and ~PndEmcFullStackedWaveformSimulator().
|
private |
Definition at line 63 of file PndEmcFullStackedWaveformSimulator.h.
Referenced by GetAbsoluteTimeInterval(), and Init().
|
private |
Definition at line 54 of file PndEmcFullStackedWaveformSimulator.h.
Referenced by GetAbsoluteTimeInterval(), Init(), and MakeSingleWaveform().
|
protectedinherited |
Definition at line 90 of file PndEmcAbsWaveformSimulator.h.
Referenced by PndEmcAbsWaveformSimulator::AddModifier(), PndEmcMultiWaveformSimulator::CallModifiers(), PndEmcAbsWaveformSimulator::CallModifiers(), PndEmcMultiWaveformSimulator::GetTotalScale(), and PndEmcAbsWaveformSimulator::GetTotalScale().
|
private |
total rising time of pulse in ns
Definition at line 61 of file PndEmcFullStackedWaveformSimulator.h.
Referenced by GetAbsoluteTimeInterval(), GetPulseRiseTime(), Init(), and MakeSingleWaveform().
|
private |
Definition at line 56 of file PndEmcFullStackedWaveformSimulator.h.
Referenced by CalcSingleWaveForTime().
|
protectedinherited |
sampling rate of SADC. In 1/ns
Definition at line 91 of file PndEmcAbsWaveformSimulator.h.
Referenced by PndEmcAbsWaveformSimulator::GetSampleRate(), MakeSingleWaveform(), MakeWaveform(), and PndEmcAbsWaveformSimulator::SyncWithADCClock().
|
private |
in ns. additional time interval after waveform falls below cutOff value
Definition at line 53 of file PndEmcFullStackedWaveformSimulator.h.
Referenced by GetAbsoluteTimeInterval(), Init(), and MakeSingleWaveform().
|
private |
in ns. additional time interval before waveform starts
Definition at line 52 of file PndEmcFullStackedWaveformSimulator.h.
Referenced by GetAbsoluteTimeInterval(), GetTimeBeforeFirstHit(), Init(), and MakeSingleWaveform().
|
private |
Height of 1GeV pulse.
Definition at line 58 of file PndEmcFullStackedWaveformSimulator.h.
Referenced by GetAbsoluteTimeInterval(), GetScale(), Init(), and MakeSingleWaveform().