4#ifndef SCT_DIGITIZATION_ITkStripFrontEnd_H
5#define SCT_DIGITIZATION_ITkStripFrontEnd_H
13#include "GaudiKernel/ToolHandle.h"
24 class HepRandomEngine;
64 static float meanValue(std::vector<float>& calibDataVect) ;
73 FloatProperty
m_NoiseBarrel{
this,
"NoiseBarrel", 1500.0,
"Noise factor, Barrel (in the case of no use of calibration data)"};
74 FloatProperty
m_NoiseBarrel3{
this,
"NoiseBarrel3", 1541.0,
"Noise factor, Barrel3 (in the case of no use of calibration data)"};
75 FloatProperty
m_NoiseInners{
this,
"NoiseInners", 1090.0,
"Noise factor, EC Inners (in the case of no use of calibration data)"};
76 FloatProperty
m_NoiseMiddles{
this,
"NoiseMiddles", 1557.0,
"Noise factor, EC Middles (in the case of no use of calibration data)"};
77 FloatProperty
m_NoiseShortMiddles{
this,
"NoiseShortMiddles", 940.0,
"Noise factor, EC Short Middles (in the case of no use of calibration data)"};
78 FloatProperty
m_NoiseOuters{
this,
"NoiseOuters", 1618.0,
"Noise factor, Ec Outers (in the case of no use of calibration data)"};
79 DoubleProperty
m_NOBarrel{
this,
"NOBarrel", 1.5e-5,
"Noise factor, Barrel (in the case of no use of calibration data)"};
80 DoubleProperty
m_NOBarrel3{
this,
"NOBarrel3", 2.1e-5,
"Noise factor, Barrel3 (in the case of no use of calibration data)"};
81 DoubleProperty
m_NOInners{
this,
"NOInners", 5.0e-9,
"Noise Occupancy, EC Inners (in the case of no use of calibration data)"};
82 DoubleProperty
m_NOMiddles{
this,
"NOMiddles", 2.7e-5,
"Noise Occupancy, EC Middles (in the case of no use of calibration data)"};
83 DoubleProperty
m_NOShortMiddles{
this,
"NOShortMiddles", 2.0e-9,
"Noise Occupancy, EC Short Middles (in the case of no use of calibration data)"};
84 DoubleProperty
m_NOOuters{
this,
"NOOuters", 3.5e-5,
"Noise Occupancy, Ec Outers (in the case of no use of calibration data)"};
85 BooleanProperty
m_NoiseOn{
this,
"NoiseOn",
true,
"To know if noise is on or off when using calibration data"};
86 BooleanProperty
m_analogueNoiseOn{
this,
"AnalogueNoiseOn",
true,
"To know if analogue noise is on or off"};
87 FloatProperty
m_GainRMS{
this,
"GainRMS", 0.031,
"Gain spread parameter within the strips for a given Chip gain"};
88 FloatProperty
m_Ospread{
this,
"Ospread", 0.0001,
"offset spread within the strips for a given Chip offset"};
89 FloatProperty
m_OGcorr{
this,
"OffsetGainCorrelation", 0.00001,
"Gain/offset correlation for the strips"};
90 FloatProperty
m_Threshold{
this,
"Threshold", 1.0,
"Threshold"};
92 ShortProperty
m_data_compression_mode{
this,
"DataCompressionMode",
Edge_01X,
"Front End Data Compression Mode: 1 is level mode X1X (default), 2 is edge mode 01X, 3 is any hit mode (1XX|X1X|XX1)"};
93 ShortProperty
m_data_readout_mode{
this,
"DataReadOutMode",
Condensed,
"Front End Data Read out mode Mode: 0 is condensed mode and 1 is expanded mode"};
94 ToolHandle<IAmplifier>
m_strip_amplifier{
this,
"ITkStripAmp",
"ITkStripAmp",
"Handle the Amplifier tool"};
99 StringProperty
m_detMgrName{
this,
"DetectorManager",
"SCT",
"Name of DetectorManager to retrieve"};
char data[hepevt_bytes_allocation_ATLAS]
StringProperty m_detMgrName
const InDetDD::SCT_DetectorManager * m_ITkStripMgr
Handle to SCT detector manager, also valid for ITkStrips.
FloatProperty m_NoiseMiddles
void initVectors(int strips, ITkStripFrontEndData &data) const
void doSignalChargeForHits(SiChargedDiodeCollection &collectione, ITkStripFrontEndData &data, const int &stripMax) const
void doThresholdCheckForRealHits(SiChargedDiodeCollection &collectione, ITkStripFrontEndData &data, const int &stripMax) const
BooleanProperty m_NoiseOn
ITkStripFrontEnd(const std::string &type, const std::string &name, const IInterface *parent)
constructor
FloatProperty m_NoiseOuters
DoubleProperty m_NOBarrel3
FloatProperty m_NoiseShortMiddles
BooleanProperty m_analogueNoiseOn
DoubleProperty m_NOBarrel
FloatProperty m_NoiseInners
ShortProperty m_data_compression_mode
DoubleProperty m_NOMiddles
const SCT_ID * m_ITkStripId
Handle to SCT ID helper also valid for ITkStrips.
virtual ~ITkStripFrontEnd()=default
Destructor.
FloatProperty m_Threshold
DoubleProperty m_NOOuters
static float meanValue(std::vector< float > &calibDataVect)
ShortProperty m_data_readout_mode
ToolHandle< IAmplifier > m_strip_amplifier
Handle the Amplifier tool.
FloatProperty m_NoiseBarrel3
FloatProperty m_timeOfThreshold
DoubleProperty m_NOShortMiddles
FloatProperty m_NoiseBarrel
DoubleProperty m_NOInners
virtual StatusCode initialize() override
AlgTool initialize.
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated SCT in...
This is an Identifier helper class for the SCT subdetector.
const std::string process
simulation of the ITk Strips front-end electronics working as a SiPreDigitsProcessor models response ...
std::vector< int > m_StripHitsOnWafer
Info about which strips are above threshold.
std::vector< float > m_GainFactor
generate gain per channel (added to the gain per chip from calib data)
std::array< std::vector< float >, 3 > m_Analogue
To hold the noise and amplifier response.