ATLAS Offline Software
Loading...
Searching...
No Matches
PixelModuleData.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
10
11#ifndef PIXELMODULEDATA_H
12#define PIXELMODULEDATA_H
13
16#include <iosfwd>
17#include <vector>
18#include <string>
19
20
22{
23 public:
24 // stream insertion
25 friend std::ostream & operator << (std::ostream &out, const PixelModuleData &c);
26 friend std::istream & operator >> (std::istream &in, PixelModuleData &c);
27
28 void setDefaultBarrelAnalogThreshold(const std::vector<int> &barrelAnalogThreshold);
29 void setDefaultEndcapAnalogThreshold(const std::vector<int> &endcapAnalogThreshold);
30 void setDefaultDBMAnalogThreshold(const std::vector<int> &DBMAnalogThreshold);
31 int getDefaultAnalogThreshold(int barrel_ec, int layer) const;
32
33 void setDefaultBarrelAnalogThresholdSigma(const std::vector<int> &barrelAnalogThresholdSigma);
34 void setDefaultEndcapAnalogThresholdSigma(const std::vector<int> &endcapAnalogThresholdSigma);
35 void setDefaultDBMAnalogThresholdSigma(const std::vector<int> &DBMAnalogThresholdSigma);
36 int getDefaultAnalogThresholdSigma(int barrel_ec, int layer) const;
37
38 void setDefaultBarrelAnalogThresholdNoise(const std::vector<int> &barrelAnalogThresholdNoise);
39 void setDefaultEndcapAnalogThresholdNoise(const std::vector<int> &endcapAnalogThresholdNoise);
40 void setDefaultDBMAnalogThresholdNoise(const std::vector<int> &DBMAnalogThresholdNoise);
41 int getDefaultAnalogThresholdNoise(int barrel_ec, int layer) const;
42
43 void setDefaultBarrelInTimeThreshold(const std::vector<int> &barrelInTimeThreshold);
44 void setDefaultEndcapInTimeThreshold(const std::vector<int> &endcapInTimeThreshold);
45 void setDefaultDBMInTimeThreshold(const std::vector<int> &DBMInTimeThreshold);
46 int getDefaultInTimeThreshold(int barrel_ec, int layer) const;
47
48 void setBarrelToTThreshold(const std::vector<int> &barrelToTThreshold);
49 void setEndcapToTThreshold(const std::vector<int> &endcapToTThreshold);
50 void setDBMToTThreshold(const std::vector<int> &DBMToTThreshold);
51 int getToTThreshold(int barrel_ec, int layer) const;
52
53 void setBarrelCrossTalk(const std::vector<double> &barrelCrossTalk);
54 void setEndcapCrossTalk(const std::vector<double> &endcapCrossTalk);
55 void setDBMCrossTalk(const std::vector<double> &DBMCrossTalk);
56 double getCrossTalk(int barrel_ec, int layer) const;
57
58 void setBarrelThermalNoise(const std::vector<double> &barrelThermalNoise);
59 void setEndcapThermalNoise(const std::vector<double> &endcapThermalNoise);
60 void setDBMThermalNoise(const std::vector<double> &DBMThermalNoise);
61 double getThermalNoise(int barrel_ec, int layer) const;
62
63 void setBarrelNoiseOccupancy(const std::vector<double> &barrelNoiseOccupancy);
64 void setEndcapNoiseOccupancy(const std::vector<double> &endcapNoiseOccupancy);
65 void setDBMNoiseOccupancy(const std::vector<double> &DBMNoiseOccupancy);
66 double getNoiseOccupancy(int barrel_ec, int layer) const;
67
68 void setBarrelDisableProbability(const std::vector<double> &barrelDisableProbability);
69 void setEndcapDisableProbability(const std::vector<double> &endcapDisableProbability);
70 void setDBMDisableProbability(const std::vector<double> &DBMDisableProbability);
71 double getDisableProbability(int barrel_ec, int layer) const;
72
73 void setBarrelNoiseShape(const std::vector<std::vector<float>> &barrelNoiseShape);
74 void setEndcapNoiseShape(const std::vector<std::vector<float>> &endcapNoiseShape);
75 void setDBMNoiseShape(const std::vector<std::vector<float>> &DBMNoiseShape);
76 const std::vector<float> &getNoiseShape(int barrel_ec, int layer) const;
77 void setFEI3BarrelLatency(const std::vector<int> &FEI3BarrelLatency);
78 void setFEI3EndcapLatency(const std::vector<int> &FEI3EndcapLatency);
79 int getFEI3Latency(int barrel_ec, int layer) const;
80
81 void setFEI3BarrelTimingSimTune(const std::vector<int> &FEI3BarrelTimingSimTune);
82 void setFEI3EndcapTimingSimTune(const std::vector<int> &FEI3EndcapTimingSimTune);
83 int getFEI3TimingSimTune(int barrel_ec, int layer) const;
84 void setBLayerTimingIndex(const std::vector<float> &BLayerTimingIndex);
85 void setLayer1TimingIndex(const std::vector<float> &Layer1TimingIndex);
86 void setLayer2TimingIndex(const std::vector<float> &Layer2TimingIndex);
87 void setEndcap1TimingIndex(const std::vector<float> &Endcap1TimingIndex);
88 void setEndcap2TimingIndex(const std::vector<float> &Endcap2TimingIndex);
89 void setEndcap3TimingIndex(const std::vector<float> &Endcap3TimingIndex);
90 void setBLayerTimingProbability(const std::vector<float> &BLayerTimingProbability);
91 void setLayer1TimingProbability(const std::vector<float> &Layer1TimingProbability);
92 void setLayer2TimingProbability(const std::vector<float> &Layer2TimingProbability);
93 void setEndcap1TimingProbability(const std::vector<float> &Endcap1TimingProbability);
94 void setEndcap2TimingProbability(const std::vector<float> &Endcap2TimingProbability);
95 void setEndcap3TimingProbability(const std::vector<float> &Endcap3TimingProbability);
96 std::vector<float> getTimingIndex(int barrel_ec, int layer) const;
97 std::vector<float> getTimingProbability(int barrel_ec, int layer, int eta) const;
98
99 // Charge calibration parameters
100 void setDefaultQ2TotA(float paramA);
101 void setDefaultQ2TotE(float paramE);
102 void setDefaultQ2TotC(float paramC);
103 float getDefaultQ2TotA() const;
104 float getDefaultQ2TotE() const;
105 float getDefaultQ2TotC() const;
106
107 void setPIXLinearExtrapolation(bool doLinearExtrapolation);
108 bool getPIXLinearExtrapolation() const;
109
110 // DCS parameters
111 void setDefaultBiasVoltage(float biasVoltage);
112 float getDefaultBiasVoltage() const;
113
114 // Radiation damage fluence maps
115 void setFluenceLayer(const std::vector<double> &fluenceLayer);
116 const std::vector<double> &getFluenceLayer() const;
117
118 void setRadSimFluenceMapList(const std::vector<std::string> &radSimFluenceMapList);
119 const std::vector<std::string> &getRadSimFluenceMapList() const;
120
121 void setFluenceLayer3D(const std::vector<double> &fluenceLayer);
122 const std::vector<double> &getFluenceLayer3D() const;
123
124 void setRadSimFluenceMapList3D(const std::vector<std::string> &radSimFluenceMapList3D);
125 const std::vector<std::string> &getRadSimFluenceMapList3D() const;
126
127 // Cabling parameters
128 void setCablingMapToFile(bool cablingMapToFile);
129 bool getCablingMapToFile() const;
130
131 void setCablingMapFileName(const std::string &cablingMapFileName);
132 const std::string &getCablingMapFileName() const;
133
134
135 private:
136 //defaults are for RUN2 2015/2016
137 std::vector<int> m_defaultBarrelAnalogThreshold{-1,-1,-1,-1};
138 std::vector<int> m_defaultEndcapAnalogThreshold{-1,-1,-1};
139 std::vector<int> m_defaultDBMAnalogThreshold{-1,-1,-1};
140 //
141 std::vector<int> m_defaultBarrelAnalogThresholdSigma{45,35,30,30};
142 std::vector<int> m_defaultEndcapAnalogThresholdSigma{30,30,30};
143 std::vector<int> m_defaultDBMAnalogThresholdSigma{70,70,70};
144 //
145 std::vector<int> m_defaultBarrelAnalogThresholdNoise{130,150,160,160};
146 std::vector<int> m_defaultEndcapAnalogThresholdNoise{150,150,150};
147 std::vector<int> m_defaultDBMAnalogThresholdNoise{190,190,190};
148 //
149 std::vector<int> m_defaultBarrelInTimeThreshold{2000,5000,5000,5000};
150 std::vector<int> m_defaultEndcapInTimeThreshold{5000,5000,5000};
151 std::vector<int> m_defaultDBMInTimeThreshold{1200,1200,1200};
152 //
153 std::vector<int> m_barrelToTThreshold{-1, 5, 5, 5};
154 std::vector<int> m_endcapToTThreshold{ 5, 5, 5};
155 std::vector<int> m_DBMToTThreshold{-1,-1,-1};
156 //
157 std::vector<double> m_barrelCrossTalk{0.30,0.12,0.12,0.12};
158 std::vector<double> m_endcapCrossTalk{0.06,0.06,0.06};
159 std::vector<double> m_DBMCrossTalk{0.06,0.06,0.06};
160 //
161 std::vector<double> m_barrelThermalNoise{160.0,160.0,160.0,160.0};
162 std::vector<double> m_endcapThermalNoise{160.0,160.0,160.0};
163 std::vector<double> m_DBMThermalNoise{160.0,160.0,160.0};
164 //
165 std::vector<double> m_barrelNoiseOccupancy{5e-8,5e-8,5e-8,5e-8};
166 std::vector<double> m_endcapNoiseOccupancy{5e-8,5e-8,5e-8};
167 std::vector<double> m_DBMNoiseOccupancy{5e-8,5e-8,5e-8};
168 //
169 std::vector<double> m_barrelDisableProbability{9e-3,9e-3,9e-3,9e-3};
170 std::vector<double> m_endcapDisableProbability{9e-3,9e-3,9e-3};
171 std::vector<double> m_DBMDisableProbability{9e-3,9e-3,9e-3};
172 //
173 const std::vector<float> m_BLayerNoiseShape{0.0, 0.0, 0.0, 0.0, 0.2204, 0.5311, 0.7493, 0.8954, 0.9980, 1.0};
174 const std::vector<float> m_PixNoiseShape{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2418, 0.4397, 0.5858, 0.6949, 0.7737, 0.8414, 0.8959, 0.9414, 0.9828, 1.0};
175 const std::vector<float> m_IBLNoiseShape{0.0, 0.0330, 0.0, 0.3026, 0.5019, 0.6760, 0.8412, 0.9918, 0.9918, 0.9918, 0.9918, 0.9918, 0.9918, 0.9918, 0.9918, 0.9918, 1.0};
179 //
180 std::vector<int> m_FEI3BarrelLatency{0,151,256,256};
181 std::vector<int> m_FEI3EndcapLatency{256,256,256};
182
183 std::vector<int> m_FEI3BarrelTimingSimTune{-1,2015,2015,2015};
184 std::vector<int> m_FEI3EndcapTimingSimTune{2015,2015,2015};
185
186 std::vector<float> m_BLayerTimingIndex{0.0};
187 std::vector<float> m_BLayerTimingProbability{0.0};
188
189 std::vector<float> m_Layer1TimingIndex{0.0};
190 std::vector<float> m_Layer1TimingProbability{0.0};
191
192 std::vector<float> m_Layer2TimingIndex{0.0};
193 std::vector<float> m_Layer2TimingProbability{0.0};
194
195 std::vector<float> m_Endcap1TimingIndex{0.0};
196 std::vector<float> m_Endcap1TimingProbability{0.0};
197
198 std::vector<float> m_Endcap2TimingIndex{0.0};
199 std::vector<float> m_Endcap2TimingProbability{0.0};
200
201 std::vector<float> m_Endcap3TimingIndex{0.0};
202 std::vector<float> m_Endcap3TimingProbability{0.0};
203
204 float m_paramA{70.2f};
205 float m_paramE{-3561.25f};
206 float m_paramC{26000.0f};
207 //default should not matter, but for ITk algorithms might cause problems
209
210 float m_biasVoltage{150.f};
211
212
213 std::vector<double> m_fluenceLayer{0.80e14, 1.61e14, 0.71e14, 0.48e14};
214 std::vector<std::string> m_radSimFluenceMapList{"PixelDigitization/maps_IBL_PL_80V_fl0_8e14.root",
215 "PixelDigitization/maps_PIX_350V_fl1_61e14.root",
216 "PixelDigitization/maps_PIX_200V_fl0_71e14.root",
217 "PixelDigitization/maps_PIX_150V_fl0_48e14.root"};
218
219 std::vector<double> m_fluenceLayer3D{5.0e15};
220 std::vector<std::string> m_radSimFluenceMapList3D{"PixelDigitization/TCAD_IBL_3Dsensors_efields/phi_5e15_160V.root"};
221
223 std::string m_cablingMapFileName{"PixelCabling/Pixels_Atlas_IdMapping_2016.dat"};
224
225};
226
227CLASS_DEF( PixelModuleData , 345932873 , 1 )
228
230
231#endif
Scalar eta() const
pseudorapidity method
Hold mappings of ranges to condition objects.
#define CONDCONT_DEF(...)
Definition CondCont.h:1413
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
std::vector< double > m_DBMCrossTalk
std::vector< double > m_DBMNoiseOccupancy
std::vector< int > m_FEI3EndcapTimingSimTune
std::vector< int > m_defaultDBMAnalogThreshold
void setDefaultEndcapAnalogThreshold(const std::vector< int > &endcapAnalogThreshold)
int getFEI3Latency(int barrel_ec, int layer) const
std::vector< int > m_FEI3BarrelLatency
void setBarrelNoiseOccupancy(const std::vector< double > &barrelNoiseOccupancy)
void setCablingMapToFile(bool cablingMapToFile)
const std::vector< float > & getNoiseShape(int barrel_ec, int layer) const
void setLayer2TimingIndex(const std::vector< float > &Layer2TimingIndex)
std::vector< float > m_Endcap2TimingIndex
std::vector< int > m_FEI3BarrelTimingSimTune
std::vector< std::vector< float > > m_DBMNoiseShape
void setBarrelThermalNoise(const std::vector< double > &barrelThermalNoise)
int getDefaultInTimeThreshold(int barrel_ec, int layer) const
std::vector< float > m_Layer1TimingIndex
void setRadSimFluenceMapList3D(const std::vector< std::string > &radSimFluenceMapList3D)
void setBarrelNoiseShape(const std::vector< std::vector< float > > &barrelNoiseShape)
void setLayer1TimingIndex(const std::vector< float > &Layer1TimingIndex)
std::vector< float > m_Endcap3TimingProbability
const std::vector< std::string > & getRadSimFluenceMapList3D() const
void setDefaultEndcapAnalogThresholdSigma(const std::vector< int > &endcapAnalogThresholdSigma)
const std::string & getCablingMapFileName() const
std::vector< int > m_defaultEndcapAnalogThresholdNoise
void setDefaultQ2TotE(float paramE)
void setEndcapCrossTalk(const std::vector< double > &endcapCrossTalk)
void setEndcapNoiseShape(const std::vector< std::vector< float > > &endcapNoiseShape)
void setDefaultDBMInTimeThreshold(const std::vector< int > &DBMInTimeThreshold)
void setEndcap2TimingIndex(const std::vector< float > &Endcap2TimingIndex)
void setRadSimFluenceMapList(const std::vector< std::string > &radSimFluenceMapList)
const std::vector< double > & getFluenceLayer() const
std::vector< double > m_barrelNoiseOccupancy
void setDBMThermalNoise(const std::vector< double > &DBMThermalNoise)
const std::vector< float > m_BLayerNoiseShape
void setDefaultDBMAnalogThreshold(const std::vector< int > &DBMAnalogThreshold)
void setCablingMapFileName(const std::string &cablingMapFileName)
void setFEI3BarrelLatency(const std::vector< int > &FEI3BarrelLatency)
std::vector< double > m_fluenceLayer3D
void setPIXLinearExtrapolation(bool doLinearExtrapolation)
std::string m_cablingMapFileName
friend std::istream & operator>>(std::istream &in, PixelModuleData &c)
int getFEI3TimingSimTune(int barrel_ec, int layer) const
std::vector< double > m_barrelDisableProbability
void setLayer1TimingProbability(const std::vector< float > &Layer1TimingProbability)
std::vector< int > m_defaultBarrelInTimeThreshold
void setDefaultBarrelAnalogThresholdSigma(const std::vector< int > &barrelAnalogThresholdSigma)
void setDBMToTThreshold(const std::vector< int > &DBMToTThreshold)
std::vector< float > m_Endcap2TimingProbability
std::vector< int > m_defaultEndcapAnalogThreshold
std::vector< int > m_defaultEndcapAnalogThresholdSigma
std::vector< float > m_Layer2TimingIndex
bool getCablingMapToFile() const
void setDefaultBarrelInTimeThreshold(const std::vector< int > &barrelInTimeThreshold)
std::vector< float > m_Endcap1TimingIndex
std::vector< double > m_endcapThermalNoise
std::vector< std::vector< float > > m_endcapNoiseShape
std::vector< int > m_defaultDBMInTimeThreshold
void setEndcap1TimingIndex(const std::vector< float > &Endcap1TimingIndex)
void setBarrelCrossTalk(const std::vector< double > &barrelCrossTalk)
int getDefaultAnalogThreshold(int barrel_ec, int layer) const
std::vector< double > m_endcapCrossTalk
void setFluenceLayer3D(const std::vector< double > &fluenceLayer)
void setDefaultQ2TotC(float paramC)
float getDefaultQ2TotA() const
void setDefaultQ2TotA(float paramA)
std::vector< int > m_defaultBarrelAnalogThresholdSigma
void setDefaultBarrelAnalogThresholdNoise(const std::vector< int > &barrelAnalogThresholdNoise)
void setFEI3BarrelTimingSimTune(const std::vector< int > &FEI3BarrelTimingSimTune)
void setFluenceLayer(const std::vector< double > &fluenceLayer)
std::vector< double > m_barrelThermalNoise
std::vector< int > m_FEI3EndcapLatency
void setEndcapThermalNoise(const std::vector< double > &endcapThermalNoise)
double getThermalNoise(int barrel_ec, int layer) const
std::vector< int > m_defaultDBMAnalogThresholdNoise
void setBLayerTimingIndex(const std::vector< float > &BLayerTimingIndex)
std::vector< double > m_endcapNoiseOccupancy
const std::vector< float > m_PixNoiseShape
std::vector< float > m_Endcap3TimingIndex
double getNoiseOccupancy(int barrel_ec, int layer) const
std::vector< float > m_Layer1TimingProbability
void setEndcap2TimingProbability(const std::vector< float > &Endcap2TimingProbability)
std::vector< std::string > m_radSimFluenceMapList3D
std::vector< double > m_DBMThermalNoise
std::vector< float > m_Endcap1TimingProbability
int getToTThreshold(int barrel_ec, int layer) const
void setDBMNoiseOccupancy(const std::vector< double > &DBMNoiseOccupancy)
std::vector< float > m_BLayerTimingIndex
void setDefaultBiasVoltage(float biasVoltage)
std::vector< float > getTimingProbability(int barrel_ec, int layer, int eta) const
void setDefaultDBMAnalogThresholdSigma(const std::vector< int > &DBMAnalogThresholdSigma)
std::vector< float > getTimingIndex(int barrel_ec, int layer) const
void setEndcap3TimingProbability(const std::vector< float > &Endcap3TimingProbability)
const std::vector< std::string > & getRadSimFluenceMapList() const
std::vector< std::vector< float > > m_barrelNoiseShape
std::vector< float > m_Layer2TimingProbability
void setEndcapToTThreshold(const std::vector< int > &endcapToTThreshold)
std::vector< std::string > m_radSimFluenceMapList
void setEndcap3TimingIndex(const std::vector< float > &Endcap3TimingIndex)
std::vector< int > m_endcapToTThreshold
void setEndcapNoiseOccupancy(const std::vector< double > &endcapNoiseOccupancy)
bool getPIXLinearExtrapolation() const
std::vector< double > m_endcapDisableProbability
void setFEI3EndcapLatency(const std::vector< int > &FEI3EndcapLatency)
std::vector< double > m_barrelCrossTalk
const std::vector< float > m_IBLNoiseShape
void setFEI3EndcapTimingSimTune(const std::vector< int > &FEI3EndcapTimingSimTune)
void setDefaultDBMAnalogThresholdNoise(const std::vector< int > &DBMAnalogThresholdNoise)
void setDefaultBarrelAnalogThreshold(const std::vector< int > &barrelAnalogThreshold)
std::vector< float > m_BLayerTimingProbability
void setDefaultEndcapAnalogThresholdNoise(const std::vector< int > &endcapAnalogThresholdNoise)
double getCrossTalk(int barrel_ec, int layer) const
std::vector< int > m_barrelToTThreshold
void setDBMCrossTalk(const std::vector< double > &DBMCrossTalk)
void setEndcapDisableProbability(const std::vector< double > &endcapDisableProbability)
int getDefaultAnalogThresholdNoise(int barrel_ec, int layer) const
float getDefaultQ2TotC() const
std::vector< int > m_defaultEndcapInTimeThreshold
std::vector< double > m_DBMDisableProbability
void setDefaultEndcapInTimeThreshold(const std::vector< int > &endcapInTimeThreshold)
std::vector< double > m_fluenceLayer
float getDefaultQ2TotE() const
std::vector< int > m_defaultBarrelAnalogThresholdNoise
void setLayer2TimingProbability(const std::vector< float > &Layer2TimingProbability)
void setEndcap1TimingProbability(const std::vector< float > &Endcap1TimingProbability)
double getDisableProbability(int barrel_ec, int layer) const
int getDefaultAnalogThresholdSigma(int barrel_ec, int layer) const
std::vector< int > m_DBMToTThreshold
void setBarrelDisableProbability(const std::vector< double > &barrelDisableProbability)
void setBLayerTimingProbability(const std::vector< float > &BLayerTimingProbability)
std::vector< int > m_defaultBarrelAnalogThreshold
void setDBMDisableProbability(const std::vector< double > &DBMDisableProbability)
void setBarrelToTThreshold(const std::vector< int > &barrelToTThreshold)
std::vector< int > m_defaultDBMAnalogThresholdSigma
float getDefaultBiasVoltage() const
friend std::ostream & operator<<(std::ostream &out, const PixelModuleData &c)
const std::vector< double > & getFluenceLayer3D() const
void setDBMNoiseShape(const std::vector< std::vector< float > > &DBMNoiseShape)