ATLAS Offline Software
Loading...
Searching...
No Matches
InDet::TRT_TrajectoryElement_xk Class Reference

#include <TRT_TrajectoryElement_xk.h>

Collaboration diagram for InDet::TRT_TrajectoryElement_xk:

Public Member Functions

 TRT_TrajectoryElement_xk ()
 TRT_TrajectoryElement_xk (const TRT_TrajectoryElement_xk &)
 ~TRT_TrajectoryElement_xk ()
TRT_TrajectoryElement_xkoperator= (const TRT_TrajectoryElement_xk &)
const bool & isCluster () const
const bool & isBarrel () const
const int & status () const
const int & nlinks () const
const int & bestlink () const
const double & radius () const
const double & z () const
const double & radiusMin () const
const double & radiusMax () const
const double & dpositive () const
const double & dnegative () const
const InDetDD::TRT_BaseElementdetElement () const
const TRT_ExtensionDriftCircleLink_xklink (int i) const
void set (const TRT_ID *, const Trk::IPatternParametersPropagator *, const Trk::IPatternParametersUpdator *, const Trk::IRIO_OnTrackCreator *, const Trk::IRIO_OnTrackCreator *, double)
void set (const Trk::MagneticFieldProperties &, const AtlasFieldCacheCondObj *)
bool initiateForPrecisionSeed (bool, const InDetDD::TRT_BaseElement *, InDet::TRT_DriftCircleCollection::const_iterator &, InDet::TRT_DriftCircleCollection::const_iterator &, std::pair< Amg::Vector3D, double > &, const double *, double)
bool initiateForTRTSeed (bool, const InDetDD::TRT_BaseElement *, InDet::TRT_DriftCircleCollection::const_iterator &, InDet::TRT_DriftCircleCollection::const_iterator &, std::pair< Amg::Vector3D, double > &, const double *, double)
void initiateLinksForPrecisionSeed (InDet::TRT_DriftCircleCollection::const_iterator &, InDet::TRT_DriftCircleCollection::const_iterator &, std::pair< Amg::Vector3D, double > &, const double *, double)
void initiateLinksForTRTSeed (InDet::TRT_DriftCircleCollection::const_iterator &, InDet::TRT_DriftCircleCollection::const_iterator &, std::pair< Amg::Vector3D, double > &, const double *, double)
bool boundaryTest (double, std::pair< Amg::Vector3D, double > &)
bool buildForPrecisionSeed (double, double, bool &, bool &)
bool buildForTRTSeed (double, double, bool &, bool &)
double findCloseLink (double, double)
void radiusCorrection (const double &)
const Trk::RIO_OnTrackrioOnTrack ()
std::unique_ptr< Trk::RIO_OnTrackrioOnTrackSimple () const
bool trajectoryGlobalPosition (Amg::Vector3D &, double &)
bool trackParametersEstimation (TRT_TrajectoryElement_xk *, TRT_TrajectoryElement_xk *, Trk::PatternTrackParameters &, double)
bool trackParametersEstimation (TRT_TrajectoryElement_xk *, Trk::PatternTrackParameters &, double)
void polarAngleEstimation (TRT_TrajectoryElement_xk *, Amg::Vector3D &, Amg::Vector3D &, double, double, double *) const
bool addCluster (Trk::PatternTrackParameters &, Trk::PatternTrackParameters &, double &)
bool propagate (Trk::PatternTrackParameters &, Trk::PatternTrackParameters &)

Protected Attributes

bool m_barrel
bool m_isCluster
int m_status
int m_bestlink
int m_nlinks
double m_z
double m_zMin
double m_zMax
double m_radius
double m_radiusMin
double m_radiusMax
double m_scale_error
double m_dpositive
double m_dnegative
TRT_ExtensionDriftCircleLink_xk m_link [24]
const InDetDD::TRT_BaseElementm_detelement
const TRT_IDm_trtid
const Trk::IPatternParametersPropagatorm_proptool
const Trk::IPatternParametersUpdatorm_updatortool
const Trk::IRIO_OnTrackCreatorm_riomakerD
const Trk::IRIO_OnTrackCreatorm_riomakerN
Trk::MagneticFieldProperties m_fieldprop
MagField::AtlasFieldCache m_fieldCache

Detailed Description

Definition at line 35 of file TRT_TrajectoryElement_xk.h.

Constructor & Destructor Documentation

◆ TRT_TrajectoryElement_xk() [1/2]

InDet::TRT_TrajectoryElement_xk::TRT_TrajectoryElement_xk ( )
inline

Definition at line 170 of file TRT_TrajectoryElement_xk.h.

171 {
172 m_isCluster = false;
173 m_status =-1 ;
174 m_riomakerD = 0 ;
175 m_riomakerN = 0 ;
176 m_proptool = 0 ;
177 m_updatortool = 0 ;
178 m_trtid = 0 ;
179 m_scale_error = 2. ;
180 m_barrel = false;
181 m_bestlink = 0 ;
182 m_nlinks = 0 ;
183 m_z = 0. ;
184 m_zMin = 0. ;
185 m_zMax = 0. ;
186 m_radius = 0. ;
187 m_radiusMin = 0. ;
188 m_radiusMax = 0. ;
189 m_dpositive = 0. ;
190 m_dnegative = 0. ;
191 m_detelement = 0 ;
192 }
const Trk::IPatternParametersPropagator * m_proptool
const Trk::IRIO_OnTrackCreator * m_riomakerD
const Trk::IPatternParametersUpdator * m_updatortool
const Trk::IRIO_OnTrackCreator * m_riomakerN
const InDetDD::TRT_BaseElement * m_detelement

◆ TRT_TrajectoryElement_xk() [2/2]

InDet::TRT_TrajectoryElement_xk::TRT_TrajectoryElement_xk ( const TRT_TrajectoryElement_xk & E)
inline

Definition at line 194 of file TRT_TrajectoryElement_xk.h.

196 {
197 (*this) = E;
198 }

◆ ~TRT_TrajectoryElement_xk()

InDet::TRT_TrajectoryElement_xk::~TRT_TrajectoryElement_xk ( )
inline

Definition at line 228 of file TRT_TrajectoryElement_xk.h.

228{}

Member Function Documentation

◆ addCluster()

bool InDet::TRT_TrajectoryElement_xk::addCluster ( Trk::PatternTrackParameters & Ta,
Trk::PatternTrackParameters & Tb,
double & Xi2 )

Definition at line 614 of file TRT_TrajectoryElement_xk.cxx.

616{
617
618 if(m_status <=0) return false;
619
620 int n;
621 if(m_status==2) {
622
623 const TRT_DriftCircle* DS = m_link[m_bestlink].cluster();
624 double dr = DS->localPosition().x(); if(m_link[m_bestlink].impact() < 0.) dr=-dr;
625
627 Trk::LocalParameters lp(radius);
628
629 Trk::PatternTrackParameters To = Ta;
630 bool Q = m_updatortool->addToState(Ta,lp,DS->localCovariance(),Tb,Xi2,n);
631 if(Q && Xi2 < 15.) return Q;
632 m_status = 1; Ta = To;
633 }
634
636 Trk::LocalParameters lp(radius);
637
638 AmgSymMatrix(1) cov; cov<<1.33333;
639 return m_updatortool->addToState(Ta,lp,cov,Tb,Xi2,n);
640}
#define AmgSymMatrix(dim)
TRT_ExtensionDriftCircleLink_xk m_link[24]
@ locX
Definition ParamDefs.h:37
std::pair< double, ParamDefs > DefinedParameter
Typedef to of a std::pair<double, ParamDefs> to identify a passed-through double as a specific type o...

◆ bestlink()

const int & InDet::TRT_TrajectoryElement_xk::bestlink ( ) const
inline

Definition at line 52 of file TRT_TrajectoryElement_xk.h.

52{return m_bestlink ;}

◆ boundaryTest()

bool InDet::TRT_TrajectoryElement_xk::boundaryTest ( double dw,
std::pair< Amg::Vector3D, double > & gp )

Definition at line 90 of file TRT_TrajectoryElement_xk.cxx.

92{
93 if (!m_detelement){
94 return false;
95 }
96
97 double x = gp.first.x();
98 double y = gp.first.y();
99 double z = gp.first.z();
100
101 const Amg::Vector3D& C = m_detelement->center();
102
103 // Test track position
104 //
105 const Trk::SurfaceBounds& surfBounds = m_detelement->bounds();
106 if (surfBounds.type() == Trk::SurfaceBounds::Rectangle) {
107 const Trk::RectangleBounds* rb =
108 static_cast<const Trk::RectangleBounds*>(&surfBounds);
109 // Barrel
110 //
111 m_barrel = true;
112 m_z = z;
113 m_zMin = C.z() - rb->halflengthY();
114 m_zMax = C.z() + rb->halflengthY();
115 double d = std::abs(z - C.z());
116 if (d > rb->halflengthY() + dw) {
117 return false;
118 }
119 } else if (surfBounds.type() == Trk::SurfaceBounds::Disc) {
120 const Trk::DiscBounds* db =
121 static_cast<const Trk::DiscBounds*>(&surfBounds);
122 // Endcap
123 //
124 m_barrel = false;
125 m_radius = std::sqrt(x * x + y * y);
126 m_z = z;
127 m_radiusMin = db->rMin();
128 m_radiusMax = db->rMax();
129
130 double d = m_radius - m_radiusMin;
131 if (d < -dw) {
132 return false;
133 }
135 if (d < -dw) {
136 return false;
137 }
138 }
139 return true;
140}
#define y
#define x
virtual BoundsType type() const =0
Return the bounds type - for persistency optimization.
struct color C
Eigen::Matrix< double, 3, 1 > Vector3D

◆ buildForPrecisionSeed()

bool InDet::TRT_TrajectoryElement_xk::buildForPrecisionSeed ( double a,
double b,
bool & useDriftTime,
bool & hole )

Definition at line 455 of file TRT_TrajectoryElement_xk.cxx.

457{
458
459 m_bestlink = -1;
460 m_status = -1;
461 hole = false; if(!m_nlinks) return false;
462
463 for(int l=0; l!=m_nlinks; ++l) {
464
465 double v = (a*m_link[l].way()+b)*m_link[l].way();
466 double d = m_link[l].distance()-v;
467 double ad = std::abs(d);
468
469 if(ad > 2.05) continue;
470
471 if(!m_link[l].cluster()) {
472
473 if(ad < 1.85) {
474 m_status = 0; hole=true; m_bestlink=l; m_link[l].newImpactParameter(d);
475 }
476 return false;
477 }
478
479 m_status = 1; m_bestlink=l; m_link[l].newImpactParameter(d);
480 if(!useDriftTime) return true;
481
482 double r = m_link[l].cluster()->localPosition()[Trk::driftRadius];
483 double e = m_scale_error*std::sqrt(m_link[l].cluster()->localCovariance()(0,0));
484
485 if(r > 2.05) r = 2.05;
486 double r2 = r+e; if(r2 > 2.05) r2 = 2.05;
487 double r1 = r-e; if(r1 >= r2) r1 = r2-2.*e;
488
489 if(ad < r1 || ad > r2) useDriftTime = false; else m_status = 2;
490
491 return true;
492 }
493 return false;
494}
static Double_t a
int r
Definition globals.cxx:22
l
Printing final latex table to .tex output file.
@ driftRadius
trt, straws
Definition ParamDefs.h:53

◆ buildForTRTSeed()

bool InDet::TRT_TrajectoryElement_xk::buildForTRTSeed ( double a,
double b,
bool & useDriftTime,
bool & hole )

Definition at line 501 of file TRT_TrajectoryElement_xk.cxx.

503{
504
505 m_status = -1;
506 hole = false; if( m_bestlink < 0) return false;
507 int l = m_bestlink;
508
509 double v = (a*m_link[l].way()+b)*m_link[l].way();
510 double d = m_link[l].distance()-v;
511 double ad = std::abs(d);
512
513 if(ad > 2.05) return false;
514
515 if(!m_link[l].cluster()) {
516
517 if(ad < 1.85) {
518 m_status = 0; hole=true; m_bestlink=l; m_link[l].newImpactParameter(d);
519 }
520 return false;
521 }
522 m_status = 1; m_link[l].newImpactParameter(d);
523 if(!useDriftTime) return true;
524
525 double r = m_link[l].cluster()->localPosition()[Trk::driftRadius];
526 double e = m_scale_error*std::sqrt(m_link[l].cluster()->localCovariance()(0,0));
527
528 if(r > 2.05) r = 2.05;
529 double r2 = r+e; if(r2 > 2.05) r2 = 2.05;
530 double r1 = r-e; if(r1 >= r2) r1 = r2-2.*e;
531 if(ad < r1 || ad > r2) useDriftTime = false; else m_status = 2;
532 return true;
533}

◆ detElement()

const InDetDD::TRT_BaseElement * InDet::TRT_TrajectoryElement_xk::detElement ( ) const
inline

Definition at line 59 of file TRT_TrajectoryElement_xk.h.

59{return m_detelement;}

◆ dnegative()

const double & InDet::TRT_TrajectoryElement_xk::dnegative ( ) const
inline

Definition at line 58 of file TRT_TrajectoryElement_xk.h.

58{return m_dnegative ;}

◆ dpositive()

const double & InDet::TRT_TrajectoryElement_xk::dpositive ( ) const
inline

Definition at line 57 of file TRT_TrajectoryElement_xk.h.

57{return m_dpositive ;}

◆ findCloseLink()

double InDet::TRT_TrajectoryElement_xk::findCloseLink ( double a,
double b )

Definition at line 539 of file TRT_TrajectoryElement_xk.cxx.

541{
542 m_bestlink = -1;
543 double dm = 10000.;
544
545 for(int l=0; l < m_nlinks; ++l) {
546
547 double v = (a*m_link[l].way()+b)*m_link[l].way();
548 double d = std::abs(m_link[l].distance()-v);
549
550 if(d < dm) {dm=d; m_bestlink=l;}
551 }
552 return dm;
553}
float distance(const Amg::Vector3D &p1, const Amg::Vector3D &p2)
calculates the distance between two point in 3D space

◆ initiateForPrecisionSeed()

bool InDet::TRT_TrajectoryElement_xk::initiateForPrecisionSeed ( bool st,
const InDetDD::TRT_BaseElement * de,
InDet::TRT_DriftCircleCollection::const_iterator & sb,
InDet::TRT_DriftCircleCollection::const_iterator & se,
std::pair< Amg::Vector3D, double > & gp,
const double * dir,
double width2 )

Definition at line 41 of file TRT_TrajectoryElement_xk.cxx.

47{
49 m_detelement = de;
50
51 // Test boundary active region of detector elements
52 //
53 if(!boundaryTest(3.,gp)) return false;
54
55 // Trajectory element links production
56 //
57 initiateLinksForPrecisionSeed(sb,se,gp,dir,width2);
58 return true;
59}
void initiateLinksForPrecisionSeed(InDet::TRT_DriftCircleCollection::const_iterator &, InDet::TRT_DriftCircleCollection::const_iterator &, std::pair< Amg::Vector3D, double > &, const double *, double)
bool boundaryTest(double, std::pair< Amg::Vector3D, double > &)

◆ initiateForTRTSeed()

bool InDet::TRT_TrajectoryElement_xk::initiateForTRTSeed ( bool st,
const InDetDD::TRT_BaseElement * de,
InDet::TRT_DriftCircleCollection::const_iterator & sb,
InDet::TRT_DriftCircleCollection::const_iterator & se,
std::pair< Amg::Vector3D, double > & gp,
const double * dir,
double width2 )

Definition at line 65 of file TRT_TrajectoryElement_xk.cxx.

71{
72
73 m_isCluster = st ;
74 m_detelement = de ;
75
76 // Test boundary active region of detector elements
77 //
78 bool boundary = boundaryTest(7.,gp);
79
80 // Trajectory element links production
81 //
82 initiateLinksForTRTSeed(sb,se,gp,dir,width2);
83 return boundary;
84}
void initiateLinksForTRTSeed(InDet::TRT_DriftCircleCollection::const_iterator &, InDet::TRT_DriftCircleCollection::const_iterator &, std::pair< Amg::Vector3D, double > &, const double *, double)

◆ initiateLinksForPrecisionSeed()

void InDet::TRT_TrajectoryElement_xk::initiateLinksForPrecisionSeed ( InDet::TRT_DriftCircleCollection::const_iterator & sb,
InDet::TRT_DriftCircleCollection::const_iterator & se,
std::pair< Amg::Vector3D, double > & gp,
const double * dir,
double width2 )

Definition at line 147 of file TRT_TrajectoryElement_xk.cxx.

153{
154 m_status = -1;
155 m_bestlink = -1;
156 m_nlinks = 0;
157 double x = gp.first.x();
158 double y = gp.first.y();
159 double z = gp.first.z();
160
161 const Amg::Transform3D& T = m_detelement->surface().transform();
162
163 double step = std::abs(dir[0] * T(0, 2) + dir[1] * T(1, 2) + dir[2] * T(2, 2));
164 step > .05 ? step = 1. / step : step = 20.;
165
166 int Nstraws = m_detelement->nStraws();
167
169
170 for (int ns = 0; ns != Nstraws; ++ns) {
171
172 const Amg::Transform3D& t = m_detelement->strawTransform(ns);
173
174 double xs = t(0, 3);
175 double ys = t(1, 3);
176 double dx = x - xs;
177 double dy = y - ys;
178 double d = dx * dx + dy * dy;
179 if (d > width2) {
180 continue;
181 }
182
183 double Az[3] = { t(0, 2), t(1, 2), t(2, 2) };
184 double D = dir[0] * Az[0] + dir[1] * Az[1] + dir[2] * Az[2];
185 double A = (1. - D) * (1. + D);
186 double dz = z - t(2, 3);
187 double S = (dx * (D * Az[0] - dir[0]) + dy * (D * Az[1] - dir[1]) +
188 dz * (D * Az[2] - dir[2])) /
189 A;
190 dx += (dir[0] * S);
191 dy += (dir[1] * S);
192 dz += (dir[2] * S);
193 double Bx = Az[1] * dir[2] - Az[2] * dir[1];
194 double By = Az[2] * dir[0] - Az[0] * dir[2];
195 double Bz = Az[0] * dir[1] - Az[1] * dir[0];
196 double im =
197 (dx * Bx + dy * By + dz * Bz) / std::sqrt(Bx * Bx + By * By + Bz * Bz);
198 double zl = dx * Az[0] + dy * Az[1] + dz * Az[2];
199 S += gp.second;
200 d = std::abs(im);
201 if (y * xs - x * ys > 0.) {
202 d = -d;
203 }
204 m_link[m_nlinks].set(ns, d, im, zl, S);
205 if (++m_nlinks == 24) {
206 break;
207 }
208 }
209 } else {
210
211 for (int ns = 0; ns != Nstraws; ++ns) {
212
213 const Amg::Transform3D& t = m_detelement->strawTransform(ns);
214
215 double xs = t(0, 3);
216 double ys = t(1, 3);
217 double as = m_radius / std::sqrt(xs * xs + ys * ys);
218 double dx = x - xs * as;
219 double dy = y - ys * as;
220 double d = dx * dx + dy * dy;
221 if (d > width2) {
222 continue;
223 }
224
225 double zs = t(2, 3);
226 double Az[3] = { t(0, 2), t(1, 2), t(2, 2) };
227 double D = dir[0] * Az[0] + dir[1] * Az[1] + dir[2] * Az[2];
228 double A = (1. - D) * (1. + D);
229 dx = x - xs;
230 dy = y - ys;
231 double dz = z - zs;
232 double S = (dx * (D * Az[0] - dir[0]) + dy * (D * Az[1] - dir[1]) +
233 dz * (D * Az[2] - dir[2])) /
234 A;
235 dx += (dir[0] * S);
236 dy += (dir[1] * S);
237 dz += (dir[2] * S);
238 double Bx = Az[1] * dir[2] - Az[2] * dir[1];
239 double By = Az[2] * dir[0] - Az[0] * dir[2];
240 double Bz = Az[0] * dir[1] - Az[1] * dir[0];
241 double im =
242 (dx * Bx + dy * By + dz * Bz) / std::sqrt(Bx * Bx + By * By + Bz * Bz);
243 double zl = dx * Az[0] + dy * Az[1] + dz * Az[2];
244 S += gp.second;
245 d = std::abs(im);
246 if (y * xs - x * ys > 0.) {
247 d = -d;
248 }
249 m_link[m_nlinks].set(ns, d, im, zl, S);
250 if (++m_nlinks == 24) {
251 break;
252 }
253 }
254 }
255 m_dpositive = 1000.;
256 m_dnegative = -1000.;
257 if (m_isCluster && m_nlinks) {
258
259 bool nl = false;
260 for (; sb != se; ++sb) {
261
262 int ns = m_trtid->straw((*sb)->identify());
263
264 for (int l = 0; l != m_nlinks; ++l) {
265 if (ns != m_link[l].number()) {
266 continue;
267 }
268 nl = true;
269 m_link[l].set((*sb));
270
271 double d = m_link[l].distance();
272 if (d >= 0.) {
273 if (d < m_dpositive)
274 m_dpositive = d;
275 } else {
276 if (d > m_dnegative) {
277 m_dnegative = d;
278 }
279 }
280 break;
281 }
282 }
283 if (!nl) {
284 m_isCluster = false;
285 }
286 }
287}
Eigen::Affine3d Transform3D
unsigned long long T
std::string number(const double &d, const std::string &s)
Definition utils.cxx:186

◆ initiateLinksForTRTSeed()

void InDet::TRT_TrajectoryElement_xk::initiateLinksForTRTSeed ( InDet::TRT_DriftCircleCollection::const_iterator & sb,
InDet::TRT_DriftCircleCollection::const_iterator & se,
std::pair< Amg::Vector3D, double > & gp,
const double * dir,
double width2 )

Definition at line 293 of file TRT_TrajectoryElement_xk.cxx.

298{
299 m_status = -1;
300 m_bestlink = -1;
301 m_nlinks = 0;
302 double x = gp.first.x();
303 double y = gp.first.y();
304 double z = gp.first.z();
305
306 const Amg::Transform3D& T = m_detelement->surface().transform();
307
308 double step =
309 std::abs(dir[0] * T(0, 2) + dir[1] * T(1, 2) + dir[2] * T(2, 2));
310 step > .05 ? step = 1. / step : step = 20.;
311
312 int Nstraws = m_detelement->nStraws();
314
315 for (int ns = 0; ns != Nstraws; ++ns) {
316
317 const Amg::Transform3D& t = m_detelement->strawTransform(ns);
318
319 double xs = t(0, 3);
320 double ys = t(1, 3);
321 double dx = x - xs;
322 double dy = y - ys;
323 double d = dx * dx + dy * dy;
324 if (d > width2){
325 continue;
326 }
327
328 double Az[3] = { t(0, 2), t(1, 2), t(2, 2) };
329 double D = dir[0] * Az[0] + dir[1] * Az[1] + dir[2] * Az[2];
330 double A = (1. - D) * (1. + D);
331 double dz = z - t(2, 3);
332 double S = (dx * (D * Az[0] - dir[0]) + dy * (D * Az[1] - dir[1]) +
333 dz * (D * Az[2] - dir[2])) /
334 A;
335 dx += (dir[0] * S);
336 dy += (dir[1] * S);
337 dz += (dir[2] * S);
338 double Bx = Az[1] * dir[2] - Az[2] * dir[1];
339 double By = Az[2] * dir[0] - Az[0] * dir[2];
340 double Bz = Az[0] * dir[1] - Az[1] * dir[0];
341 double im =
342 (dx * Bx + dy * By + dz * Bz) / std::sqrt(Bx * Bx + By * By + Bz * Bz);
343 double zl = dx * Az[0] + dy * Az[1] + dz * Az[2];
344 S += gp.second;
345 d = std::abs(im);
346 if (y * xs - x * ys > 0.){
347 d = -d;
348 }
349 m_link[m_nlinks].set(ns, d, im, zl, S);
350 if (++m_nlinks == 24){
351 break;
352 }
353 }
354 } else {
355
356 double ri = 1. / m_radius;
357 double ax = x * ri;
358 double ay = y * ri;
359
360 for (int ns = 0; ns != Nstraws; ++ns) {
361
362 const Amg::Transform3D& t = m_detelement->strawTransform(ns);
363
364 double xs = t(0, 3);
365 double ys = t(1, 3);
366 double as = m_radius / std::sqrt(xs * xs + ys * ys);
367 double dx = x - xs * as;
368 double dy = y - ys * as;
369 double d = dx * dx + dy * dy;
370 if (d > width2){
371 continue;
372 }
373
374 double zs = t(2, 3);
375 double Az[3] = { t(0, 2), t(1, 2), t(2, 2) };
376 double D = dir[0] * Az[0] + dir[1] * Az[1] + dir[2] * Az[2];
377 double A = 1. / ((1. - D) * (1. + D));
378 dx = x - xs;
379 dy = y - ys;
380 double dz = z - zs;
381 double Dx = (D * Az[0] - dir[0]);
382 double Dy = (D * Az[1] - dir[1]);
383 double S = (dx * Dx + dy * Dy + dz * (D * Az[2] - dir[2])) * A;
384 dx += (dir[0] * S);
385 dy += (dir[1] * S);
386 dz += (dir[2] * S);
387 double Bx = Az[1] * dir[2] - Az[2] * dir[1];
388 double By = Az[2] * dir[0] - Az[0] * dir[2];
389 double Bz = Az[0] * dir[1] - Az[1] * dir[0];
390 double B = 1. / std::sqrt(Bx * Bx + By * By + Bz * Bz);
391 double im = (dx * Bx + dy * By + dz * Bz) * B;
392 double zl = dx * Az[0] + dy * Az[1] + dz * Az[2];
393
394 // d(im)/dr calculation for endcap
395 //
396 double dS = (ax * Dx + ay * Dy) * A;
397 double sx = ax + dir[0] * dS;
398 double sy = ay + dir[1] * dS;
399 double sd = (sx * Bx + sy * By) * B;
400 double sz = sx * Az[0] + sy * Az[1];
401 S += gp.second;
402 if (y * xs - x * ys > 0.) {
403 d = -std::abs(im);
404 sd = -std::abs(im + sd) - d;
405 } else {
406 d = std::abs(im);
407 sd = std::abs(im + sd) - d;
408 }
409
410 m_link[m_nlinks].set(ns, d, im, zl, S, sd, sz);
411 if (++m_nlinks == 24){
412 break;
413 }
414 }
415 }
416
417 m_dpositive = 1000.;
418 m_dnegative = -1000.;
419 if (m_isCluster && m_nlinks) {
420
421 bool nl = false;
422 for (; sb != se; ++sb) {
423
424 int ns = m_trtid->straw((*sb)->identify());
425
426 for (int l = 0; l != m_nlinks; ++l) {
427 if (ns != m_link[l].number())
428 continue;
429 nl = true;
430 m_link[l].set((*sb));
431
432 double d = m_link[l].distance();
433 if (d >= 0.) {
434 if (d < m_dpositive){
435 m_dpositive = d;
436 }
437 } else {
438 if (d > m_dnegative){
439 m_dnegative = d;
440 }
441 }
442 break;
443 }
444 }
445 if (!nl){
446 m_isCluster = false;
447 }
448 }
449}
static Double_t sz

