ATLAS Offline Software
TRT_DriftFunctionTool.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // TRT_DriftFunctionTool.cxx
7 // Implementation file for class TRT_DriftFunctionTool
9 // (c) ATLAS Detector software
11 // AlgTool used to go from drift time to drift distance
13 
14 
15 #include "TRT_DriftFunctionTool.h"
16 
17 #include "GaudiKernel/IToolSvc.h"
20 #include "InDetIdentifier/TRT_ID.h"
24 
25 #include "CLHEP/Units/SystemOfUnits.h"
26 
27 #include <cmath>
28 #include <fstream>
29 #include <iostream>
30 #include <sstream>
31 #include <string>
32 //
33 // Constructor
35  const std::string& name,
36  const IInterface* parent)
37  : base_class(type, name, parent),
38  m_TRTCalDbTool("TRT_CalDbTool",this),
39  m_TRTCalDbTool2("",this),
40  m_drifttimeperbin(3.125 * CLHEP::ns),
41  m_error(0.17),
42  m_ismc(true),
43  m_isoverlay(false),
44  m_istestbeam(false),
45  m_dummy(false),
46  m_err_fudge(1.0),
47  m_allow_digi_version_override(false),
48  m_forced_digiversion(11),
49  m_override_simcal(false),
50  m_force_universal_errors(false),
51  m_uni_error(0.136),
52  m_inputfile(""),
53  m_key(""),
54  m_trt_mgr_location("TRT"),
55  m_ht_correction_barrel_Xe(0.0), // initialised from python
56  m_ht_correction_endcap_Xe(0.0), // initialised from python
57  m_ht_correction_barrel_Ar(0.0), // initialised from python
58  m_ht_correction_endcap_Ar(0.0), // initialised from python
59  m_tot_corrections_barrel_Xe(20, 0.), // initialised from python
60  m_tot_corrections_endcap_Xe(20, 0.), // initialised from python
61  m_tot_corrections_barrel_Ar(20, 0.), // initialised from python
62  m_tot_corrections_endcap_Ar(20, 0.) // initialised from python
63 {
64  declareProperty("IsMC",m_ismc);
65  declareProperty("AllowDigiVersionOverride",m_allow_digi_version_override);
66  declareProperty("ForcedDigiVersion",m_forced_digiversion);
67  declareProperty("IsOverlay",m_isoverlay=false);
68  declareProperty("OverrideSimulationCalibration",m_override_simcal);
69  declareProperty("ForceUniversalErrors",m_force_universal_errors);
70  declareProperty("UniversalError",m_uni_error);
71  declareProperty("DummyMode",m_dummy);
72  declareProperty("ErrorFudgeFactor",m_err_fudge);
73  declareProperty("TRTCalDbTool", m_TRTCalDbTool);
74  declareProperty("TRTCalDbTool2", m_TRTCalDbTool2);
75  declareProperty("DriftFunctionFile", m_inputfile);
76  declareProperty("TrtDescrManageLocation",m_trt_mgr_location);
77  declareProperty("ToTCorrectionsBarrelXe",m_tot_corrections_barrel_Xe);
78  declareProperty("ToTCorrectionsEndcapXe",m_tot_corrections_endcap_Xe);
79  declareProperty("ToTCorrectionsBarrelAr",m_tot_corrections_barrel_Xe);
80  declareProperty("ToTCorrectionsEndcapAr",m_tot_corrections_endcap_Xe);
81  declareProperty("HTCorrectionBarrelXe",m_ht_correction_barrel_Xe);
82  declareProperty("HTCorrectionEndcapXe",m_ht_correction_endcap_Xe);
83  declareProperty("HTCorrectionBarrelAr",m_ht_correction_barrel_Ar);
84  declareProperty("HTCorrectionEndcapAr",m_ht_correction_endcap_Ar);
85 
86  // make sure all arrays are initialized - use DC3version2 as default
87  for (int i=0; i<3; i++) m_t0_barrel[i] = 15.625;
88  for (int i=0; i<14; i++) m_t0_endcap[i] = 14.2;
89  m_t0_shift=0.;
90 
91  for(size_t i=0; i<s_size_default; ++i){
94  }
95  for(size_t i=s_size_default; i<MaxTimeBin; ++i) {
96  m_radius[i]=2.;
98  }
99 
100 }
101 
102 //
103 // Destructor--------------------------------------------------
105 
106 //
107 // Initialize--------------------------------------------------
109 {
110  ATH_MSG_DEBUG( "initialize()");
111 
113  if (sc.isFailure())
114  {
115  ATH_MSG_FATAL("Cannot initialize AthAlgTool!");
116  return StatusCode::FAILURE;
117  }
118 
119  if(m_dummy){
120  ATH_MSG_INFO(" Drift time information ignored ");
121  }
122 
123  // Retrieve TRT_DetectorManager and helper
125  if (sc.isFailure() || !m_manager)
126  {
127  ATH_MSG_FATAL("Could not find the Manager: "
128  << m_trt_mgr_location << " !");
129  return sc;
130  }
131 
132  // Get TRT ID helper
133  sc = detStore()->retrieve(m_trtid,"TRT_ID");
134  if ( sc.isFailure() ) {
135  ATH_MSG_FATAL( "Could not retrieve TRT ID helper." );
136  return sc;
137  }
138 
139  // Check that ToT corrections have the correct length
140  if (m_tot_corrections_barrel_Xe.size() != 20) {
141  ATH_MSG_FATAL( "Length of ToTCorrectionsBarrelXe is not 20." );
142  return sc;
143  }
144  if (m_tot_corrections_endcap_Xe.size() != 20) {
145  ATH_MSG_FATAL( "Length of ToTCorrectionsEndcapXe is not 20." );
146  return sc;
147  }
148  if (m_tot_corrections_barrel_Ar.size() != 20) {
149  ATH_MSG_FATAL( "Length of ToTCorrectionsBarrelAr is not 20." );
150  return sc;
151  }
152  if (m_tot_corrections_endcap_Ar.size() != 20) {
153  ATH_MSG_FATAL( "Length of ToTCorrectionsEndcapAr is not 20." );
154  return sc;
155  }
156 
157  //
158  // Get GeoModel version key
159  IGeoModelSvc *geomodel;
160  sc=service("GeoModelSvc",geomodel);
161  if(sc.isFailure()){
162  ATH_MSG_FATAL(" Could not locate GeoModelSvc ");
163  return sc;
164  }
165 
166  DecodeVersionKey versionKey(geomodel,"TRT");
167  m_key=versionKey.tag();
168 
169  int numB = m_manager->getNumerology()->getNBarrelPhi();
170  ATH_MSG_DEBUG(" Number of Barrel elements "<< numB);
171 
172  m_istestbeam = numB==2;
173 
174  setupRtRelation();
175 
176  return sc;
177 }
178 
179 //
180 // Finalize-----------------------------------------------------------------
182 {
184  return sc;
185 }
186 
187 // Drift time in ns for any non negative drift radius; Not calibrated for
188 // individual straws and run range, but otherwise adapted to any
189 // setup.
190 double TRT_DriftFunctionTool::approxDriftTime(double driftradius) const
191 {
192  double t = 0.;
193  int i=0;
194  if(driftradius<0.100) {
195  t = 2.5*m_drifttimeperbin*driftradius/0.1;
196  } else if(driftradius<1.99) {
197  while(driftradius>=m_radius[i]) ++i;
198  if(i>0) i--;
199  t=(i+0.5+(driftradius-m_radius[i])/(m_radius[i+1]-m_radius[i]))*m_drifttimeperbin;
200  } else {
201  t = m_drifttimeperbin*( 19. + (driftradius-1.99)/0.08 );
202  }
203 
204  return t;
205 }
206 
207 // Drift radius in mm for valid drift time in MC; zero otherwise.----------
208 double TRT_DriftFunctionTool::driftRadius(double drifttime) const
209 {
210  if( !isValidTime(drifttime) ) return 0;
211  int drifttimebin = std::max(int(drifttime/m_drifttimeperbin),0);
212 
213  // Interpolate linearly
214  if(drifttime < (drifttimebin+0.5)*m_drifttimeperbin) {
215  if (drifttimebin-1 > -1)
216  return m_radius[drifttimebin-1]+
217  (m_radius[drifttimebin]-m_radius[drifttimebin-1])*
218  (drifttime - (drifttimebin-0.5)*m_drifttimeperbin)/m_drifttimeperbin;
219  } else if (drifttimebin+1 < 20) {
220  return m_radius[drifttimebin]+
221  (m_radius[drifttimebin+1]-m_radius[drifttimebin])*
222  (drifttime - (drifttimebin+0.5)*m_drifttimeperbin)/m_drifttimeperbin;
223  }
224 
225  return m_radius[drifttimebin];
226 }
227 
228 //
229 // Drift radius in mm for valid drift time (rawtime-t0) in data; --------------
230 // zero otherwise; truncated to at most 2mm.
231 double TRT_DriftFunctionTool::driftRadius(double rawtime, Identifier id, double& t0, bool& isOK, unsigned int word) const
232 {
233  isOK = true;
234  const double crawtime=rawtime - m_t0_shift; // const cast
235  const Identifier cid=id; // const cast
236  t0 = 0.;
237  float ft0=t0; //float cast
238 
239  //case of no drifttime information wanted
240  if (m_dummy) return 0.;
241 
242  double radius = 0.;
243  if (!m_isoverlay){ //standard case
244  radius = m_TRTCalDbTool->driftRadius(crawtime,ft0,cid,isOK);
245  t0 = ft0 + m_t0_shift;
246  }
247  else{ //overlay case
248  // no m_t0_shift in rawtime, and use data TRTCalDbSvc
249  radius = m_TRTCalDbTool->driftRadius(rawtime,ft0,cid,isOK);
250  t0 = ft0;
251  bool mcdigit = word & (1u<<31);
252  if (mcdigit){
253  //check if it's a MC digit, and if so apply other calibration
254  ATH_MSG_DEBUG ("Overlay TRTCalDbTool gave radius: "<<radius<<", t0: "<<t0);
255  //t0_shift in crawtime, and use MC TRTCalDbSvc(2)
256  radius = m_TRTCalDbTool2->driftRadius(crawtime,ft0,cid,isOK);
257  t0 = ft0 + m_t0_shift;
258  ATH_MSG_DEBUG ("Overlay TRTCalDbTool2 gives radius: "<<radius<<", t0: "<<t0);
259  }
260  }
261  double drifttime = rawtime-t0;
262  if( !isValidTime(drifttime) ) isOK=false;
263  return radius;
264 
265 }
266 
267 // Error of drift radius in mm -----------------------------------------------
268 double TRT_DriftFunctionTool::errorOfDriftRadius(double drifttime, Identifier id, float mu, unsigned int word) const
269 {
270  if(m_dummy) return 4./std::sqrt(12.);
272  bool founderr=true;
273  bool foundslope=true;
274  double error = m_TRTCalDbTool->driftError(drifttime,id,founderr);
275  double slope = m_TRTCalDbTool->driftSlope(drifttime,id,foundslope);
276  bool mcdigit = word & (1u<<31);
277  if(m_isoverlay && mcdigit){
278  //check if it's a MC digit, and if so apply other calibration
279  ATH_MSG_DEBUG ("Overlay TRTCalDbTool gave error: "<<error<<", found="<<founderr);
280  error = m_TRTCalDbTool2->driftError(drifttime,id,founderr);
281  ATH_MSG_DEBUG ("Overlay TRTCalDbTool2 gives error: "<<error<<", found="<<founderr);
282  ATH_MSG_DEBUG ("Overlay TRTCalDbTool gave slope: "<<slope<<", found="<<foundslope);
283  slope = m_TRTCalDbTool2->driftSlope(drifttime,id,foundslope);
284  ATH_MSG_DEBUG ("Overlay TRTCalDbTool2 gives slope: "<<slope<<", found="<<foundslope);
285  }
286 
287  if(founderr && foundslope) {
288  return error+mu*slope;
289 //to add condition for old setup
290  }
291  else if ((founderr && !foundslope) || (mu<0)) {
292  return error; }
293  else { //interpolate
294  if(drifttime<=0.) {
295  return m_errors[0];
296  } else if(drifttime >= 18.*m_drifttimeperbin) {
297  return m_errors[18];
298  } else {
299  float drifttimeinbins = drifttime/m_drifttimeperbin;
300  int drifttimebin = (int)drifttimeinbins;
301  float fracbin = drifttimeinbins-drifttimebin;
302  return (1-fracbin)*m_errors[drifttimebin]+fracbin*m_errors[drifttimebin+1];
303  }
304  }
305 }
306 
307 //
308 // returns the time over threshold correction in ns
309 double TRT_DriftFunctionTool::driftTimeToTCorrection(double tot, Identifier id, bool isArgonStraw) const
310 {
311  int tot_index = tot/m_drifttimeperbin;
312  if (tot_index < 0) tot_index = 0;
313  if (tot_index > 19) tot_index = 19;
314 
315  int bec_index = std::abs(m_trtid->barrel_ec(id)) - 1;
316 
317  if (isArgonStraw) {
318  return (bec_index) ? m_tot_corrections_endcap_Ar[tot_index] : m_tot_corrections_barrel_Ar[tot_index];
319  }
320  return (bec_index) ? m_tot_corrections_endcap_Xe[tot_index] : m_tot_corrections_barrel_Xe[tot_index];
321 }
322 
323 // Returns high threshold correction to the drift time (ns)
324 double TRT_DriftFunctionTool::driftTimeHTCorrection(Identifier id, bool isArgonStraw) const
325 {
326  int bec_index = std::abs(m_trtid->barrel_ec(id)) - 1;
327 
328  if (isArgonStraw) {
330  }
332 }
333 
334 //
335 // Initialise R-t relation ------------------------------------------
337 {
338 
339  ATH_MSG_DEBUG(" Using TRTCalDbTool ");
340  if ( m_TRTCalDbTool.retrieve().isFailure() ) {
341  ATH_MSG_FATAL(m_TRTCalDbTool.propertyName() <<
342  ": Failed to retrieve service " << m_TRTCalDbTool.type());
343  return;
344 
345  } else {
346  ATH_MSG_DEBUG(m_TRTCalDbTool.propertyName() <<
347  ": Retrieved service " << m_TRTCalDbTool.type());
348  }
349 
350  if (m_isoverlay){
351  ATH_MSG_DEBUG("Using TRTCalDbTool2 for overlay ! ");
352  if ( m_TRTCalDbTool2.retrieve().isFailure() ) {
353  ATH_MSG_FATAL(m_TRTCalDbTool2.propertyName() <<": Failed to retrieveservice " << m_TRTCalDbTool2.type());
354  return;
355  }
356  }
357  //temporary: we need some way to automatically link digi version with db tag
358  //for now we make a hack in order always to get the right t0 after having centered the
359  //drifttime spectrum better in the allowed time-window with digi version 12 in release 14.
360 
362  if(m_ismc || m_isoverlay){
363 
366  ATH_MSG_DEBUG("TRT detector manager returned digitization version "<< type <<
367  " corresponding to "<< m_manager->digitizationVersionName());
368  } else {
369  ATH_MSG_WARNING("Digitization version chosen by user for global t0 correction: "<<type);
370  }
371 
372 
373  if(type>10) {
374  m_t0_shift=-8.;
375  ATH_MSG_DEBUG(" Digitization version " << type << " - T0 for barrel is shifted by "
376  << m_t0_shift);
377  }
378 
379  }
380  //temporary: we need to think about how to store the uncertainties in the db!!!
381 
382  if(m_key.compare(6,4,"Comm")==0) {
383  for(size_t i=0; i<s_size_Comm; ++i){
386  }
387  } else {
388  for(size_t i=0; i<s_size_default; ++i){
390  }
391  }
392 
393  m_error = 0.136;
394 }
TRT_DriftFunctionTool::m_key
std::string m_key
GeoModel version key.
Definition: TRT_DriftFunctionTool.h:121
TRT_DriftFunctionTool::s_radius_default
static constexpr double s_radius_default[s_size_default]
Definition: TRT_DriftFunctionTool.h:136
TRT_DriftFunctionTool::m_TRTCalDbTool2
ToolHandle< ITRT_CalDbTool > m_TRTCalDbTool2
Definition: TRT_DriftFunctionTool.h:91
python.tests.PyTestsLib.finalize
def finalize(self)
_info( "content of StoreGate..." ) self.sg.dump()
Definition: PyTestsLib.py:53
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
TRT_DriftFunctionTool::~TRT_DriftFunctionTool
virtual ~TRT_DriftFunctionTool()
Destructor
TRT_DriftFunctionTool::m_tot_corrections_endcap_Xe
std::vector< double > m_tot_corrections_endcap_Xe
ToT corrections for 20 ToT bins in Xe endcap straws.
Definition: TRT_DriftFunctionTool.h:131
TRT_DriftFunctionTool::m_t0_barrel
double m_t0_barrel[3]
t0 for the 3 barrel rings
Definition: TRT_DriftFunctionTool.h:123
max
#define max(a, b)
Definition: cfImp.cxx:41
TRT_DriftFunctionTool::driftTimeHTCorrection
virtual double driftTimeHTCorrection(Identifier id, bool isArgonStraw=false) const override
Returns high threshold correction to the drift time (ns)
Definition: TRT_DriftFunctionTool.cxx:324
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
TRT_DriftFunctionTool::m_override_simcal
bool m_override_simcal
flag for reading constants from
Definition: TRT_DriftFunctionTool.h:116
IGeoModelSvc
Definition: IGeoModelSvc.h:17
TRT_DetectorManager.h
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
TRT_DriftFunctionTool::m_ht_correction_barrel_Xe
double m_ht_correction_barrel_Xe
HT correction for Xe straws in barrel.
Definition: TRT_DriftFunctionTool.h:126
TRT_DriftFunctionTool::m_allow_digi_version_override
bool m_allow_digi_version_override
flag for using constants for
Definition: TRT_DriftFunctionTool.h:113
initialize
void initialize()
Definition: run_EoverP.cxx:894
ALFA_EventTPCnv_Dict::t0
std::vector< ALFA_RawData_p1 > t0
Definition: ALFA_EventTPCnvDict.h:42
TRT_DriftFunctionTool::m_force_universal_errors
bool m_force_universal_errors
use one universal error
Definition: TRT_DriftFunctionTool.h:117
TRT_ID.h
This is an Identifier helper class for the TRT subdetector. This class is a factory for creating comp...
TRT_DriftFunctionTool::m_tot_corrections_endcap_Ar
std::vector< double > m_tot_corrections_endcap_Ar
ToT corrections for 20 ToT bins in Ar endcap straws.
Definition: TRT_DriftFunctionTool.h:133
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
TRT_DriftFunctionTool::m_err_fudge
double m_err_fudge
fudge_factor for error scaling
Definition: TRT_DriftFunctionTool.h:111
TRT_DriftFunctionTool::m_uni_error
double m_uni_error
namely this one
Definition: TRT_DriftFunctionTool.h:118
TRT_DriftFunctionTool::s_errors_default
static constexpr double s_errors_default[s_size_default]
Definition: TRT_DriftFunctionTool.h:141
Trk::u
@ u
Enums for curvilinear frames.
Definition: ParamDefs.h:83
TRT_DriftFunctionTool::m_isoverlay
bool m_isoverlay
flag for overlay
Definition: TRT_DriftFunctionTool.h:106
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
TRT_DriftFunctionTool::driftTimeToTCorrection
virtual double driftTimeToTCorrection(double tot, Identifier id, bool isArgonStraw=false) const override
Returns time over threshold correction to the drift time (ns)
Definition: TRT_DriftFunctionTool.cxx:309
Version.h
TRT_DriftFunctionTool::isValidTime
virtual bool isValidTime(double drifttime) const override
Returns True for drifttimes between -10 and 75ns.
Definition: TRT_DriftFunctionTool.h:159
InDetDD::TRT_DetectorManager::getNumerology
TRT_Numerology * getNumerology()
Access Numerological information:---------------------------------------—.
Definition: TRT_DetectorManager.cxx:56
TRT_DriftFunctionTool::m_ht_correction_endcap_Ar
double m_ht_correction_endcap_Ar
HT correction for Ar straws in barrel.
Definition: TRT_DriftFunctionTool.h:129
TRT_DriftFunctionTool::m_trt_mgr_location
std::string m_trt_mgr_location
Name of TRT detector manager.
Definition: TRT_DriftFunctionTool.h:122
TRT_DriftFunctionTool::m_istestbeam
bool m_istestbeam
flag for CTB data or mc
Definition: TRT_DriftFunctionTool.h:107
TRT_DriftFunctionTool::m_t0_shift
double m_t0_shift
digiversion dependent t0 shift
Definition: TRT_DriftFunctionTool.h:125
lumiFormat.i
int i
Definition: lumiFormat.py:92
TRT_DriftFunctionTool::s_radius_Comm
static constexpr double s_radius_Comm[s_size_Comm]
Definition: TRT_DriftFunctionTool.h:148
TRT_DriftFunctionTool::m_t0_endcap
double m_t0_endcap[18]
t0 for the 14(18) endcap wheels
Definition: TRT_DriftFunctionTool.h:124
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
TRT_DriftFunctionTool::m_errors
double m_errors[MaxTimeBin]
width of radius dist in each bin
Definition: TRT_DriftFunctionTool.h:103
DecodeVersionKey
This is a helper class to query the version tags from GeoModelSvc and determine the appropriate tag a...
Definition: DecodeVersionKey.h:18
CLHEP
STD'S.
Definition: IAtRndmGenSvc.h:19
TRT_DriftFunctionTool::m_forced_digiversion
int m_forced_digiversion
this digi version
Definition: TRT_DriftFunctionTool.h:114
TRT_DriftFunctionTool::TRT_DriftFunctionTool
TRT_DriftFunctionTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor
Definition: TRT_DriftFunctionTool.cxx:34
test_pyathena.parent
parent
Definition: test_pyathena.py:15
DecodeVersionKey::tag
const std::string & tag() const
Return version tag.
Definition: DecodeVersionKey.cxx:93
InDetDD::TRT_Numerology::getNBarrelPhi
unsigned int getNBarrelPhi() const
TRT_DriftFunctionTool::m_drifttimeperbin
double m_drifttimeperbin
3.125ns
Definition: TRT_DriftFunctionTool.h:98
TRT_ID::barrel_ec
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Definition: TRT_ID.h:866
TRT_DriftFunctionTool::m_ismc
bool m_ismc
flag for mc
Definition: TRT_DriftFunctionTool.h:105
LB_AnalMapSplitter.tot
tot
Definition: LB_AnalMapSplitter.py:46
TRT_DriftFunctionTool::m_inputfile
std::string m_inputfile
file overriding MC constants
Definition: TRT_DriftFunctionTool.h:120
TRT_DriftFunctionTool::approxDriftTime
virtual double approxDriftTime(double driftradius) const override
Returns approximate drift time (t0 subtracted)
Definition: TRT_DriftFunctionTool.cxx:190
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
InDetDD::TRT_DetectorManager::digitizationVersionName
std::string digitizationVersionName() const
Definition: TRT_DetectorManager.cxx:230
TRT_DriftFunctionTool::m_ht_correction_endcap_Xe
double m_ht_correction_endcap_Xe
HT correction for Xe straws in barrel.
Definition: TRT_DriftFunctionTool.h:127
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:194
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
TRT_DriftFunctionTool::initialize
virtual StatusCode initialize() override
Retrieves needed services
Definition: TRT_DriftFunctionTool.cxx:108
TRT_DriftFunctionTool::finalize
virtual StatusCode finalize() override
Finalize
Definition: TRT_DriftFunctionTool.cxx:181
TRT_DriftFunctionTool::m_tot_corrections_barrel_Xe
std::vector< double > m_tot_corrections_barrel_Xe
ToT corrections for 20 ToT bins in Xe barrel straws.
Definition: TRT_DriftFunctionTool.h:130
DecodeVersionKey.h
ParticleGun_SamplingFraction.radius
radius
Definition: ParticleGun_SamplingFraction.py:96
TRT_DriftFunctionTool::m_TRTCalDbTool
ToolHandle< ITRT_CalDbTool > m_TRTCalDbTool
Tool to fetch data from database.
Definition: TRT_DriftFunctionTool.h:90
TRT_DriftFunctionTool::errorOfDriftRadius
virtual double errorOfDriftRadius(double drifttime, Identifier id, float mu=-10, unsigned int word=0) const override
Time-dependent error of drift radius in mm.
Definition: TRT_DriftFunctionTool.cxx:268
TRT_DriftFunctionTool::MaxTimeBin
@ MaxTimeBin
Definition: TRT_DriftFunctionTool.h:101
TRT_DriftFunctionTool::setupRtRelation
void setupRtRelation()
Initialise Rt relation.
Definition: TRT_DriftFunctionTool.cxx:336
TRT_DriftFunctionTool::m_ht_correction_barrel_Ar
double m_ht_correction_barrel_Ar
HT correction for Ar straws in barrel.
Definition: TRT_DriftFunctionTool.h:128
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
InDetDD::TRT_DetectorManager::digitizationVersion
unsigned int digitizationVersion() const
Get and set information about digitization version ---------------------—.
Definition: TRT_DetectorManager.cxx:225
TRT_DriftFunctionTool::s_size_Comm
static const size_t s_size_Comm
Definition: TRT_DriftFunctionTool.h:147
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
TRT_Numerology.h
python.SystemOfUnits.ns
int ns
Definition: SystemOfUnits.py:130
TRT_DriftFunctionTool::m_error
double m_error
universal error
Definition: TRT_DriftFunctionTool.h:99
TRT_DriftFunctionTool.h
TRT_DriftFunctionTool::s_errors_Comm
static constexpr double s_errors_Comm[s_size_Comm]
Definition: TRT_DriftFunctionTool.h:152
TRT_DriftFunctionTool::m_trtid
const TRT_ID * m_trtid
Definition: TRT_DriftFunctionTool.h:95
get_generator_info.error
error
Definition: get_generator_info.py:40
TRT_DriftFunctionTool::m_tot_corrections_barrel_Ar
std::vector< double > m_tot_corrections_barrel_Ar
ToT corrections for 20 ToT bins in Ar barrel straws.
Definition: TRT_DriftFunctionTool.h:132
IGeoModelSvc.h
CaloNoise_fillDB.mu
mu
Definition: CaloNoise_fillDB.py:53
error
Definition: IImpactPoint3dEstimator.h:70
TRT_DriftFunctionTool::driftRadius
virtual double driftRadius(double rawtime, Identifier id, double &t0, bool &isOK, unsigned int word=0) const override
Returns drift radius in mm and t0 in ns The radius is truncated so it belongs to [0,...
Definition: TRT_DriftFunctionTool.cxx:231
TRT_DriftFunctionTool::s_size_default
static const size_t s_size_default
Definition: TRT_DriftFunctionTool.h:135
TRT_DriftFunctionTool::m_radius
double m_radius[MaxTimeBin]
most probable radius in each bin
Definition: TRT_DriftFunctionTool.h:102
TRT_DriftFunctionTool::m_manager
const InDetDD::TRT_DetectorManager * m_manager
DetectorManager and helper.
Definition: TRT_DriftFunctionTool.h:94
TRT_DriftFunctionTool::m_dummy
bool m_dummy
flag for ignoring drift time info
Definition: TRT_DriftFunctionTool.h:109