ATLAS Offline Software
Loading...
Searching...
No Matches
GXFTrajectory.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TRK_GXFTRAJECTORY_H
6#define TRK_GXFTRAJECTORY_H
7
10
16
17namespace Trk {
18 class MeasurementBase;
20 class Layer;
21 class CylinderLayer;
22 class DiscLayer;
24
30
32
33 public:
35 GXFTrajectory(const GXFTrajectory & rhs);
37 GXFTrajectory(GXFTrajectory &&rhs) = default;
39 ~GXFTrajectory() = default;
40
41 bool addMeasurementState(std::unique_ptr<GXFTrackState>, int index = -1);
42 void addMaterialState(std::unique_ptr<GXFTrackState>, int index = -1);
43 void addBasicState(std::unique_ptr<GXFTrackState>, int index = -1);
44
45 void setReferenceParameters(std::unique_ptr<const TrackParameters>);
46 void setScatteringAngles(std::vector < std::pair < double, double > >&);
47 void setBrems(std::vector<double> &);
49 void setConverged(bool);
50 void reset();
51 void setPrefit(int);
52 void setOutlier(int, bool isoutlier = true);
53 void setPrevChi2(double);
54 void setChi2(double);
55 void setMass(double);
56
58
59 std::pair<GXFTrackState *, GXFTrackState *> findFirstLastMeasurement(void);
60 bool hasKink(void);
61
62 int numberOfScatterers() const;
63 void setNumberOfScatterers(int);
64 int numberOfBrems() const;
65 void setNumberOfBrems(int);
66 int numberOfUpstreamStates() const;
68 int numberOfUpstreamBrems() const;
69 int numberOfPerigeeParameters() const;
70 int numberOfFitParameters() const;
71 int numberOfSiliconHits() const;
72 int numberOfTRTPrecHits() const;
73 int numberOfTRTTubeHits() const;
74 int numberOfTRTHits() const;
75 int numberOfHits() const;
77 int numberOfOutliers() const;
78
79 void updateTRTHitCount(int index, float oldError);
80
81 const std::vector<std::unique_ptr<GXFTrackState>> & trackStates() const;
82 std::vector<std::unique_ptr<GXFTrackState>> & trackStates();
83 std::vector < std::pair < double, double >>&scatteringAngles();
84 std::vector < std::pair < double, double >>&scatteringSigmas();
85 std::vector<double> & brems();
86
88 bool converged() const;
89 int prefit() const;
91 double chi2() const;
92 double prevchi2() const;
93 int nDOF() const;
94
98
99 double totalX0() const;
100 double totalEnergyLoss() const;
101
102 double mass() const;
104
105 std::vector < std::pair < const Layer *,
106 const Layer *>>&upstreamMaterialLayers();
107
108 void resetCovariances(void);
109 std::unique_ptr<const FitQuality> quality(void) const;
110
113
114 private:
115 std::vector<std::unique_ptr<GXFTrackState>> m_states;
117 double m_chi2;
135 std::unique_ptr<const TrackParameters> m_refpar;
137 std::vector < std::pair < double, double >>m_scatteringangles;
138 std::vector < std::pair < double, double >>m_scatteringsigmas;
139 std::vector<double> m_brems;
143 double m_totx0;
145 double m_mass;
148 std::vector < std::pair < const Layer *, const Layer *>>m_upstreammat;
149 };
150}
151#endif
Class to describe a cylindrical detector layer for tracking, it inhertis from both,...
Class to describe a disc-like detector layer for tracking, it inhertis from both, Layer base class an...
Definition DiscLayer.h:45
std::vector< std::unique_ptr< GXFTrackState > > m_states
The vector of track states, i.e.
void setPrevChi2(double)
int numberOfOutliers() const
void resetCovariances(void)
std::vector< double > & brems()
double chi2() const
double totalX0() const
void setNumberOfScatterers(int)
double mass() const
Amg::VectorX m_errors
int numberOfSiliconHits() const
std::vector< std::pair< const Layer *, const Layer * > > & upstreamMaterialLayers()
std::unique_ptr< const FitQuality > quality(void) const
int numberOfFitParameters() const
int numberOfTRTPrecHits() const
GXFTrackState * m_caloelossstate
double prevchi2() const
Amg::MatrixX & weightedResidualDerivatives()
std::vector< std::pair< const Layer *, const Layer * > > m_upstreammat
const std::vector< std::unique_ptr< GXFTrackState > > & trackStates() const
Amg::MatrixX m_weightresderiv
int numberOfTRTTubeHits() const
void conditionalSetCalorimeterEnergyLossState(GXFTrackState *)
int numberOfTRTHits() const
~GXFTrajectory()=default
int numberOfUpstreamBrems() const
double totalEnergyLoss() const
std::unique_ptr< const TrackParameters > m_refpar
int numberOfUpstreamScatterers() const
int numberOfUpstreamStates() const
MagneticFieldProperties m_fieldprop
void setNumberOfPerigeeParameters(int)
const TrackParameters * referenceParameters()
GXFTrajectory & operator=(const GXFTrajectory &rhs)
std::vector< std::pair< double, double > > & scatteringSigmas()
std::vector< std::pair< double, double > > m_scatteringangles
std::pair< GXFTrackState *, GXFTrackState * > findFirstLastMeasurement(void)
void addMaterialState(std::unique_ptr< GXFTrackState >, int index=-1)
GXFTrajectory & operator=(GXFTrajectory &&rhs)=default
GXFTrackState * caloElossState()
int numberOfScatterers() const
bool addMeasurementState(std::unique_ptr< GXFTrackState >, int index=-1)
std::vector< std::pair< double, double > > & scatteringAngles()
GXFTrajectory(GXFTrajectory &&rhs)=default
void addBasicState(std::unique_ptr< GXFTrackState >, int index=-1)
Amg::VectorX & residuals()
void setBrems(std::vector< double > &)
std::vector< std::pair< double, double > > m_scatteringsigmas
int numberOfPerigeeParameters() const
int numberOfBrems() const
Amg::VectorX & errors()
std::vector< double > m_brems
void setOutlier(int, bool isoutlier=true)
void updateTRTHitCount(int index, float oldError)
void setScatteringAngles(std::vector< std::pair< double, double > > &)
int numberOfPseudoMeasurements() const
void setReferenceParameters(std::unique_ptr< const TrackParameters >)
Base Class for a Detector Layer in the Tracking realm.
Definition Layer.h:72
magnetic field properties to steer the behavior of the extrapolation
base class to integrate material effects on Trk::Track in a flexible way.
This class is the pure abstract base class for all fittable tracking measurements.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Eigen::Matrix< double, Eigen::Dynamic, 1 > VectorX
Dynamic Vector - dynamic allocation.
Ensure that the ATLAS eigen extensions are properly loaded.
@ FullField
Field is set to be realistic, but within a given Volume.
ParametersBase< TrackParametersDim, Charged > TrackParameters
Definition index.py:1