5#ifndef TRT_DIGITIZATION_TRTELECTRONICSPROCESSING_H
6#define TRT_DIGITIZATION_TRTELECTRONICSPROCESSING_H
9#include "GaudiKernel/ServiceHandle.h"
11#include "CLHEP/Random/RandomEngine.h"
67 const double& noiseamplitude,
69 CLHEP::HepRandomEngine* rndmEngine,
70 CLHEP::HepRandomEngine* elecNoiseRndmEngine,
71 double highthreshold = -1.0
75 void LTt0Shift (
int hitID,
int strawGasType );
115 const double& highthreshold);
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
Class containing parameters and settings used by TRT digitization.
Simulate TRT Electronics Noise For description of metod, see Thomas Kittelmanns PhD thesis chapters ...
Deposit(const double &e, const double &t)
Create deposit.
double energy() const
Get energy of deposit.
double time() const
Get time of deposit.
double m_lowThresholdEC[3]
void TabulateSignalShape()
Tabulate low and high level signal shapes from functions LowThresholdSignalShape() and HighThresholdS...
double getHighThreshold(int hitID, int strawGasType)
int * m_lowThresholdDiscriminator
Signal after discrimination.
void ProcessDeposits(const std::vector< Deposit > &, const int &hitID, TRTDigit &outdigit, double lowthreshold, const double &noiseamplitude, int strawGasType, CLHEP::HepRandomEngine *rndmEngine, CLHEP::HepRandomEngine *elecNoiseRndmEngine, double highthreshold=-1.0)
Process deposits in a straw.
int m_minWidthMinusSettlingTimeInBinWidths
Min.
std::atomic< bool > m_first
void Initialize()
Initialize constants.
int m_numberOfPostZeroBins
No.
std::vector< double > m_lowThresholdSignal
void DiscriminatorResponse(const double &lowthreshold, const double &highthreshold)
Simulate discriminator response.
~TRTElectronicsProcessing()
unsigned EncodeDigit() const
Encode 27 bit digit from discriminator response [8 low + 1 high + 8 low + 1 high + 8 low + 1 high]:
void HTt0Shift(int hitID)
double m_binWidth
Time interval corresponding to each internal bin.
TRTElectronicsProcessing(const TRTElectronicsProcessing &)
TRTElectronicsProcessing(const TRTDigSettings *digset, TRTElectronicsNoise *electronicsnoise)
std::vector< double > m_lowThresholdSignalShape[3]
int m_totalNumberOfBins
Total no.
TRTElectronicsNoise * m_pElectronicsNoise
void LTt0Shift(int hitID, int strawGasType)
double m_timeInterval
Time interval covered by digit [75 ns].
int m_discriminatorSettlingTimeInBinWidths
Discriminator settling time [bins].
void SignalShaping(int strawGasType)
Shape electron drift signal according to appropriate signal shapes.
int m_minDiscriminatorWidthInBinWidths
Min.
std::vector< double > m_highThresholdSignal
std::vector< double > m_highThresholdSignalShape[3]
TRTElectronicsProcessing & operator=(const TRTElectronicsProcessing &)
int m_discriminatorDeadTimeInBinWidths
Discriminator dead time [int.
int * m_highThresholdDiscriminator
Signal after discrimination.
int m_numberOfPreZeroBins
No.
double m_lowThresholdBar[3]
const TRTDigSettings * m_settings
double * m_energyDistribution