ATLAS Offline Software
TRTDigSettings.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // //
7 // TRTDigSettings.cxx //
8 // //
9 // Class containing parameters and settings mainly used by TRT //
10 // digitization. //
11 // //
12 // Author: Thomas Kittelmann <kittel@nbi.dk> //
13 // First version: April 2005. Rewritten November 2005. //
14 // //
15 // - Settings can be changed via: //
16 // share/postInclude.OverrideTRTparameters.py //
17 // //
19 #include "TRTDigSettings.h"
20 
22 
23 //Geomodel
26 
27 #include "GaudiKernel/Algorithm.h" //For adding properties to an algorithm
28 #include "GaudiKernel/AlgTool.h" //For adding properties to an algtool
29 
30 #include "CLHEP/Units/SystemOfUnits.h"
31 #include "CLHEP/Units/PhysicalConstants.h" //For speed of light
32 
33 #include <iostream>
34 #include <limits>
35 
36 // RDBAccessSvc (Interface to the DD database) has been removed since
37 // TRT_Digitization-01-00-11 because the fetched values are correctly
38 // hard-coded already. See TRT_Digitization-01-00-10 for an example of
39 // how that works.
40 
41 //_________________________________________________________________________________________________________
43  : AthMessaging("TRTDigSettings"),
44  m_digversion(-1),
45  m_propertyNotSetMagicNumber(-999.0e50),
46  m_propertyNotSetMagicNumber_int(-9999)
47 {
49 }
50 
51 //_________________________________________________________________________________________________________
53 
54  //1) Fill defaults based on digversion
55  fillDefaults(detmgr);
56 
57  //2) Process overrides.
59 
60 }
61 
62 //_________________________________________________________________________________________________________
64 
65  //The ranges of allowed values are pretty wide. If parameters are outside we will assume something is wrong.
66 
67  //doubles:
68  defineNewVariable("ionisationPotential", &m_ionisationPotential, "Ionisation potential", "eV",CLHEP::eV,1.0,50.0);
69  defineNewVariable("ionisationPotentialArgon", &m_ionisationPotentialArgon, "Ionisation potential Argon", "eV",CLHEP::eV,1.0,50.0);
70  defineNewVariable("ionisationPotentialKrypton",&m_ionisationPotentialKrypton,"Ionisation potential Krypton","eV",CLHEP::eV,1.0,50.0);
71  defineNewVariable("smearingFactor", &m_smearingFactor, "Cluster energy smearing factor","", 1,0.1,1.0);
72  defineNewVariable("smearingFactorArgon", &m_smearingFactorArgon, "Cluster energy smearing factor Argon","", 1,0.1,1.0);
73  defineNewVariable("smearingFactorKrypton", &m_smearingFactorKrypton, "Cluster energy smearing factor Krypton","",1,0.1,1.0);
74  defineNewVariable("timeInterval", &m_timeInterval, "Time interval covered by each digit","ns",CLHEP::ns,1,200);
75  defineNewVariable("minDiscriminatorWidth", &m_minDiscriminatorWidth, "Minimum discriminator time over threshold","ns",CLHEP::ns,0.5,20.0);
76  defineNewVariable("discriminatorSettlingTime", &m_discriminatorSettlingTime, "Discriminator settling time", "ns",CLHEP::ns,0.5,20.0);
77  defineNewVariable("discriminatorDeadTime", &m_discriminatorDeadTime, "Discriminator dead time", "ns",CLHEP::ns,0.5,20.0);
78  defineNewVariable("TrtRangeCutProperty", &m_trtRangeCutProperty, "Electrons range cut in TRT xenon simulation","mm",CLHEP::mm,0.05,30.00);
79 
80  // LT Bar
81  defineNewVariable("lowThresholdBar", &m_lowThresholdBar, "Low Threshold Barrel", "eV",CLHEP::eV,50.0,500.0);
82  defineNewVariable("lowThresholdBarArgon", &m_lowThresholdBarArgon, "Low Threshold Barrel Argon", "eV",CLHEP::eV,50.0,500.0);
83  defineNewVariable("lowThresholdBarKrypton",&m_lowThresholdBarKrypton,"Low Threshold Barrel Krypton", "eV",CLHEP::eV,50.0,500.0);
84  // LT EC
85  defineNewVariable("lowThresholdEC", &m_lowThresholdEC, "Low Threshold end-cap", "eV",CLHEP::eV,50.0,500.0);
86  defineNewVariable("lowThresholdECArgon", &m_lowThresholdECArgon, "Low Threshold end-cap Argon", "eV",CLHEP::eV,50.0,500.0);
87  defineNewVariable("lowThresholdECKrypton", &m_lowThresholdECKrypton, "Low Threshold end-cap Krypton","eV",CLHEP::eV,50.0,500.0);
88  // HT Short
89  defineNewVariable("highThresholdBarShort", &m_highThresholdBarShort, "High Threshold short barrel straws", "keV",CLHEP::keV,0.3,10.0);
90  defineNewVariable("highThresholdBarShortArgon", &m_highThresholdBarShortArgon, "High Threshold short barrel straws Argon", "keV",CLHEP::keV,0.3,10.0);
91  defineNewVariable("highThresholdBarShortKrypton",&m_highThresholdBarShortKrypton,"High Threshold short barrel straws Krypton","keV",CLHEP::keV,0.3,10.0);
92  // HT Long
93  defineNewVariable("highThresholdBarLong", &m_highThresholdBarLong, "High Threshold long barrel straws", "keV",CLHEP::keV,0.3,10.0);
94  defineNewVariable("highThresholdBarLongArgon", &m_highThresholdBarLongArgon, "High Threshold long barrel straws Argon", "keV",CLHEP::keV,0.3,10.0);
95  defineNewVariable("highThresholdBarLongKrypton",&m_highThresholdBarLongKrypton,"High Threshold long barrel straws Krypton","keV",CLHEP::keV,0.3,10.0);
96  // HT EC-A
97  defineNewVariable("highThresholdECAwheels", &m_highThresholdECAwheels, "High Threshold A type wheels", "keV",CLHEP::keV,0.3,10.0);
98  defineNewVariable("highThresholdECAwheelsArgon", &m_highThresholdECAwheelsArgon, "High Threshold A type wheels Argon", "keV",CLHEP::keV,0.3,10.0);
99  defineNewVariable("highThresholdECAwheelsKrypton",&m_highThresholdECAwheelsKrypton,"High Threshold A type wheels Krypton","keV",CLHEP::keV,0.3,10.0);
100  // HT EC-B
101  defineNewVariable("highThresholdECBwheels", &m_highThresholdECBwheels, "High Threshold B type wheels", "keV",CLHEP::keV,0.3,10.0);
102  defineNewVariable("highThresholdECBwheelsArgon", &m_highThresholdECBwheelsArgon, "High Threshold B type wheels Argon", "keV",CLHEP::keV,0.3,10.0);
103  defineNewVariable("highThresholdECBwheelsKrypton",&m_highThresholdECBwheelsKrypton,"High Threshold B type wheels Krypton","keV",CLHEP::keV,0.3,10.0);
104 
105  defineNewVariable("innerRadiusOfStraw",&m_innerRadiusOfStraw,"Inner radius of straw","mm",CLHEP::mm,1.0,3.0); // 2.0 mm
106  defineNewVariable("outerRadiusOfWire",&m_outerRadiusOfWire,"Outer radius of wire","micrometer",CLHEP::micrometer,5.0,40.0); // 0.0155 mm
107  defineNewVariable("lengthOfDeadRegion",&m_lengthOfDeadRegion,"Length of dead region at straw ends","mm",CLHEP::mm,1.0,3.0);
108  defineNewVariable("signalPropagationSpeed",&m_signalPropagationSpeed,"Speed of signal propagation along wire","c",CLHEP::c_light,0.1,1.0);
109  defineNewVariable("distanceToTimeFactor",&m_distanceToTimeFactor,"Fudge factor changing assumed particle propagation speed in time corr. calculations","",1.0,0.1,10.0);
110  defineNewVariable("maxVertexDisplacement",&m_maxVertexDisplacement,"Maximum vertex displacement","cm",CLHEP::cm,0.0,50.0);
111  defineNewVariable("timeOffsetCalcVertexX",&m_timeOffsetCalcVertexX,"X coord. of point where particles are assumed to originate from for time-shift","m",CLHEP::m,-150.0,150.0);
112  defineNewVariable("timeOffsetCalcVertexY",&m_timeOffsetCalcVertexY,"Y coord. of point where particles are assumed to originate from for time-shift","m",CLHEP::m,-150.0,150.0);
113  defineNewVariable("timeOffsetCalcVertexZ",&m_timeOffsetCalcVertexZ,"Z coord. of point where particles are assumed to originate from for time-shift","m",CLHEP::m,-150.0,150.0);
114  defineNewVariable("pileUpSDOsMinEkin",&m_pileUpSDOsMinEkin,"Minimum kinetic energy for pile-up MC-truth (0.0=all, 999TeV=none)","GeV",CLHEP::GeV,0.0,999.0*CLHEP::TeV);
115  defineNewVariable("trEfficiencyBarrel",&m_trEfficiencyBarrel,"Transition radiation efficiency barrel","%",0.01,0.0,100.0);
116  defineNewVariable("trEfficiencyEndCapA",&m_trEfficiencyEndCapA,"Transition radiation efficiency endcap A","%",0.01,0.0,100.0);
117  defineNewVariable("trEfficiencyEndCapB",&m_trEfficiencyEndCapB,"Transition radiation efficiency endcap B","%",0.01,0.0,100.0);
118  defineNewVariable("trEfficiencyBarrelArgon",&m_trEfficiencyBarrelArgon,"Transition radiation efficiency barrel Argon","%",0.01,0.0,100.0);
119  defineNewVariable("trEfficiencyEndCapAArgon",&m_trEfficiencyEndCapAArgon,"Transition radiation efficiency endcap A Argon","%",0.01,0.0,100.0);
120  defineNewVariable("trEfficiencyEndCapBArgon",&m_trEfficiencyEndCapBArgon,"Transition radiation efficiency endcap B Argon","%",0.01,0.0,100.0);
121  defineNewVariable("trEfficiencyBarrelKrypton",&m_trEfficiencyBarrelKrypton,"Transition radiation efficiency barrel Krypton","%",0.01,0.0,100.0);
122  defineNewVariable("trEfficiencyEndCapAKrypton",&m_trEfficiencyEndCapAKrypton,"Transition radiation efficiency endcap A Krypton","%",0.01,0.0,100.0);
123  defineNewVariable("trEfficiencyEndCapBKrypton",&m_trEfficiencyEndCapBKrypton,"Transition radiation efficiency endcap B Krypton","%",0.01,0.0,100.0);
124  defineNewVariable("fastElectronicsNoisePulseDistance",&m_fastElectronicsNoisePulseDistance,"Fast electronics noise-pulse distance","ns",CLHEP::ns,0.01,20.0);
125  defineNewVariable("slowPeriodicNoisePulseDistance",&m_slowPeriodicNoisePulseDistance,"Slow periodic electronics noise-pulse distance","ns",CLHEP::ns,1.0,500.0);
126  defineNewVariable("slowPeriodicNoisePulseFraction",&m_slowPeriodicNoisePulseFraction,"Fraction of slow periodic pulses","%",0.01,0.0,1.0);
127  defineNewVariable("averageNoiseLevel",&m_averageNoiseLevel,"Average noise level used for fake cond. map","%",0.01,0.0,10.0);
128  defineNewVariable("crossTalkNoiseLevel",&m_crosstalkNoiseLevel,"Average crosstalk noise level used for fake cond. map","%",0.01,0.0,100.0);
129  defineNewVariable("crossTalkNoiseLevelOtherEnd",&m_crosstalkNoiseLevelOtherEnd,"Average crosstalk noise level on the other end as straws with pad hits","%",0.01,0.0,100.0);
130  defineNewVariable("relativeLowThresholdFluctuation",&m_relativeLowThresholdFluctuation,"Relative LT fluct. (evt to evt & straw to straw)","%",0.01,0.0,35.0);
131  defineNewVariable("relativeHighThresholdFluctuation",&m_relativeHighThresholdFluctuation,"Relative HT fluct. (evt to evt & straw to straw)","%",0.01,0.0,35.0);
132  defineNewVariable("solenoidFieldStrength",&m_solenoidFieldStrength,"Solenoid Field Strength (assume perfect uniform field)","T",CLHEP::tesla,0.0,3.0);
133  defineNewVariable("jitterTimeOffset",&m_jitterTimeOffset,"Jitter time offset (simulate lack of cosmic bunchcrossing time","ns",CLHEP::ns,0.0,25.0);
134  defineNewVariable("attenuationLength",&m_attenuationLength,"Signal attenuation length in the wire","cm",CLHEP::cm,100.0,700.0);
135 
136  //unsigned ints:
137  defineNewUIntVariable("numberOfBins",&m_numberOfBins,"Number of internal bins in time interval covered by each digit (must be whole multiple of numberOfBinsInEncodingBin)",24,480);
138  defineNewUIntVariable("numberOfBinsInEncodingBin",&m_numberOfBinsInEncodingBin,"Number of bins in each encoding bin in digit",1,20);
139  defineNewUIntVariable("numberOfCrossingsBeforeMain",&m_numberOfCrossingsBeforeMain,"Number of crossings before main event",0,50);
140  defineNewUIntVariable("cosmicFlag",&m_cosmicFlag,"Flag for masking out certain barrel modules for the cosmic runs",0,3);
141  defineNewUIntVariable("storeSDO",&m_storeSDO,"Define the time range in which to store the SDOs",0,2);
142 
143  //bools:
144  defineNewBoolVariable("timeCorrection",&m_timeCorrection,"Corrections due to time of flight and wire-propagation times (false for beamType='cosmics')");
145  defineNewBoolVariable("noiseInUnhitStraws",&m_noiseInUnhitStraws,"Noise in straws not passed by sim. particles");
146  defineNewBoolVariable("noiseInSimhits",&m_noiseInSimhits,"Noise in straws passed by sim. particles");
147  defineNewBoolVariable("electronicsAreAtFarEnd",&m_electronicsAreAtFarEnd,"Electronics assumed to be at the straw ends furthest from primary sim. vertex");
148  defineNewBoolVariable("timeshiftsSymmetricForPhiSectors",&m_timeshiftsSymmetricForPhiSectors,"Electronics Time offsets are symmetric from phi-sector to phi-sector");
149  defineNewBoolVariable("isCTB",&m_isCTB,"Flag set for CTB digitization");
150  defineNewBoolVariable("killEndCap",&m_killEndCap,"Kill all EndCap straws");
151  defineNewBoolVariable("killBarrel",&m_killBarrel,"Kill all Barrel straws");
152  defineNewBoolVariable("doCosmicTimingPit",&m_doCosmicTimingPit,"Do cosmic timing corresponding to pit setup");
153  defineNewBoolVariable("doCrosstalk",&m_doCrosstalk,"Do crosstalk noise simulation");
154  defineNewBoolVariable("useMagneticFieldMap",&m_useMagneticFieldMap,"Use magnetic field map in drifttime calculation");
155  defineNewBoolVariable("useAttenuation",&m_useAttenuation,"Simulate attenuation of signal strength depending on propagation length in wire");
156  defineNewBoolVariable("getT0FromData",&m_getT0FromData,"Shift the individual straw t0 according to data (conditions database)");
157  defineNewBoolVariable("isOverlay",&m_isOverlay,"Flag set for overlay jobs");
158 
159  //ints:
160 
161  // Time shifts
162  defineNewIntVariable("htT0shiftBarShort", &m_htT0shiftBarShort, "HT T0 shift in 0.78125 ns steps, short barrel straws",-32,32);
163  defineNewIntVariable("htT0shiftBarLong", &m_htT0shiftBarLong, "HT T0 shift in 0.78125 ns steps, long barrel straws", -32,32);
164  defineNewIntVariable("htT0shiftECAwheels", &m_htT0shiftECAwheels, "HT T0 shift in 0.78125 ns steps, A type wheels", -32,32);
165  defineNewIntVariable("htT0shiftECBwheels", &m_htT0shiftECBwheels, "HT T0 shift in 0.78125 ns steps, B type wheels", -32,32);
166 
167  defineNewIntVariable("ltT0shiftBarShortXe", &m_ltT0shiftBarShortXe, "LT T0 shift in 0.78125 ns steps, short barrel straws, Xe",-32,32);
168  defineNewIntVariable("ltT0shiftBarShortKr", &m_ltT0shiftBarShortKr, "LT T0 shift in 0.78125 ns steps, short barrel straws, Kr",-32,32);
169  defineNewIntVariable("ltT0shiftBarShortAr", &m_ltT0shiftBarShortAr, "LT T0 shift in 0.78125 ns steps, short barrel straws, Ar",-32,32);
170  defineNewIntVariable("ltT0shiftBarLongXe", &m_ltT0shiftBarLongXe, "LT T0 shift in 0.78125 ns steps, long barrel straws, Xe", -32,32);
171  defineNewIntVariable("ltT0shiftBarLongKr", &m_ltT0shiftBarLongKr, "LT T0 shift in 0.78125 ns steps, long barrel straws, Kr", -32,32);
172  defineNewIntVariable("ltT0shiftBarLongAr", &m_ltT0shiftBarLongAr, "LT T0 shift in 0.78125 ns steps, long barrel straws, Ar", -32,32);
173  defineNewIntVariable("ltT0shiftECAwheelsXe",&m_ltT0shiftECAwheelsXe,"LT T0 shift in 0.78125 ns steps, A type wheels, Xe", -32,32);
174  defineNewIntVariable("ltT0shiftECAwheelsKr",&m_ltT0shiftECAwheelsKr,"LT T0 shift in 0.78125 ns steps, A type wheels, Kr", -32,32);
175  defineNewIntVariable("ltT0shiftECAwheelsAr",&m_ltT0shiftECAwheelsAr,"LT T0 shift in 0.78125 ns steps, A type wheels, Ar", -32,32);
176  defineNewIntVariable("ltT0shiftECBwheelsXe",&m_ltT0shiftECBwheelsXe,"LT T0 shift in 0.78125 ns steps, B type wheels, Xe", -32,32);
177  defineNewIntVariable("ltT0shiftECBwheelsKr",&m_ltT0shiftECBwheelsKr,"LT T0 shift in 0.78125 ns steps, B type wheels, Kr", -32,32);
178  defineNewIntVariable("ltT0shiftECBwheelsAr",&m_ltT0shiftECBwheelsAr,"LT T0 shift in 0.78125 ns steps, B type wheels, Ar", -32,32);
179 
180 }
181 
182 //check that all have a default set and that it is inside range!!
183 //(check also that unsetmagicnumber is outside range)
184 //In init: setDefaultsBasedOnVersionNumber(digVers);
185 //_________________________________________________________________________________________________________
186 void TRTDigSettings::print(const std::string& front) const {
187 
188  std::cout << front << "======= Printing TRT Digitization Settings ======="<<std::endl;
189 
190  std::map <std::string,doubleparameter>::const_iterator itd = m_doubleparMap.begin();
191  std::map <std::string,doubleparameter>::const_iterator itdE = m_doubleparMap.end();
192 
193  for (;itd!=itdE;++itd) {
194  std::cout << front << itd->second.description<<": "<<(*(itd->second.directvaraddress))/itd->second.unit<<" "<<itd->second.unitname <<std::endl;
195  };
196 
197  std::map <std::string,intboolparameter>::const_iterator itib = m_intboolparMap.begin();
198  std::map <std::string,intboolparameter>::const_iterator itibE = m_intboolparMap.end();
199 
200  for (;itib!=itibE;++itib) {
201  if (itib->second.directvaraddress_int) {
202  //int
203  std::cout << front << itib->second.description<<": "<<*(itib->second.directvaraddress_int)<<std::endl;
204  } else if (itib->second.directvaraddress_uint) {
205  //unsigned int
206  std::cout << front << itib->second.description<<": "<<*(itib->second.directvaraddress_uint)<<std::endl;
207  } else {
208  //bool
209  assert(itib->second.directvaraddress_bool);
210  std::cout << front << itib->second.description<<": "<<(*(itib->second.directvaraddress_bool)?1:0)<<std::endl;
211  }
212  }
213 
214  std::cout << front << "==============================================="<<std::endl;
215 
216 }
217 
218 //---------------------------------------------------------------------
219 
221 
223  // This function is called during TRTDigitizationTool::lateInitialize(). It can be //
224  // used to reset parameters according to the value of TRT_Dig_Vers in the condDB //
225  // /TRT/Cond/DigVers. //
226  // At the moment DigSettingsFromCondDB() has no effect. //
227  // At the time of writing (October 2013) dig_vers_from_condDB==12 //
228  // which is now the same settings (2012/2013 re-tune) that are applied as default. //
230 
231  // std::cout << "digversion fron condDB: " << dig_vers_from_condDB << std::endl;
232  if (dig_vers_from_condDB==12) {
233  // the settings are default now
234  } else {
235  ATH_MSG_ERROR("Error in settings / condDB");
236  return StatusCode::FAILURE;
237  }
238 
239  return StatusCode::SUCCESS;
240 
241 }
242 
243 //_________________________________________________________________________________________________________
245 
248 
249  for (;itd!=itdE;++itd) {
250  alg->declareProperty(std::string("Override_")+itd->first, itd->second.valueSetByUser );
251  }
252 
255 
256  for (;itib!=itibE;++itib) {
257  alg->declareProperty(std::string("Override_")+itib->first, itib->second.valueSetByUser );
258  }
259 }
260 
261 //_________________________________________________________________________________________________________
263 
266 
267  for (;itd!=itdE;++itd) {
268  algt->declareProperty(std::string("Override_")+itd->first, itd->second.valueSetByUser );
269  }
270 
273 
274  for (;itib!=itibE;++itib) {
275  algt->declareProperty(std::string("Override_")+itib->first, itib->second.valueSetByUser );
276  }
277 
278 }
279 
280 //_________________________________________________________________________________________________________
281 void TRTDigSettings::printFlagsForOverrideableParameters(const std::string& front) const {
282 
283  std::cout << front << "======= Printing TRT Digitization Settings Overrideable parameters ======="<<std::endl;
284 
285  std::map <std::string,doubleparameter>::const_iterator itd = m_doubleparMap.begin();
286  std::map <std::string,doubleparameter>::const_iterator itdE = m_doubleparMap.end();
287 
288  for (;itd!=itdE;++itd) {
289  std::cout << front << std::endl;
290  std::cout << front << "Alg. Property: Override_"<<itd->first<<std::endl;
291  std::cout << front << " Type: Double"<<std::endl;
292  std::cout << front << " Range: ["<<itd->second.okrange_low/itd->second.unit<<" "
293  << itd->second.unitname<<", "
294  << itd->second.okrange_high/itd->second.unit<<" "<<itd->second.unitname<<"]"<<std::endl;
295  std::cout << front << " Description: "<<itd->second.description<<std::endl;
296  }
297 
298  std::map <std::string,intboolparameter>::const_iterator itib = m_intboolparMap.begin();
299  std::map <std::string,intboolparameter>::const_iterator itibE = m_intboolparMap.end();
300 
301  for (;itib!=itibE;++itib) {
302  std::cout << front << std::endl;
303  std::cout << front << "Alg. Property: Override_"<<itib->first<<std::endl;
304  std::cout << front << " Type: Int"<<std::endl;
305  std::cout << front << " Range: ["<<itib->second.okrange_low<<", "
306  << itib->second.okrange_high<<"]"<<std::endl;
307  std::cout << front << " Description: "<<itib->second.description<<std::endl;
308  }
309 
310  std::cout << front <<std::endl;
311  std::cout << front << "==============================================="<<std::endl;
312 
313 }
314 
315 //_________________________________________________________________________________________________________
316 void TRTDigSettings::defineNewVariable(const std::string & name, double * datamember,const std::string &description,
317  const std::string & unitname,double unitval,double lowrange,double highrange) {
318 
319  //sanity checks:
320  if (m_intboolparMap.find(name)!=m_intboolparMap.end() || m_doubleparMap.find(name)!=m_doubleparMap.end()) {
321  ATH_MSG_FATAL("TRTDigSettings: Multiple definitions of "<<name);
322  return;
323  }
324  if (lowrange > highrange || lowrange*unitval<=m_propertyNotSetMagicNumber ) {
325  ATH_MSG_FATAL("TRTDigSettings: Problem in range of par "<<name);
326  return;
327  }
328 
330  p.description = description;
331  p.directvaraddress = datamember;
332  p.unitname = unitname;
333  p.unit = unitval;
334  p.okrange_low = lowrange*unitval;
335  p.okrange_high = highrange*unitval;
336  p.valueSetByUser = m_propertyNotSetMagicNumber;
337 
338  m_doubleparMap[name] = p;
339 
340 }
341 
342 //_________________________________________________________________________________________________________
343 void TRTDigSettings::defineNewUIntVariable(const std::string &name,unsigned int * datamember, const std::string &description,
344  unsigned int lowrange, unsigned int highrange) {
345  //sanity checks:
346  if (m_intboolparMap.find(name)!=m_intboolparMap.end() || m_doubleparMap.find(name)!=m_doubleparMap.end()) {
347  ATH_MSG_FATAL("TRTDigSettings: Multiple definitions of "<<name);
348  return;
349  }
350  if (lowrange > highrange ) {
351  ATH_MSG_FATAL("TRTDigSettings: Problem in range of par "<<name);
352  return;
353  }
354 
356 
357  p.description = description;
358  p.directvaraddress_int = nullptr;
359  p.directvaraddress_uint = datamember;
360  p.directvaraddress_bool = nullptr;
361  p.okrange_low = static_cast<int>(lowrange);
362  p.okrange_high = static_cast<int>(highrange);
363  p.valueSetByUser = m_propertyNotSetMagicNumber_int;
364 
366 
367 }
368 
369 //_________________________________________________________________________________________________________
370 void TRTDigSettings::defineNewIntVariable(const std::string & name,int * datamember,const std::string & description,
371  int lowrange, int highrange) {
372  //sanity checks:
373  if (m_intboolparMap.find(name)!=m_intboolparMap.end() || m_doubleparMap.find(name)!=m_doubleparMap.end()) {
374  ATH_MSG_FATAL("TRTDigSettings: Multiple definitions of "<<name);
375  return;
376  }
377  if (lowrange > highrange || lowrange<=m_propertyNotSetMagicNumber_int ) {
378  ATH_MSG_FATAL("TRTDigSettings: Problem in range of par "<<name);
379  return;
380  }
381 
383 
384  p.description = description;
385  p.directvaraddress_int = datamember;
386  p.directvaraddress_uint = nullptr;
387  p.directvaraddress_bool = nullptr;
388  p.okrange_low = lowrange;
389  p.okrange_high = highrange;
390  p.valueSetByUser = m_propertyNotSetMagicNumber_int;
391 
393 
394 }
395 
396 //_________________________________________________________________________________________________________
397 void TRTDigSettings::defineNewBoolVariable(const std::string & name,bool * datamember,const std::string & description) {
398  //sanity checks:
399  if (m_intboolparMap.find(name)!=m_intboolparMap.end() || m_doubleparMap.find(name)!=m_doubleparMap.end()) {
400  ATH_MSG_FATAL("TRTDigSettings: Multiple definitions of "<<name);
401  return;
402  }
403 
405 
406  p.description = description;
407  p.directvaraddress_int = nullptr;
408  p.directvaraddress_uint = nullptr;
409  p.directvaraddress_bool = datamember;
410  p.okrange_low = 0;
411  p.okrange_high = 1;
412  p.valueSetByUser = m_propertyNotSetMagicNumber_int;
413 
415 
416 }
417 
418 //_________________________________________________________________________________________________________
420 
422  // Note that at the time of writing (October 2013), the defaults below correspond to: //
423  // 1) detmgr m_digversion=11, digversionname=DC3version3 (collision data) //
424  // 2) Late initialization with DigSettingsFromCondDB() fetching m_digversion=12 from the coniditons DB //
425  // There is response to digver's except for a "throw" for values <11 as such MC is no longer supported. //
427 
428  InDetDD::TRT_DetectorManager::ActiveGasType activegastype = detmgr->gasType();
429  m_digversion = detmgr->digitizationVersion();
430  std::string digversionname = detmgr->digitizationVersionName();
431 
432  std::cout << "TRTDigSettings::fillDefaults TRT digitization version: digversion = "
433  << m_digversion << " " << digversionname << std::endl;
434 
435  // After TRT_Digitization-00-10-74 (end of Run1) we will no longer support m_digversion<11
436  if (m_digversion<11) {
437  ATH_MSG_FATAL("digversion < 11 (" << m_digversion << ") is no longer supported. The job will die now.");
438  throw std::runtime_error("fillDefaults: digversion is not supported");
439  }
440 
441  bool gasok = false;
442  if ( activegastype == InDetDD::TRT_DetectorManager::newgas ) gasok = true;
443 
444  if (!gasok) {
445  ATH_MSG_WARNING("Active gas setting seems incompatible with dig. version number.");
446  ATH_MSG_WARNING("If not deliberate, it might indicate a configuration or DB problem.");
447  }
448 
449  // miscellaneous
451 
452  // falses (unlikely to change)
453  m_doCrosstalk = false; //Crosstalk noise switched off by default (so far). Switch on by doCrosstalk() flag in j.o.
454  m_crosstalkNoiseLevel = 0.01; // In cosmics: tuned to 0.01
455  m_crosstalkNoiseLevelOtherEnd = 0.01;// In cosmics: tuned to 0.01
456  m_doCosmicTimingPit = false;
457  m_getT0FromData=false;
458  m_killEndCap = false;
459  m_killBarrel = false;
460  m_cosmicFlag=0;
461  m_isCTB = false;
462  m_isOverlay=false;
463  m_noiseInUnhitStraws = false;
464 
465  // trues
466  m_timeCorrection = true;
467  m_noiseInSimhits = true;
470  m_useAttenuation = true;
471  m_useMagneticFieldMap = true;
472 
473  // output
475  m_numberOfBins = 96;
477  m_storeSDO = 2;
478  m_numberOfCrossingsBeforeMain = 2; // allows migration of signal in readout window
479  m_pileUpSDOsMinEkin = 0.0*CLHEP::MeV; //lowered for lowPt tracking
480 
481  // speed
484 
485  // time
486  // Fred: It would seem to me that the timing base for both low and high hits could
487  // be slightly different for the A & C sides and it would be wise to allow
488  // for the possibility in the code [FIXME].
493 
494  // HT middle-bit fraction tune; KyungEon.Choi@cern.ch
495  // https://indico.cern.ch/event/389682/contribution/5/material/slides/0.pdf
496  m_htT0shiftBarShort = -6; // Timing shift applied just before discrimination (steps of 0.78125 ns).
497  m_htT0shiftBarLong = -6; // It affects only HL threshold timing. The purpose is to
498  m_htT0shiftECAwheels = -6; // tune the middle HT bit fraction so that HT probability
499  m_htT0shiftECBwheels = -6; // can be based on the middle bit only at high occupancy.
500 
501  // LT timimg shift in steps of 0.78125 ns.
514 
515  // length
524 
525  // (Xenon)
526  // HT fine-tune on 2011 data tagged as 00-11-07
527  // HT middle-bit fraction tune - wider shaping function; 01-00-24
528  // Delta-ray suppression tune tagged as 01-01-03
529  // Delta-ray suppression tune with backward compatibility with non suppressed delta-ray simulation tagged as 01-01-07
530  // Delta-ray suppression HT middle-bit fraction tune - 2015 data; 01-01-16
531  // HT rough-tune on 2022 data R23 for mc23e production
532  m_trtRangeCutProperty = m_doubleparMap["TrtRangeCutProperty"].valueSetByUser;//To avoid overwritting warning message and to use python configured value
533  if(std::abs(m_trtRangeCutProperty-0.05) >= std::numeric_limits<double>::epsilon()){
540  m_trEfficiencyBarrel = 0.774;
541  m_trEfficiencyEndCapA = 0.909;
542  m_trEfficiencyEndCapB = 0.809;
543  }
544  else {
551  m_trEfficiencyBarrel = 0.95;
552  m_trEfficiencyEndCapA = 1.00;
553  m_trEfficiencyEndCapB = 1.00;
554  ATH_MSG_WARNING("Setting up non suppressed double counted delta-ray xenon tune");
555  }
556 
557  // (Argon) Initial tuning by Artem July 2014. See log file. Requires fine tuning.
558  // HT middle-bit fraction tune - wider shaping function; 01-00-24
559  // HT middle-bit fraction tune - 2015 data; 01-01-16
560  // HT rough-tune on 2022 data R23 for mc23e production (required also overlay correction tune)
561  // Argon LT tune to 2015 data; r22
571 
572  // (Krypton)
573  // Initial implementation in May 2015 - guess; 01-01-00
574  // Tuning from 2015 data by Kevin in April 2016, no LT tune; 01-02-01
584 
585  // Noise
589  m_averageNoiseLevel = 0.02;
592 
593  // Clusters
594  m_smearingFactor = 0.4;
595  m_smearingFactorArgon = 0.4;
600 
601 }
602 
603 //_________________________________________________________________________________________________________
605 
606  bool anyoverrides = false;
609 
610  for (;itd!=itdE;++itd) {
611  if (itd->second.valueSetByUser != m_propertyNotSetMagicNumber) {
612  if (itd->second.valueSetByUser < itd->second.okrange_low || itd->second.valueSetByUser > itd->second.okrange_high) {
613  ATH_MSG_ERROR("Can not override value of "<<itd->first<<" : New value outside allowed range");
614  } else {
615  if ( static_cast<float>(*(itd->second.directvaraddress)) != static_cast<float>(itd->second.valueSetByUser) ) {
616  ATH_MSG_WARNING("Overriding "<<itd->first<<" flag ("
617  << (*(itd->second.directvaraddress))/itd->second.unit<<" "<<itd->second.unitname<<" -> "
618  << itd->second.valueSetByUser/itd->second.unit<<" "<<itd->second.unitname<<")");
619  *(itd->second.directvaraddress) = itd->second.valueSetByUser;
620  anyoverrides = true;
621  }
622  }
623  }
624  }
625 
628 
629  for (;itib!=itibE;++itib) {
630  if (itib->second.valueSetByUser != m_propertyNotSetMagicNumber_int) {
631  if (itib->second.valueSetByUser < itib->second.okrange_low || itib->second.valueSetByUser > itib->second.okrange_high) {
632  ATH_MSG_ERROR("Can not override value of "<<itib->first<<" : New value outside allowed range");
633  } else {
634  if (itib->second.directvaraddress_int) {
635  //int
636  if ( (*(itib->second.directvaraddress_int)) != itib->second.valueSetByUser ) {
637  ATH_MSG_WARNING("Overriding "<<itib->first<<" flag ("
638  << *(itib->second.directvaraddress_int)<<" -> "<< itib->second.valueSetByUser<<")");
639  *(itib->second.directvaraddress_int) = itib->second.valueSetByUser;
640  anyoverrides = true;
641  }
642  } else if (itib->second.directvaraddress_uint) {
643  //unsigned int
644  if ( (*(itib->second.directvaraddress_uint)) != static_cast<unsigned int>(itib->second.valueSetByUser) ) {
645  ATH_MSG_WARNING("Overriding "<<itib->first<<" flag ("
646  << *(itib->second.directvaraddress_uint)<<" -> "<< itib->second.valueSetByUser<<")");
647  *(itib->second.directvaraddress_uint) = itib->second.valueSetByUser;
648  anyoverrides = true;
649  }
650  } else {
651  //bool
652  assert(itib->second.directvaraddress_bool);
653  if ( (*(itib->second.directvaraddress_bool)) != itib->second.valueSetByUser ) {
654  ATH_MSG_WARNING("Overriding "<<itib->first<<" flag ("
655  << (*(itib->second.directvaraddress_bool)?1:0)<<" -> "
656  << (itib->second.valueSetByUser?1:0)<<")");
657  *(itib->second.directvaraddress_bool) = itib->second.valueSetByUser == 1;
658  anyoverrides = true;
659  }
660  }
661  }
662  }
663  }
664 
665  if (anyoverrides)
666  ATH_MSG_WARNING("Settings overridden from joboptions => possible deviation from version defaults.");
667 
668 }
TRTDigSettings::intboolparameter
Settable parameter, int and bool.
Definition: TRTDigSettings.h:403
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
TRTDigSettings::m_smearingFactor
double m_smearingFactor
Cluster energy smearing factor.
Definition: TRTDigSettings.h:249
TRTDigSettings::defineNewBoolVariable
void defineNewBoolVariable(const std::string &name, bool *datamember, const std::string &description)
Define new bool variable.
Definition: TRTDigSettings.cxx:397
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
TRTDigSettings::m_relativeHighThresholdFluctuation
double m_relativeHighThresholdFluctuation
Relative high threshold fluctuation.
Definition: TRTDigSettings.h:353
SGout2dot.alg
alg
Definition: SGout2dot.py:243
TRTDigSettings::m_numberOfBins
unsigned int m_numberOfBins
No.
Definition: TRTDigSettings.h:254
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
TRTDigSettings::m_htT0shiftECBwheels
int m_htT0shiftECBwheels
Definition: TRTDigSettings.h:290
TRTDigSettings::m_trEfficiencyEndCapBArgon
double m_trEfficiencyEndCapBArgon
Transition Radiation efficiency, end cap B, Argon.
Definition: TRTDigSettings.h:326
TRTDigSettings::m_highThresholdECAwheelsKrypton
double m_highThresholdECAwheelsKrypton
High threshold discriminator setting Krypton.
Definition: TRTDigSettings.h:284
TRTDigSettings::m_averageNoiseLevel
double m_averageNoiseLevel
Average noise level.
Definition: TRTDigSettings.h:348
TRT_DetectorManager.h
TRTDigSettings::m_ltT0shiftECBwheelsKr
int m_ltT0shiftECBwheelsKr
Definition: TRTDigSettings.h:302
TRTDigSettings::m_highThresholdBarShort
double m_highThresholdBarShort
High threshold discriminator setting.
Definition: TRTDigSettings.h:272
TRTDigSettings.h
TRTDigSettings::m_killEndCap
bool m_killEndCap
Disable end cap.
Definition: TRTDigSettings.h:336
TRTDigSettings::m_ionisationPotential
double m_ionisationPotential
Mean ionisation potential.
Definition: TRTDigSettings.h:246
TRTDigSettings::m_trEfficiencyEndCapBKrypton
double m_trEfficiencyEndCapBKrypton
Transition Radiation efficiency, end cap B, Krypton.
Definition: TRTDigSettings.h:329
TRTDigSettings::m_lowThresholdBarKrypton
double m_lowThresholdBarKrypton
Low threshold discriminator setting for Krypton mixture.
Definition: TRTDigSettings.h:269
TRTDigSettings::m_highThresholdBarLongKrypton
double m_highThresholdBarLongKrypton
High threshold discriminator setting Krypton.
Definition: TRTDigSettings.h:283
TRTDigSettings::m_trEfficiencyBarrelArgon
double m_trEfficiencyBarrelArgon
Transition Radiation efficiency, barrel, Argon.
Definition: TRTDigSettings.h:324
TRTDigSettings::m_useAttenuation
bool m_useAttenuation
Definition: TRTDigSettings.h:356
TRTDigSettings::m_discriminatorSettlingTime
double m_discriminatorSettlingTime
Discriminator settling time.
Definition: TRTDigSettings.h:258
TRTDigSettings::m_lowThresholdECKrypton
double m_lowThresholdECKrypton
Low threshold discriminator setting for Krypton mixture.
Definition: TRTDigSettings.h:270
python.SystemOfUnits.MeV
int MeV
Definition: SystemOfUnits.py:154
python.FakeAthena.Algorithm
def Algorithm(name)
Definition: FakeAthena.py:41
TRTDigSettings::m_doubleparMap
std::map< std::string, doubleparameter > m_doubleparMap
Map of settable parameters (double)
Definition: TRTDigSettings.h:414
TRTDigSettings::m_useMagneticFieldMap
bool m_useMagneticFieldMap
Definition: TRTDigSettings.h:242
TRTDigSettings::m_ltT0shiftBarLongAr
int m_ltT0shiftBarLongAr
Definition: TRTDigSettings.h:297
TRTDigSettings::printFlagsForOverrideableParameters
void printFlagsForOverrideableParameters(const std::string &front="") const
Print TRT digitization settings overrideable parameters.
Definition: TRTDigSettings.cxx:281
TRTDigSettings::addPropertiesForOverrideableParameters
void addPropertiesForOverrideableParameters(Algorithm *alg)
Add properties for overrideable parameters.
Definition: TRTDigSettings.cxx:244
TRTDigSettings::m_crosstalkNoiseLevel
double m_crosstalkNoiseLevel
Average cross talk noise level.
Definition: TRTDigSettings.h:349
python.SystemOfUnits.TeV
int TeV
Definition: SystemOfUnits.py:158
TRTDigSettings::m_slowPeriodicNoisePulseDistance
double m_slowPeriodicNoisePulseDistance
Slow periodic noise pulse distance (time)
Definition: TRTDigSettings.h:346
TRTDigSettings::m_highThresholdBarShortKrypton
double m_highThresholdBarShortKrypton
High threshold discriminator setting Krypton.
Definition: TRTDigSettings.h:282
TRTDigSettings::m_slowPeriodicNoisePulseFraction
double m_slowPeriodicNoisePulseFraction
Slow periodic noise pulse fraction.
Definition: TRTDigSettings.h:347
TRTDigSettings::m_highThresholdBarLongArgon
double m_highThresholdBarLongArgon
High threshold discriminator setting Argon.
Definition: TRTDigSettings.h:278
TRTDigSettings::defineNewVariable
void defineNewVariable(const std::string &name, double *datamember, const std::string &description, const std::string &unitname, double unitval, double lowrange, double highrange)
Define new double variable.
Definition: TRTDigSettings.cxx:316
TRTDigSettings::m_killBarrel
bool m_killBarrel
Disable barrel.
Definition: TRTDigSettings.h:337
TRTDigSettings::m_electronicsAreAtFarEnd
bool m_electronicsAreAtFarEnd
Electronics assumed at far end of straw.
Definition: TRTDigSettings.h:318
TRTDigSettings::m_highThresholdECAwheels
double m_highThresholdECAwheels
High threshold discriminator setting.
Definition: TRTDigSettings.h:274
TRTDigSettings::m_pileUpSDOsMinEkin
double m_pileUpSDOsMinEkin
Min.
Definition: TRTDigSettings.h:313
TRTDigSettings::m_propertyNotSetMagicNumber_int
int m_propertyNotSetMagicNumber_int
Definition: TRTDigSettings.h:419
TRTDigSettings::m_trEfficiencyEndCapB
double m_trEfficiencyEndCapB
Transition Radiation efficiency, end cap B.
Definition: TRTDigSettings.h:323
TRTDigSettings::m_numberOfCrossingsBeforeMain
unsigned int m_numberOfCrossingsBeforeMain
For pileup: BCs before main event.
Definition: TRTDigSettings.h:311
TRTDigSettings::m_trEfficiencyBarrel
double m_trEfficiencyBarrel
Transition Radiation efficiency, barrel.
Definition: TRTDigSettings.h:321
TRTDigSettings::m_lowThresholdBarArgon
double m_lowThresholdBarArgon
Low threshold discriminator setting for Argon mixture.
Definition: TRTDigSettings.h:266
python.SystemOfUnits.keV
int keV
Definition: SystemOfUnits.py:156
TRTDigSettings::fillDefaults
void fillDefaults(const InDetDD::TRT_DetectorManager *detmgr)
Fill default values into settable variables.
Definition: TRTDigSettings.cxx:419
TRTDigSettings::m_ltT0shiftBarLongKr
int m_ltT0shiftBarLongKr
Definition: TRTDigSettings.h:296
cm
const double cm
Definition: Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/tools/FCAL_ChannelMap.cxx:25
TRTDigSettings::m_storeSDO
unsigned int m_storeSDO
Time window in which to store SDOs.
Definition: TRTDigSettings.h:244
TRTDigSettings::m_isCTB
bool m_isCTB
Data is from CTB (Combined Test Beam)
Definition: TRTDigSettings.h:334
TRTDigSettings::m_timeCorrection
bool m_timeCorrection
Corrrect for flight and wire propagation delays.
Definition: TRTDigSettings.h:309
TRTDigSettings::m_highThresholdECBwheels
double m_highThresholdECBwheels
High threshold discriminator setting.
Definition: TRTDigSettings.h:275
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
TRTDigSettings::m_ltT0shiftECAwheelsXe
int m_ltT0shiftECAwheelsXe
Definition: TRTDigSettings.h:298
TRTDigSettings::m_ltT0shiftBarShortKr
int m_ltT0shiftBarShortKr
LT T0 shift.
Definition: TRTDigSettings.h:293
TRTDigSettings::m_ionisationPotentialKrypton
double m_ionisationPotentialKrypton
Mean ionisation potential for Krypton mixture.
Definition: TRTDigSettings.h:248
TRTDigSettings::m_propertyNotSetMagicNumber
double m_propertyNotSetMagicNumber
Definition: TRTDigSettings.h:418
TRTDigSettings::m_timeshiftsSymmetricForPhiSectors
bool m_timeshiftsSymmetricForPhiSectors
Time offset assumed phi symmetric.
Definition: TRTDigSettings.h:319
TRTDigSettings::m_smearingFactorKrypton
double m_smearingFactorKrypton
Cluster energy smearing factor for Krypton mixture.
Definition: TRTDigSettings.h:251
TRTDigSettings::m_signalPropagationSpeed
double m_signalPropagationSpeed
Signal propagation time in signal wire.
Definition: TRTDigSettings.h:260
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TRTDigSettings::m_timeOffsetCalcVertexY
double m_timeOffsetCalcVertexY
y-coord.
Definition: TRTDigSettings.h:316
TRTDigSettings::m_minDiscriminatorWidth
double m_minDiscriminatorWidth
Min.
Definition: TRTDigSettings.h:257
TRTDigSettings::m_htT0shiftBarLong
int m_htT0shiftBarLong
HT T0 shift.
Definition: TRTDigSettings.h:288
TRTDigSettings::TRTDigSettings
TRTDigSettings()
Parameters and settings for TRT digitization.
Definition: TRTDigSettings.cxx:42
TRTDigSettings::m_trEfficiencyEndCapAKrypton
double m_trEfficiencyEndCapAKrypton
Transition Radiation efficiency, end cap A, Krypton.
Definition: TRTDigSettings.h:328
TRTDigSettings::m_ltT0shiftECBwheelsAr
int m_ltT0shiftECBwheelsAr
Definition: TRTDigSettings.h:303
AthMessaging
Class to provide easy MsgStream access and capabilities.
Definition: AthMessaging.h:55
TRTDigSettings::m_timeInterval
double m_timeInterval
Time interval covered by each digit.
Definition: TRTDigSettings.h:253
python.SystemOfUnits.micrometer
int micrometer
Definition: SystemOfUnits.py:71
TRTDigSettings::m_highThresholdECBwheelsArgon
double m_highThresholdECBwheelsArgon
High threshold discriminator setting Argon.
Definition: TRTDigSettings.h:280
TRTDigSettings::m_outerRadiusOfWire
double m_outerRadiusOfWire
Radius of drift wire.
Definition: TRTDigSettings.h:306
TRTDigSettings::m_timeOffsetCalcVertexZ
double m_timeOffsetCalcVertexZ
z-coord.
Definition: TRTDigSettings.h:317
TRTDigSettings::m_highThresholdBarLong
double m_highThresholdBarLong
High threshold discriminator setting.
Definition: TRTDigSettings.h:273
TRTDigSettings::m_trtRangeCutProperty
double m_trtRangeCutProperty
Electrons xenon range cut in TRT simulation
Definition: TRTDigSettings.h:359
TRTDigSettings::m_discriminatorDeadTime
double m_discriminatorDeadTime
Discriminator dead time.
Definition: TRTDigSettings.h:259
TRTDigSettings::m_htT0shiftBarShort
int m_htT0shiftBarShort
Definition: TRTDigSettings.h:287
InDetDD::TRT_DetectorManager::digitizationVersionName
std::string digitizationVersionName() const
Definition: TRT_DetectorManager.cxx:230
TRTDigSettings::m_jitterTimeOffset
double m_jitterTimeOffset
Event time not correlated with LHC clock.
Definition: TRTDigSettings.h:338
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
TRTDigSettings::m_relativeLowThresholdFluctuation
double m_relativeLowThresholdFluctuation
Relative low threshold fluctuation.
Definition: TRTDigSettings.h:352
python.SystemOfUnits.eV
int eV
Definition: SystemOfUnits.py:155
python.SystemOfUnits.tesla
int tesla
Definition: SystemOfUnits.py:228
TRTDigSettings::m_lowThresholdECArgon
double m_lowThresholdECArgon
Low threshold discriminator setting for Argon mixture.
Definition: TRTDigSettings.h:267
TRTDigSettings::m_highThresholdECAwheelsArgon
double m_highThresholdECAwheelsArgon
High threshold discriminator setting Argon.
Definition: TRTDigSettings.h:279
TRTDigSettings::m_trEfficiencyEndCapA
double m_trEfficiencyEndCapA
Transition Radiation efficiency, end cap A.
Definition: TRTDigSettings.h:322
python.PhysicalConstants.c_light
float c_light
Definition: PhysicalConstants.py:63
TRTDigSettings::m_highThresholdBarShortArgon
double m_highThresholdBarShortArgon
High threshold discriminator setting Argon.
Definition: TRTDigSettings.h:277
TRTDigSettings::m_crosstalkNoiseLevelOtherEnd
double m_crosstalkNoiseLevelOtherEnd
Average cross talk noise level - other end.
Definition: TRTDigSettings.h:350
TRTDigSettings::processOverrides
void processOverrides()
Overwrite default values by uses values.
Definition: TRTDigSettings.cxx:604
TRTDigSettings::m_ltT0shiftECBwheelsXe
int m_ltT0shiftECBwheelsXe
Definition: TRTDigSettings.h:301
DecodeVersionKey.h
TRTDigSettings::m_noiseInUnhitStraws
bool m_noiseInUnhitStraws
Simulate noise in unhit straws.
Definition: TRTDigSettings.h:331
TRTDigSettings::m_fastElectronicsNoisePulseDistance
double m_fastElectronicsNoisePulseDistance
Fast electronics noise pulse distance (time)
Definition: TRTDigSettings.h:345
python.SystemOfUnits.mm
int mm
Definition: SystemOfUnits.py:83
TRTDigSettings::DigSettingsFromCondDB
StatusCode DigSettingsFromCondDB(int m_dig_vers_from_condDB)
Definition: TRTDigSettings.cxx:220
InDetDD::TRT_DetectorManager
The Detector Manager for all TRT Detector elements, it acts as the interface to the detector elements...
Definition: TRT_DetectorManager.h:69
TRTDigSettings::m_noiseInSimhits
bool m_noiseInSimhits
Simulate noise in hit straws.
Definition: TRTDigSettings.h:332
InDetDD::TRT_DetectorManager::newgas
@ newgas
Definition: TRT_DetectorManager.h:89
TRTDigSettings::defineNewIntVariable
void defineNewIntVariable(const std::string &name, int *datamember, const std::string &description, int lowrange, int highrange)
Define new int variable.
Definition: TRTDigSettings.cxx:370
TRTDigSettings::m_cosmicFlag
unsigned int m_cosmicFlag
Data is cosmics.
Definition: TRTDigSettings.h:342
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
InDetDD::TRT_DetectorManager::gasType
ActiveGasType gasType() const
Definition: TRT_DetectorManager.cxx:215
TRTDigSettings::m_trEfficiencyEndCapAArgon
double m_trEfficiencyEndCapAArgon
Transition Radiation efficiency, end cap A, Argon.
Definition: TRTDigSettings.h:325
InDetDD::TRT_DetectorManager::digitizationVersion
unsigned int digitizationVersion() const
Get and set information about digitization version ---------------------—.
Definition: TRT_DetectorManager.cxx:225
TRTDigSettings::defineNewUIntVariable
void defineNewUIntVariable(const std::string &name, unsigned int *datamember, const std::string &description, unsigned int lowrange, unsigned int highrange)
Define new unsigned int variable.
Definition: TRTDigSettings.cxx:343
TRTDigSettings::m_lowThresholdBar
double m_lowThresholdBar
Low threshold discriminator setting.
Definition: TRTDigSettings.h:263
TRTDigSettings::m_ltT0shiftBarShortXe
int m_ltT0shiftBarShortXe
Definition: TRTDigSettings.h:292
TRTDigSettings::m_attenuationLength
double m_attenuationLength
Definition: TRTDigSettings.h:357
TRTDigSettings::m_doCrosstalk
bool m_doCrosstalk
Crosstalk noise.
Definition: TRTDigSettings.h:340
TRTDigSettings::print
void print(const std::string &front="") const
Printing of TRT digitization settings.
Definition: TRTDigSettings.cxx:186
TRTDigSettings::m_timeOffsetCalcVertexX
double m_timeOffsetCalcVertexX
x-coord.
Definition: TRTDigSettings.h:315
python.SystemOfUnits.ns
int ns
Definition: SystemOfUnits.py:130
InDetDD::TRT_DetectorManager::ActiveGasType
ActiveGasType
Definition: TRT_DetectorManager.h:89
TRTDigSettings::m_ltT0shiftBarLongXe
int m_ltT0shiftBarLongXe
Definition: TRTDigSettings.h:295
TRTDigSettings::m_ltT0shiftECAwheelsKr
int m_ltT0shiftECAwheelsKr
Definition: TRTDigSettings.h:299
TRTDigSettings::defineVariables
void defineVariables()
Define settable variables.
Definition: TRTDigSettings.cxx:63
TRTDigSettings::initialize
void initialize(const InDetDD::TRT_DetectorManager *detmgr)
Initialize: fill defaults and overwrite by user values where appropriate.
Definition: TRTDigSettings.cxx:52
TRTDigSettings::m_intboolparMap
std::map< std::string, intboolparameter > m_intboolparMap
Map of settable parameters (int & bool)
Definition: TRTDigSettings.h:416
TRTDigSettings::m_htT0shiftECAwheels
int m_htT0shiftECAwheels
Definition: TRTDigSettings.h:289
TRTDigSettings::m_smearingFactorArgon
double m_smearingFactorArgon
Cluster energy smearing factor for Argon mixture.
Definition: TRTDigSettings.h:250
TRTDigSettings::m_distanceToTimeFactor
double m_distanceToTimeFactor
Fudge factor: time to distance.
Definition: TRTDigSettings.h:261
TRTDigSettings::m_isOverlay
bool m_isOverlay
Doing overlay.
Definition: TRTDigSettings.h:343
TRTDigSettings::m_highThresholdECBwheelsKrypton
double m_highThresholdECBwheelsKrypton
High threshold discriminator setting Krypton.
Definition: TRTDigSettings.h:285
TRTDigSettings::m_maxVertexDisplacement
double m_maxVertexDisplacement
Max.
Definition: TRTDigSettings.h:314
IGeoModelSvc.h
TRTDigSettings::m_lowThresholdEC
double m_lowThresholdEC
Low threshold discriminator setting.
Definition: TRTDigSettings.h:264
TRTDigSettings::m_ltT0shiftBarShortAr
int m_ltT0shiftBarShortAr
Definition: TRTDigSettings.h:294
TRTDigSettings::m_numberOfBinsInEncodingBin
unsigned int m_numberOfBinsInEncodingBin
No.
Definition: TRTDigSettings.h:255
GeV
#define GeV
Definition: CaloTransverseBalanceVecMon.cxx:30
TRTDigSettings::m_trEfficiencyBarrelKrypton
double m_trEfficiencyBarrelKrypton
Transition Radiation efficiency, barrel, Krypton.
Definition: TRTDigSettings.h:327
TRTDigSettings::m_digversion
unsigned int m_digversion
Definition: TRTDigSettings.h:241
TRTDigSettings::m_innerRadiusOfStraw
double m_innerRadiusOfStraw
Inner radius of straw.
Definition: TRTDigSettings.h:305
TRTDigSettings::m_ionisationPotentialArgon
double m_ionisationPotentialArgon
Mean ionisation potential for Argon mixture.
Definition: TRTDigSettings.h:247
TRTDigSettings::m_getT0FromData
bool m_getT0FromData
Definition: TRTDigSettings.h:243
TRTDigSettings::m_lengthOfDeadRegion
double m_lengthOfDeadRegion
Length of dead region at straw end.
Definition: TRTDigSettings.h:307
TRTDigSettings::doubleparameter
Settable parameter, double.
Definition: TRTDigSettings.h:392
TRTDigSettings::m_ltT0shiftECAwheelsAr
int m_ltT0shiftECAwheelsAr
Definition: TRTDigSettings.h:300
TRTDigSettings::m_doCosmicTimingPit
bool m_doCosmicTimingPit
Cosmics pit setup.
Definition: TRTDigSettings.h:339
description
std::string description
glabal timer - how long have I taken so far?
Definition: hcg.cxx:88
TRTDigSettings::m_solenoidFieldStrength
double m_solenoidFieldStrength
Solenoid field strength.
Definition: TRTDigSettings.h:354