#include <TRT_DetElementsLayer_xk.h>
|
| | TRT_DetElementsLayer_xk () |
| | TRT_DetElementsLayer_xk (double, double, double, double, double) |
| | TRT_DetElementsLayer_xk (const TRT_DetElementsLayer_xk &)=default |
| | ~TRT_DetElementsLayer_xk () |
| TRT_DetElementsLayer_xk & | operator= (const TRT_DetElementsLayer_xk &)=default |
| TRT_DetElementsLayer_xk & | operator= (TRT_DetElementsLayer_xk &&)=default |
| const float & | r () const |
| const float & | dr () const |
| const float & | z () const |
| const float & | dz () const |
| const float & | dfe () const |
| void | set (double, double, double, double, double, double, double) |
| void | add (TRT_DetElementLink_xk &&) |
| int | nElements () const |
| | Get number of links to detector elements.
|
| void | getBarrelDetElementsATL (const float *, const float *, std::vector< std::pair< const InDet::TRT_DetElementLink_xk *, float > > &, std::vector< InDet::TRT_DetElementLink_xk::Used_t > &used) const |
| void | getBarrelDetElementsCTB (const float *, const float *, std::vector< std::pair< const InDet::TRT_DetElementLink_xk *, float > > &, std::vector< InDet::TRT_DetElementLink_xk::Used_t > &used) const |
| void | getEndcapDetElements (const float *, const float *, std::vector< std::pair< const InDet::TRT_DetElementLink_xk *, float > > &, std::vector< InDet::TRT_DetElementLink_xk::Used_t > &used) const |
| void | reserve (std::size_t n_elements) |
Definition at line 27 of file TRT_DetElementsLayer_xk.h.
◆ TRT_DetElementsLayer_xk() [1/3]
| InDet::TRT_DetElementsLayer_xk::TRT_DetElementsLayer_xk |
( |
| ) |
|
|
inline |
◆ TRT_DetElementsLayer_xk() [2/3]
| InDet::TRT_DetElementsLayer_xk::TRT_DetElementsLayer_xk |
( |
double | r, |
|
|
double | dr, |
|
|
double | z, |
|
|
double | dz, |
|
|
double | df ) |
|
inline |
◆ TRT_DetElementsLayer_xk() [3/3]
◆ ~TRT_DetElementsLayer_xk()
| InDet::TRT_DetElementsLayer_xk::~TRT_DetElementsLayer_xk |
( |
| ) |
|
|
inline |
◆ add()
◆ dfe()
| const float & InDet::TRT_DetElementsLayer_xk::dfe |
( |
| ) |
const |
|
inline |
◆ dr()
| const float & InDet::TRT_DetElementsLayer_xk::dr |
( |
| ) |
const |
|
inline |
◆ dz()
| const float & InDet::TRT_DetElementsLayer_xk::dz |
( |
| ) |
const |
|
inline |
◆ getBarrelDetElementsATL()
- Parameters
-
| ? | |
| ? | |
| will | be filled with pairs of detector elements and way(?) |
| array | with size matching number of elements, which tells which elements are already used. |
Definition at line 55 of file TRT_DetElementsLayer_xk.cxx.
60{
61
62
63
65 float a = (
A[0]*
P[0]+
A[1]*
P[1])*2.;
69 float b = 2.*(
A[0]*
A[0]+
A[1]*
A[1]);
73
74 if((s1*s2) > 0.) {std::abs(s1) < std::abs(s2) ?
s =
s1 :
s =
s2;}
76
77 }
78 float zc =
P[2]+
A[2]*
s ;
if(std::abs(zc-
m_z)>(
m_dz+
P[4]))
return;
79 float zc0 = zc-
P[4]-
m_z ;
80 float zc1 = zc+
P[4]-
m_z ;
81 float yc =
P[1]+
A[1]*
s ;
82 float xc =
P[0]+
A[0]*
s ;
s+=
P[5];
83 float fc = std::atan2(yc,xc);
86
89 if((dx-
m_wf-
P[4]) <= 0.) {
90
91 assert( used.size() > static_cast<unsigned int>(n));
92 if(zc0 <= 0 && !used[n].used()) {
93 lDE.emplace_back(&
m_elements[n],s); used[
n].setUsed();
94 }
95
97 assert( used.size() > static_cast<unsigned int>(k));
98 if(zc1 >= 0. && !used[k].used() ) {
99 lDE.emplace_back(&
m_elements[k],s); used[
k].setUsed();
100 }
101 }
102 if(dF>0.) {
n!=62 ?
n+=2 :
n=0 ;}
103 else {
n!= 0 ?
n-=2 :
n=62;}
104
106 if((dx-
m_wf-
P[4]) <= 0.) {
107
108 assert( used.size() > static_cast<unsigned int>(n));
109 if(zc0 <= 0. && !used[n].used()) {
110 lDE.emplace_back(&
m_elements[n],s); used[
n].setUsed();
111 }
112
114 assert( used.size() > static_cast<unsigned int>(k));
115 if(zc1 >= 0. && !used[k].used()) {
116 lDE.emplace_back(&
m_elements[k],s); used[
k].setUsed();
117 }
118 }
119}
#define CXXUTILS_TRAPPING_FP
◆ getBarrelDetElementsCTB()
- Parameters
-
| ? | |
| ? | |
| will | be filled with pairs of detector elements and way(?) |
| array | with size matching number of elements, which tells which elements are already used. |
Definition at line 131 of file TRT_DetElementsLayer_xk.cxx.
136{
137 float a = (
A[0]*
P[0]+
A[1]*
P[1])*2.;
141 float b = 2.*(
A[0]*
A[0]+
A[1]*
A[1]);
145
146 if((s1*s2) > 0.) {std::abs(s1) < std::abs(s2) ?
s =
s1 :
s =
s2;}
148
149 }
150 float zc =
P[2]+
A[2]*
s ;
if(std::abs(zc-
m_z)>(
m_dz+
P[4]))
return;
151 float zc0 = zc-
P[4]-
m_z ;
152 float zc1 = zc+
P[4]-
m_z ;
153 float yc =
P[1]+
A[1]*
s ;
154 float xc =
P[0]+
A[0]*
s ;
s+=
P[5];
155
157
159 if((dx-
m_wf-
P[4]) <= 0.) {
160
161 assert( used.size() > static_cast<unsigned int>(n));
162 if(zc0 <= 0. && !used[n].used()) {
163 lDE.emplace_back(&
m_elements[n],s); used[
n].setUsed();
164 }
165
166 assert( used.size() > static_cast<unsigned int>(n+1));
167 if(zc1 >= 0. && !used[n+1].used()) {
168
169 lDE.emplace_back(&
m_elements[n+1],s); used[
n+1].setUsed();
170 }
171 }
172 }
173}
◆ getEndcapDetElements()
- Parameters
-
| ? | |
| ? | |
| will | be filled with pairs of detector elements and way(?) |
| array | with size matching number of elements, which tells which elements are already used. |
Definition at line 185 of file TRT_DetElementsLayer_xk.cxx.
190{
192
193 float s = (
m_z-
P[2])/A[2];
194 float xc =
P[0]+
A[0]*
s;
195 float yc =
P[1]+
A[1]*
s;
s+=
P[5];
196 float rc = std::sqrt(xc*xc+yc*yc);
if(std::abs(
rc-
m_r)>
m_dr+
P[4])
return;
197 float fc = std::atan2(yc,xc);
198 float sf = 0.09817477+
P[4]/
rc;
199
203
204 assert( used.size() > static_cast<unsigned int>(n));
205 if(std::abs(dF) < sf && !used[n].used()) {
206 lDE.emplace_back(&
m_elements[n],s); used[
n].setUsed();
207 }
208
209
210
211 if(dF>0.) {
if(n!=m) ++
n;
else {
n=0 ; fc-=
pi2;}}
212 else {
if(n!=0) --
n;
else {
n=
m ; fc+=
pi2;}}
213
214 assert( used.size() > static_cast<size_t>(n));
215 if(std::abs(fc-
m_elements[n].
phi()) < sf && !used[n].used()) {
216 lDE.emplace_back(&
m_elements[n],s); used[
n].setUsed();
217 }
218}
Scalar phi() const
phi method
◆ nElements()
| int InDet::TRT_DetElementsLayer_xk::nElements |
( |
| ) |
const |
|
inline |
◆ operator=() [1/2]
◆ operator=() [2/2]
◆ r()
| const float & InDet::TRT_DetElementsLayer_xk::r |
( |
| ) |
const |
|
inline |
◆ reserve()
| void InDet::TRT_DetElementsLayer_xk::reserve |
( |
std::size_t | n_elements | ) |
|
|
inline |
◆ set()
| void InDet::TRT_DetElementsLayer_xk::set |
( |
double | r, |
|
|
double | dr, |
|
|
double | z, |
|
|
double | dz, |
|
|
double | df, |
|
|
double | wf, |
|
|
double | wz ) |
◆ z()
| const float & InDet::TRT_DetElementsLayer_xk::z |
( |
| ) |
const |
|
inline |
◆ m_dfe
| float InDet::TRT_DetElementsLayer_xk::m_dfe |
|
protected |
◆ m_dr
| float InDet::TRT_DetElementsLayer_xk::m_dr |
|
protected |
◆ m_dz
| float InDet::TRT_DetElementsLayer_xk::m_dz |
|
protected |
◆ m_elements
◆ m_f0
| float InDet::TRT_DetElementsLayer_xk::m_f0 |
|
protected |
◆ m_r
| float InDet::TRT_DetElementsLayer_xk::m_r |
|
protected |
◆ m_sfi
| float InDet::TRT_DetElementsLayer_xk::m_sfi |
|
protected |
◆ m_wf
| float InDet::TRT_DetElementsLayer_xk::m_wf |
|
protected |
◆ m_wz
| float InDet::TRT_DetElementsLayer_xk::m_wz |
|
protected |
◆ m_z
| float InDet::TRT_DetElementsLayer_xk::m_z |
|
protected |
The documentation for this class was generated from the following files: