ATLAS Offline Software
GXFTrajectory.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
8 #include "TrkSurfaces/Surface.h"
12 
13 
14 namespace Trk {
16  m_straightline = true;
17  m_ndof = 0;
18  m_nperpars = -1;
19  m_nscatterers = 0;
21  m_nbrems = 0;
25  m_nupstreambrems = 0;
26  m_nsihits = 0;
27  m_ntrthits = 0;
28  m_ntrtprechits = 0;
29  m_ntrttubehits = 0;
30  m_npseudo = 0;
31  m_nhits = 0;
32  m_noutl = 0;
33  m_nmeasoutl = 0;
34  m_chi2 = 0;
35  m_prevchi2 = 0;
36  m_converged = false;
37  m_prefit = 0;
38  m_refpar.reset(nullptr);
39  m_totx0 = 0;
40  m_toteloss = 0;
41  m_mass = 0;
42  m_caloelossstate = nullptr;
43  }
44 
46  : m_straightline (rhs.m_straightline),
47  m_fieldprop (rhs.m_fieldprop),
48  m_ndof (rhs.m_ndof),
49  m_chi2 (rhs.m_chi2),
50  m_prevchi2 (rhs.m_prevchi2),
51  m_nperpars (rhs.m_nperpars),
52  m_nscatterers (rhs.m_nscatterers),
53  m_ncaloscatterers (rhs.m_ncaloscatterers),
54  m_nbrems (rhs.m_nbrems),
55  m_nupstreamstates (rhs.m_nupstreamstates),
56  m_nupstreamscatterers (rhs.m_nupstreamscatterers),
57  m_nupstreamcaloscatterers (rhs.m_nupstreamcaloscatterers),
58  m_nupstreambrems (rhs.m_nupstreambrems),
59  m_nhits (rhs.m_nhits),
60  m_noutl (rhs.m_noutl),
61  m_nsihits (rhs.m_nsihits),
62  m_ntrthits (rhs.m_ntrthits),
63  m_ntrtprechits (rhs.m_ntrtprechits),
64  m_ntrttubehits (rhs.m_ntrttubehits),
65  m_npseudo (rhs.m_npseudo),
66  m_nmeasoutl (rhs.m_nmeasoutl),
67  m_refpar(rhs.m_refpar != nullptr ? rhs.m_refpar->clone() : nullptr),
68  m_converged (rhs.m_converged),
69  m_scatteringangles (rhs.m_scatteringangles),
70  m_scatteringsigmas (rhs.m_scatteringsigmas),
71  m_brems (rhs.m_brems),
72  m_res (rhs.m_res),
73  m_errors (rhs.m_errors),
74  m_weightresderiv (rhs.m_weightresderiv),
75  m_totx0 (rhs.m_totx0),
76  m_toteloss (rhs.m_toteloss),
77  m_mass (rhs.m_mass),
78  m_prefit (rhs.m_prefit),
79  m_caloelossstate (nullptr),
80  m_upstreammat (rhs.m_upstreammat)
81  {
82 
83  m_states.reserve(rhs.m_states.size());
84  for (const std::unique_ptr<GXFTrackState> & i : rhs.m_states) {
85  m_states.emplace_back(std::make_unique<GXFTrackState>(*i));
86  }
87 
88  if (rhs.m_caloelossstate != nullptr) {
89  for (auto & state : m_states) {
91  }
92  }
93  }
94 
96  if (this != &rhs) {
99  m_ndof = rhs.m_ndof;
100  m_nperpars = rhs.m_nperpars;
103  m_nbrems = rhs.m_nbrems;
108  m_nsihits = rhs.m_nsihits;
109  m_ntrthits = rhs.m_ntrthits;
112  m_nhits = rhs.m_nhits;
113  m_npseudo = rhs.m_npseudo;
114  m_noutl = rhs.m_noutl;
115  m_nmeasoutl = rhs.m_nmeasoutl;
116  m_chi2 = rhs.m_chi2;
117  m_prevchi2 = rhs.m_prevchi2;
118  m_converged = rhs.m_converged;
119  m_prefit = rhs.m_prefit;
120  m_refpar.reset(rhs.m_refpar != nullptr ? rhs.m_refpar->clone() : nullptr);
121 
122  m_states.clear();
123  for (const std::unique_ptr<GXFTrackState> & i : rhs.m_states) {
124  m_states.push_back(std::make_unique<GXFTrackState>(*i));
125  }
126 
129  m_brems = rhs.m_brems;
130  m_res = rhs.m_res;
131  m_errors = rhs.m_errors;
133  m_totx0 = rhs.m_totx0;
134  m_toteloss = rhs.m_toteloss;
135  m_mass = rhs.m_mass;
136  m_caloelossstate = nullptr;
137 
138  if (rhs.m_caloelossstate != nullptr) {
139  for (auto & state : m_states) {
141  }
142  }
144  }
145  return *this;
146  }
147 
149  constexpr double perpThreshold = 1400;
150  constexpr double zThreshold = 3700;
151 
152  const GXFMaterialEffects *meff = state->materialEffects();
153  const TrackParameters *par = state->trackParameters();
154 
155  if (
156  meff != nullptr &&
157  par != nullptr &&
158  meff->sigmaDeltaE() > 0 &&
159  meff->sigmaDeltaPhi() == 0 &&
160  (par->position().perp() > perpThreshold || std::abs(par->position().z()) > zThreshold)
161  ) {
162  m_caloelossstate = state;
163  }
164  }
165 
166  bool GXFTrajectory::addMeasurementState(std::unique_ptr<GXFTrackState> state, int index) {
167  if (!m_states.empty() && (m_states.back()->measurement() != nullptr)) {
168  const MeasurementBase *meas = m_states.back()->measurement();
169  const MeasurementBase *meas2 = state->measurement();
170 
171  if (
172  &meas->associatedSurface() == &meas2->associatedSurface() &&
173  meas->localParameters().parameterKey() == meas2->localParameters().parameterKey() &&
174  state->measurementType() != TrackState::MM
175  ) {
176  return false;
177  }
178  }
179 
180  int nmeas = 0;
181  double *errors = state->measurementErrors();
182 
183  for (int i = 0; i < 5; i++) {
184  if (errors[i] > 0) {
185  nmeas++;
186  }
187  }
188 
189  if (state->getStateType(TrackStateOnSurface::Measurement)) {
190  m_ndof += nmeas;
191  } else {
192  m_nmeasoutl += nmeas;
193  m_noutl++;
194  }
195 
196  if (state->measurementType() != TrackState::Pseudo) {
197  m_nhits++;
198  }
199 
200  if (state->measurementType() == TrackState::Pixel
201  || state->measurementType() == TrackState::SCT) {
202  m_nsihits++;
203  }
204 
205  if (state->measurementType() == TrackState::TRT) {
206  m_ntrthits++;
207  if (errors[0]<1) m_ntrtprechits++;
208  if (errors[0]>1) m_ntrttubehits++;
209  }
210 
211  if (state->measurementType() == TrackState::Pseudo) {
212  m_npseudo++;
213  }
214 
215  if (index == -1) {
216  m_states.push_back(std::move(state));
217  } else {
218  m_states.insert(m_states.begin() + index, std::move(state));
219  }
220 
221  return true;
222  }
223 
224  void GXFTrajectory::addMaterialState(std::unique_ptr<GXFTrackState> state, int index) {
225  GXFMaterialEffects *meff = state->materialEffects();
226 
227  if (state->getStateType(TrackStateOnSurface::Scatterer)) {
228  m_nscatterers++;
229 
230  if (meff->deltaE() == 0) {
232  }
233  }
234 
235  if (meff->sigmaDeltaE() > 0) {
236  m_nbrems++;
238  }
239 
240  m_toteloss += std::abs(meff->deltaE());
241  m_totx0 += meff->x0();
242 
243  if (index == -1) {
244  m_states.push_back(std::move(state));
245 
246  if (meff->sigmaDeltaE() > 0) {
247  m_brems.push_back(meff->delta_p());
248  }
249  } else {
250  m_states.insert(m_states.begin() + index, std::move(state));
251  int previousbrems = 0;
252 
253  for (int i = 0; i < index; i++) {
254  if ((m_states[i]->materialEffects() != nullptr)
255  && m_states[i]->materialEffects()->sigmaDeltaE() > 0) {
256  previousbrems++;
257  }
258  }
259 
260  if (meff->sigmaDeltaE() > 0) {
261  m_brems.insert(m_brems.begin() + previousbrems, meff->delta_p());
262  }
263  }
264  }
265 
266  void GXFTrajectory::addBasicState(std::unique_ptr<GXFTrackState> state, int index) {
267  if (index == -1) {
268  m_states.push_back(std::move(state));
269  } else {
270  m_states.insert(m_states.begin() + index, std::move(state));
271  }
272  }
273 
274  void GXFTrajectory::setReferenceParameters(std::unique_ptr<const TrackParameters> per) {
275  if (m_refpar != nullptr) {
276  m_refpar = std::move(per);
277  } else {
278  m_refpar = std::move(per);
280 
281  std::vector<std::unique_ptr<GXFTrackState>>::iterator it = m_states.begin();
282  std::vector<std::unique_ptr<GXFTrackState>>::iterator it2 = m_states.begin();
283 
284  while (it2 != m_states.end()) {
285  double distance = 0;
286  bool isdownstream = false;
287 
288  if ((**it2).trackParameters() != nullptr) {
289  distance = ((**it2).position() - m_refpar->position()).mag();
290  double inprod = m_refpar->momentum().dot((**it2).position() - m_refpar->position());
291 
292  if (inprod > 0) {
293  isdownstream = true;
294  }
295  } else {
296  DistanceSolution distsol = (**it2).associatedSurface().straightLineDistanceEstimate(m_refpar->position(),m_refpar->momentum().unit());
297 
298  if (distsol.numberOfSolutions() == 1) {
299  distance = distsol.first();
300  } else if (distsol.numberOfSolutions() == 2) {
301  distance =
302  std::abs(distsol.first()) < std::abs(distsol.second()) ?
303  distsol.first() :
304  distsol.second();
305  }
306 
307  if (distance > 0) {
308  isdownstream = true;
309  }
310 
311  distance = fabs(distance);
312  }
313 
314  if (isdownstream) {
315  it = it2;
316  break;
317  }
318 
320 
321  if (
322  (**it2).getStateType(TrackStateOnSurface::Scatterer) &&
323  (**it2).materialEffects()->sigmaDeltaTheta() != 0
324  ) {
326 
327  if ((**it2).materialEffects()->deltaE() == 0) {
329  }
330  }
331  if (
332  ((**it2).materialEffects() != nullptr) &&
333  (**it2).materialEffects()->sigmaDeltaE() > 0
334  ) {
336  }
337 
338  ++it2;
339  }
340  }
341  }
342 
344  return m_refpar.get();
345  }
346 
348  m_refpar.reset(nullptr);
349  }
350 
352  m_ndof -= nperpar;
353  m_nperpars = nperpar;
354  }
355 
356  void GXFTrajectory::setOutlier(int index, bool isoutlier) {
357  if (isoutlier && m_states[index]->getStateType(TrackStateOnSurface::Outlier)) {
358  return;
359  }
360 
361  if (!isoutlier && m_states[index]->getStateType(TrackStateOnSurface::Measurement)) {
362  return;
363  }
364 
365  int nmeas = 0;
366  double *errors = m_states[index]->measurementErrors();
367 
368  for (int i = 0; i < 5; i++) {
369  if (errors[i] > 0) {
370  nmeas++;
371  }
372  }
373 
374  if (isoutlier) {
375  m_ndof -= nmeas;
376  m_states[index]->resetStateType(TrackStateOnSurface::Outlier);
377  m_nmeasoutl += nmeas;
378  m_noutl++;
379  m_states[index]->setFitQuality({});
380  } else {
381  m_ndof += nmeas;
383  m_nmeasoutl -= nmeas;
384  m_noutl--;
385  }
386  }
387 
388  void GXFTrajectory::updateTRTHitCount(int index, float oldError) {
389  double error = (m_states[index]->measurementErrors())[0];
390  if (m_states[index]->getStateType(TrackStateOnSurface::Outlier)) {
391  if (oldError<1) { m_ntrtprechits--; }
392  else {m_ntrttubehits--; }
393  }
394  if (error>1 && oldError<1) { // was precison, became tube
395  m_ntrttubehits++;
396  m_ntrtprechits--;
397  }
398  else if (error<1 && oldError>1) { // was tube, became precision
399  m_ntrttubehits--;
400  m_ntrtprechits++;
401  }
402  }
403 
404  void GXFTrajectory::setPrefit(int isprefit) {
405  m_prefit = isprefit;
406  }
407 
408  void GXFTrajectory::setConverged(bool isconverged) {
409  m_converged = isconverged;
410  }
411 
413  m_res.resize(0);
414  m_weightresderiv.resize(0, 0);
415  m_errors.resize(0);
416  m_scatteringangles.clear();
417  m_scatteringsigmas.clear();
418  m_converged = false;
419  m_refpar.reset(nullptr);
420  }
421 
423  return m_converged;
424  }
425 
426  int GXFTrajectory::prefit() const {
427  return m_prefit;
428  }
429 
431  return m_nhits;
432  }
433 
435  return m_noutl;
436  }
437 
439  return m_nsihits;
440  }
441 
443  return m_ntrthits;
444  }
445 
447  return m_ntrtprechits;
448  }
449 
451  return m_ntrttubehits;
452  }
453 
455  return m_npseudo;
456  }
457 
459  if (m_prefit != 0) {
460  return m_ncaloscatterers;
461  }
462  return m_nscatterers;
463  }
464 
466  m_nscatterers = nscat;
467  }
468 
470  return m_nbrems;
471  }
472 
474  m_nbrems = nbrem;
475  }
476 
478  return m_nupstreamstates;
479  }
480 
482  if (m_prefit == 0) {
483  return m_nupstreamscatterers;
484  }
486  }
487 
489  return m_nupstreambrems;
490  }
491 
493  return m_nperpars;
494  }
495 
497  if (m_prefit == 1) {
499  }
500  return m_nperpars + numberOfBrems() + 2 * numberOfScatterers();
501  }
502 
503  double GXFTrajectory::chi2() const {
504  return m_chi2;
505  }
506 
507  double GXFTrajectory::prevchi2() const {
508  return m_prevchi2;
509  }
510 
512  m_chi2 = chi2;
513  }
514 
516  m_prevchi2 = chi2;
517  }
518 
519  int GXFTrajectory::nDOF() const {
520  return m_ndof;
521  }
522 
523  std::vector<std::pair<double, double>> & GXFTrajectory::scatteringAngles() {
524  if (m_scatteringangles.empty() && numberOfScatterers() > 0) {
525  m_scatteringsigmas.clear();
528  for (auto & state : m_states) {
529  if ((*state).getStateType(TrackStateOnSurface::Scatterer)
530  && ((m_prefit == 0) || (*state).materialEffects()->deltaE() == 0)) {
531  double scatphi = (*state).materialEffects()->deltaPhi();
532  double scattheta = (*state).materialEffects()->deltaTheta();
533  m_scatteringangles.emplace_back(scatphi, scattheta);
534  double sigmascatphi = (*state).materialEffects()->sigmaDeltaPhi();
535  double sigmascattheta = (*state).materialEffects()->sigmaDeltaTheta();
537  emplace_back(sigmascatphi, sigmascattheta);
538  }
539  }
540  }
541  return m_scatteringangles;
542  }
543 
544  std::vector < std::pair < double, double >>&
546  if (m_scatteringsigmas.empty() && numberOfScatterers() > 0) {
548  }
549  return m_scatteringsigmas;
550  }
551 
552  std::vector<double> & GXFTrajectory::brems() {
553  return m_brems;
554  }
555 
556  void
557 
558  GXFTrajectory::setScatteringAngles(std::vector < std::pair < double,
559  double > >&scatteringangles) {
560  m_scatteringangles = scatteringangles;
561  int scatno = 0;
562  for (auto & state : m_states) {
563  if ((*state).getStateType(TrackStateOnSurface::Scatterer)
564  && ((m_prefit == 0) || (*state).materialEffects()->deltaE() == 0)) {
565  double scatphi = scatteringangles[scatno].first;
566  double scattheta = scatteringangles[scatno].second;
567  (*state).materialEffects()->setScatteringAngles(scatphi, scattheta);
568  scatno++;
569  }
570  }
571  }
572 
573  void
574  GXFTrajectory::setBrems(std::vector<double> & brems) {
575  // if (m_prefit==1) return;
576  m_brems = brems;
577  int bremno = 0;
578  for (auto & state : m_states) {
579  if (((*state).materialEffects() != nullptr)
580  && (*state).materialEffects()->sigmaDeltaE() > 0) {
581  (*state).materialEffects()->setdelta_p(m_brems[bremno]);
582  bremno++;
583  }
584  }
585  }
586 
587  const std::vector<std::unique_ptr<GXFTrackState>> & GXFTrajectory::trackStates() const {
588  return m_states;
589  }
590 
591  std::vector<std::unique_ptr<GXFTrackState>> & GXFTrajectory::trackStates() {
592  return m_states;
593  }
594 
596  if (m_res.size() == 0) {
598  }
599  return m_res;
600  }
601 
603  if (m_errors.size() == 0) {
605  }
606  return m_errors;
607  }
608 
610  if (m_weightresderiv.size() == 0) {
611  m_weightresderiv.setZero(
614  );
615  }
616  return m_weightresderiv;
617  }
618 
619  double
621  return m_totx0;
622  }
623 
624  double
626  return m_toteloss;
627  }
628 
629  double
631  return m_mass;
632  }
633 
634  void
636  m_mass = mass;
637  }
638 
640  return m_caloelossstate;
641  }
642 
643  std::vector < std::pair < const Layer *, const Layer *>>&
645  return m_upstreammat;
646  }
647 
648  std::pair<GXFTrackState *, GXFTrackState *> GXFTrajectory::findFirstLastMeasurement(void) {
649  GXFTrackState *firstmeasstate = nullptr;
650  GXFTrackState *lastmeasstate = nullptr;
651 
652  for (std::unique_ptr<GXFTrackState> & hit : trackStates()) {
653  if (hit->measurement() != nullptr) {
654  if (firstmeasstate == nullptr) {
655  firstmeasstate = hit.get();
656  }
657  lastmeasstate = hit.get();
658  }
659  }
660 
661  if (firstmeasstate == nullptr) {
662  throw std::logic_error("no first measurement.");
663  }
664 
665  return std::make_pair(firstmeasstate, lastmeasstate);
666  }
667 
669  for (auto & hit : trackStates()) {
670  if (
671  hit->measurementType() == TrackState::Pseudo &&
672  hit->getStateType(TrackStateOnSurface::Outlier)
673  ) {
674  continue;
675  }
676 
677  if (
678  (hit->materialEffects() != nullptr) &&
679  hit->materialEffects()->isKink()
680  ) {
681  return true;
682  }
683  }
684 
685  return false;
686  }
687 
689  for (std::unique_ptr<GXFTrackState> & hit : trackStates()) {
690  hit->setTrackCovariance(nullptr);
691  }
692  }
693 
694  std::unique_ptr<const FitQuality> GXFTrajectory::quality(void) const {
695  return std::make_unique<const FitQuality>(chi2(), nDOF());
696  }
697 }
Trk::GXFTrajectory::numberOfUpstreamScatterers
int numberOfUpstreamScatterers() const
Definition: GXFTrajectory.cxx:481
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
Trk::GXFTrajectory::m_nupstreamstates
int m_nupstreamstates
Definition: GXFTrajectory.h:123
Trk::GXFTrajectory::m_upstreammat
std::vector< std::pair< const Layer *, const Layer * > > m_upstreammat
Definition: GXFTrajectory.h:148
Trk::GXFTrajectory::m_refpar
std::unique_ptr< const TrackParameters > m_refpar
Definition: GXFTrajectory.h:135
Trk::GXFTrajectory::setMass
void setMass(double)
Definition: GXFTrajectory.cxx:635
Trk::GXFTrajectory::m_ndof
int m_ndof
Definition: GXFTrajectory.h:116
Trk::GXFTrajectory::numberOfUpstreamStates
int numberOfUpstreamStates() const
Definition: GXFTrajectory.cxx:477
Trk::GXFTrajectory::numberOfScatterers
int numberOfScatterers() const
Definition: GXFTrajectory.cxx:458
Trk::TrackState::Pixel
@ Pixel
Definition: TrackStateDefs.h:28
Trk::GXFTrajectory::m_nperpars
int m_nperpars
Definition: GXFTrajectory.h:119
Amg::VectorX
Eigen::Matrix< double, Eigen::Dynamic, 1 > VectorX
Dynamic Vector - dynamic allocation.
Definition: EventPrimitives.h:30
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition: EventPrimitives.h:27
Trk::GXFTrajectory::m_scatteringangles
std::vector< std::pair< double, double > > m_scatteringangles
Definition: GXFTrajectory.h:137
TrackParameters.h
Trk::GXFTrajectory::quality
std::unique_ptr< const FitQuality > quality(void) const
Definition: GXFTrajectory.cxx:694
Trk::TrackState::TRT
@ TRT
Definition: TrackStateDefs.h:30
Trk::GXFTrajectory::numberOfFitParameters
int numberOfFitParameters() const
Definition: GXFTrajectory.cxx:496
Trk::GXFTrajectory::brems
std::vector< double > & brems()
Definition: GXFTrajectory.cxx:552
Trk::GXFTrajectory::numberOfTRTPrecHits
int numberOfTRTPrecHits() const
Definition: GXFTrajectory.cxx:446
CompetingRIOsOnTrack.h
Surface.h
Trk::GXFTrajectory::m_res
Amg::VectorX m_res
Definition: GXFTrajectory.h:140
Base_Fragment.mass
mass
Definition: Sherpa_i/share/common/Base_Fragment.py:59
Trk::GXFTrajectory::operator=
GXFTrajectory & operator=(const GXFTrajectory &rhs)
Definition: GXFTrajectory.cxx:95
Trk::DistanceSolution
Definition: DistanceSolution.h:25
Trk::LocalParameters::parameterKey
int parameterKey() const
Identifier key for matrix expansion/reduction.
Trk::GXFTrajectory::addMeasurementState
bool addMeasurementState(std::unique_ptr< GXFTrackState >, int index=-1)
Definition: GXFTrajectory.cxx:166
Trk::DistanceSolution::numberOfSolutions
int numberOfSolutions() const
Number of intersection solutions.
Trk::GXFTrajectory::addBasicState
void addBasicState(std::unique_ptr< GXFTrackState >, int index=-1)
Definition: GXFTrajectory.cxx:266
index
Definition: index.py:1
Trk::GXFTrajectory::numberOfPerigeeParameters
int numberOfPerigeeParameters() const
Definition: GXFTrajectory.cxx:492
Trk::GXFTrajectory::numberOfTRTTubeHits
int numberOfTRTTubeHits() const
Definition: GXFTrajectory.cxx:450
Trk::GXFTrajectory::residuals
Amg::VectorX & residuals()
Definition: GXFTrajectory.cxx:595
Trk::GXFTrajectory::prefit
int prefit() const
Definition: GXFTrajectory.cxx:426
Trk::GXFTrajectory::setNumberOfPerigeeParameters
void setNumberOfPerigeeParameters(int)
Definition: GXFTrajectory.cxx:351
skel.it
it
Definition: skel.GENtoEVGEN.py:396
Trk::GXFTrajectory::m_states
std::vector< std::unique_ptr< GXFTrackState > > m_states
The vector of track states, i.e.
Definition: GXFTrajectory.h:115
Trk::GXFTrajectory::totalEnergyLoss
double totalEnergyLoss() const
Definition: GXFTrajectory.cxx:625
Trk::GXFTrajectory::numberOfHits
int numberOfHits() const
Definition: GXFTrajectory.cxx:430
Trk::GXFTrajectory
Internal representation of the track, used in the track fit.
Definition: GXFTrajectory.h:31
Trk::GXFTrajectory::m_errors
Amg::VectorX m_errors
Definition: GXFTrajectory.h:141
Trk::DistanceSolution::first
double first() const
Distance to first intersection solution along direction.
Trk::GXFTrajectory::referenceParameters
const TrackParameters * referenceParameters()
Definition: GXFTrajectory.cxx:343
Trk::GXFTrajectory::resetCovariances
void resetCovariances(void)
Definition: GXFTrajectory.cxx:688
Trk::GXFTrajectory::upstreamMaterialLayers
std::vector< std::pair< const Layer *, const Layer * > > & upstreamMaterialLayers()
Definition: GXFTrajectory.cxx:644
python.Utilities.clone
clone
Definition: Utilities.py:134
Trk::GXFTrajectory::setOutlier
void setOutlier(int, bool isoutlier=true)
Definition: GXFTrajectory.cxx:356
Trk::GXFTrajectory::m_mass
double m_mass
Definition: GXFTrajectory.h:145
Trk::GXFTrajectory::nDOF
int nDOF() const
Definition: GXFTrajectory.cxx:519
Trk::GXFTrajectory::setPrefit
void setPrefit(int)
Definition: GXFTrajectory.cxx:404
Trk::TrackState::MM
@ MM
Definition: TrackStateDefs.h:42
Trk::GXFTrajectory::updateTRTHitCount
void updateTRTHitCount(int index, float oldError)
Definition: GXFTrajectory.cxx:388
Trk::GXFTrajectory::caloElossState
GXFTrackState * caloElossState()
Definition: GXFTrajectory.cxx:639
Trk::TrackStateOnSurface::Outlier
@ Outlier
This TSoS contains an outlier, that is, it contains a MeasurementBase/RIO_OnTrack which was not used ...
Definition: TrackStateOnSurface.h:122
Trk::GXFTrajectory::m_noutl
int m_noutl
Definition: GXFTrajectory.h:128
Trk::GXFTrajectory::setPrevChi2
void setPrevChi2(double)
Definition: GXFTrajectory.cxx:515
MagneticFieldProperties.h
Trk::GXFTrajectory::numberOfSiliconHits
int numberOfSiliconHits() const
Definition: GXFTrajectory.cxx:438
Trk::GXFTrackState::trackParameters
const TrackParameters * trackParameters(void) const
Definition: GXFTrackState.h:160
Trk::GXFTrajectory::m_nupstreambrems
int m_nupstreambrems
Definition: GXFTrajectory.h:126
Trk::GXFMaterialEffects::x0
double x0() const
Definition: GXFMaterialEffects.cxx:103
Trk::GXFTrajectory::m_totx0
double m_totx0
Definition: GXFTrajectory.h:143
Trk::GXFTrajectory::scatteringSigmas
std::vector< std::pair< double, double > > & scatteringSigmas()
Definition: GXFTrajectory.cxx:545
Trk::GXFTrajectory::m_toteloss
double m_toteloss
Definition: GXFTrajectory.h:144
Trk::GXFTrajectory::numberOfBrems
int numberOfBrems() const
Definition: GXFTrajectory.cxx:469
Trk::GXFTrajectory::setConverged
void setConverged(bool)
Definition: GXFTrajectory.cxx:408
Trk::GXFTrajectory::m_converged
bool m_converged
Definition: GXFTrajectory.h:136
GXFTrajectory.h
GXFMaterialEffects.h
lumiFormat.i
int i
Definition: lumiFormat.py:85
Trk::GXFTrajectory::m_straightline
bool m_straightline
Definition: GXFTrajectory.h:111
Trk::TrackState::Pseudo
@ Pseudo
Definition: TrackStateDefs.h:35
Trk::GXFTrajectory::totalX0
double totalX0() const
Definition: GXFTrajectory.cxx:620
Trk::GXFMaterialEffects::sigmaDeltaPhi
double sigmaDeltaPhi() const
Definition: GXFMaterialEffects.cxx:123
Trk::DistanceSolution::second
double second() const
Distance to second intersection solution along direction (for a cylinder surface)
Trk::GXFTrackState
Definition: GXFTrackState.h:30
Trk::GXFTrajectory::m_nsihits
int m_nsihits
Definition: GXFTrajectory.h:129
chi2
double chi2(TH1 *h0, TH1 *h1)
Definition: comparitor.cxx:522
Trk::GXFTrajectory::m_nmeasoutl
int m_nmeasoutl
Definition: GXFTrajectory.h:134
Trk::GXFMaterialEffects
class that is similar to MaterialEffectsOnTrack, but has 'set' methods for more flexibility during tr...
Definition: GXFMaterialEffects.h:24
Trk::GXFTrajectory::m_prefit
int m_prefit
Definition: GXFTrajectory.h:146
Trk::ParametersBase
Definition: ParametersBase.h:55
Trk::GXFTrajectory::m_nscatterers
int m_nscatterers
Definition: GXFTrajectory.h:120
Trk::GXFTrajectory::m_chi2
double m_chi2
Definition: GXFTrajectory.h:117
Trk::GXFTrajectory::m_nupstreamscatterers
int m_nupstreamscatterers
Definition: GXFTrajectory.h:124
Trk::GXFTrajectory::setReferenceParameters
void setReferenceParameters(std::unique_ptr< const TrackParameters >)
Definition: GXFTrajectory.cxx:274
Trk::GXFTrajectory::mass
double mass() const
Definition: GXFTrajectory.cxx:630
Trk::GXFTrajectory::numberOfPseudoMeasurements
int numberOfPseudoMeasurements() const
Definition: GXFTrajectory.cxx:454
Trk::GXFTrajectory::m_nupstreamcaloscatterers
int m_nupstreamcaloscatterers
Definition: GXFTrajectory.h:125
Trk::MeasurementBase
Definition: MeasurementBase.h:58
Trk::GXFTrajectory::setBrems
void setBrems(std::vector< double > &)
Definition: GXFTrajectory.cxx:574
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::MeasurementBase::associatedSurface
virtual const Surface & associatedSurface() const =0
Interface method to get the associated Surface.
createCoolChannelIdFile.par
par
Definition: createCoolChannelIdFile.py:29
Trk::GXFTrajectory::m_nbrems
int m_nbrems
Definition: GXFTrajectory.h:122
RIO_OnTrack.h
Trk::GXFMaterialEffects::delta_p
double delta_p() const
Definition: GXFMaterialEffects.cxx:178
Trk::GXFTrajectory::m_scatteringsigmas
std::vector< std::pair< double, double > > m_scatteringsigmas
Definition: GXFTrajectory.h:138
Trk::GXFTrajectory::scatteringAngles
std::vector< std::pair< double, double > > & scatteringAngles()
Definition: GXFTrajectory.cxx:523
Trk::GXFTrajectory::errors
Amg::VectorX & errors()
Definition: GXFTrajectory.cxx:602
Trk::GXFTrajectory::m_prevchi2
double m_prevchi2
Definition: GXFTrajectory.h:118
Trk::GXFTrajectory::m_nhits
int m_nhits
Definition: GXFTrajectory.h:127
Trk::MeasurementBase::localParameters
const LocalParameters & localParameters() const
Interface method to get the LocalParameters.
Definition: MeasurementBase.h:132
Trk::GXFTrajectory::addMaterialState
void addMaterialState(std::unique_ptr< GXFTrackState >, int index=-1)
Definition: GXFTrajectory.cxx:224
DeMoScan.index
string index
Definition: DeMoScan.py:364
Trk::GXFTrajectory::m_ncaloscatterers
int m_ncaloscatterers
Definition: GXFTrajectory.h:121
Trk::GXFMaterialEffects::sigmaDeltaE
double sigmaDeltaE() const
Definition: GXFMaterialEffects.cxx:139
Trk::GXFTrajectory::findFirstLastMeasurement
std::pair< GXFTrackState *, GXFTrackState * > findFirstLastMeasurement(void)
Definition: GXFTrajectory.cxx:648
Trk::GXFTrajectory::hasKink
bool hasKink(void)
Definition: GXFTrajectory.cxx:668
Trk::GXFTrajectory::m_ntrthits
int m_ntrthits
Definition: GXFTrajectory.h:130
Trk::GXFTrajectory::m_ntrttubehits
int m_ntrttubehits
Definition: GXFTrajectory.h:132
Trk::GXFTrajectory::prevchi2
double prevchi2() const
Definition: GXFTrajectory.cxx:507
Trk::GXFTrackState::materialEffects
GXFMaterialEffects * materialEffects()
Definition: GXFTrackState.h:164
Trk::TrackStateOnSurface::Scatterer
@ Scatterer
This represents a scattering point on the track, and so will contain TrackParameters and MaterialEffe...
Definition: TrackStateOnSurface.h:113
Trk::GXFTrajectory::resetReferenceParameters
void resetReferenceParameters()
Definition: GXFTrajectory.cxx:347
Trk::GXFTrajectory::numberOfTRTHits
int numberOfTRTHits() const
Definition: GXFTrajectory.cxx:442
Trk::GXFTrajectory::m_ntrtprechits
int m_ntrtprechits
Definition: GXFTrajectory.h:131
Trk::GXFTrajectory::setChi2
void setChi2(double)
Definition: GXFTrajectory.cxx:511
Trk::GXFTrajectory::setNumberOfScatterers
void setNumberOfScatterers(int)
Definition: GXFTrajectory.cxx:465
Trk::GXFTrajectory::GXFTrajectory
GXFTrajectory()
Definition: GXFTrajectory.cxx:15
Trk::GXFTrajectory::m_caloelossstate
GXFTrackState * m_caloelossstate
Definition: GXFTrajectory.h:147
Trk::GXFTrajectory::setNumberOfBrems
void setNumberOfBrems(int)
Definition: GXFTrajectory.cxx:473
Trk::GXFTrajectory::reset
void reset()
Definition: GXFTrajectory.cxx:412
Trk::TrackState::SCT
@ SCT
Definition: TrackStateDefs.h:29
Trk::GXFTrajectory::m_fieldprop
MagneticFieldProperties m_fieldprop
Definition: GXFTrajectory.h:112
Trk::GXFTrajectory::weightedResidualDerivatives
Amg::MatrixX & weightedResidualDerivatives()
Definition: GXFTrajectory.cxx:609
Trk::GXFMaterialEffects::deltaE
double deltaE() const
Definition: GXFMaterialEffects.cxx:131
Trk::GXFTrajectory::m_brems
std::vector< double > m_brems
Definition: GXFTrajectory.h:139
error
Definition: IImpactPoint3dEstimator.h:70
Trk::GXFTrajectory::setScatteringAngles
void setScatteringAngles(std::vector< std::pair< double, double > > &)
Definition: GXFTrajectory.cxx:558
Amg::distance
float distance(const Amg::Vector3D &p1, const Amg::Vector3D &p2)
calculates the distance between two point in 3D space
Definition: GeoPrimitivesHelpers.h:54
Trk::GXFTrajectory::m_weightresderiv
Amg::MatrixX m_weightresderiv
Definition: GXFTrajectory.h:142
Trk::GXFTrajectory::converged
bool converged() const
Definition: GXFTrajectory.cxx:422
mag
Scalar mag() const
mag method
Definition: AmgMatrixBasePlugin.h:26
Trk::GXFTrajectory::numberOfOutliers
int numberOfOutliers() const
Definition: GXFTrajectory.cxx:434
Trk::TrackStateOnSurface::Measurement
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
Definition: TrackStateOnSurface.h:101
Trk::GXFTrajectory::trackStates
const std::vector< std::unique_ptr< GXFTrackState > > & trackStates() const
Definition: GXFTrajectory.cxx:587
Trk::GXFTrajectory::m_npseudo
int m_npseudo
Definition: GXFTrajectory.h:133
Trk::GXFTrajectory::numberOfUpstreamBrems
int numberOfUpstreamBrems() const
Definition: GXFTrajectory.cxx:488
Trk::GXFTrajectory::chi2
double chi2() const
Definition: GXFTrajectory.cxx:503
Trk::GXFTrajectory::conditionalSetCalorimeterEnergyLossState
void conditionalSetCalorimeterEnergyLossState(GXFTrackState *)
Definition: GXFTrajectory.cxx:148