ATLAS Offline Software
SiDetElementLink_xk.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 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 
46  SiDetElementLink_xk() = default;
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 = nullptr; // note owning ptr
68  float m_phi = 0;
69  float m_z = 0;
70  float m_dz = 0;
71  float m_geo[6] = {};
72  float m_center[2] = {};
73  float m_bound[4][3] = {};
74 };
75 
77 // Inline methods
79 
81  const InDetDD::SiDetectorElement* el, const double* P, bool isITk) {
82  m_detelement = el;
83  set(P, isITk);
84 }
85 
86 } // namespace InDet
87 
88 #endif // SiDetElementLink_xk
89 
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