◆ isBarrel()

const bool & InDet::TRT_TrajectoryElement_xk::isBarrel ( ) const
inline

Definition at line 49 of file TRT_TrajectoryElement_xk.h.

49{return m_barrel ;}

◆ isCluster()

const bool & InDet::TRT_TrajectoryElement_xk::isCluster ( ) const
inline

Definition at line 48 of file TRT_TrajectoryElement_xk.h.

48{return m_isCluster ;}

◆ link()

const TRT_ExtensionDriftCircleLink_xk & InDet::TRT_TrajectoryElement_xk::link ( int i) const
inline

Definition at line 60 of file TRT_TrajectoryElement_xk.h.

60{return m_link[i] ;}

◆ nlinks()

const int & InDet::TRT_TrajectoryElement_xk::nlinks ( ) const
inline

Definition at line 51 of file TRT_TrajectoryElement_xk.h.

51{return m_nlinks ;}

◆ operator=()

TRT_TrajectoryElement_xk & InDet::TRT_TrajectoryElement_xk::operator= ( const TRT_TrajectoryElement_xk & E)
inline

Definition at line 200 of file TRT_TrajectoryElement_xk.h.

202 {
203 m_status = E.m_status ;
204 m_isCluster = E.m_isCluster ;
205 m_barrel = E.m_barrel ;
206 m_bestlink = E.m_bestlink ;
207 m_nlinks = E.m_nlinks ;
208 m_detelement = E.m_detelement ;
209 m_trtid = E.m_trtid ;
210 m_proptool = E.m_proptool ;
211 m_updatortool = E.m_updatortool;
212 m_fieldprop = E.m_fieldprop ;
213 m_riomakerD = E.m_riomakerD ;
214 m_riomakerN = E.m_riomakerN ;
215 m_z = E.m_z ;
216 m_zMin = E.m_zMin ;
217 m_zMax = E.m_zMax ;
218 m_radius = E.m_radius ;
219 m_radiusMin = E.m_radiusMin ;
220 m_radiusMax = E.m_radiusMax ;
221 m_scale_error = E.m_scale_error;
222 m_dpositive = E.m_dpositive ;
223 m_dnegative = E.m_dnegative ;
224 for(int i=0; i!=m_nlinks; ++i) {m_link[i]=E.m_link[i];}
225 return(*this);
226 }
Trk::MagneticFieldProperties m_fieldprop

◆ polarAngleEstimation()

void InDet::TRT_TrajectoryElement_xk::polarAngleEstimation ( TRT_TrajectoryElement_xk * E,
Amg::Vector3D & G0,
Amg::Vector3D & G1,
double C,
double VZ,
double * Tp ) const

Definition at line 881 of file TRT_TrajectoryElement_xk.cxx.

883{
884 double dx = G1[0]-G0[0] ;
885 double dy = G1[1]-G0[1] ;
886 double dz = G1[2]-G0[2] ;
887 double dr = std::sqrt(dx*dx+dy*dy) ;
888 double rc = dr*C ;
889 Tp[0] = dz/(dr*(1.+.04*rc*rc));
890
891 double r0 = G0[0]*G0[0]+G0[1]*G0[1];
892 double r1 = G1[0]*G1[0]+G1[1]*G1[1];
893
894 if( r0 > r1) {
895
896 Tp[0] =-Tp[0];
897 if ( m_barrel ) { //---------------------------->BB
898
899 double dZ = m_zMax-m_zMin ;
900 double dT = (dZ+2.*VZ) ;
901 Tp[1] = dZ*dZ*.1 ;
902 Tp[2] = dT*dT*.1/r0 ;
903 }
904 else if(E->m_barrel) { //---------------------------->EB
905
906 double T2 = Tp[0]*Tp[0] ;
907 Tp[1] = 400. ;
908 Tp[2] = (VZ*VZ)/((1.+T2)*r0) ;
909 }
910 else { //---------------------------->EE
911
912 double T2 = Tp[0]*Tp[0] ;
913 Tp[1] = 400. ;
914 Tp[2] = (VZ*VZ)/((1.+T2)*r0) ;
915 }
916 }
917 else {
918 if (E->m_barrel) { //---------------------------->BB
919
920 double dZ = m_zMax-m_zMin ;
921 double dT = (E->m_zMax-E->m_zMin+2.*VZ);
922 Tp[1] = dZ*dZ*.1 ;
923 Tp[2] = dT*dT*.1/r1 ;
924 }
925 else if( m_barrel ) { //---------------------------->BE
926
927 double T2 = Tp[0]*Tp[0] ;
928 double dr = std::sqrt(r1)-std::sqrt(r0) ;
929 Tp[1] = dr*dr*VZ*VZ/r1 ;
930 Tp[2] = (VZ*VZ)/((1.+T2)*r1) ;
931
932 }
933 else { //---------------------------->EE
934
935 double T2 = Tp[0]*Tp[0] ;
936 Tp[1] = 400. ;
937 Tp[2] = (VZ*VZ)/((1.+T2)*r1) ;
938 }
939 }
940}
static Double_t Tp(Double_t *t, Double_t *par)
static Double_t rc
const double r0
electron radius{cm}

◆ propagate()

bool InDet::TRT_TrajectoryElement_xk::propagate ( Trk::PatternTrackParameters & Ta,
Trk::PatternTrackParameters & Tb )

