ATLAS Offline Software
SiDetElementLink_xk.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // Header file for class SiDetElementLink_xk
8 // (c) ATLAS Detector software
10 // Class for detector elements links
12 // Version 1.0 3/10/2004 I.Gavrilenko
14 
15 #ifndef SiDetElementLink_xk_H
16 #define SiDetElementLink_xk_H
17 
18 #include <utility>
19 
21 
22 namespace InDet {
23 
26  // Public methods:
28 
29  public:
30  class ElementWay {
31  public:
33  float distance)
35 
36  const InDet::SiDetElementLink_xk* link() const { return m_link; }
37  float way() const { return m_way; }
38  float distance() const { return m_distance; }
39 
40  private:
42  float m_way;
43  float m_distance;
44  };
45 
47  SiDetElementLink_xk(const InDetDD::SiDetectorElement*, const double*,
48  bool isITk = false);
53  ~SiDetElementLink_xk() = default;
55  // Main methods
57 
58  void set(const double*, bool isITk = false);
60  float phi() const { return m_phi; }
61  float z() const { return m_z; }
62  float dz() const { return m_dz; }
63  void intersect(const float*, const float*, float*) const;
64  bool intersectITk(const float*, const float*, float&) const;
65 
66  private:
67  const InDetDD::SiDetectorElement* m_detelement; // note owning ptr
68  float m_phi;
69  float m_z;
70  float m_dz;
71  float m_geo[6];
72  float m_center[2];
73  float m_bound[4][3];
74 };
75 
77 // Inline methods
79 
81  m_detelement = 0;
82  m_phi = 0.;
83  m_z = 0.;
84  m_dz = 0.;
85 }
86 
88  const InDetDD::SiDetectorElement* el, const double* P, bool isITk) {
89  m_detelement = el;
90  set(P, isITk);
91 }
92 
93 } // namespace InDet
94 
95 #endif // SiDetElementLink_xk
96 
DMTest::P
P_v1 P
Definition: P.h:23
InDet
Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
plotIsoValidation.el
el
Definition: plotIsoValidation.py:197
InDetDD::SiDetectorElement
Definition: SiDetectorElement.h:109
SiDetectorElement.h