ATLAS Offline Software
Loading...
Searching...
No Matches
TRTElectronicsNoise.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TRT_DIGITIZATION_TRTELECTRONICSNOISE_H
6#define TRT_DIGITIZATION_TRTELECTRONICSNOISE_H
7
8#include "CLHEP/Random/RandomEngine.h"
9
10#include <vector>
11
12class TRTDigSettings;
13
19
20public:
25 CLHEP::HepRandomEngine *rndmEngine );
28
38 void getSamplesOfMaxLTOverNoiseAmp(std::vector<float>& maxLTOverNoiseAmp,
39 unsigned long nsamplings,
40 CLHEP::HepRandomEngine *rndmEngine);
41
58 void reinitElectronicsNoise(const unsigned int& numberOfDigitLengths
59 /*number of 75ns timeslices*/,
60 CLHEP::HepRandomEngine *rndmEngine);
61
63 void setElectronicsNoiseAmplitude(const double&);
64
73 void addElectronicsNoise(std::vector<double>& signal,
74 const double& noiseamplitude /*= 1.0*/,
75 CLHEP::HepRandomEngine *rndmEngine);
76
77private:
78
80
86
95 double getMax(unsigned int firstbinslowsignal,
96 unsigned int firstbinfastsignal,
97 const unsigned int& binsinwindow );
98
99 std::vector<double> m_noiseSignalShape;
100
105
106 std::vector<float> m_tmpArray;
107
109 unsigned int m_nbins_periodic;
110
121 double NoiseShape(const double& time) const;
122
123 std::vector<double> m_noisepars1;
124 std::vector<double> m_noisepars2;
125
126};
127
128#endif
Class containing parameters and settings used by TRT digitization.
TRTElectronicsNoise(const TRTDigSettings *, CLHEP::HepRandomEngine *rndmEngine)
Constructor: Calls tabulateNoiseSignalShape()
void getSamplesOfMaxLTOverNoiseAmp(std::vector< float > &maxLTOverNoiseAmp, unsigned long nsamplings, CLHEP::HepRandomEngine *rndmEngine)
From generated (and cached) noise samples, this function returns in vector maxLTOverNoiseAmp the maxi...
std::vector< double > m_noisepars2
Noise signal params 2 (t>15.5 ns)
std::vector< float > m_cachedFastNoiseAfterSignalShaping
Cached samples of electronics noise after signal shaping (fast input)
void addElectronicsNoise(std::vector< double > &signal, const double &noiseamplitude, CLHEP::HepRandomEngine *rndmEngine)
Add electronics noise to simulated signals in hit straws.
std::vector< double > m_noisepars1
Noise signal params 1 (t<15.5 ns)
void InitializeNoiseShaping()
Initialize signal shaping.
void reinitElectronicsNoise(const unsigned int &numberOfDigitLengths, CLHEP::HepRandomEngine *rndmEngine)
Re-initialize electronics noise table.
const TRTDigSettings * m_settings
void setElectronicsNoiseAmplitude(const double &)
Set electronics noise amplitude.
double NoiseShape(const double &time) const
Get parameterized signal shape for noise hits.
std::vector< double > m_noiseSignalShape
Tabulated noise signal shape.
~TRTElectronicsNoise()
Destructor.
void tabulateNoiseSignalShape()
Tabulate noise signal shape.
double getMax(unsigned int firstbinslowsignal, unsigned int firstbinfastsignal, const unsigned int &binsinwindow)
Get max amplitude of noise signal from weighted sum of fast and slow varying noise in period.
std::vector< float > m_tmpArray
Here to avoid repeated memory allocs.
std::vector< float > m_cachedSlowNoiseAfterSignalShaping
Cached samples of electronics noise after signal shaping (slow input)