Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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  return;
278  }
279 
280  m_refpar = std::move(per);
281 
282  m_nupstreamstates = 0;
285  m_nupstreambrems = 0;
286 
287  for (const auto & state : m_states) {
288  if (state->trackParameters() != nullptr) {
289  const double inprod = m_refpar->momentum().dot(state->position() - m_refpar->position());
290 
291  if (inprod > 0) {
292  return;
293  }
294  } else {
295  const DistanceSolution distsol =
296  state->associatedSurface().straightLineDistanceEstimate(m_refpar->position(), m_refpar->momentum().unit());
297 
298  double distance = 0;
299  if (distsol.numberOfSolutions() == 1) {
300  distance = distsol.first();
301  } else if (distsol.numberOfSolutions() == 2) {
302  distance =
303  std::abs(distsol.first()) < std::abs(distsol.second()) ?
304  distsol.first() :
305  distsol.second();
306  }
307 
308  if (distance > 0) {
309  return;
310  }
311  }
312 
314 
315  const GXFMaterialEffects *meff = state->materialEffects();
316 
317  if (
318  state->getStateType(TrackStateOnSurface::Scatterer) &&
319  meff->sigmaDeltaTheta() != 0
320  ) {
322 
323  if (meff->deltaE() == 0) {
325  }
326  }
327 
328  if (meff != nullptr && meff->sigmaDeltaE() > 0) {
330  }
331  }
332  }
333 
335  return m_refpar.get();
336  }
337 
339  m_refpar.reset(nullptr);
340  }
341 
343  m_ndof -= nperpar;
344  m_nperpars = nperpar;
345  }
346 
347  void GXFTrajectory::setOutlier(int index, bool isoutlier) {
348  if (isoutlier && m_states[index]->getStateType(TrackStateOnSurface::Outlier)) {
349  return;
350  }
351 
352  if (!isoutlier && m_states[index]->getStateType(TrackStateOnSurface::Measurement)) {
353  return;
354  }
355 
356  int nmeas = 0;
357  double *errors = m_states[index]->measurementErrors();
358 
359  for (int i = 0; i < 5; i++) {
360  if (errors[i] > 0) {
361  nmeas++;
362  }
363  }
364 
365  if (isoutlier) {
366  m_ndof -= nmeas;
367  m_states[index]->resetStateType(TrackStateOnSurface::Outlier);
368  m_nmeasoutl += nmeas;
369  m_noutl++;
370  m_states[index]->setFitQuality({});
371  } else {
372  m_ndof += nmeas;
374  m_nmeasoutl -= nmeas;
375  m_noutl--;
376  }
377  }
378 
379  void GXFTrajectory::updateTRTHitCount(int index, float oldError) {
380  double error = (m_states[index]->measurementErrors())[0];
381  if (m_states[index]->getStateType(TrackStateOnSurface::Outlier)) {
382  if (oldError<1) { m_ntrtprechits--; }
383  else {m_ntrttubehits--; }
384  }
385  if (error>1 && oldError<1) { // was precison, became tube
386  m_ntrttubehits++;
387  m_ntrtprechits--;
388  }
389  else if (error<1 && oldError>1) { // was tube, became precision
390  m_ntrttubehits--;
391  m_ntrtprechits++;
392  }
393  }
394 
395  void GXFTrajectory::setPrefit(int isprefit) {
396  m_prefit = isprefit;
397  }
398 
399  void GXFTrajectory::setConverged(bool isconverged) {
400  m_converged = isconverged;
401  }
402 
404  m_res.resize(0);
405  m_weightresderiv.resize(0, 0);
406  m_errors.resize(0);
407  m_scatteringangles.clear();
408  m_scatteringsigmas.clear();
409  m_converged = false;
410  m_refpar.reset(nullptr);
411  }
412 
414  return m_converged;
415  }
416 
417  int GXFTrajectory::prefit() const {
418  return m_prefit;
419  }
420 
422  return m_nhits;
423  }
424 
426  return m_noutl;
427  }
428 
430  return m_nsihits;
431  }
432 
434  return m_ntrthits;
435  }
436 
438  return m_ntrtprechits;
439  }
440 
442  return m_ntrttubehits;
443  }
444 
446  return m_npseudo;
447  }
448 
450  if (m_prefit != 0) {
451  return m_ncaloscatterers;
452  }
453  return m_nscatterers;
454  }
455 
457  m_nscatterers = nscat;
458  }
459 
461  return m_nbrems;
462  }
463 
465  m_nbrems = nbrem;
466  }
467 
469  return m_nupstreamstates;
470  }
471 
473  if (m_prefit == 0) {
474  return m_nupstreamscatterers;
475  }
477  }
478 
480  return m_nupstreambrems;
481  }
482 
484  return m_nperpars;
485  }
486 
488  if (m_prefit == 1) {
490  }
491  return m_nperpars + numberOfBrems() + 2 * numberOfScatterers();
492  }
493 
494  double GXFTrajectory::chi2() const {
495  return m_chi2;
496  }
497 
498  double GXFTrajectory::prevchi2() const {
499  return m_prevchi2;
500  }
501 
503  m_chi2 = chi2;
504  }
505 
507  m_prevchi2 = chi2;
508  }
509 
510  int GXFTrajectory::nDOF() const {
511  return m_ndof;
512  }
513 
514  std::vector<std::pair<double, double>> & GXFTrajectory::scatteringAngles() {
515  if (m_scatteringangles.empty() && numberOfScatterers() > 0) {
516  m_scatteringsigmas.clear();
519  for (auto & state : m_states) {
520  if ((*state).getStateType(TrackStateOnSurface::Scatterer)
521  && ((m_prefit == 0) || (*state).materialEffects()->deltaE() == 0)) {
522  double scatphi = (*state).materialEffects()->deltaPhi();
523  double scattheta = (*state).materialEffects()->deltaTheta();
524  m_scatteringangles.emplace_back(scatphi, scattheta);
525  double sigmascatphi = (*state).materialEffects()->sigmaDeltaPhi();
526  double sigmascattheta = (*state).materialEffects()->sigmaDeltaTheta();
528  emplace_back(sigmascatphi, sigmascattheta);
529  }
530  }
531  }
532  return m_scatteringangles;
533  }
534 
535  std::vector < std::pair < double, double >>&
537  if (m_scatteringsigmas.empty() && numberOfScatterers() > 0) {
539  }
540  return m_scatteringsigmas;
541  }
542 
543  std::vector<double> & GXFTrajectory::brems() {
544  return m_brems;
545  }
546 
547  void
548 
549  GXFTrajectory::setScatteringAngles(std::vector < std::pair < double,
550  double > >&scatteringangles) {
551  m_scatteringangles = scatteringangles;
552  int scatno = 0;
553  for (auto & state : m_states) {
554  if ((*state).getStateType(TrackStateOnSurface::Scatterer)
555  && ((m_prefit == 0) || (*state).materialEffects()->deltaE() == 0)) {
556  double scatphi = scatteringangles[scatno].first;
557  double scattheta = scatteringangles[scatno].second;
558  (*state).materialEffects()->setScatteringAngles(scatphi, scattheta);
559  scatno++;
560  }
561  }
562  }
563 
564  void
565  GXFTrajectory::setBrems(std::vector<double> & brems) {
566  // if (m_prefit==1) return;
567  m_brems = brems;
568  int bremno = 0;
569  for (auto & state : m_states) {
570  if (((*state).materialEffects() != nullptr)
571  && (*state).materialEffects()->sigmaDeltaE() > 0) {
572  (*state).materialEffects()->setdelta_p(m_brems[bremno]);
573  bremno++;
574  }
575  }
576  }
577 
578  const std::vector<std::unique_ptr<GXFTrackState>> & GXFTrajectory::trackStates() const {
579  return m_states;
580  }
581 
582  std::vector<std::unique_ptr<GXFTrackState>> & GXFTrajectory::trackStates() {
583  return m_states;
584  }
585 
587  if (m_res.size() == 0) {
589  }
590  return m_res;
591  }
592 
594  if (m_errors.size() == 0) {
596  }
597  return m_errors;
598  }
599 
601  if (m_weightresderiv.size() == 0) {
602  m_weightresderiv.setZero(
605  );
606  }
607  return m_weightresderiv;
608  }
609 
610  double
612  return m_totx0;
613  }
614 
615  double
617  return m_toteloss;
618  }
619 
620  double
622  return m_mass;
623  }
624 
625  void
627  m_mass = mass;
628  }
629 
631  return m_caloelossstate;
632  }
633 
634  std::vector < std::pair < const Layer *, const Layer *>>&
636  return m_upstreammat;
637  }
638 
639  std::pair<GXFTrackState *, GXFTrackState *> GXFTrajectory::findFirstLastMeasurement(void) {
640  GXFTrackState *firstmeasstate = nullptr;
641  GXFTrackState *lastmeasstate = nullptr;
642 
643  for (std::unique_ptr<GXFTrackState> & hit : trackStates()) {
644  if (hit->measurement() != nullptr) {
645  if (firstmeasstate == nullptr) {
646  firstmeasstate = hit.get();
647  }
648  lastmeasstate = hit.get();
649  }
650  }
651 
652  if (firstmeasstate == nullptr) {
653  throw std::logic_error("no first measurement.");
654  }
655 
656  return std::make_pair(firstmeasstate, lastmeasstate);
657  }
658 
660  for (auto & hit : trackStates()) {
661  if (
662  hit->measurementType() == TrackState::Pseudo &&
663  hit->getStateType(TrackStateOnSurface::Outlier)
664  ) {
665  continue;
666  }
667 
668  if (
669  (hit->materialEffects() != nullptr) &&
670  hit->materialEffects()->isKink()
671  ) {
672  return true;
673  }
674  }
675 
676  return false;
677  }
678 
680  for (std::unique_ptr<GXFTrackState> & hit : trackStates()) {
681  hit->setTrackCovariance(nullptr);
682  }
683  }
684 
685  std::unique_ptr<const FitQuality> GXFTrajectory::quality(void) const {
686  return std::make_unique<const FitQuality>(chi2(), nDOF());
687  }
688 }
Trk::GXFTrajectory::numberOfUpstreamScatterers
int numberOfUpstreamScatterers() const
Definition: GXFTrajectory.cxx:472
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:626
Trk::GXFTrajectory::m_ndof
int m_ndof
Definition: GXFTrajectory.h:116
Trk::GXFTrajectory::numberOfUpstreamStates
int numberOfUpstreamStates() const
Definition: GXFTrajectory.cxx:468
Trk::GXFTrajectory::numberOfScatterers
int numberOfScatterers() const
Definition: GXFTrajectory.cxx:449
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:685
Trk::TrackState::TRT
@ TRT
Definition: TrackStateDefs.h:30
Trk::GXFTrajectory::numberOfFitParameters
int numberOfFitParameters() const
Definition: GXFTrajectory.cxx:487
Trk::GXFTrajectory::brems
std::vector< double > & brems()
Definition: GXFTrajectory.cxx:543
Trk::GXFTrajectory::numberOfTRTPrecHits
int numberOfTRTPrecHits() const
Definition: GXFTrajectory.cxx:437
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:483
Trk::GXFTrajectory::numberOfTRTTubeHits
int numberOfTRTTubeHits() const
Definition: GXFTrajectory.cxx:441
Trk::GXFTrajectory::residuals
Amg::VectorX & residuals()
Definition: GXFTrajectory.cxx:586
Trk::GXFTrajectory::prefit
int prefit() const
Definition: GXFTrajectory.cxx:417
Trk::GXFTrajectory::setNumberOfPerigeeParameters
void setNumberOfPerigeeParameters(int)
Definition: GXFTrajectory.cxx:342
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:616
Trk::GXFTrajectory::numberOfHits
int numberOfHits() const
Definition: GXFTrajectory.cxx:421
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:334
Trk::GXFTrajectory::resetCovariances
void resetCovariances(void)
Definition: GXFTrajectory.cxx:679
Trk::GXFTrajectory::upstreamMaterialLayers
std::vector< std::pair< const Layer *, const Layer * > > & upstreamMaterialLayers()
Definition: GXFTrajectory.cxx:635
python.Utilities.clone
clone
Definition: Utilities.py:134
Trk::GXFTrajectory::setOutlier
void setOutlier(int, bool isoutlier=true)
Definition: GXFTrajectory.cxx:347
Trk::GXFTrajectory::m_mass
double m_mass
Definition: GXFTrajectory.h:145
Trk::GXFTrajectory::nDOF
int nDOF() const
Definition: GXFTrajectory.cxx:510
Trk::GXFTrajectory::setPrefit
void setPrefit(int)
Definition: GXFTrajectory.cxx:395
Trk::TrackState::MM
@ MM
Definition: TrackStateDefs.h:42
Trk::GXFTrajectory::updateTRTHitCount
void updateTRTHitCount(int index, float oldError)
Definition: GXFTrajectory.cxx:379
Trk::GXFTrajectory::caloElossState
GXFTrackState * caloElossState()
Definition: GXFTrajectory.cxx:630
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:506
MagneticFieldProperties.h
Trk::GXFTrajectory::numberOfSiliconHits
int numberOfSiliconHits() const
Definition: GXFTrajectory.cxx:429
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:536
Trk::GXFTrajectory::m_toteloss
double m_toteloss
Definition: GXFTrajectory.h:144
Trk::GXFTrajectory::numberOfBrems
int numberOfBrems() const
Definition: GXFTrajectory.cxx:460
Trk::GXFTrajectory::setConverged
void setConverged(bool)
Definition: GXFTrajectory.cxx:399
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:611
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::GXFMaterialEffects::sigmaDeltaTheta
double sigmaDeltaTheta() const
Definition: GXFMaterialEffects.cxx:127
Trk::GXFTrajectory::m_nsihits
int m_nsihits
Definition: GXFTrajectory.h:129
chi2
double chi2(TH1 *h0, TH1 *h1)
Definition: comparitor.cxx:525
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:621
Trk::GXFTrajectory::numberOfPseudoMeasurements
int numberOfPseudoMeasurements() const
Definition: GXFTrajectory.cxx:445
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:565
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:514
Trk::GXFTrajectory::errors
Amg::VectorX & errors()
Definition: GXFTrajectory.cxx:593
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:639
Trk::GXFTrajectory::hasKink
bool hasKink(void)
Definition: GXFTrajectory.cxx:659
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:498
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:338
Trk::GXFTrajectory::numberOfTRTHits
int numberOfTRTHits() const
Definition: GXFTrajectory.cxx:433
Trk::GXFTrajectory::m_ntrtprechits
int m_ntrtprechits
Definition: GXFTrajectory.h:131
Trk::GXFTrajectory::setChi2
void setChi2(double)
Definition: GXFTrajectory.cxx:502
Trk::GXFTrajectory::setNumberOfScatterers
void setNumberOfScatterers(int)
Definition: GXFTrajectory.cxx:456
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:464
Trk::GXFTrajectory::reset
void reset()
Definition: GXFTrajectory.cxx:403
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:600
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:549
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:413
Trk::GXFTrajectory::numberOfOutliers
int numberOfOutliers() const
Definition: GXFTrajectory.cxx:425
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:578
Trk::GXFTrajectory::m_npseudo
int m_npseudo
Definition: GXFTrajectory.h:133
Trk::GXFTrajectory::numberOfUpstreamBrems
int numberOfUpstreamBrems() const
Definition: GXFTrajectory.cxx:479
Trk::GXFTrajectory::chi2
double chi2() const
Definition: GXFTrajectory.cxx:494
Trk::GXFTrajectory::conditionalSetCalorimeterEnergyLossState
void conditionalSetCalorimeterEnergyLossState(GXFTrackState *)
Definition: GXFTrajectory.cxx:148