ATLAS Offline Software
ReadTRT_DetectorElements.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 #include "CLHEP/Units/SystemOfUnits.h"
8 
11 #include "InDetIdentifier/TRT_ID.h"
12 #include "Identifier/Identifier.h"
16 
17 #include <iostream>
18 #include <vector>
19 
20 
21 using std::cout;
22 using std::endl;
23 using namespace InDetDD;
24 
25 namespace{
26  const Amg::Vector3D origin(0., 0., 0.);
27 }
28 
29 // Prints out TRT DetectorElement positions.
30 
32 
33 ReadTRT_DetectorElements::ReadTRT_DetectorElements(const std::string& name, ISvcLocator* pSvcLocator) :
34  AthAlgorithm(name, pSvcLocator),
35  m_managerName("TRT"),
36  m_manager(nullptr),
37  m_idHelper(nullptr),
38  m_maxdiff(0),
39  m_first(true)
40 {
41  // Get parameter values from jobOptions file
42  declareProperty("ManagerName", m_managerName);
43  declareProperty("DoInitialize", m_doInit = true);
44  declareProperty("DoExecute", m_doExec = false);
45 }
46 
47 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
48 
50  msg(MSG::INFO) << "initialize()" << endmsg;
51  // Get the manager
53  if (sc.isFailure() || !m_manager) {
54  msg(MSG::FATAL) << "Could not find the Manager: "<< m_managerName << " !" << endmsg;
55  return StatusCode::FAILURE;
56  } else {
57  msg(MSG::DEBUG) << "Manager found" << endmsg;
58  }
59  // Get ID helper
60  if (detStore()->retrieve(m_idHelper, "TRT_ID").isFailure()) {
61  msg(MSG::FATAL) << "Could not get TRT ID helper" << endmsg;
62  return StatusCode::FAILURE;
63  }
65  return StatusCode::SUCCESS;
66 }
67 
68 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
69 
71  msg(MSG::INFO) << "execute()" << endmsg;
72  // Only print out on first event
73  if (m_first && m_doExec) {
74  m_first = false;
76  }
77  return StatusCode::SUCCESS;
78 }
79 
81  // Retrieve GeoModel Detector Elements
82  // Get the id helper
83  const TRT_ID * idHelper = m_idHelper;
84  // Examples are shown below for accessing via index for barrel, then endcap and
85  // then accessing via hash
86  //
87  // Access via indices.
88  //
89  //
90  //
91  cout << "======================================" <<endl;
92  cout << " BARREL ELEMENTS - access via index" << endl;
93  cout << "======================================" <<endl;
94  cout << endl;
95  //cache numerology
96  const TRT_Numerology * numerology=m_manager->getNumerology();
97  //avoid getting these inside loops
98  const unsigned int nBarrelRings(numerology->getNBarrelRings());
99  const unsigned int nBarrelPhi(numerology->getNBarrelPhi());
100 
101  for (int iSide = 0; iSide < 2; iSide++) {
102  for (unsigned int iLayer = 0; iLayer != nBarrelRings; iLayer++) {
103  const unsigned int nBarrelLayers(numerology->getNBarrelLayers(iLayer));
104  for (unsigned int iPhiModule = 0; iPhiModule != nBarrelPhi; iPhiModule++) {
105  for (unsigned int iStrawLayer = 0; iStrawLayer !=nBarrelLayers; iStrawLayer++) {
106  cout << "Barrel element " << iSide << ", " << iLayer << ", " << iPhiModule << ", "<< iStrawLayer << endl;
107  const TRT_BarrelElement *element = m_manager->getBarrelElement(iSide, iLayer, iPhiModule, iStrawLayer);
108  // Make identifier.
109  Identifier newId = idHelper->layer_id((iSide ? 1:-1), iPhiModule, iLayer, iStrawLayer);
110  idHelper->show(newId);
111  IdentifierHash idHash = idHelper->straw_layer_hash(newId);
112  cout << "idHash = " << idHash << endl;
113  if (element) {
114  Amg::Vector3D center = element->transform() * origin;
115  cout << " center = " << center << endl;
116  //cout << " strawDir = " << element->strawDirection() << endl;
117  cout << " number of straws = " << element->nStraws() << endl;
118  // Print out straw details of some elements
119  if ((iPhiModule == 0) || (iPhiModule == 1) || (iPhiModule == 7) || (iPhiModule == 31)) {
120  for (unsigned int istraw = 0; istraw < 15; istraw++) {
121  printStraw(element, istraw);
122  //printBarrelStraw(element, istraw);
123  }
124  }
125  // Compare methods
126  for (unsigned int istraw = 0; istraw < element->nStraws(); istraw++) {
127  compareBarrelStraw(element, istraw);
128  }
129  } else {
130  cout << "No Element found " << endl;
131  }
132  }
133  }
134  }
135  }
136 
137  //
138  //
139  cout << "======================================" <<endl;
140  cout << " ENDCAP ELEMENTS - access via index" << endl;
141  cout << "======================================" <<endl;
142  cout << endl;
143  const unsigned int nWheels(numerology->getNEndcapWheels());
144  const unsigned int nEndcapPhi(numerology->getNEndcapPhi());
145  for (int iSide = 0; iSide < 2; iSide++) {
146  for (unsigned int iWheel = 0; iWheel !=nWheels ; iWheel++) {
147  const unsigned int nEndcapLayers(numerology->getNEndcapLayers(iWheel));
148  for (unsigned int iStrawLayer = 0; iStrawLayer != nEndcapLayers; iStrawLayer++){
149  for(unsigned int iPhi = 0; iPhi != nEndcapPhi; iPhi++){
150  cout << "Endcap element " << iSide << ", "<< iWheel << ", "<< iStrawLayer << ", "<< iPhi << endl;
151  const TRT_EndcapElement * element = m_manager->getEndcapElement(iSide, iWheel, iStrawLayer, iPhi);
152 
153  // Make identifier.
154  Identifier newId = idHelper->layer_id((iSide ? 2:-2), iPhi, iWheel, iStrawLayer);
155  idHelper->show(newId);
156  IdentifierHash idHash = idHelper->straw_layer_hash(newId);
157  cout << "idHash = " << idHash << endl;
158 
159  if (element) {
160  Amg::Vector3D center = element->transform() * origin;
161  cout << " center = " << center << endl;
162  cout << " number of straws = " << element->nStraws() << endl;
163  // Print out straw details of some elements
164  int iPhiModule = iPhi;
165  if ((iPhiModule == 0) || (iPhiModule == 1) || (iPhiModule == 7) || (iPhiModule == 31)) {
166  for (unsigned int istraw = 0; istraw < 15; istraw++) {
167  printStraw(element, istraw);
168  //printEndcapStraw(element, istraw);
169  }
170  }
171  // Compare methods
172  for (unsigned int istraw = 0; istraw < element->nStraws(); istraw++) {
173  compareEndcapStraw(element, istraw);
174  }
175  } else {
176  cout << "No Element found " << endl;
177  }
178  }
179  }
180  }
181  }
182 
183 
184 
185  unsigned int maxHash = idHelper->straw_layer_hash_max();
186 
187  //
188  // Try and iterate over all elements.
189  // There is no iterator but we can get the elements via the idHash.
190  //
191 
192  cout << "======================================" <<endl;
193  cout << " ALL ELEMENTS - access via hash" << endl;
194  cout << "======================================" <<endl;
195  cout << endl;
196 
197  cout << " maxHash = " << maxHash << endl;
198 
199  for (unsigned int index = 0; index < maxHash; index++) {
200 
201  IdentifierHash idHash = index;
202 
203  Identifier id = idHelper->layer_id(idHash);
204  idHelper->show(id);
205 
206  const TRT_BaseElement * element;
207 
208  element = m_manager->getElement(idHash);
209 
210  if (element) {
211  Amg::Vector3D center = element->transform() * origin;
212  cout << " center = " << center << endl;
213  } else {
214  cout << "No Element with id hash = " << idHash << endl;
215  }
216  }
217 
218 
219  cout << "======================================" <<endl;
220  cout << " ALL ELEMENTS - access via index from hash" << endl;
221  cout << " (no printout) " << endl;
222  cout << "======================================" <<endl;
223  cout << endl; for (unsigned int index = 0; index < maxHash; index++) {
224 
225  IdentifierHash idHash = index;
226 
227  Identifier id = idHelper->layer_id(idHash);
228  //idHelper->show(id);
229 
230 
231  int idBarrelEndcap = idHelper->barrel_ec(id);
232  int idSide = (idBarrelEndcap > 0);
233  int idLayerWheel = idHelper->layer_or_wheel(id);
234  int idPhiModule = idHelper->phi_module(id);
235  int idStrawLayer = idHelper->straw_layer(id);
236 
237  // Make identifier again,
238  // Identifier newId = idHelper->layer_id(idBarrelEndcap, idPhiModule, idLayerWheel, idStrawLayer);
239  // idHelper->show(newId);
240 
241 
242  const TRT_BaseElement * element;
243 
244 
245  if (idHelper->is_barrel(id)) {
246  element = m_manager->getBarrelElement(idSide, idLayerWheel, idPhiModule, idStrawLayer);
247  } else {
248  element = m_manager->getEndcapElement(idSide, idLayerWheel, idStrawLayer, idPhiModule);
249  }
250 
251  if (element) {
252  //nop
253  //Amg::Vector3D center = element->transform() * origin;
254  //cout << " center = " << center << endl;
255  } else {
256  cout << "No Element with id hash = " << idHash << endl;
257  }
258  }
259 
260  cout << endl;
261 
262  cout << "Max diff = " << m_maxdiff << endl;
263 
264 }
265 
266 
267 
268 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
269 
271  msg(MSG::INFO) << "finalize()" << endmsg;
272  return StatusCode::SUCCESS;
273 }
274 
275 
276 void
277 ReadTRT_DetectorElements::printBarrelStraw(const TRT_BarrelElement * element, unsigned int strawNum){
278  // It is recommended to use the methods in printStraw() rather than the ones here
279  if (strawNum >= element->nStraws()) {
280  cout << "Straw number out of range:" << strawNum << " >= " << element->nStraws() << endl;
281  return;
282  }
283 
284  double x = element->strawXPos(strawNum);
285  double y = element->strawYPos(strawNum);
286  double z = element->strawZPos(strawNum);
287  double r = sqrt(x*x+y*y);
288  double phi = atan2(y,x);
289  cout << "strawNum = " << strawNum << ", "
290  << "x = " << x << ", "
291  << "y = " << y << ", "
292  << "z = " << z << ", "
293  << "r = " << r << ", "
294  << "phi = " << phi << ", "
295  << "length = " << element->strawLength()
296  << endl;
297 
298 
299 }
300 
301 void
302 ReadTRT_DetectorElements::printEndcapStraw(const TRT_EndcapElement * element, unsigned int strawNum)
303 {
304  // It is recommended to use the methods in printStraw() rather than the ones here
305 
306  if (strawNum >= element->nStraws()) {
307  cout << "Straw number out of range:" << strawNum << " >= " << element->nStraws() << endl;
308  return;
309  }
310 
311  double phiStart = element->getDescriptor()->startPhi();
312  double pitch = element->getDescriptor()->strawPitch();
313  double phi = phiStart + strawNum*pitch;
314  phi = atan2(sin(phi), cos(phi)); // Get phi b/n -pi and pi.
315  double z = (element->transform() * origin).z();
316  cout << "strawNum = " << strawNum << ", "
317  << "phiStart = " << phiStart << ", "
318  << "pitch = " << pitch << ", "
319  << "z = " << z << ", "
320  << "r = " << element->getDescriptor()->innerRadius() + 0.5 * element->getDescriptor()->strawLength() << ", "
321  << "phi = " << phi << ", "
322  << "length = " << element->getDescriptor()->strawLength()
323  << endl;
324 
325 }
326 
327 
328 
329 void
330 ReadTRT_DetectorElements::printStraw(const TRT_BaseElement * element, unsigned int strawNum)
331 {
332  if (strawNum >= element->nStraws()) {
333  cout << "Straw number out of range:" << strawNum << " >= " << element->nStraws() << endl;
334  return;
335  }
336 
337  const Amg::Transform3D& transform = element->strawTransform(strawNum);
338  Amg::Vector3D strawCenter = transform * origin;
339  cout << "strawNum = " << strawNum << ", "
340  << "x = " << strawCenter.x() << ", "
341  << "y = " << strawCenter.y() << ", "
342  << "z = " << strawCenter.z() << ", "
343  << "r = " << strawCenter.perp() << ", "
344  << "phi = " << strawCenter.phi() << ", "
345  << "length = " << element->strawLength() << ", "
346  << "localAxis = " << transform * Amg::Vector3D(0,0,1)
347  << endl;
348 }
349 
350 void
351 ReadTRT_DetectorElements::compareBarrelStraw(const TRT_BarrelElement * element, unsigned int strawNum){
352  if (strawNum >= element->nStraws()) {
353  cout << "Straw number out of range:" << strawNum << " >= " << element->nStraws() << endl;
354  return;
355  }
356 
357  double x = element->strawXPos(strawNum);
358  double y = element->strawYPos(strawNum);
359  double z = element->strawZPos(strawNum);
360 
361  Amg::Transform3D transform = element->strawTransform(strawNum);
362  Amg::Vector3D strawPos = transform * origin;
363 
364  if (!comparePos(strawPos, Amg::Vector3D(x,y,z), 1e-9)) {
365  cout << "Straw Positions DIFFER !!!!!" << endl;
366  printStraw(element, strawNum);
367  printBarrelStraw(element, strawNum);
368  }
369 }
370 
371 void
372 ReadTRT_DetectorElements::compareEndcapStraw(const TRT_EndcapElement * element, unsigned int strawNum){
373  if (strawNum >= element->getDescriptor()->nStraws()) {
374  cout << "Straw number out of range:" << strawNum << " >= " << element->getDescriptor()->nStraws() << endl;
375  return;
376  }
377  double phiStart = element->getDescriptor()->startPhi();
378  double pitch = element->getDescriptor()->strawPitch();
379  double phi = phiStart + strawNum*pitch;
380  double r = element->getDescriptor()->innerRadius() + 0.5 * element->getDescriptor()->strawLength();
381  double z = (element->transform() * origin).z();
382 
383  Amg::Transform3D transform = element->strawTransform(strawNum);
384  Amg::Vector3D strawPos = transform * origin;
385 
386  if (!comparePos(strawPos, Amg::Vector3D(r*cos(phi), r*sin(phi), z), 1e-5)) {
387  cout << "Straw Positions DIFFER !!!!!" << endl;
388  printStraw(element, strawNum);
389  printEndcapStraw(element, strawNum);
390  }
391 }
392 
393 
394 bool
396  for (int i = 0; i < 3; i++) {
397  double diff = std::abs(p1[i] - p2[i]);
399  if (diff > err) return false;
400  }
401  return true;
402 }
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
InDetDD::TRT_BarrelElement::strawXPos
double strawXPos(unsigned int i) const
Get X Position: DEPRECATED.
beamspotman.r
def r
Definition: beamspotman.py:676
TRT_ID::layer_id
Identifier layer_id(int barrel_ec, int phi_module, int layer_or_wheel, int straw_layer) const
For an individual straw layer.
Definition: TRT_ID.h:500
InDetDD::TRT_BaseElement::strawLength
virtual const double & strawLength() const =0
Active straw length.
InDetDD::TRT_BarrelElement
Definition: TRT_BarrelElement.h:44
max
#define max(a, b)
Definition: cfImp.cxx:41
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
ReadTRT_DetectorElements::printAllElements
void printAllElements()
Definition: ReadTRT_DetectorElements.cxx:80
python.Constants.FATAL
int FATAL
Definition: Control/AthenaCommon/python/Constants.py:19
TRT_DetectorManager.h
InDetDD::TRT_EndcapDescriptor::innerRadius
double & innerRadius()
The inner radius:
Definition: TRT_EndcapDescriptor.cxx:49
ReadTRT_DetectorElements::comparePos
bool comparePos(const Amg::Vector3D &p1, const Amg::Vector3D &p2, const double err)
Definition: ReadTRT_DetectorElements.cxx:395
index
Definition: index.py:1
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
InDetDD::TRT_DetectorManager::getBarrelElement
const TRT_BarrelElement * getBarrelElement(unsigned int positive, unsigned int moduleIndex, unsigned int phiIndex, unsigned int strawLayerIndex) const
Access Barrel Elements:---------------—(Fast)-------------------------—.
Definition: TRT_DetectorManager.cxx:113
TRT_ID::straw_layer_hash_max
size_type straw_layer_hash_max(void) const
Definition: TRT_ID.h:920
InDetDD::TRT_BaseElement::nStraws
unsigned int nStraws() const
Number of straws in the element.
TRT_ID.h
This is an Identifier helper class for the TRT subdetector. This class is a factory for creating comp...
InDetDD::TRT_EndcapElement
Definition: TRT_EndcapElement.h:44
mc.diff
diff
Definition: mc.SFGenPy8_MuMu_DD.py:14
ReadTRT_DetectorElements::m_manager
const InDetDD::TRT_DetectorManager * m_manager
Definition: ReadTRT_DetectorElements.h:65
InDetDD::TRT_EndcapDescriptor::nStraws
unsigned int & nStraws()
The number of straws in a module:
Definition: TRT_EndcapDescriptor.cxx:33
ReadTRT_DetectorElements::m_maxdiff
double m_maxdiff
Definition: ReadTRT_DetectorElements.h:68
ReadTRT_DetectorElements::execute
StatusCode execute()
Definition: ReadTRT_DetectorElements.cxx:70
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
ReadTRT_DetectorElements::ReadTRT_DetectorElements
ReadTRT_DetectorElements(const std::string &name, ISvcLocator *pSvcLocator)
Default Algorithm constructor with parameters.
Definition: ReadTRT_DetectorElements.cxx:33
ReadTRT_DetectorElements::m_doExec
bool m_doExec
Definition: ReadTRT_DetectorElements.h:63
x
#define x
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
AthCommonDataStore< AthCommonMsg< Algorithm > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
InDetDD::TRT_Numerology::getNEndcapWheels
unsigned int getNEndcapWheels() const
ReadTRT_DetectorElements::m_doInit
bool m_doInit
Definition: ReadTRT_DetectorElements.h:62
TRT_EndcapElement.h
InDetDD::TRT_DetectorManager::getNumerology
TRT_Numerology * getNumerology()
Access Numerological information:---------------------------------------—.
Definition: TRT_DetectorManager.cxx:56
ReadTRT_DetectorElements::m_first
bool m_first
Definition: ReadTRT_DetectorElements.h:69
InDetDD::TRT_Numerology
Definition: TRT_Numerology.h:22
dqt_zlumi_pandas.err
err
Definition: dqt_zlumi_pandas.py:193
ReadTRT_DetectorElements::compareBarrelStraw
void compareBarrelStraw(const InDetDD::TRT_BarrelElement *element, const unsigned int strawNum)
Definition: ReadTRT_DetectorElements.cxx:351
lumiFormat.i
int i
Definition: lumiFormat.py:92
z
#define z
InDetDD::TRT_BarrelElement::strawLength
virtual const double & strawLength() const override final
Get the length of the straws (active length):
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ReadTRT_DetectorElements::m_managerName
std::string m_managerName
Definition: ReadTRT_DetectorElements.h:61
InDetDD::TRT_EndcapElement::getDescriptor
const TRT_EndcapDescriptor * getDescriptor() const
Returns a pointer to a descriptor, giving common information on module construction.
Definition: TRT_EndcapElement.cxx:82
ReadTRT_DetectorElements.h
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
Amg::transform
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Definition: GeoPrimitivesHelpers.h:156
InDetDD::TRT_Numerology::getNBarrelPhi
unsigned int getNBarrelPhi() const
InDetDD::TRT_Numerology::getNBarrelLayers
unsigned int getNBarrelLayers(unsigned int iMod) const
TRT_ID::barrel_ec
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Definition: TRT_ID.h:866
ReadTRT_DetectorElements::printStraw
void printStraw(const InDetDD::TRT_BaseElement *element, const unsigned int strawNum)
Definition: ReadTRT_DetectorElements.cxx:330
TRT_ID::straw_layer
int straw_layer(const Identifier &id) const
Definition: TRT_ID.h:893
TRT_ID::layer_or_wheel
int layer_or_wheel(const Identifier &id) const
Definition: TRT_ID.h:884
ReadTRT_DetectorElements::printEndcapStraw
void printEndcapStraw(const InDetDD::TRT_EndcapElement *element, const unsigned int strawNum)
Definition: ReadTRT_DetectorElements.cxx:302
TRT_BarrelElement.h
AthAlgorithm
Definition: AthAlgorithm.h:47
InDetDD::TRT_DetectorManager::getEndcapElement
const TRT_EndcapElement * getEndcapElement(unsigned int positive, unsigned int wheelIndex, unsigned int strawLayerIndex, unsigned int phiIndex) const
Access Endcap Elements:---------------—(Fast)--------------------------—.
Definition: TRT_DetectorManager.cxx:129
InDetDD::TRT_EndcapDescriptor::startPhi
double & startPhi()
The starting phi (angular!!)
Definition: TRT_EndcapDescriptor.cxx:41
ReadTRT_DetectorElements::printBarrelStraw
void printBarrelStraw(const InDetDD::TRT_BarrelElement *element, const unsigned int strawNum)
Definition: ReadTRT_DetectorElements.cxx:277
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
IdentifierHash.h
InDetDD::TRT_DetectorManager::getElement
const TRT_BaseElement * getElement(Identifier id) const
Access Elements Generically---------------------------------------------—.
Definition: TRT_DetectorManager.cxx:158
AtlasDetectorID::show
void show(Identifier id, const IdContext *context=0, char sep='.') const
Short print out of any identifier (optionally provide separation character - default is '.
Definition: AtlasDetectorID.cxx:565
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
TRT_ID::phi_module
int phi_module(const Identifier &id) const
Definition: TRT_ID.h:875
ReadTRT_DetectorElements::initialize
StatusCode initialize()
Definition: ReadTRT_DetectorElements.cxx:49
Trk::iPhi
@ iPhi
Definition: ParamDefs.h:53
ReadTRT_DetectorElements::finalize
StatusCode finalize()
Definition: ReadTRT_DetectorElements.cxx:270
InDetDD::TRT_EndcapDescriptor::strawPitch
double & strawPitch()
The straw pitch (angular!!)
Definition: TRT_EndcapDescriptor.cxx:37
DeMoScan.index
string index
Definition: DeMoScan.py:362
TRT_ID
Definition: TRT_ID.h:84
InDetDD::TRT_BaseElement::strawTransform
const Amg::Transform3D & strawTransform(unsigned int straw) const
Straw transform - fast access in array, in Tracking frame: Amg.
Definition: TRT_BaseElement.cxx:89
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
TRT_ID::is_barrel
bool is_barrel(const Identifier &id) const
Test for barrel.
Definition: TRT_ID.h:857
y
#define y
InDetDD::TRT_BarrelElement::strawZPos
double strawZPos(unsigned int i) const
Get Z Position: (active center) DEPRECATED.
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
InDetDD::TRT_EndcapDescriptor::strawLength
double & strawLength()
Definition: TRT_EndcapDescriptor.cxx:45
DEBUG
#define DEBUG
Definition: page_access.h:11
AthCommonMsg< Algorithm >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
ReadTRT_DetectorElements::compareEndcapStraw
void compareEndcapStraw(const InDetDD::TRT_EndcapElement *element, const unsigned int strawNum)
Definition: ReadTRT_DetectorElements.cxx:372
TRT_Numerology.h
InDetDD::TRT_Numerology::getNEndcapPhi
unsigned int getNEndcapPhi() const
InDetDD::TRT_Numerology::getNEndcapLayers
unsigned int getNEndcapLayers(unsigned int iWheel) const
InDetDD::TRT_Numerology::getNBarrelRings
unsigned int getNBarrelRings() const
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
InDetDD::TRT_BarrelElement::strawYPos
double strawYPos(unsigned int i) const
Get Y Position: DEPRECATED.
TRT_ID::straw_layer_hash
IdentifierHash straw_layer_hash(Identifier straw_layer_id) const
straw_layer hash from id - optimized
Definition: TRT_ID.h:750
InDetDD::TRT_BaseElement
Definition: TRT_BaseElement.h:57
InDetDD::TRT_BaseElement::transform
virtual const Amg::Transform3D & transform() const override final
Element Surface: Get Transform of element in Tracking frame: Amg.
ReadTRT_DetectorElements::m_idHelper
const TRT_ID * m_idHelper
Definition: ReadTRT_DetectorElements.h:66