|
ATLAS Offline Software
|
Go to the documentation of this file.
27 #ifndef SCT_DIGITIZATION_SCT_FRONTEND_H
28 #define SCT_DIGITIZATION_SCT_FRONTEND_H
39 #include "GaudiKernel/ToolHandle.h"
50 class SCT_DetectorManager;
54 class HepRandomEngine;
102 static float meanValue(std::vector<float>& calibDataVect) ;
110 FloatProperty
m_NoiseBarrel{
this,
"NoiseBarrel", 1500.0,
"Noise factor, Barrel (in the case of no use of calibration data)"};
111 FloatProperty
m_NoiseBarrel3{
this,
"NoiseBarrel3", 1541.0,
"Noise factor, Barrel3 (in the case of no use of calibration data)"};
112 FloatProperty
m_NoiseInners{
this,
"NoiseInners", 1090.0,
"Noise factor, EC Inners (in the case of no use of calibration data)"};
113 FloatProperty
m_NoiseMiddles{
this,
"NoiseMiddles", 1557.0,
"Noise factor, EC Middles (in the case of no use of calibration data)"};
114 FloatProperty
m_NoiseShortMiddles{
this,
"NoiseShortMiddles", 940.0,
"Noise factor, EC Short Middles (in the case of no use of calibration data)"};
115 FloatProperty
m_NoiseOuters{
this,
"NoiseOuters", 1618.0,
"Noise factor, Ec Outers (in the case of no use of calibration data)"};
116 DoubleProperty
m_NOBarrel{
this,
"NOBarrel", 1.5e-5,
"Noise factor, Barrel (in the case of no use of calibration data)"};
117 DoubleProperty
m_NOBarrel3{
this,
"NOBarrel3", 2.1e-5,
"Noise factor, Barrel3 (in the case of no use of calibration data)"};
118 DoubleProperty
m_NOInners{
this,
"NOInners", 5.0e-9,
"Noise Occupancy, EC Inners (in the case of no use of calibration data)"};
119 DoubleProperty
m_NOMiddles{
this,
"NOMiddles", 2.7e-5,
"Noise Occupancy, EC Middles (in the case of no use of calibration data)"};
120 DoubleProperty
m_NOShortMiddles{
this,
"NOShortMiddles", 2.0e-9,
"Noise Occupancy, EC Short Middles (in the case of no use of calibration data)"};
121 DoubleProperty
m_NOOuters{
this,
"NOOuters", 3.5e-5,
"Noise Occupancy, Ec Outers (in the case of no use of calibration data)"};
122 BooleanProperty
m_NoiseOn{
this,
"NoiseOn",
true,
"To know if noise is on or off when using calibration data"};
123 BooleanProperty
m_analogueNoiseOn{
this,
"AnalogueNoiseOn",
true,
"To know if analogue noise is on or off"};
124 FloatProperty
m_GainRMS{
this,
"GainRMS", 0.031,
"Gain spread parameter within the strips for a given Chip gain"};
125 FloatProperty
m_Ospread{
this,
"Ospread", 0.0001,
"offset spread within the strips for a given Chip offset"};
126 FloatProperty
m_OGcorr{
this,
"OffsetGainCorrelation", 0.00001,
"Gain/offset correlation for the strips"};
129 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)"};
130 ShortProperty
m_data_readout_mode{
this,
"DataReadOutMode",
Condensed,
"Front End Data Read out mode Mode: 0 is condensed mode and 1 is expanded mode"};
131 BooleanProperty
m_useCalibData{
this,
"UseCalibData",
true,
"Flag to set the use of calibration data for noise, Gain,offset etc."};
133 ToolHandle<IAmplifier>
m_sct_amplifier{
this,
"SCT_Amp",
"SCT_Amp",
"Handle the Amplifier tool"};
134 ToolHandle<ISCT_ReadCalibChipDataTool>
m_ReadCalibChipDataTool{
this,
"SCT_ReadCalibChipDataTool",
"SCT_ReadCalibChipDataTool",
"Tool to retrieve chip calibration information"};
140 StringProperty
m_detMgrName{
this,
"DetectorManager",
"SCT",
"Name of DetectorManager to retrieve"};
145 #endif //SCT_FRONTEND_H
FloatProperty m_timeOfThreshold
simulation of the SCT front-end electronics working as a SiPreDigitsProcessor models response of ABCD...
char data[hepevt_bytes_allocation_ATLAS]
ShortProperty m_data_readout_mode
std::vector< int > m_StripHitsOnWafer
Info about which strips are above threshold.
BooleanProperty m_NoiseOn
ShortProperty m_data_compression_mode
StatusCode randomNoise(SiChargedDiodeCollection &collection, const Identifier &moduleId, CLHEP::HepRandomEngine *rndmEngine, SCT_FrontEndData &data, const int &stripMax) const
ToolHandle< ISCT_ReadCalibChipDataTool > m_ReadCalibChipDataTool
Handle to the Calibration ConditionsTool.
static float meanValue(std::vector< float > &calibDataVect)
virtual void process(SiChargedDiodeCollection &collection, CLHEP::HepRandomEngine *rndmEngine) const override
process the collection of pre digits: needed to go through all single-strip pre-digits to calculate t...
std::vector< float > m_GainFactor
generate gain per channel (added to the gain per chip from calib data)
const SCT_ID * m_sct_id
Handle to SCT ID helper.
FloatProperty m_NoiseInners
StatusCode prepareGainAndOffset(SiChargedDiodeCollection &collection, const Identifier &moduleId, CLHEP::HepRandomEngine *rndmEngine, SCT_FrontEndData &data, const int &stripMax) const
DoubleProperty m_NOMiddles
StatusCode initVectors(int strips, SCT_FrontEndData &data) const
SCT_FrontEnd(const std::string &type, const std::string &name, const IInterface *parent)
constructor
FloatProperty m_Threshold
virtual ~SCT_FrontEnd()=default
Destructor.
DoubleProperty m_NOBarrel3
ToolHandle< IAmplifier > m_sct_amplifier
Handle the Amplifier tool.
::StatusCode StatusCode
StatusCode definition for legacy code.
StatusCode addNoiseDiode(SiChargedDiodeCollection &collection, int strip, int tbin) const
FloatProperty m_NoiseShortMiddles
BooleanProperty m_useCalibData
StatusCode doThresholdCheckForCrosstalkHits(SiChargedDiodeCollection &collection, SCT_FrontEndData &data, const int &stripMax) const
FloatProperty m_NoiseBarrel
virtual StatusCode initialize() override
AlgTool InterfaceID.
StringProperty m_detMgrName
BooleanProperty m_analogueNoiseOn
FloatProperty m_NoiseMiddles
DoubleProperty m_NOBarrel
virtual StatusCode finalize() override
AlgTool finalize.
DoubleProperty m_NOOuters
DoubleProperty m_NOInners
StatusCode doThresholdCheckForRealHits(SiChargedDiodeCollection &collectione, SCT_FrontEndData &data, const int &stripMax) const
const InDetDD::SCT_DetectorManager * m_SCTdetMgr
Handle to SCT detector manager.
DoubleProperty m_NOShortMiddles
FloatProperty m_NoiseBarrel3
std::vector< double > m_Analogue[3]
To hold the noise and amplifier response.
StatusCode doSignalChargeForHits(SiChargedDiodeCollection &collectione, SCT_FrontEndData &data, const int &stripMax) const
FloatProperty m_NoiseOuters
StatusCode doClustering(SiChargedDiodeCollection &collection, SCT_FrontEndData &data, const int &stripMax) const