ATLAS Offline Software
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 
16 /********************************************************************
17 NAME: EMTrackFit.h
18 PACKAGE: offline/Reconstruction/egammaEvent
19 Created July 2008 by Anthony Morley
20 MODIFIED:
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>
27 #include "egammaEvent/egDetail.h"
29 
30 namespace Trk{
31  class Track;
32 }
33 
34 class 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 
48  virtual int intParameter(egammaParameters::ParamDef) const;
50  virtual double parameter(egammaParameters::ParamDef) const ;
56  void set_parameter(egammaParameters::ParamDef, double, bool overwrite=false) ;
57 
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;
88  double track_perigee_Covd0qOverP () const;
90  double track_perigee_Covz0z0 () const;
92  double track_perigee_Covz0phi () const;
94  double track_perigee_Covz0theta () const;
96  double track_perigee_Covz0qOverP () const;
98  double track_perigee_Covphiphi () const;
100  double track_perigee_Covphitheta () const;
102  double track_perigee_CovphiqOverP () 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 
228 private:
230  bool fillPerigeeParamters(const Trk::Perigee *trackParameters);
232  bool fillPerigeeErrors(const AmgSymMatrix(5)* );
234  void fillBrems(Trk::Track *track);
239  AmgSymMatrix(5) getErrorMatrix() const;
240 
241  void set_parameterInt(egammaParameters::ParamDef, int, bool overwrite=false) ;
242 
243  std::vector< std::pair<egammaParameters::ParamDef,double> > m_parameters;
245  static const std::string s_className;
246 
247 };
248 
249 #endif
250 
251 
EMTrackFit::track_perigee_Covphiphi
double track_perigee_Covphiphi() const
Covariance matrix item (phi,phi)
EMTrackFit::track_perigee_Covz0theta
double track_perigee_Covz0theta() const
Covariance matrix item (z0,theta)
TrackParameters.h
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
EMTrackFit::track_perigee_Covthetatheta
double track_perigee_Covthetatheta() const
Covariance matrix item (theta,theta)
EMTrackFit::track_perigee_Covd0z0
double track_perigee_Covd0z0() const
Covariance matrix item ( )
EMTrackFit::EMTrackFit
EMTrackFit()
Default constructor.
Definition: EMTrackFit.cxx:41
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
EMTrackFit::m_parameters
std::vector< std::pair< egammaParameters::ParamDef, double > > m_parameters
Definition: EMTrackFit.h:243
egammaParameters
Definition: egammaParamDefs.h:36
EMTrackFit::track_perigee_Covd0phi
double track_perigee_Covd0phi() const
Covariance matrix item ( )
EMTrackFit::track_perigee_Covd0theta
double track_perigee_Covd0theta() const
Covariance matrix item (d0,theta)
EMTrackFit::track_perigee_Covd0qOverP
double track_perigee_Covd0qOverP() const
Covariance matrix item (d0,q/p)
EMTrackFit::track_LastM_loc2
double track_LastM_loc2() const
Last Measurment Surface Local Position 2 after Track Refit.
EMTrackFit::track_perigee_CovthetaqOverP
double track_perigee_CovthetaqOverP() const
Covariance matrix item (theta,q/P)
EMTrackFit::bremFitChi2
double bremFitChi2() const
Fit Chi2/nDoF.
Definition: EMTrackFit.cxx:478
egammaParameters::ParamDef
ParamDef
Definition: egammaParamDefs.h:99
EMTrackFit::m_parametersInt
std::vector< std::pair< egammaParameters::ParamDef, int > > m_parametersInt
Definition: EMTrackFit.h:244
EMTrackFit::track_perigee_theta
double track_perigee_theta() const
theta of the track after EMTrackFit
EMTrackFit::s_className
static const std::string s_className
Definition: EMTrackFit.h:245
EMTrackFit::fillDetails
void fillDetails(Trk::Track *track)
Fill the details of the object from a Trk::Track.
Definition: EMTrackFit.cxx:148
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
EMTrackFit::bremTrackAuthor
int bremTrackAuthor() const
Track Author enum as Defined in Track/Track.h.
Definition: EMTrackFit.cxx:460
EMTrackFit::track_LastM_qOverP
double track_LastM_qOverP() const
Last Measurment Surface q/pT estimate according to Track Refit.
EMTrackFit::track_perigee_z0
double track_perigee_z0() const
the z value at the point of closest approach after Track Refit
EMTrackFit::track_perigee_d0
void track_perigee_d0(double)
Set the transverse impact parameter (distance of closest approach) after Track Refit.
EMTrackFit::hasParameter
virtual bool hasParameter(egammaParameters::ParamDef) const
EMTrackFit
Definition: EMTrackFit.h:35
EMTrackFit::hasBrem
int hasBrem() const
The Number of brems identified by the track fitter.
Definition: EMTrackFit.cxx:462
EMTrackFit::track_perigee_CovphiqOverP
double track_perigee_CovphiqOverP() const
Covariance matrix item (phi,q/P)
EMTrackFit::track_perigee_Covz0z0
double track_perigee_Covz0z0() const
Covariance matrix item (z0,z0)
EMTrackFit::bremRadius
double bremRadius() const
estimated brem radius from EMTrackFit (mm) [x-y plane] (weighted average if more than one brem)
Definition: EMTrackFit.cxx:463
EMTrackFit::track_perigee_Covz0qOverP
double track_perigee_Covz0qOverP() const
Covariance matrix item (z0,q/p)
EMTrackFit::track_perigee_d0
double track_perigee_d0() const
transverse impact parameter (distance of closest approach) after Track Refit
EMTrackFit::bremRadiusErr
double bremRadiusErr() const
estimated brem radius uncertainty
Definition: EMTrackFit.cxx:464
EMTrackFit::bremDeltaZerr
double bremDeltaZerr() const
Error on the fraction of the energy lost after the brem.
Definition: EMTrackFit.cxx:466
vector
Definition: MultiHisto.h:13
EMTrackFit::track_LastM_theta
double track_LastM_theta() const
Last Measurment Surface theta after Track Refit.
EMTrackFit::set_parameterInt
void set_parameterInt(egammaParameters::ParamDef, int, bool overwrite=false)
Definition: EMTrackFit.cxx:123
EMTrackFit::fillLastMeasurement
void fillLastMeasurement(Trk::Track *track)
Obtains the last measurment on the Track and fills details into the object.
Definition: EMTrackFit.cxx:212
EMTrackFit::set_linkIndex
void set_linkIndex(int)
Index of track this EMTrackFit is associated with.
Definition: EMTrackFit.cxx:484
egDetail.h
EMTrackFit::track_perigee_CovqOverPqOverP
double track_perigee_CovqOverPqOverP() const
Covariance matrix item (q/P,q/P)
EMTrackFit::linkIndex
int linkIndex() const
Index of track this EMTrackFit is associated with.
Definition: EMTrackFit.cxx:483
EMTrackFit::track_perigee_qOverP
double track_perigee_qOverP() const
1/pT estimate according to Track Refit
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
EMTrackFit::fillPerigeeErrors
bool fillPerigeeErrors(const AmgSymMatrix(5) *)
Fill the perigree error details.
Definition: EMTrackFit.cxx:282
EMTrackFit::className
virtual const std::string & className() const
Definition: EMTrackFit.cxx:47
EMTrackFit::parameter
virtual double parameter(egammaParameters::ParamDef) const
Definition: EMTrackFit.cxx:53
EMTrackFit::bremFitStatus
int bremFitStatus() const
Bremfit Status 1 Reached Iteration Limit, 0 Converged, -1 recheached iteration limit,...
Definition: EMTrackFit.cxx:480
EMTrackFit::~EMTrackFit
virtual ~EMTrackFit()=default
Destructor.
EMTrackFit::set_parameter
void set_parameter(egammaParameters::ParamDef, double, bool overwrite=false)
general set method for parameters
Definition: EMTrackFit.cxx:76
EMTrackFit::track_perigee_Covphitheta
double track_perigee_Covphitheta() const
Covariance matrix item (phi,theta)
EMTrackFit::fillBrems
void fillBrems(Trk::Track *track)
Fill in brem information from a Trk::Track.
Definition: EMTrackFit.cxx:161
EMTrackFit::track_LastM_phi
double track_LastM_phi() const
Last Measurment Surface azimuth angle after Track Refit.
EMTrackFit::track_perigee_Covz0phi
double track_perigee_Covz0phi() const
Covariance matrix item (z0,phi)
EMTrackFit::track_perigee_Covd0d0
double track_perigee_Covd0d0() const
Covariance matrix item ( )
Track
Definition: TriggerChamberClusterOnTrackCreator.h:21
EMTrackFit::AmgSymMatrix
AmgSymMatrix(5) getErrorMatrix() const
Returns the ErrorMatrix of the perigee of the associated track.
EMTrackFit::getMeasuredPerigee
const Trk::Perigee * getMeasuredPerigee() const
returns the MeasuredPerigee from the stored egammaParameters
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
egDetail
Definition: egDetail.h:29
EMTrackFit::fillPerigeeParamters
bool fillPerigeeParamters(const Trk::Perigee *trackParameters)
Fill the perigree parameter details.
Definition: EMTrackFit.cxx:263
EMTrackFit::track_LastM_loc1
double track_LastM_loc1() const
Last Measurment Surface Local Position 1 after Track Refit.
EMTrackFit::bremDeltaZ
double bremDeltaZ() const
Fraction of the measured perigee momentum retained after brem.
Definition: EMTrackFit.cxx:465
EMTrackFit::intParameter
virtual int intParameter(egammaParameters::ParamDef) const
Definition: EMTrackFit.cxx:105
EMTrackFit::hasIntParameter
virtual bool hasIntParameter(egammaParameters::ParamDef) const
checks if the parameter is integer
EMTrackFit::track_perigee_phi0
double track_perigee_phi0() const
azimuth angle of the momentum at the point of closest approach after Track Refit
EMTrackFit::bremMaterialTraversed
double bremMaterialTraversed() const
Amount of Material seen by the particle according to the track fitter (in X0)
Definition: EMTrackFit.cxx:467