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 <cmath>
26 #include <fstream>
27 #include <iostream>
28 #include <sstream>
29 #include <string>
30 //
31 // Constructor
33  const std::string& name,
34  const IInterface* parent)
35  : base_class(type, name, parent)
36 {
37  // make sure all arrays are initialized - use DC3version2 as default
38  for (int i=0; i<3; i++) m_t0_barrel[i] = 15.625;
39  for (int i=0; i<14; i++) m_t0_endcap[i] = 14.2;
40  m_t0_shift=0.;
41 
42  for(size_t i=0; i<s_size_default; ++i){
45  }
46  for(size_t i=s_size_default; i<MaxTimeBin; ++i) {
47  m_radius[i]=2.;
49  }
50 }
51 
52 //
53 // Destructor--------------------------------------------------
55 
56 //
57 // Initialize--------------------------------------------------
59 {
60  ATH_MSG_DEBUG( "initialize()");
61 
63  if (sc.isFailure())
64  {
65  ATH_MSG_FATAL("Cannot initialize AthAlgTool!");
66  return StatusCode::FAILURE;
67  }
68 
69  if(m_dummy){
70  ATH_MSG_INFO(" Drift time information ignored ");
71  }
72 
73  // Retrieve TRT_DetectorManager and helper
75  if (sc.isFailure() || !m_manager)
76  {
77  ATH_MSG_FATAL("Could not find the Manager: "
78  << m_trt_mgr_location << " !");
79  return sc;
80  }
81 
82  // Get TRT ID helper
83  sc = detStore()->retrieve(m_trtid,"TRT_ID");
84  if ( sc.isFailure() ) {
85  ATH_MSG_FATAL( "Could not retrieve TRT ID helper." );
86  return sc;
87  }
88 
89  // Check that ToT corrections have the correct length
90  if (m_tot_corrections_barrel_Xe.size() != 20) {
91  ATH_MSG_FATAL( "Length of ToTCorrectionsBarrelXe is not 20." );
92  return sc;
93  }
94  if (m_tot_corrections_endcap_Xe.size() != 20) {
95  ATH_MSG_FATAL( "Length of ToTCorrectionsEndcapXe is not 20." );
96  return sc;
97  }
98  if (m_tot_corrections_barrel_Ar.size() != 20) {
99  ATH_MSG_FATAL( "Length of ToTCorrectionsBarrelAr is not 20." );
100  return sc;
101  }
102  if (m_tot_corrections_endcap_Ar.size() != 20) {
103  ATH_MSG_FATAL( "Length of ToTCorrectionsEndcapAr is not 20." );
104  return sc;
105  }
106 
107  //
108  // Get GeoModel version key
109  SmartIF<IGeoModelSvc> geomodel{service("GeoModelSvc")};
110  ATH_CHECK( geomodel.isValid() );
111 
112  DecodeVersionKey versionKey(geomodel,"TRT");
113  m_key=versionKey.tag();
114 
115  int numB = m_manager->getNumerology()->getNBarrelPhi();
116  ATH_MSG_DEBUG(" Number of Barrel elements "<< numB);
117  m_istestbeam = numB==2;
118 
119  setupRtRelation();
120 
121  return sc;
122 }
123 
124 //
125 // Finalize-----------------------------------------------------------------
127 {
129  return sc;
130 }
131 
132 // Drift time in ns for any non negative drift radius; Not calibrated for
133 // individual straws and run range, but otherwise adapted to any
134 // setup.
135 double TRT_DriftFunctionTool::approxDriftTime(double driftradius) const
136 {
137  double t = 0.;
138  int i=0;
139  if(driftradius<0.100) {
140  t = 2.5*s_drifttimeperbin*driftradius/0.1;
141  } else if(driftradius<1.99) {
142  while(driftradius>=m_radius[i]) ++i;
143  if(i>0) i--;
144  t=(i+0.5+(driftradius-m_radius[i])/(m_radius[i+1]-m_radius[i]))*s_drifttimeperbin;
145  } else {
146  t = s_drifttimeperbin*( 19. + (driftradius-1.99)/0.08 );
147  }
148 
149  return t;
150 }
151 
152 // Drift radius in mm for valid drift time in MC; zero otherwise.----------
153 double TRT_DriftFunctionTool::driftRadius(double drifttime) const
154 {
155  if( !isValidTime(drifttime) ) return 0;
156  int drifttimebin = std::max(int(drifttime/s_drifttimeperbin),0);
157 
158  // Interpolate linearly
159  if(drifttime < (drifttimebin+0.5)*s_drifttimeperbin) {
160  if (drifttimebin-1 > -1)
161  return m_radius[drifttimebin-1]+
162  (m_radius[drifttimebin]-m_radius[drifttimebin-1])*
163  (drifttime - (drifttimebin-0.5)*s_drifttimeperbin)/s_drifttimeperbin;
164  } else if (drifttimebin+1 < 20) {
165  return m_radius[drifttimebin]+
166  (m_radius[drifttimebin+1]-m_radius[drifttimebin])*
167  (drifttime - (drifttimebin+0.5)*s_drifttimeperbin)/s_drifttimeperbin;
168  }
169 
170  return m_radius[drifttimebin];
171 }
172 
173 //
174 // Drift radius in mm for valid drift time (rawtime-t0) in data; --------------
175 // zero otherwise; truncated to at most 2mm.
176 double TRT_DriftFunctionTool::driftRadius(double rawtime, Identifier id, double& t0, bool& isOK, unsigned int word) const
177 {
178  isOK = true;
179  const double crawtime=rawtime - m_t0_shift; // const cast
180  const Identifier cid=id; // const cast
181  t0 = 0.;
182  float ft0=t0; //float cast
183 
184  //case of no drifttime information wanted
185  if (m_dummy) return 0.;
186 
187  double radius = 0.;
188  if (!m_isoverlay){ //standard case
189  radius = m_TRTCalDbTool->driftRadius(crawtime,ft0,cid,isOK);
190  t0 = ft0 + m_t0_shift;
191  }
192  else{ //overlay case
193  // no m_t0_shift in rawtime, and use data TRTCalDbSvc
194  radius = m_TRTCalDbTool->driftRadius(rawtime,ft0,cid,isOK);
195  t0 = ft0;
196  bool mcdigit = word & (1u<<31);
197  if (mcdigit){
198  //check if it's a MC digit, and if so apply other calibration
199  ATH_MSG_DEBUG ("Overlay TRTCalDbTool gave radius: "<<radius<<", t0: "<<t0);
200  //t0_shift in crawtime, and use MC TRTCalDbSvc(2)
201  radius = m_TRTCalDbTool2->driftRadius(crawtime,ft0,cid,isOK);
202  t0 = ft0 + m_t0_shift;
203  ATH_MSG_DEBUG ("Overlay TRTCalDbTool2 gives radius: "<<radius<<", t0: "<<t0);
204  }
205  }
206  double drifttime = rawtime-t0;
207  if( !isValidTime(drifttime) ) isOK=false;
208  return radius;
209 
210 }
211 
212 // Error of drift radius in mm -----------------------------------------------
213 double TRT_DriftFunctionTool::errorOfDriftRadius(double drifttime, Identifier id, float mu, unsigned int word) const
214 {
215  if(m_dummy) return 4./std::sqrt(12.);
217  bool founderr=true;
218  bool foundslope=true;
219  double error = m_TRTCalDbTool->driftError(drifttime,id,founderr);
220  double slope = m_TRTCalDbTool->driftSlope(drifttime,id,foundslope);
221  bool mcdigit = word & (1u<<31);
222  if(m_isoverlay && mcdigit){
223  //check if it's a MC digit, and if so apply other calibration
224  ATH_MSG_DEBUG ("Overlay TRTCalDbTool gave error: "<<error<<", found="<<founderr);
225  error = m_TRTCalDbTool2->driftError(drifttime,id,founderr);
226  ATH_MSG_DEBUG ("Overlay TRTCalDbTool2 gives error: "<<error<<", found="<<founderr);
227  ATH_MSG_DEBUG ("Overlay TRTCalDbTool gave slope: "<<slope<<", found="<<foundslope);
228  slope = m_TRTCalDbTool2->driftSlope(drifttime,id,foundslope);
229  ATH_MSG_DEBUG ("Overlay TRTCalDbTool2 gives slope: "<<slope<<", found="<<foundslope);
230  }
231 
232  if(founderr && foundslope) {
233  return error+mu*slope;
234 //to add condition for old setup
235  }
236  else if ((founderr && !foundslope) || (mu<0)) {
237  return error; }
238  else { //interpolate
239  if(drifttime<=0.) {
240  return m_errors[0];
241  } else if(drifttime >= 18.*s_drifttimeperbin) {
242  return m_errors[18];
243  } else {
244  float drifttimeinbins = drifttime/s_drifttimeperbin;
245  int drifttimebin = (int)drifttimeinbins;
246  float fracbin = drifttimeinbins-drifttimebin;
247  return (1-fracbin)*m_errors[drifttimebin]+fracbin*m_errors[drifttimebin+1];
248  }
249  }
250 }
251 
252 //
253 // returns the time over threshold correction in ns
254 double TRT_DriftFunctionTool::driftTimeToTCorrection(double tot, Identifier id, bool isArgonStraw) const
255 {
256  int tot_index = tot/s_drifttimeperbin;
257  if (tot_index < 0) tot_index = 0;
258  if (tot_index > 19) tot_index = 19;
259 
260  int bec_index = std::abs(m_trtid->barrel_ec(id)) - 1;
261 
262  if (isArgonStraw) {
263  return (bec_index) ? m_tot_corrections_endcap_Ar[tot_index] : m_tot_corrections_barrel_Ar[tot_index];
264  }
265  return (bec_index) ? m_tot_corrections_endcap_Xe[tot_index] : m_tot_corrections_barrel_Xe[tot_index];
266 }
267 
268 // Returns high threshold correction to the drift time (ns)
269 double TRT_DriftFunctionTool::driftTimeHTCorrection(Identifier id, bool isArgonStraw) const
270 {
271  int bec_index = std::abs(m_trtid->barrel_ec(id)) - 1;
272 
273  if (isArgonStraw) {
275  }
277 }
278 
279 //
280 // Initialise R-t relation ------------------------------------------
282 {
283 
284  ATH_MSG_DEBUG(" Using TRTCalDbTool ");
285  if ( m_TRTCalDbTool.retrieve().isFailure() ) {
286  ATH_MSG_FATAL(m_TRTCalDbTool.propertyName() <<
287  ": Failed to retrieve service " << m_TRTCalDbTool.type());
288  return;
289 
290  } else {
291  ATH_MSG_DEBUG(m_TRTCalDbTool.propertyName() <<
292  ": Retrieved service " << m_TRTCalDbTool.type());
293  }
294 
295  if (m_isoverlay){
296  ATH_MSG_DEBUG("Using TRTCalDbTool2 for overlay ! ");
297  if ( m_TRTCalDbTool2.retrieve().isFailure() ) {
298  ATH_MSG_FATAL(m_TRTCalDbTool2.propertyName() <<": Failed to retrieveservice " << m_TRTCalDbTool2.type());
299  return;
300  }
301  }
302  //temporary: we need some way to automatically link digi version with db tag
303  //for now we make a hack in order always to get the right t0 after having centered the
304  //drifttime spectrum better in the allowed time-window with digi version 12 in release 14.
305 
307  if(m_ismc || m_isoverlay){
308 
311  ATH_MSG_DEBUG("TRT detector manager returned digitization version "<< type <<
312  " corresponding to "<< m_manager->digitizationVersionName());
313  } else {
314  ATH_MSG_WARNING("Digitization version chosen by user for global t0 correction: "<<type);
315  }
316 
317 
318  if(type>10) {
319  m_t0_shift=-8.;
320  ATH_MSG_DEBUG(" Digitization version " << type << " - T0 for barrel is shifted by "
321  << m_t0_shift);
322  }
323 
324  }
325  //temporary: we need to think about how to store the uncertainties in the db!!!
326 
327  if(m_key.compare(6,4,"Comm")==0) {
328  for(size_t i=0; i<s_size_Comm; ++i){
331  }
332  } else {
333  for(size_t i=0; i<s_size_default; ++i){
335  }
336  }
337 
338 }
TRT_DriftFunctionTool::m_key
std::string m_key
GeoModel version key.
Definition: TRT_DriftFunctionTool.h:122
TRT_DriftFunctionTool::s_radius_default
static constexpr double s_radius_default[s_size_default]
Definition: TRT_DriftFunctionTool.h:153
TRT_DriftFunctionTool::m_ht_correction_barrel_Xe
DoubleProperty m_ht_correction_barrel_Xe
Definition: TRT_DriftFunctionTool.h:130
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:50
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
TRT_DriftFunctionTool::~TRT_DriftFunctionTool
virtual ~TRT_DriftFunctionTool()
Destructor
TRT_DriftFunctionTool::m_t0_barrel
double m_t0_barrel[3]
t0 for the 3 barrel rings
Definition: TRT_DriftFunctionTool.h:126
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:269
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
TRT_DetectorManager.h
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
TRT_DriftFunctionTool::m_trt_mgr_location
StringProperty m_trt_mgr_location
Definition: TRT_DriftFunctionTool.h:124
initialize
void initialize()
Definition: run_EoverP.cxx:894
TRT_DriftFunctionTool::s_drifttimeperbin
static constexpr double s_drifttimeperbin
Definition: TRT_DriftFunctionTool.h:97
ALFA_EventTPCnv_Dict::t0
std::vector< ALFA_RawData_p1 > t0
Definition: ALFA_EventTPCnvDict.h:42
TRT_ID.h
This is an Identifier helper class for the TRT subdetector. This class is a factory for creating comp...
TRT_DriftFunctionTool::m_ht_correction_barrel_Ar
DoubleProperty m_ht_correction_barrel_Ar
Definition: TRT_DriftFunctionTool.h:134
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
TRT_DriftFunctionTool::s_errors_default
static constexpr double s_errors_default[s_size_default]
Definition: TRT_DriftFunctionTool.h:158
TRT_DriftFunctionTool::m_ht_correction_endcap_Xe
DoubleProperty m_ht_correction_endcap_Xe
Definition: TRT_DriftFunctionTool.h:132
Trk::u
@ u
Enums for curvilinear frames.
Definition: ParamDefs.h:77
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:254
TRT_DriftFunctionTool::m_tot_corrections_endcap_Ar
DoubleArrayProperty m_tot_corrections_endcap_Ar
Definition: TRT_DriftFunctionTool.h:149
Version.h
TRT_DriftFunctionTool::m_dummy
BooleanProperty m_dummy
Definition: TRT_DriftFunctionTool.h:105
TRT_DriftFunctionTool::isValidTime
virtual bool isValidTime(double drifttime) const override
Returns True for drifttimes between -10 and 75ns.
Definition: TRT_DriftFunctionTool.h:176
InDetDD::TRT_DetectorManager::getNumerology
TRT_Numerology * getNumerology()
Access Numerological information:---------------------------------------—.
Definition: TRT_DetectorManager.cxx:46
TRT_DriftFunctionTool::m_istestbeam
bool m_istestbeam
Definition: TRT_DriftFunctionTool.h:108
TRT_DriftFunctionTool::m_t0_shift
double m_t0_shift
digiversion dependent t0 shift
Definition: TRT_DriftFunctionTool.h:128
lumiFormat.i
int i
Definition: lumiFormat.py:85
TRT_DriftFunctionTool::s_radius_Comm
static constexpr double s_radius_Comm[s_size_Comm]
Definition: TRT_DriftFunctionTool.h:165
TRT_DriftFunctionTool::m_t0_endcap
double m_t0_endcap[18]
t0 for the 14(18) endcap wheels
Definition: TRT_DriftFunctionTool.h:127
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:101
DecodeVersionKey
This is a helper class to query the version tags from GeoModelSvc and determine the appropriate tag a...
Definition: DecodeVersionKey.h:18
TRT_DriftFunctionTool::TRT_DriftFunctionTool
TRT_DriftFunctionTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor
Definition: TRT_DriftFunctionTool.cxx:32
test_pyathena.parent
parent
Definition: test_pyathena.py:15
DecodeVersionKey::tag
const std::string & tag() const
Return version tag.
Definition: DecodeVersionKey.cxx:91
TRT_DriftFunctionTool::m_forced_digiversion
IntegerProperty m_forced_digiversion
this digi version
Definition: TRT_DriftFunctionTool.h:116
InDetDD::TRT_Numerology::getNBarrelPhi
unsigned int getNBarrelPhi() const
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
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::approxDriftTime
virtual double approxDriftTime(double driftradius) const override
Returns approximate drift time (t0 subtracted)
Definition: TRT_DriftFunctionTool.cxx:135
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:227
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
TRT_DriftFunctionTool::m_uni_error
DoubleProperty m_uni_error
namely this one
Definition: TRT_DriftFunctionTool.h:120
InDetDD::TRT_DetectorManager::digitizationVersionName
const std::string & digitizationVersionName() const
Definition: TRT_DetectorManager.cxx:220
TRT_DriftFunctionTool::initialize
virtual StatusCode initialize() override
Retrieves needed services
Definition: TRT_DriftFunctionTool.cxx:58
TRT_DriftFunctionTool::finalize
virtual StatusCode finalize() override
Finalize
Definition: TRT_DriftFunctionTool.cxx:126
DecodeVersionKey.h
TRT_DriftFunctionTool::m_tot_corrections_endcap_Xe
DoubleArrayProperty m_tot_corrections_endcap_Xe
Definition: TRT_DriftFunctionTool.h:143
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:213
TRT_DriftFunctionTool::MaxTimeBin
@ MaxTimeBin
Definition: TRT_DriftFunctionTool.h:99
TRT_DriftFunctionTool::setupRtRelation
void setupRtRelation()
Initialise Rt relation.
Definition: TRT_DriftFunctionTool.cxx:281
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
TRT_DriftFunctionTool::m_tot_corrections_barrel_Xe
DoubleArrayProperty m_tot_corrections_barrel_Xe
Definition: TRT_DriftFunctionTool.h:140
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:215
TRT_DriftFunctionTool::m_err_fudge
DoubleProperty m_err_fudge
Definition: TRT_DriftFunctionTool.h:110
TRT_DriftFunctionTool::m_force_universal_errors
BooleanProperty m_force_universal_errors
use one universal error
Definition: TRT_DriftFunctionTool.h:119
TRT_DriftFunctionTool::s_size_Comm
static const size_t s_size_Comm
Definition: TRT_DriftFunctionTool.h:164
TRT_Numerology.h
TRT_DriftFunctionTool::m_ismc
BooleanProperty m_ismc
Definition: TRT_DriftFunctionTool.h:103
TRT_DriftFunctionTool.h
TRT_DriftFunctionTool::s_errors_Comm
static constexpr double s_errors_Comm[s_size_Comm]
Definition: TRT_DriftFunctionTool.h:169
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_ht_correction_endcap_Ar
DoubleProperty m_ht_correction_endcap_Ar
Definition: TRT_DriftFunctionTool.h:136
IGeoModelSvc.h
TRT_DriftFunctionTool::m_allow_digi_version_override
BooleanProperty m_allow_digi_version_override
flag for using constants for
Definition: TRT_DriftFunctionTool.h:114
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:176
TRT_DriftFunctionTool::s_size_default
static const size_t s_size_default
Definition: TRT_DriftFunctionTool.h:152
TRT_DriftFunctionTool::m_radius
double m_radius[MaxTimeBin]
most probable radius in each bin
Definition: TRT_DriftFunctionTool.h:100
TRT_DriftFunctionTool::m_isoverlay
BooleanProperty m_isoverlay
Definition: TRT_DriftFunctionTool.h:104
TRT_DriftFunctionTool::m_manager
const InDetDD::TRT_DetectorManager * m_manager
DetectorManager and helper.
Definition: TRT_DriftFunctionTool.h:94
TRT_DriftFunctionTool::m_tot_corrections_barrel_Ar
DoubleArrayProperty m_tot_corrections_barrel_Ar
Definition: TRT_DriftFunctionTool.h:146
Identifier
Definition: IdentifierFieldParser.cxx:14