ATLAS Offline Software
Loading...
Searching...
No Matches
SiDetElementsLayer_xk.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
6// Header file for class SiDetElementsLayer_xk
8// (c) ATLAS Detector software
10// Class for detector elements layer
12// Version 1.0 3/10/2004 I.Gavrilenko
14
15#ifndef SiDetElementsLayer_xk_H
16#define SiDetElementsLayer_xk_H
17
18#include <utility>
19#include <vector>
20#include <list>
23
24namespace InDet{
25
26
28 {
30 // Public methods:
32
33 public:
34
36 // Standard tool methods
38
40 SiDetElementsLayer_xk(double,double,double,double,double);
41
47
49 // Main methods
51
52 const float & r () const {return m_r ;}
53 const float & dr () const {return m_dr ;}
54 const float & z () const {return m_z ;}
55 const float & dz () const {return m_dz ;}
56 const float & dfe () const {return m_dfe ;}
57 std::vector<SiDetElementLink_xk>& elements() {return m_elements;}
58 const std::vector<SiDetElementLink_xk>& elements() const {return m_elements;}
59
60 void set(double,double,double,double,double);
61 void add(const SiDetElementLink_xk&);
62 int nElements() const;
63
64
81 (const std::array<float,6> & startingPoint,
82 const std::array<float,3> & searchDirection,
83 std::vector<InDet::SiDetElementLink_xk::ElementWay> &lDE,
84 std::vector<bool> &used) const;
85
87 (const std::array<float,6> & startingPoint,
88 const std::array<float,3> & searchDirection,
89 std::vector<InDet::SiDetElementLink_xk::ElementWay> &lDE,
90 std::vector<bool> &used) const;
91
93 (const std::array<float,6> & startingPoint,
94 const std::array<float,3> & searchDirection,
95 std::vector<InDet::SiDetElementLink_xk::ElementWay> &lDE,
96 std::vector<bool> &used) const;
97
99 (const std::array<float,6> & startingPoint,
100 const std::array<float,3> & searchDirection,
101 std::vector<InDet::SiDetElementLink_xk::ElementWay> &lDE,
102 std::vector<bool> &used) const;
103
104
106
107 protected:
108
110 // Protected Data
112
113 float m_z ; // Z coordinate
114 float m_dz ; // Z half width
115 float m_r ; // Radius
116 float m_dr ; // Radius half width
117 float m_dfe ; // max azimuthal width of de
118 std::vector<SiDetElementLink_xk> m_elements; // detector elements
119
125 void getDetElements(const std::array<float,6> & startingPoint,
126 const std::array<float,3> & searchDirection,
127 float phiCrossing,
128 float reducedRoadWidth,
129 std::vector<InDet::SiDetElementLink_xk::ElementWay> &lDE,
130 std::vector<bool> &used) const;
131 };
132
134 // Inline methods
136
138 {
139 m_z = 0.;
140 m_dz = 0.;
141 m_r = 0.;
142 m_dr = 0.;
143 m_dfe = 0.;
144 }
145
147 (double r,double dr,double z,double dz,double df)
148 {
149 m_r = float(r );
150 m_dr = float(dr);
151 m_z = float(z );
152 m_dz = float(dz);
153 m_dfe= float(df);
154 }
155
157 (double r,double dr,double z,double dz,double df)
158 {
159 m_r = float(r );
160 m_dr = float(dr);
161 m_z = float(z );
162 m_dz = float(dz);
163 m_dfe= float(df);
164 }
165
167 {
168 m_elements.push_back(link);
169 }
170
172 {
173 return m_elements.size();
174 }
175
176
177} // end of name space
178
179#endif // SiDetElementsLayer_xk_H
180
SiDetElementsLayer_xk(const SiDetElementsLayer_xk &)=default
void getITkBarrelDetElements(const std::array< float, 6 > &startingPoint, const std::array< float, 3 > &searchDirection, std::vector< InDet::SiDetElementLink_xk::ElementWay > &lDE, std::vector< bool > &used) const
void getDetElements(const std::array< float, 6 > &startingPoint, const std::array< float, 3 > &searchDirection, float phiCrossing, float reducedRoadWidth, std::vector< InDet::SiDetElementLink_xk::ElementWay > &lDE, std::vector< bool > &used) const
internal helper which resolves the phi-multiplicity of elements within a layer.
std::vector< SiDetElementLink_xk > m_elements
void getEndcapDetElements(const std::array< float, 6 > &startingPoint, const std::array< float, 3 > &searchDirection, std::vector< InDet::SiDetElementLink_xk::ElementWay > &lDE, std::vector< bool > &used) const
void add(const SiDetElementLink_xk &)
const std::vector< SiDetElementLink_xk > & elements() const
void getBarrelDetElements(const std::array< float, 6 > &startingPoint, const std::array< float, 3 > &searchDirection, std::vector< InDet::SiDetElementLink_xk::ElementWay > &lDE, std::vector< bool > &used) const
Get barrel detector elements Input parameters: startPoint[0] - X searchDirection[0] - Ax startPoint[1...
void set(double, double, double, double, double)
std::vector< SiDetElementLink_xk > & elements()
SiDetElementsLayer_xk & operator=(const SiDetElementsLayer_xk &)=default
void getITkEndcapDetElements(const std::array< float, 6 > &startingPoint, const std::array< float, 3 > &searchDirection, std::vector< InDet::SiDetElementLink_xk::ElementWay > &lDE, std::vector< bool > &used) const
SiDetElementsLayer_xk(SiDetElementsLayer_xk &&)=default
holding In fact this class is here in order to allow STL container for all features This class is sho...
Primary Vertex Finder.