MarlinTPC
1.2.0
|
A base class interface which holds the raw data of the pulse and represents the ADC and its shaping amplifier. More...
#include <ADCPulse.h>
Public Member Functions | |
ADCPulse (double frequencyMHz, int ADCMaxValue, int threshold) | |
virtual double | getEndTime () const |
Get the end time of the last bin in the pulse (in ns) | |
virtual int | getStartBin () const |
virtual int | getChannelNumber () const |
Returns the channel number. | |
virtual int | getModuleID () const |
Returns the module ID. | |
virtual void | clear (int newChannelNumber, int modID=0, int noiseSwitch=0, double noiseLevel=0.0, double noiseWidth=0.0, double noiseCutoff=4.0) |
Clear the data vector, set startBin to -1, set the new channel number, set random noise parameters. | |
virtual void | add (double startTime, int nElectrons)=0 |
Add signal from charge (nElectrons) arriving. More... | |
virtual void | setJitterValues (std::map< int, double > timeJitter) |
clock jitter values for an event | |
virtual const std::vector < float > & | getRawDataVec () const |
Provides access to the raw data of the pulse. | |
virtual std::list < EVENT::TrackerRawData * > | getLCIORawData () const |
Returns a vector of TrackerRawData objects to be stored in an lcio file. More... | |
Protected Attributes | |
std::vector< float > | _rawData |
The raw data of the pulse, still in floats to avoid rounding errors. | |
double | _frequencyGHz |
Readout frequency of the ADC in GHz. | |
int | _ADCMaxValue |
The maximum of the dynamic range in ADC counts. | |
int | _startBin |
The bin number of the first entry in the data vector. | |
int | _channelNumber |
The channel in which the pulse is simulated. | |
int | _moduleID |
double | _ADCChargeFactor |
The factor to multiply the number of electron per bin to obtain. More... | |
float | _ADCThreshold |
The threshold of the ADC (in ADC counts) | |
bool | _addNoise |
whether to add noise to the ADC signal or not | |
double | _padNoise |
Central value of the pedestal width used to add noise to the ADC spectrum. | |
bool | _useJitter |
if clock jitter should be used | |
std::map< int, double > | _timeJitter |
clock jitter: map of zBin, jitter | |
A base class interface which holds the raw data of the pulse and represents the ADC and its shaping amplifier.
Implementations of specific electronics is done e.g. in GaussianADCPulse and ALTROADCPulse
|
pure virtual |
Add signal from charge (nElectrons) arriving.
at startTime
to the pulse
Implemented in marlintpc::GaussianADCPulse, and marlintpc::ALTROADCPulse.
Referenced by marlintpc::TPCElectronicsProcessor::processEvent().
|
virtual |
Returns a vector of TrackerRawData objects to be stored in an lcio file.
With the pointer to the object the calling code also gets the ownership. When converting to TrackerRawData all samples below the ADC threshold are removed and the signal is split into several pulses, so there are no empty samples. In addition, random noise can be added to the signal
References _ADCMaxValue, _ADCThreshold, _addNoise, _channelNumber, _padNoise, _rawData, and _startBin.
Referenced by marlintpc::TPCElectronicsProcessor::processEvent().
|
inlinevirtual |
< Returns the bin number of the first data bin in the pulse
References _startBin.
Referenced by marlintpc::TPCElectronicsProcessor::processEvent().
|
protected |
The factor to multiply the number of electron per bin to obtain.
the ADC counts. This is the calibration factor between the number of primary electrons and the sum of ADC counts the pulse. It's the same as the factor between the ADC value of the peak maximum and the number of electrons in the maximum bin
Referenced by marlintpc::ALTROADCPulse::add(), marlintpc::GaussianADCPulse::add(), marlintpc::ALTROADCPulse::ALTROADCPulse(), and marlintpc::GaussianADCPulse::GaussianADCPulse().