Definition at line 600 of file TRT_TrajectoryElement_xk.cxx.

602{
603 if(m_bestlink<0) return false;
604
605 return m_proptool->propagate
606 (Gaudi::Hive::currentContext(),
608}
@ anyDirection

◆ radius()

const double & InDet::TRT_TrajectoryElement_xk::radius ( ) const
inline

Definition at line 53 of file TRT_TrajectoryElement_xk.h.

53{return m_radius ;}

◆ radiusCorrection()

void InDet::TRT_TrajectoryElement_xk::radiusCorrection ( const double & dr)
inline

Definition at line 230 of file TRT_TrajectoryElement_xk.h.

231 {
232 if(m_bestlink >= 0) m_link[m_bestlink].radiusCorrection(dr);
233 }

◆ radiusMax()

const double & InDet::TRT_TrajectoryElement_xk::radiusMax ( ) const
inline

Definition at line 56 of file TRT_TrajectoryElement_xk.h.

56{return m_radiusMax ;}

◆ radiusMin()

const double & InDet::TRT_TrajectoryElement_xk::radiusMin ( ) const
inline

Definition at line 55 of file TRT_TrajectoryElement_xk.h.

55{return m_radiusMin ;}

◆ rioOnTrack()

const Trk::RIO_OnTrack * InDet::TRT_TrajectoryElement_xk::rioOnTrack ( )

Definition at line 559 of file TRT_TrajectoryElement_xk.cxx.

560{
561 if(m_bestlink < 0 || m_status<=0) return nullptr;
562
563 int l = m_bestlink;
564
565 const Trk::StraightLineSurface* line = static_cast<const Trk::StraightLineSurface*>
566 (&(m_link[l].cluster()->detectorElement())->surface(m_link[l].cluster()->identify()));
567 Trk::AtaStraightLine Tp(m_link[l].impact(),m_link[l].zlocal(),1.,1.,1.,*line);
568 if(m_status==2)
569 return m_riomakerD->correct(*m_link[l].cluster(),Tp, Gaudi::Hive::currentContext());
570 else
571 return m_riomakerN->correct(*m_link[l].cluster(),Tp, Gaudi::Hive::currentContext());
572}
ParametersT< TrackParametersDim, Charged, StraightLineSurface > AtaStraightLine
const Identifier & identify(const UncalibratedMeasurement *meas)
Returns the associated identifier from the muon measurement.

◆ rioOnTrackSimple()

std::unique_ptr< Trk::RIO_OnTrack > InDet::TRT_TrajectoryElement_xk::rioOnTrackSimple ( ) const

Definition at line 579 of file TRT_TrajectoryElement_xk.cxx.

580{
581 if(m_bestlink < 0 || m_status<=0) return nullptr;
582
583 int l = m_bestlink;
584 Amg::Vector3D dir(1.,0.,0.);
586 Amg::MatrixX cov(1,1);
587 cov(0,0) = 1.;
588 if(m_status==2) {
589 return std::make_unique<InDet::TRT_DriftCircleOnTrack>(m_link[l].cluster(),Trk::LocalParameters(radius),
590 std::move(cov),0,0.,dir,Trk::DECIDED);
591 }
592 return std::make_unique<InDet::TRT_DriftCircleOnTrack>(m_link[l].cluster(),Trk::LocalParameters(radius),
593 std::move(cov),0,0.,dir,Trk::NODRIFTTIME);
594}
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
@ NODRIFTTIME
drift time was not used - drift radius is 0.
@ DECIDED
sign of drift radius has been determined

◆ set() [1/2]

void InDet::TRT_TrajectoryElement_xk::set ( const Trk::MagneticFieldProperties & mf,
const AtlasFieldCacheCondObj * fieldCondObj )

Definition at line 30 of file TRT_TrajectoryElement_xk.cxx.

32{
34 fieldCondObj->getInitializedCache (m_fieldCache);
35}
void getInitializedCache(MagField::AtlasFieldCache &cache) const
get B field cache for evaluation as a function of 2-d or 3-d position.

◆ set() [2/2]

void InDet::TRT_TrajectoryElement_xk::set ( const TRT_ID * m,
const Trk::IPatternParametersPropagator * pr,
const Trk::IPatternParametersUpdator * up,
const Trk::IRIO_OnTrackCreator * riod,
const Trk::IRIO_OnTrackCreator * rion,
double scale )

◆ status()

const int & InDet::TRT_TrajectoryElement_xk::status ( ) const
inline

Definition at line 50 of file TRT_TrajectoryElement_xk.h.

50{return m_status ;}

◆ trackParametersEstimation() [1/2]

bool InDet::TRT_TrajectoryElement_xk::trackParametersEstimation ( TRT_TrajectoryElement_xk * E1,
Trk::PatternTrackParameters & Tp,
double ZvHW )

Definition at line 790 of file TRT_TrajectoryElement_xk.cxx.

792{
793
794 if(!E1) return false;
795
796 Amg::Vector3D Gp[3];
797 double Wa[3];
798 if (! trajectoryGlobalPosition(Gp[1],Wa[1])) return false;
799 if (!E1->trajectoryGlobalPosition(Gp[2],Wa[2])) return false;
800
801 double dx = Gp[2][0]-Gp[1][0];
802 double dy = Gp[2][1]-Gp[1][1];
803 Gp[0][0] = 0.;
804 Gp[0][1] = 0.;
805 Gp[0][2] = Gp[1][2]-(Gp[2][2]-Gp[1][2])*std::sqrt((Gp[1][0]*Gp[1][0]+Gp[1][1]*Gp[1][1])/(dx*dx+dy*dy));
806 Wa[0] = 0.;
807
808 double x0 = Gp[0][0] ;
809 double y0 = Gp[0][1] ;
810 double x1 = Gp[1][0]-x0 ;
811 double y1 = Gp[1][1]-y0 ;
812 double x2 = Gp[2][0]-x0 ;
813 double y2 = Gp[2][1]-y0 ;
814 double r1 = std::sqrt(x1*x1+y1*y1) ;
815 double u1 = 1./r1 ;
816 double r2 = 1./(x2*x2+y2*y2) ;
817 double a = x1*u1 ;
818 double b = y1*u1 ;
819 double u2 = (a*x2+b*y2)*r2 ;
820 double v2 = (a*y2-b*x2)*r2 ;
821 double A = v2/(u2-u1) ;
822 double B = 2.*(v2-A*u2) ;
823 double C = B/std::sqrt(1.+A*A) ;
824
825 double f,TP[3];
826
827 f = atan2( b+a*A, a-b*A); polarAngleEstimation(E1,Gp[1],Gp[2],C,ZvHW,TP);
828
829 // Track parameters estimation
830 //
831 double P[5] = {0.,Gp[0][2],f,atan2(1.,TP[0]),.0001};
832
833 double pos0[3]; pos0[0]=Gp[0][0]; pos0[1]=Gp[0][1]; pos0[2]=Gp[0][2];
834 double pos1[3]; pos1[0]=Gp[1][0]; pos1[1]=Gp[1][1]; pos1[2]=Gp[1][2];
835 double pos2[3]; pos2[0]=Gp[2][0]; pos2[1]=Gp[2][1]; pos2[2]=Gp[2][2];
836 double H0 [3];
837 double H1 [3];
838 double H2 [3];
839 m_fieldCache.getFieldZR (pos0,H0);
840 m_fieldCache.getFieldZR (pos1,H1);
841 m_fieldCache.getFieldZR (pos2,H2);
842
843 double Hz = .333333*(H0[2]+H1[2]+H2[2]);
844
845 // If magnetic field exist
846 //
847 double Cm = 1.;
848 double T2 = TP[0]*TP[0];
849 if(std::abs(Hz)>1.e-9) {Cm = 1./(300.*Hz*std::sqrt(1.+T2)); P[4] = -C*Cm;}
850
851 // Covariance of track parameters estimation
852 //
853 double wa = 1./Wa[2];
854
855 const double dS = 4. ;
856 double df = dS*wa ;
857 double dp = 8.*df*wa*Cm ;
858 double c0 = .1 ;
859 double c1 = ZvHW*ZvHW*.1 ;
860 double c2 = df*df*(1.+T2);
861 double c3 = TP[2] ;
862 double c4 = dp*dp ;
863 double V[15] ={c0,
864 0.,c1,
865 0.,0.,c2,
866 0.,0.,0.,c3,
867 0.,0.,0.,0.,c4};
868
869 Tp.setParametersWithCovariance(nullptr,P,V);
870 return true;
871}
static Double_t P(Double_t *tt, Double_t *par)
#define H2(x, y, z)
Definition MD5.cxx:115
void polarAngleEstimation(TRT_TrajectoryElement_xk *, Amg::Vector3D &, Amg::Vector3D &, double, double, double *) const
bool trajectoryGlobalPosition(Amg::Vector3D &, double &)
df
Printing table to screen.

◆ trackParametersEstimation() [2/2]

bool InDet::TRT_TrajectoryElement_xk::trackParametersEstimation ( TRT_TrajectoryElement_xk * E1,
TRT_TrajectoryElement_xk * E2,
Trk::PatternTrackParameters & Tp,
double ZvHW )

Definition at line 685 of file TRT_TrajectoryElement_xk.cxx.

688{
689
690 if(!E1) return false;
691
692 Amg::Vector3D Gp[3];
693 double Wa[3];
694
695 if (! trajectoryGlobalPosition(Gp[0],Wa[0])) return false;
696 if (!E1->trajectoryGlobalPosition(Gp[1],Wa[1])) return false;
697
698 int mode; Wa[0] > Wa[1] ? mode=0 : mode=1;
699
700 if(E2) {
701 if(!E2->trajectoryGlobalPosition(Gp[2],Wa[2])) return false;
702 }
703 else {
704 double dx = Gp[1][0]-Gp[0][0];
705 double dy = Gp[1][1]-Gp[0][1];
706 Gp[2][0] = 0.;
707 Gp[2][1] = 0.;
708 Gp[2][2] = Gp[0][2]-(Gp[1][2]-Gp[0][2])*std::sqrt((Gp[0][0]*Gp[0][0]+Gp[0][1]*Gp[0][1])/(dx*dx+dy*dy));
709 Wa[2] = 0.;
710 mode = 2 ;
711 }
712
713 double x0 = Gp[0][0] ;
714 double y0 = Gp[0][1] ;
715 double x1 = Gp[1][0]-x0 ;
716 double y1 = Gp[1][1]-y0 ;
717 double x2 = Gp[2][0]-x0 ;
718 double y2 = Gp[2][1]-y0 ;
719 double r1 = std::sqrt(x1*x1+y1*y1) ;
720 double u1 = 1./r1 ;
721 double r2 = 1./(x2*x2+y2*y2) ;
722 double a = x1*u1 ;
723 double b = y1*u1 ;
724 double u2 = (a*x2+b*y2)*r2 ;
725 double v2 = (a*y2-b*x2)*r2 ;
726 double A = v2/(u2-u1) ;
727 double B = 2.*(v2-A*u2) ;
728 double C = B/std::sqrt(1.+A*A) ;
729
730 double f,TP[3];
731
732 if(mode==0) {
733 f = atan2(-b-a*A,-a+b*A); C=-C; polarAngleEstimation(E2,Gp[0],Gp[2],C,ZvHW,TP);
734 }
735 else if(mode==1) {
736 f = atan2( b+a*A, a-b*A); polarAngleEstimation(E2,Gp[0],Gp[2],C,ZvHW,TP);
737 }
738 else {
739 f = atan2( b+a*A, a-b*A); polarAngleEstimation(E1,Gp[0],Gp[1],C,ZvHW,TP);
740 }
741
742 // Track parameters estimation
743 //
744 double P[5] = {m_link[m_bestlink].impact(),m_link[m_bestlink].zlocal(),f,atan2(1.,TP[0]),.0001};
745
746 double pos0[3]; pos0[0]=Gp[0][0]; pos0[1]=Gp[0][1]; pos0[2]=Gp[0][2];
747 double pos1[3]; pos1[0]=Gp[1][0]; pos1[1]=Gp[1][1]; pos1[2]=Gp[1][2];
748 double pos2[3]; pos2[0]=Gp[2][0]; pos2[1]=Gp[2][1]; pos2[2]=Gp[2][2];
749 double H0 [3];
750 double H1 [3];
751 double H2 [3];
752 m_fieldCache.getFieldZR (pos0,H0);
753 m_fieldCache.getFieldZR (pos1,H1);
754 m_fieldCache.getFieldZR (pos2,H2);
755
756 double Hz = .333333*(H0[2]+H1[2]+H2[2]);
757
758 // If magnetic field exist
759 //
760 double Cm = 1. ;
761 double T2 = TP[0]*TP[0];
762 if(std::abs(Hz)>1.e-9) {Cm = 1./(300.*Hz*std::sqrt(1.+T2)); P[4] = -C*Cm;}
763
764 // Covariance of track parameters estimation
765 //
766 double wa; mode != 2 ? wa = 1./(Wa[0]-Wa[2]) : wa = 1./Wa[1];
767 const double dS = 4. ;
768
769 double df = dS*wa ;
770 double dp = 8.*df*wa*Cm ;
771 double c0 = 4. ;
772 double c1 = TP[1] ;
773 double c2 = df*df*(1.+T2);
774 double c3 = TP[2] ;
775 double c4 = dp*dp ;
776 double V[15] ={c0,
777 0.,c1,
778 0.,0.,c2,
779 0.,0.,0.,c3,
780 0.,0.,0.,0.,c4};
781
782 Tp.setParametersWithCovariance(&m_link[m_bestlink].surface(),P,V);
783 return true;
784}

◆ trajectoryGlobalPosition()

bool InDet::TRT_TrajectoryElement_xk::trajectoryGlobalPosition ( Amg::Vector3D & G,
double & WAY )

Definition at line 646 of file TRT_TrajectoryElement_xk.cxx.

648{
649 int l = m_bestlink;
650 if( l<0 ) return false;
651
652 const Amg::Transform3D& t = m_detelement->strawTransform(m_link[l].number());
653
654 double Az[3] = {t(0,2),t(1,2),t(2,2)};
655 double Rc[3] = {t(0,3),t(1,3),t(2,3)};
656
657 double Bx,By;
658
659 if(std::abs(Az[2]) > .7) { // Barrel
660
661 double Ri = 1./std::sqrt(Rc[0]*Rc[0]+Rc[1]*Rc[1]);
662 Bx =-Az[2]*Rc[1]*Ri; By = Az[2]*Rc[0]*Ri;
663 }
664 else if(Rc[2] > 0. ) { // Positive endcap
665
666 Bx = Az[1]; By =-Az[0];
667 }
668 else { // Negative endcap
669
670 Bx =-Az[1]; By = Az[0];
671 }
672 double zl = m_link[l].zlocal();
673 double im = m_link[l].impact();
674 G[0] = zl*Az[0]+Bx*im+Rc[0];
675 G[1] = zl*Az[1]+By*im+Rc[1];
676 G[2] = zl*Az[2] +Rc[2];
677 WAY = m_link[l].way() ;
678 return true;
679}
#define G(x, y, z)
Definition MD5.cxx:113

◆ z()

const double & InDet::TRT_TrajectoryElement_xk::z ( ) const
inline

Definition at line 54 of file TRT_TrajectoryElement_xk.h.

54{return m_z ;}

Member Data Documentation

◆ m_barrel

bool InDet::TRT_TrajectoryElement_xk::m_barrel
protected

Definition at line 128 of file TRT_TrajectoryElement_xk.h.

◆ m_bestlink

int InDet::TRT_TrajectoryElement_xk::m_bestlink
protected

Definition at line 131 of file TRT_TrajectoryElement_xk.h.

◆ m_detelement

const InDetDD::TRT_BaseElement* InDet::TRT_TrajectoryElement_xk::m_detelement
protected

Definition at line 143 of file TRT_TrajectoryElement_xk.h.

◆ m_dnegative

double InDet::TRT_TrajectoryElement_xk::m_dnegative
protected

Definition at line 141 of file TRT_TrajectoryElement_xk.h.

◆ m_dpositive

double InDet::TRT_TrajectoryElement_xk::m_dpositive
protected

Definition at line 140 of file TRT_TrajectoryElement_xk.h.

◆ m_fieldCache

MagField::AtlasFieldCache InDet::TRT_TrajectoryElement_xk::m_fieldCache
protected

Definition at line 150 of file TRT_TrajectoryElement_xk.h.

◆ m_fieldprop

Trk::MagneticFieldProperties InDet::TRT_TrajectoryElement_xk::m_fieldprop
protected

Definition at line 149 of file TRT_TrajectoryElement_xk.h.

◆ m_isCluster

bool InDet::TRT_TrajectoryElement_xk::m_isCluster
protected

Definition at line 129 of file TRT_TrajectoryElement_xk.h.

◆ m_link

TRT_ExtensionDriftCircleLink_xk InDet::TRT_TrajectoryElement_xk::m_link[24]
protected

Definition at line 142 of file TRT_TrajectoryElement_xk.h.

◆ m_nlinks

int InDet::TRT_TrajectoryElement_xk::m_nlinks
protected

Definition at line 132 of file TRT_TrajectoryElement_xk.h.

◆ m_proptool

const Trk::IPatternParametersPropagator* InDet::TRT_TrajectoryElement_xk::m_proptool
protected

Definition at line 145 of file TRT_TrajectoryElement_xk.h.

◆ m_radius

double InDet::TRT_TrajectoryElement_xk::m_radius
protected

Definition at line 136 of file TRT_TrajectoryElement_xk.h.

◆ m_radiusMax

double InDet::TRT_TrajectoryElement_xk::m_radiusMax
protected

Definition at line 138 of file TRT_TrajectoryElement_xk.h.

◆ m_radiusMin

double InDet::TRT_TrajectoryElement_xk::m_radiusMin
protected

Definition at line 137 of file TRT_TrajectoryElement_xk.h.

◆ m_riomakerD

const Trk::IRIO_OnTrackCreator* InDet::TRT_TrajectoryElement_xk::m_riomakerD
protected

Definition at line 147 of file TRT_TrajectoryElement_xk.h.

◆ m_riomakerN

const Trk::IRIO_OnTrackCreator* InDet::TRT_TrajectoryElement_xk::m_riomakerN
protected

Definition at line 148 of file TRT_TrajectoryElement_xk.h.

◆ m_scale_error

double InDet::TRT_TrajectoryElement_xk::m_scale_error
protected

Definition at line 139 of file TRT_TrajectoryElement_xk.h.

◆ m_status

int InDet::TRT_TrajectoryElement_xk::m_status
protected

Definition at line 130 of file TRT_TrajectoryElement_xk.h.

◆ m_trtid

const TRT_ID* InDet::TRT_TrajectoryElement_xk::m_trtid
protected

Definition at line 144 of file TRT_TrajectoryElement_xk.h.

◆ m_updatortool

const Trk::IPatternParametersUpdator* InDet::TRT_TrajectoryElement_xk::m_updatortool
protected

Definition at line 146 of file TRT_TrajectoryElement_xk.h.

◆ m_z

double InDet::TRT_TrajectoryElement_xk::m_z
protected

Definition at line 133 of file TRT_TrajectoryElement_xk.h.

◆ m_zMax

double InDet::TRT_TrajectoryElement_xk::m_zMax
protected

Definition at line 135 of file TRT_TrajectoryElement_xk.h.

◆ m_zMin

double InDet::TRT_TrajectoryElement_xk::m_zMin
protected

Definition at line 134 of file TRT_TrajectoryElement_xk.h.


The documentation for this class was generated from the following files: