ATLAS Offline Software
Loading...
Searching...
No Matches
EMTrackFit.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef EGAMMAEVENT_EMTRACKFIT_H
6#define EGAMMAEVENT_EMTRACKFIT_H
7
15
16/********************************************************************
17NAME: EMTrackFit.h
18PACKAGE: offline/Reconstruction/egammaEvent
19Created July 2008 by Anthony Morley
20MODIFIED:
21 Jun 10, 2009 (FD/AM) Small changes to include brem fit status,
22 brem radius uncertainty and fit Chi2
23
24********************************************************************/
25
26#include <vector>
29
30namespace Trk{
31 class Track;
32}
33
34class EMTrackFit : public egDetail
35{
36 public:
37
39 EMTrackFit();
40
42 virtual ~EMTrackFit() = default;
43
44 //void print() const;
45 virtual const std::string& className() const;
46
50 virtual double parameter(egammaParameters::ParamDef) const ;
56 void set_parameter(egammaParameters::ParamDef, double, bool overwrite=false) ;
57
59 void fillDetails(Trk::Track *track);
60
63
64 /***********************************************************************/
65 /* Get Parameters */
66 /***********************************************************************/
67
69 double track_perigee_d0 () const;
71 double track_perigee_phi0 () const;
73 double track_perigee_qOverP() const;
75 double track_perigee_z0 () const;
77 double track_perigee_theta () const;
78
80 double track_perigee_Covd0d0 () const;
82 double track_perigee_Covd0z0 () const;
84 double track_perigee_Covd0phi () const;
86 double track_perigee_Covd0theta () const;
90 double track_perigee_Covz0z0 () const;
92 double track_perigee_Covz0phi () const;
94 double track_perigee_Covz0theta () const;
98 double track_perigee_Covphiphi () const;
109
111 double track_LastM_loc1 () const;
113 double track_LastM_loc2 () const;
115 double track_LastM_phi () const;
117 double track_LastM_theta () const;
119 double track_LastM_qOverP () const;
121 int bremTrackAuthor () const;
122
124 int hasBrem () const;
126 double bremRadius () const;
128 double bremRadiusErr () const;
130 double bremDeltaZ () const;
132 double bremDeltaZerr () const;
134 double bremMaterialTraversed () const;
136 double bremFitChi2() const;
138 int bremFitStatus () const;
139
141 int linkIndex () const;
142
143 /***********************************************************************/
144 /* SET PARAMATERS */
145 /***********************************************************************/
146
147
149 void bremTrackAuthor (int);
151 void hasBrem (int) ;
153 void bremRadius (double);
155 void bremRadiusErr (double);
157 void bremDeltaZ (double);
159 void bremDeltaZerr (double);
161 void bremMaterialTraversed (double);
162
163
164
165
167 void track_perigee_d0 (double) ;
169 void track_perigee_phi0 (double) ;
171 void track_perigee_qOverP(double) ;
173 void track_perigee_z0 (double) ;
175 void track_perigee_theta (double) ;
176
178 void track_perigee_Covd0d0 (double) ;
180 void track_perigee_Covd0z0 (double) ;
182 void track_perigee_Covd0phi (double) ;
184 void track_perigee_Covd0theta (double) ;
186 void track_perigee_Covd0qOverP (double) ;
188 void track_perigee_Covz0z0 (double) ;
190 void track_perigee_Covz0phi (double) ;
192 void track_perigee_Covz0theta (double) ;
194 void track_perigee_Covz0qOverP (double) ;
196 void track_perigee_Covphiphi (double) ;
198 void track_perigee_Covphitheta (double) ;
200 void track_perigee_CovphiqOverP (double) ;
202 void track_perigee_Covthetatheta (double) ;
204 void track_perigee_CovthetaqOverP (double) ;
206 void track_perigee_CovqOverPqOverP (double) ;
207
209 void track_LastM_loc1 (double) ;
211 void track_LastM_loc2 (double) ;
213 void track_LastM_phi (double) ;
215 void track_LastM_theta (double) ;
217 void track_LastM_qOverP (double) ;
218
220 void bremFitChi2 (double);
222 void bremFitStatus (int);
223
225 void set_linkIndex (int) ;
226
227
228private:
230 bool fillPerigeeParamters(const Trk::Perigee *trackParameters);
232 bool fillPerigeeErrors(const AmgSymMatrix(5)* );
234 void fillBrems(Trk::Track *track);
236 void fillLastMeasurement(Trk::Track *track);
239 AmgSymMatrix(5) getErrorMatrix() const;
240
241 void set_parameterInt(egammaParameters::ParamDef, int, bool overwrite=false) ;
242
245 static const std::string s_className;
246
247};
248
249#endif
250
251
#define AmgSymMatrix(dim)
double track_perigee_phi0() const
azimuth angle of the momentum at the point of closest approach after Track Refit
double track_LastM_theta() const
Last Measurment Surface theta after Track Refit.
const Trk::Perigee * getMeasuredPerigee() const
returns the MeasuredPerigee from the stored egammaParameters
double track_LastM_phi() const
Last Measurment Surface azimuth angle after Track Refit.
double track_perigee_Covphiphi() const
Covariance matrix item (phi,phi)
double bremMaterialTraversed() const
Amount of Material seen by the particle according to the track fitter (in X0)
int linkIndex() const
Index of track this EMTrackFit is associated with.
double track_perigee_Covz0theta() const
Covariance matrix item (z0,theta)
double track_perigee_z0() const
the z value at the point of closest approach after Track Refit
double track_perigee_CovthetaqOverP() const
Covariance matrix item (theta,q/P)
bool fillPerigeeParamters(const Trk::Perigee *trackParameters)
Fill the perigree parameter details.
void track_perigee_d0(double)
Set the transverse impact parameter (distance of closest approach) after Track Refit.
void set_parameterInt(egammaParameters::ParamDef, int, bool overwrite=false)
virtual ~EMTrackFit()=default
Destructor.
std::vector< std::pair< egammaParameters::ParamDef, double > > m_parameters
Definition EMTrackFit.h:243
void fillDetails(Trk::Track *track)
Fill the details of the object from a Trk::Track.
double track_LastM_loc2() const
Last Measurment Surface Local Position 2 after Track Refit.
int bremTrackAuthor() const
Track Author enum as Defined in Track/Track.h.
bool fillPerigeeErrors(const AmgSymMatrix(5) *)
Fill the perigree error details.
double track_perigee_theta() const
theta of the track after EMTrackFit
double track_perigee_Covthetatheta() const
Covariance matrix item (theta,theta)
void set_linkIndex(int)
Index of track this EMTrackFit is associated with.
std::vector< std::pair< egammaParameters::ParamDef, int > > m_parametersInt
Definition EMTrackFit.h:244
double bremDeltaZ() const
Fraction of the measured perigee momentum retained after brem.
double track_perigee_qOverP() const
1/pT estimate according to Track Refit
virtual bool hasParameter(egammaParameters::ParamDef) const
void set_parameter(egammaParameters::ParamDef, double, bool overwrite=false)
general set method for parameters
double bremRadius() const
estimated brem radius from EMTrackFit (mm) [x-y plane] (weighted average if more than one brem)
double track_LastM_loc1() const
Last Measurment Surface Local Position 1 after Track Refit.
virtual double parameter(egammaParameters::ParamDef) const
virtual const std::string & className() const
double track_perigee_d0() const
transverse impact parameter (distance of closest approach) after Track Refit
double track_perigee_Covz0qOverP() const
Covariance matrix item (z0,q/p)
static const std::string s_className
Definition EMTrackFit.h:245
double track_perigee_Covz0phi() const
Covariance matrix item (z0,phi)
double track_perigee_Covd0z0() const
Covariance matrix item ( )
double bremRadiusErr() const
estimated brem radius uncertainty
virtual bool hasIntParameter(egammaParameters::ParamDef) const
checks if the parameter is integer
void fillBrems(Trk::Track *track)
Fill in brem information from a Trk::Track.
double track_perigee_Covd0phi() const
Covariance matrix item ( )
EMTrackFit()
Default constructor.
double track_perigee_Covd0qOverP() const
Covariance matrix item (d0,q/p)
int hasBrem() const
The Number of brems identified by the track fitter.
double track_LastM_qOverP() const
Last Measurment Surface q/pT estimate according to Track Refit.
double track_perigee_CovqOverPqOverP() const
Covariance matrix item (q/P,q/P)
double track_perigee_Covphitheta() const
Covariance matrix item (phi,theta)
virtual int intParameter(egammaParameters::ParamDef) const
double track_perigee_Covz0z0() const
Covariance matrix item (z0,z0)
double bremFitChi2() const
Fit Chi2/nDoF.
double track_perigee_CovphiqOverP() const
Covariance matrix item (phi,q/P)
int bremFitStatus() const
Bremfit Status 1 Reached Iteration Limit, 0 Converged, -1 recheached iteration limit,...
double track_perigee_Covd0d0() const
Covariance matrix item ( )
double track_perigee_Covd0theta() const
Covariance matrix item (d0,theta)
void fillLastMeasurement(Trk::Track *track)
Obtains the last measurment on the Track and fills details into the object.
AmgSymMatrix(5) getErrorMatrix() const
Returns the ErrorMatrix of the perigee of the associated track.
double bremDeltaZerr() const
Error on the fraction of the energy lost after the brem.
egDetail()=default
Default constructor.
STL class.
Ensure that the ATLAS eigen extensions are properly loaded.
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee
STL namespace.