FairRoot/PandaRoot
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
detectors
emc
EmcDigi
PndEmcFullStackedWaveformSimulator.h
Go to the documentation of this file.
1
//#pragma once
2
#ifndef PNDEMCFULLSTACKEDWAVEFORMSIMULATOR_H_
3
#define PNDEMCFULLSTACKEDWAVEFORMSIMULATOR_H_
4
5
#include "
PndEmcAbsWaveformSimulator.h
"
6
#include <vector>
7
8
class
PndEmcWaveformData
;
9
class
PndEmcWaveform
;
10
class
PndEmcAbsPulseshape
;
11
class
TClonesArray;
12
13
#include <iostream>
14
21
class
PndEmcFullStackedWaveformSimulator
:
public
PndEmcAbsWaveformSimulator
22
{
23
public
:
24
PndEmcFullStackedWaveformSimulator
();
25
PndEmcFullStackedWaveformSimulator
(
Double_t
sampleRate,
PndEmcAbsPulseshape
* pulseShape);
26
virtual
~PndEmcFullStackedWaveformSimulator
();
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
; }
35
virtual
PndEmcWaveform
*
Get1GevWaveform
() {
return
f1GeVWaveform
; };
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);
44
Double_t
CalcSingleWaveForTime
(
Double_t
absoluteTime,
Double_t
energy
,
Double_t
pulseTime);
45
46
private
:
47
// don't allow copying (-Weffc++)
48
PndEmcFullStackedWaveformSimulator
(
const
PndEmcFullStackedWaveformSimulator
&);
// no implementation
49
PndEmcFullStackedWaveformSimulator
&
operator=
(
const
PndEmcFullStackedWaveformSimulator
&);
// no implementation
50
51
private
:
52
Double_t
fSamplingBeforeFirstPulse
;
53
Double_t
fSamplingAfterLastPulse
;
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
56
PndEmcAbsPulseshape
*
fPulseshape
;
57
58
Double_t
fScale
;
59
PndEmcWaveform
*
f1GeVWaveform
;
60
61
Double_t
fPulseRiseTime
;
62
63
Double_t
fActiveTimeIncrement
;
64
65
66
ClassDef
(
PndEmcFullStackedWaveformSimulator
, 1);
67
};
68
69
#endif
PndEmcFullStackedWaveformSimulator::f1GeVWaveform
PndEmcWaveform * f1GeVWaveform
Definition:
PndEmcFullStackedWaveformSimulator.h:59
PndEmcFullStackedWaveformSimulator
Waveform simulator.
Definition:
PndEmcFullStackedWaveformSimulator.h:21
PndEmcFullStackedWaveformSimulator::CalcWaveForTime
virtual Double_t CalcWaveForTime(Double_t absoluteTime, PndEmcWaveformData *wfData)
Calculate pulse value at given time.
Definition:
PndEmcFullStackedWaveformSimulator.cxx:164
PndEmcFullStackedWaveformSimulator::operator=
PndEmcFullStackedWaveformSimulator & operator=(const PndEmcFullStackedWaveformSimulator &)
PndEmcFullStackedWaveformSimulator::Get1GevWaveform
virtual PndEmcWaveform * Get1GevWaveform()
Definition:
PndEmcFullStackedWaveformSimulator.h:35
PndEmcFullStackedWaveformSimulator::MakeWaveform
virtual PndEmcWaveform * MakeWaveform(PndEmcWaveformData *wfData, TClonesArray *arrayToStore=NULL)
Create PndEmcWaveform.
Definition:
PndEmcFullStackedWaveformSimulator.cxx:184
PndEmcFullStackedWaveformSimulator::fActiveTimeIncrement
Double_t fActiveTimeIncrement
Definition:
PndEmcFullStackedWaveformSimulator.h:63
PndEmcFullStackedWaveformSimulator::GetPulseRiseTime
virtual Double_t GetPulseRiseTime()
Definition:
PndEmcFullStackedWaveformSimulator.h:37
PndEmcFullStackedWaveformSimulator::CalcSingleWaveForTime
Double_t CalcSingleWaveForTime(Double_t absoluteTime, Double_t energy, Double_t pulseTime)
Return pulse at given time and for given energy.
Definition:
PndEmcFullStackedWaveformSimulator.cxx:152
PndEmcFullStackedWaveformSimulator::fPulseshape
PndEmcAbsPulseshape * fPulseshape
Definition:
PndEmcFullStackedWaveformSimulator.h:56
PndEmcFullStackedWaveformSimulator::~PndEmcFullStackedWaveformSimulator
virtual ~PndEmcFullStackedWaveformSimulator()
Definition:
PndEmcFullStackedWaveformSimulator.cxx:27
PndEmcAbsWaveformSimulator
Abstract base class for waveform simulator.
Definition:
PndEmcAbsWaveformSimulator.h:25
PndEmcFullStackedWaveformSimulator::GetAbsoluteTimeInterval
virtual void GetAbsoluteTimeInterval(PndEmcWaveformData *wfData, Double_t &startTime, Double_t &activeTime)
Get time interval for which the signal is above the cutoff.
Definition:
PndEmcFullStackedWaveformSimulator.cxx:126
PndEmcFullStackedWaveformSimulator::fCutoff
Double_t fCutoff
Definition:
PndEmcFullStackedWaveformSimulator.h:54
Double_t
Double_t
Definition:
SimCompleteLinkDef.h:6
PndEmcFullStackedWaveformSimulator::ClassDef
ClassDef(PndEmcFullStackedWaveformSimulator, 1)
PndEmcFullStackedWaveformSimulator::GetTimeBeforeFirstHit
virtual Double_t GetTimeBeforeFirstHit(PndEmcWaveformData *)
Definition:
PndEmcFullStackedWaveformSimulator.h:32
PndEmcFullStackedWaveformSimulator::Init
virtual void Init(Double_t samplingBeforeFirstPulse, Double_t samplingAfterLastPulse, Double_t cutoff, Double_t activeTimeIncrement)
Init the simulator.
Definition:
PndEmcFullStackedWaveformSimulator.cxx:41
PndEmcWaveform
represents a simulated waveform in an emc crystal
Definition:
PndEmcWaveform.h:56
PndEmcFullStackedWaveformSimulator::MakeSingleWaveform
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.
Definition:
PndEmcFullStackedWaveformSimulator.cxx:231
PndEmcAbsWaveformSimulator.h
PndEmcFullStackedWaveformSimulator::fPulseRiseTime
Double_t fPulseRiseTime
total rising time of pulse in ns
Definition:
PndEmcFullStackedWaveformSimulator.h:61
PndEmcAbsPulseshape
pulseshape interface
Definition:
PndEmcAbsPulseshape.h:25
PndEmcFullStackedWaveformSimulator::fSamplingAfterLastPulse
Double_t fSamplingAfterLastPulse
in ns. additional time interval after waveform falls below cutOff value
Definition:
PndEmcFullStackedWaveformSimulator.h:53
PndEmcFullStackedWaveformSimulator::GetScale
virtual Double_t GetScale()
Definition:
PndEmcFullStackedWaveformSimulator.h:34
PndEmcFullStackedWaveformSimulator::fScale
Double_t fScale
Height of 1GeV pulse.
Definition:
PndEmcFullStackedWaveformSimulator.h:58
PndEmcWaveformData
represents a simulated waveform in an emc crystal, used by PndEmcFWEndcapTimebasedWaveforms ...
Definition:
PndEmcWaveformData.h:23
PndEmcFullStackedWaveformSimulator::fSamplingBeforeFirstPulse
Double_t fSamplingBeforeFirstPulse
in ns. additional time interval before waveform starts
Definition:
PndEmcFullStackedWaveformSimulator.h:52
PndEmcFullStackedWaveformSimulator::PndEmcFullStackedWaveformSimulator
PndEmcFullStackedWaveformSimulator()
Definition:
PndEmcFullStackedWaveformSimulator.cxx:18
energy
Double_t energy
Definition:
plot_dirc.C:15
Generated on Sun Aug 18 2019 03:01:21 for FairRoot/PandaRoot by
1.8.8