MarlinTPC  1.2.0
Public Member Functions | Protected Attributes | List of all members
marlintpc::ADCPulse Class Referenceabstract

A base class interface which holds the raw data of the pulse and represents the ADC and its shaping amplifier. More...

#include <ADCPulse.h>

Inheritance diagram for marlintpc::ADCPulse:
marlintpc::ALTROADCPulse marlintpc::GaussianADCPulse

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
 

Detailed Description

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

Member Function Documentation

virtual void marlintpc::ADCPulse::add ( double  startTime,
int  nElectrons 
)
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().

std::list< EVENT::TrackerRawData * > marlintpc::ADCPulse::getLCIORawData ( ) const
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().

virtual int marlintpc::ADCPulse::getStartBin ( ) const
inlinevirtual

< Returns the bin number of the first data bin in the pulse

References _startBin.

Referenced by marlintpc::TPCElectronicsProcessor::processEvent().

Member Data Documentation

double marlintpc::ADCPulse::_ADCChargeFactor
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().


The documentation for this class was generated from the following files: