ATLAS Offline Software
Loading...
Searching...
No Matches
PixelConfigCondAlg.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
10
11#ifndef PIXELCONFIGCONDALG
12#define PIXELCONFIGCONDALG
13
15#include "GaudiKernel/ToolHandle.h"
16
19
22
23#include "Gaudi/Property.h"
24#include "CLHEP/Units/SystemOfUnits.h"
25
27 public:
28 PixelConfigCondAlg(const std::string& name, ISvcLocator* pSvcLocator);
29
30 virtual StatusCode initialize() override final;
31 virtual StatusCode execute(const EventContext& ctx) const override final;
32
33 private:
34 // Key for basic pixel parameters
36 {this, "WriteKey", "PixelModuleData", "Output key of pixel module data"};
37
38 // Digitization parameters
39 Gaudi::Property<double> m_bunchSpace
40 {this, "BunchSpace", 25.0, "Bunch space [ns]"};
41
42 Gaudi::Property<std::vector<int>> m_BarrelNumberOfBCID
43 {this, "BarrelNumberOfBCID", {1,1,1,1}, "BCID numbers for barrel pixel layers"};
44
45 Gaudi::Property<std::vector<int>> m_EndcapNumberOfBCID
46 {this, "EndcapNumberOfBCID", {1,1,1}, "BCID numbers for endcap pixel layers"};
47
48 Gaudi::Property<std::vector<int>> m_DBMNumberOfBCID
49 {this, "DBMNumberOfBCID", {1,1,1}, "BCID numbers for DBM layers"};
50
51 Gaudi::Property<std::vector<double>> m_BarrelTimeOffset
52 {this, "BarrelTimeOffset", {5.0,5.0,5.0,5.0}, "Offset time of barrel pixel layer"};
53
54 Gaudi::Property<std::vector<double>> m_EndcapTimeOffset
55 {this, "EndcapTimeOffset", {5.0,5.0,5.0}, "Offset time of endcap pixel layer"};
56
57 Gaudi::Property<std::vector<double>> m_DBMTimeOffset
58 {this, "DBMTimeOffset", {5.0,5.0,5.0}, "Offset time of DBM layer"};
59
60 Gaudi::Property<std::vector<double>> m_BarrelTimeJitter
61 {this, "BarrelTimeJitter", {0.0,0.0,0.0,0.0}, "Time jitter of barrel pixel layer"};
62
63 Gaudi::Property<std::vector<double>> m_EndcapTimeJitter
64 {this, "EndcapTimeJitter", {0.0,0.0,0.0}, "Time jitter of endcap pixel layer"};
65
66 Gaudi::Property<std::vector<double>> m_DBMTimeJitter
67 {this, "DBMTimeJitter", {0.0,0.0,0.0}, "Time jitter of DBM layer"};
68
69 //====================================================================================
70 // Run-dependent SIMULATION(digitization) parameters:
71 //
72 // So far, they are year-granularity (3 entries!), thus they may be still
73 // controlled via job option.
74 //
75 // MC Project: RUN1 RUN2 mc16a RUN2 mc16d RUN2 mc16e
76 // Year: - 2014 2015/2016 2017 2018
77 // MC Run Number: <222222 284500 300000 310000
78 // Reference run#: --- 303638 336506 357193
79 // Luminosity(fb-1): 17.3 69.0 119.4
80 //
81 // Barrel:
82 // ToT: [ 3, 3, 3] [ -1, 5, 5, 5] [ -1, 5, 5, 5] [ -1, 3, 5, 5]
83 // Latency: [ 256, 256, 256] [ -1, 150, 256, 256] [ -1, 150, 256, 256] [ -1, 150, 256, 256]
84 // Duplicaiton: [ T, T, T] [ N/A, F, F, F] [ N/A, F, F, F] [ N/A, F, F, F]
85 // SmallHit: [ 7, 7, 7] [ N/A, 0, 0, 0] [ N/A, 0, 0, 0] [ N/A, 0, 0, 0]
86 // TimingTune: [2009,2009,2009] [ N/A,2015,2015,2015] [ N/A,2018,2018,2018] [ N/A,2018,2018,2018]
87 // CrossTalk: [0.06,0.06,0.06] [0.30,0.12,0.12,0.12] [0.30,0.12,0.12,0.12] [0.30,0.12,0.12,0.12]
88 // NoiseOcc.: [5e-8,5e-8,5e-8] [5e-8,5e-8,5e-8,5e-8] [5e-8,5e-8,5e-8,5e-8] [5e-8,5e-8,5e-8,5e-8]
89 // DisablePix: [9e-3,9e-3,9e-3] [9e-3,9e-3,9e-3,9e-3] [9e-3,9e-3,9e-3,9e-3] [9e-3,9e-3,9e-3,9e-3]
90 // NoiseShape: [2018,2018,2018] [2018,2018,2018,2018] [2018,2018,2018,2018] [2018,2018,2018,2018]
91 // BiasVoltage: [ 150, 150, 150] [ 80, 350, 200, 150] [ 350, 350, 200, 150] [ 400, 400, 250, 250]
92 // Fluence(e14):[1.01,0.44,0.30] [0.80,1.61,0.71,0.48] [3.18,3.42,1.50,1.01] [5.50,5.19,2.28,1.53]
93 //
94 // Endcap:
95 // ToT: [ 3, 3, 3] [ 5, 5, 5] [ 5, 5, 5] [ 5, 5, 5]
96 // Latency: [ 256, 256, 256] [ 256, 256, 256] [ 256, 256, 256] [ 256, 256, 256]
97 // Duplicaiton: [ T, T, T] [ F, F, F] [ F, F, F] [ F, F, F]
98 // SmallHit: [ 7, 7, 7] [ 0, 0, 0] [ 0, 0, 0] [ 0, 0, 0]
99 // TimingTune: [2009,2009,2009] [2015,2015,2015] [2018,2018,2018] [2018,2018,2018]
100 // CrossTalk: [0.06,0.06,0.06] [0.06,0.06,0.06] [0.06,0.06,0.06] [0.06,0.06,0.06]
101 // NoiseOcc.: [5e-8,5e-8,5e-8] [5e-8,5e-8,5e-8] [5e-8,5e-8,5e-8] [5e-8,5e-8,5e-8]
102 // DisablePix: [9e-3,9e-3,9e-3] [9e-3,9e-3,9e-3] [9e-3,9e-3,9e-3] [9e-3,9e-3,9e-3]
103 // NoiseShape: [2018,2018,2018] [2018,2018,2018] [2018,2018,2018] [2018,2018,2018]
104 // BiasVoltage: [ 150, 150, 150] [ 150, 150, 150] [ 150, 150, 150] [ 250, 250, 250]
105 // Fluence(e14):[ n/a, n/a, n/a] [ n/a, n/a, n/a] [ n/a, n/a, n/a] [ n/a, n/a, n/a]
106 //
107 // DBM:
108 // ToT: [N/A] [ -1, -1, -1] [ -1, -1, -1] [ -1, -1, -1]
109 // CrossTalk: [N/A] [0.06,0.06,0.06] [0.06,0.06,0.06] [0.06,0.06,0.06]
110 // NoiseOcc.: [N/A] [5e-8,5e-8,5e-8] [5e-8,5e-8,5e-8] [5e-8,5e-8,5e-8]
111 // DisablePix: [N/A] [9e-3,9e-3,9e-3] [9e-3,9e-3,9e-3] [9e-3,9e-3,9e-3]
112 // BiasVoltage: [N/A] [ 500, 500, 500] [ 500, 500, 500] [ 500, 500, 500]
113 //
114 // IBL 3D:
115 // Fluence(e14): [N/A] [0.50] [0.50] [50.0]
116 //
117 // See https://twiki.cern.ch/twiki/bin/view/Atlas/PixelConditionsRUN2
118 // for further details.
119 //
120 //===============================================================================================================
121 // MC Project: RUN3 RUN3 RUN3 RUN3
122 // Year: 2022 2023 2024 2025
123 // MC Run Number: 410000 450000 470000 495000
124 // Reference run#: --- --- --- ---
125 // Luminosity(fb-1): 186fb-1 235fb-1 270(IBL) 300(PIX)fb-1 400(IBL) 430(PIX)fb-1
126 //
127 // Barrel:
128 // ToT: [ -1, 3, 5, 5] [ -1, 3, 5, 5] [ -1, 3, 5, 5] [ -1, 3, 5, 5]
129 // Latency: [ -1, 150, 256, 256] [ -1, 150, 256, 256] [ -1, 150, 256, 256] [ -1, 150, 256, 256]
130 // Duplicaiton: [ N/A, F, F, F] [ N/A, F, F, F] [ N/A, F, F, F] [ N/A, F, F, F]
131 // SmallHit: [ N/A, 0, 0, 0] [ N/A, 0, 0, 0] [ N/A, 0, 0, 0] [ N/A, 0, 0, 0]
132 // TimingTune: [ N/A,2022,2022,2022] [ N/A,2022,2022,2022] [ N/A,2022,2022,2022] [ N/A,2022,2022,2022]
133 // CrossTalk: [0.30,0.12,0.12,0.12] [0.30,0.12,0.12,0.12] [0.30,0.12,0.12,0.12] [0.30,0.12,0.12,0.12]
134 // NoiseOcc.: [5e-8,5e-8,5e-8,5e-8] [5e-8,5e-8,5e-8,5e-8] [5e-8,5e-8,5e-8,5e-8] [5e-8,5e-8,5e-8,5e-8]
135 // DisablePix: [9e-3,9e-3,9e-3,9e-3] [9e-3,9e-3,9e-3,9e-3] [9e-3,9e-3,9e-3,9e-3] [9e-3,9e-3,9e-3,9e-3]
136 // NoiseShape: [2018,2018,2018,2018] [2018,2018,2018,2018] [2018,2018,2018,2018] [2018,2018,2018,2018]
137 // BiasVoltage: [ 450, 450, 300, 300] [ 450, 450, 350, 350] [ 450, 500, 350, 350] [ 500, 500, 350, 350]
138 // Fluence(e14):[ 7.2, 6.8, 3.0, 2.0] [ 13, 9.2, 4.5, 3.1] [ 15, 11, 5.0, 3.6] [ 22, 15, 6.6, 4.5]
139 //
140 // Endcap:
141 // ToT: [ 5, 5, 5] [ 5, 5, 5] [ 5, 5, 5] [ 5, 5, 5]
142 // Latency: [ 256, 256, 256] [ 256, 256, 256] [ 256, 256, 256] [ 256, 256, 256]
143 // Duplicaiton: [ F, F, F] [ F, F, F] [ F, F, F] [ F, F, F]
144 // SmallHit: [ 0, 0, 0] [ 0, 0, 0] [ 0, 0, 0] [ 0, 0, 0]
145 // TimingTune: [2022,2022,2022] [2022,2022,2022] [2022,2022,2022] [2022,2022,2022]
146 // CrossTalk: [0.06,0.06,0.06] [0.06,0.06,0.06] [0.06,0.06,0.06] [0.06,0.06,0.06]
147 // NoiseOcc.: [5e-8,5e-8,5e-8] [5e-8,5e-8,5e-8] [5e-8,5e-8,5e-8] [5e-8,5e-8,5e-8]
148 // DisablePix: [9e-3,9e-3,9e-3] [9e-3,9e-3,9e-3] [9e-3,9e-3,9e-3] [9e-3,9e-3,9e-3]
149 // NoiseShape: [2018,2018,2018] [2018,2018,2018] [2018,2018,2018] [2018,2018,2018]
150 // BiasVoltage: [ 300, 300, 300] [ 350, 350, 350] [ 350, 350, 350] [ 350, 350, 350]
151 // Fluence(e14):[ n/a, n/a, n/a] [ n/a, n/a, n/a] [ n/a, n/a, n/a] [ n/a, n/a, n/a]
152 //
153 // DBM: Terminated. All values are dummy.
154 // ToT: [ -1, -1, -1]
155 // CrossTalk: [0.06,0.06,0.06]
156 // NoiseOcc.: [5e-8,5e-8,5e-8]
157 // DisablePix: [9e-3,9e-3,9e-3]
158 // BiasVoltage: [ 500, 500, 500]
159 //
160 // IBL 3D:
161 // Fluence(e14):[ 7.5] [ 7.5] [10.2] [15.6]
162 //
163 // See https://twiki.cern.ch/twiki/bin/view/Atlas/PixelConditionsRUN3
164 // for further details.
165 //======================================================================================
166
167 Gaudi::Property<int> m_Run1IOV
168 {this, "Run1IOV", 222222, "Run number for Run1 conditions"};
169
170 Gaudi::Property<std::string> m_conditionsFolder
171 {this, "PixelParameterConditionsFolder", "PixelConditionsAlgorithms/v1/", "Folder name for pixel parameter conditions"};
172
173 Gaudi::Property<std::string> m_conditionsFileName
174 {this, "PixelParameterConditionsFile", "PixelParametersList-04.dat", "File name for pixel parameter conditions"};
175
176 Gaudi::Property<std::string> m_usePrivateFileName
177 {this, "UsePrivateFileName", "", "File name for private pixel settings (default:empty)"};
178
179 //====================================================================================
180 // The following parameters are default values which will be overwritten by the one
181 // from the conditions DB. Otherwise the DB is not retrieved nor available, these
182 // values are used.
183 //====================================================================================
184 Gaudi::Property<std::vector<int>> m_BarrelAnalogThreshold
185 {this, "DefaultBarrelAnalogThreshold", {-1,-1,-1,-1}, "Default analog thresholds of barrel pixel layers"};
186
187 Gaudi::Property<std::vector<int>> m_EndcapAnalogThreshold
188 {this, "DefaultEndcapAnalogThreshold", {-1,-1,-1}, "Default analog thresholds of endcap pixel layers"};
189
190 Gaudi::Property<std::vector<int>> m_DBMAnalogThreshold
191 {this, "DefaultDBMAnalogThreshold", {-1,-1,-1}, "Default analog thresholds of DBMlayers"};
192
193 Gaudi::Property<std::vector<int>> m_BarrelAnalogThresholdSigma
194 {this, "DefaultBarrelAnalogThresholdSigma", {45,35,30,30}, "Default analog threshold sigma of barrel pixel layers"};
195
196 Gaudi::Property<std::vector<int>> m_EndcapAnalogThresholdSigma
197 {this, "DefaultEndcapAnalogThresholdSigma", {30,30,30}, "Default analog threshold sigma of endcap pixel layers"};
198
199 Gaudi::Property<std::vector<int>> m_DBMAnalogThresholdSigma
200 {this, "DefaultDBMAnalogThresholdSigma", {70,70,70}, "Default analog threshold sigma of DBM pixel layers"};
201
202 Gaudi::Property<std::vector<int>> m_BarrelAnalogThresholdNoise
203 {this, "DefaultBarrelAnalogThresholdNoise", {130,150,160,160}, "Default threshold noise of barrel pixel layers"};
204
205 Gaudi::Property<std::vector<int>> m_EndcapAnalogThresholdNoise
206 {this, "DefaultEndcapAnalogThresholdNoise", {150,150,150}, "Default threshold noise of endcap pixel layers"};
207
208 Gaudi::Property<std::vector<int>> m_DBMAnalogThresholdNoise
209 {this, "DefaultDBMAnalogThresholdNoise", {190,190,190}, "Default threshold noise of DBM pixel layers"};
210
211 Gaudi::Property<std::vector<int>> m_BarrelInTimeThreshold
212 {this, "DefaultBarrelInTimeThreshold", {2000,5000,5000,5000}, "Default in-time thresholds of barrel pixel layers"};
213
214 Gaudi::Property<std::vector<int>> m_EndcapInTimeThreshold
215 {this, "DefaultEndcapInTimeThreshold", {5000,5000,5000}, "Default in-time thresholds of endcap pixel layers"};
216
217 Gaudi::Property<std::vector<int>> m_DBMInTimeThreshold
218 {this, "DefaultDBMInTimeThreshold", {1200,1200,1200}, "Default in-time thresholds of DBM pixel layers"};
219
220 Gaudi::Property<std::vector<double>> m_BarrelThermalNoise
221 {this, "BarrelThermalNoise", {160.0,160.0,160.0,160.0}, "Thermal noise of barrel pixel layers"};
222
223 Gaudi::Property<std::vector<double>> m_EndcapThermalNoise
224 {this, "EndcapThermalNoise", {160.0,160.0,160.0}, "Thermal noise of endcap pixel layers"};
225
226 Gaudi::Property<std::vector<double>> m_DBMThermalNoise
227 {this, "DBMThermalNoise", {160.0,160.0,160.0}, "Thermal noise of DBM layers"};
228
229 Gaudi::Property<std::vector<int>> m_FEI4BarrelHitDiscConfig
230 {this, "FEI4BarrelHitDiscConfig", {2,2,2}, "Set HitDiscConfig parameter for barrel pixel layers"};
231
232 Gaudi::Property<std::vector<int>> m_FEI4EndcapHitDiscConfig
233 {this, "FEI4EndcapHitDiscConfig", {2,2,2}, "Set HitDiscConfig parameter for endcap pixel layers"};
234
235 Gaudi::Property<float> m_chargeScaleFEI4
236 {this, "ChargeScaleFEI4", 1.0, "Scaling of the FEI4 charge"};
237
239 {this, "UseFEI4SpecialScalingFunction", true, "Use FEI4 special scaling function"};
240
241 Gaudi::Property<std::vector<double>> m_FEI4ToTSigma
242 {this, "FEI4ToTSigma", {0.0,0.50,0.50,0.50,0.50,0.50,0.60,0.60,0.60,0.60,0.65,0.70,0.75,0.80,0.80,0.80,0.80}, "Set ToT sigma for FEI4"};
243
244 // Charge calibration parameters
245 Gaudi::Property<float> m_CalibrationParameterA
246 {this, "DefaultCalibrationParameterA", 70.2, "Default charge calibration parameter A"};
247
248 Gaudi::Property<float> m_CalibrationParameterE
249 {this, "DefaultCalibrationParameterE", -3561.25, "Default charge calibration parameter E"};
250
251 Gaudi::Property<float> m_CalibrationParameterC
252 {this, "DefaultCalibrationParameterC", 26000.0, "Default charge calibration parameter C"};
253
254 Gaudi::Property<bool> m_doPIXLinearExtrapolation
255 {this, "doPIXLinearExtrapolation", true, "Activation for linear extrapolation for PIXEL"};
256
257 // DCS parameters
258 Gaudi::Property<float> m_biasVoltage
259 {this, "DefaultBiasVoltage", 150.0, "Default bias voltage"};
260
261 Gaudi::Property<float> m_temperature
262 {this, "DefaultTemperature", -7.0, "Default temperature in Celcius"};
263
264 // Cabling parameters
265 Gaudi::Property<bool> m_cablingMapToFile
266 {this, "CablingMapToFile", false, "Dump pixel cabling map into file"};
267
268 Gaudi::Property<std::string> m_cablingMapFileName
269 {this, "CablingMapFileName", "PixelCabling/Pixels_Atlas_IdMapping_2016.dat", "Read cabling map from file"};
270
271 std::string getFileName(const int currentRunNumber) const;
272
273};
274
275#endif
Base class for conditions algorithms.
This file defines the class for a collection of AttributeLists where each one is associated with a ch...
Store pixel constant parameters in PixelModuleData.
Base class for conditions algorithms.
Gaudi::Property< std::vector< int > > m_EndcapInTimeThreshold
Gaudi::Property< std::vector< double > > m_EndcapTimeJitter
Gaudi::Property< std::vector< int > > m_EndcapAnalogThresholdNoise
Gaudi::Property< std::vector< int > > m_DBMNumberOfBCID
Gaudi::Property< float > m_biasVoltage
Gaudi::Property< std::string > m_conditionsFolder
virtual StatusCode initialize() override final
Gaudi::Property< float > m_CalibrationParameterA
Gaudi::Property< bool > m_UseFEI4SpecialScalingFunction
Gaudi::Property< std::vector< int > > m_FEI4BarrelHitDiscConfig
Gaudi::Property< float > m_temperature
Gaudi::Property< double > m_bunchSpace
Gaudi::Property< std::vector< int > > m_BarrelAnalogThresholdNoise
Gaudi::Property< std::vector< double > > m_EndcapTimeOffset
Gaudi::Property< std::vector< double > > m_DBMTimeJitter
Gaudi::Property< std::vector< int > > m_EndcapNumberOfBCID
Gaudi::Property< std::vector< int > > m_DBMAnalogThreshold
Gaudi::Property< std::vector< int > > m_DBMAnalogThresholdSigma
Gaudi::Property< bool > m_doPIXLinearExtrapolation
Gaudi::Property< std::vector< int > > m_BarrelNumberOfBCID
Gaudi::Property< std::vector< double > > m_EndcapThermalNoise
Gaudi::Property< std::vector< int > > m_BarrelAnalogThreshold
Gaudi::Property< std::vector< int > > m_BarrelInTimeThreshold
Gaudi::Property< std::vector< double > > m_BarrelTimeOffset
Gaudi::Property< bool > m_cablingMapToFile
virtual StatusCode execute(const EventContext &ctx) const override final
Gaudi::Property< std::vector< double > > m_FEI4ToTSigma
Gaudi::Property< std::vector< int > > m_FEI4EndcapHitDiscConfig
Gaudi::Property< float > m_CalibrationParameterC
SG::WriteCondHandleKey< PixelModuleData > m_writeKey
Gaudi::Property< std::vector< int > > m_DBMAnalogThresholdNoise
std::string getFileName(const int currentRunNumber) const
PixelConfigCondAlg(const std::string &name, ISvcLocator *pSvcLocator)
Gaudi::Property< std::string > m_usePrivateFileName
Gaudi::Property< std::vector< double > > m_BarrelTimeJitter
Gaudi::Property< std::vector< double > > m_DBMThermalNoise
Gaudi::Property< float > m_chargeScaleFEI4
Gaudi::Property< std::vector< int > > m_DBMInTimeThreshold
Gaudi::Property< std::vector< int > > m_EndcapAnalogThreshold
Gaudi::Property< int > m_Run1IOV
Gaudi::Property< std::vector< double > > m_BarrelThermalNoise
Gaudi::Property< std::string > m_conditionsFileName
Gaudi::Property< std::vector< int > > m_BarrelAnalogThresholdSigma
Gaudi::Property< std::vector< int > > m_EndcapAnalogThresholdSigma
Gaudi::Property< std::string > m_cablingMapFileName
Gaudi::Property< float > m_CalibrationParameterE
Gaudi::Property< std::vector< double > > m_DBMTimeOffset