ATLAS Offline Software
EMTrackFit.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5  /********************************************************************
6 
7 NAME: EMTrackFit.cxx
8 PACKAGE: offline/Reconstruction/egammaEvent
9 
10 AUTHORS: Anthony Morley
11 CREATED: July 2008
12 
13 PURPOSE: An awful looking object that contains the Electron Track refit information
14 MODIFIED:
15  Jun 10, 2009 (FD/AM) Small changes to include brem fit status,
16  brem radius uncertainty and fit Chi2
17  Jun 28, 1010 (JM) Change float to double in accessor functions
18 ********************************************************************/
19 
20 // INCLUDE HEADER FILES:
21 
22 #include "egammaEvent/EMTrackFit.h"
23 #include "AthenaKernel/BaseInfo.h"
24 #include "AthenaKernel/ClassName.h"
25 #include "GaudiKernel/GaudiException.h"
28 #include "TrkSurfaces/Surface.h"
29 #include "TrkTrack/Track.h"
30 #include <cmath>
31 
32 
33 
34 // END OF HEADER FILES INCLUDE
35 
36 // ----------------------------
37 // Constructor
38 // ----------------------------
39 
40 // give default values
42  : egDetail()
43 { }
44 
45 // interfaces
47 const std::string& EMTrackFit::className() const
48 {
49  return s_className;
50 }
51 
52 // ==============================================================
54 {
55 
56  if ( hasIntParameter(key) ) {
57  return (double) intParameter(key);
58  }
59 
60  using elParams = std::pair<egammaParameters::ParamDef, double>;
61 
63  std::vector<elParams>::const_iterator p = m_parameters.begin();
64 
65  for (;p !=m_parameters.end(); ++p) {
66  if ( (*p).first == key ) {
67  result = (*p).second;
68  break;
69  }
70  }
71 
72  return result;
73 }
74 
75 // ===================================================================
77 
78  if ( hasIntParameter(key) ) {
79  set_parameterInt(key,(int)value,overwrite);
80  }
81 
82  using elParams = std::pair<egammaParameters::ParamDef, double>;
83 
85 
86  for (;p !=m_parameters.end(); ++p) {
87  if ( (*p).first == key ) break;
88  }
89 
90  if ( p == m_parameters.end() ) {
91  m_parameters.emplace_back(key,value );
92  }
93  else {
94  if ( overwrite ) {
95  (*p).second = value;
96  }
97  else {
98  throw GaudiException("parameter not saved", "EMTrackFit::set_parameter(...)", StatusCode::FAILURE);
99  }
100  }
101 
102 }
103 
104 // ==================================================================
106 {
107  using elParams = std::pair<egammaParameters::ParamDef, int>;
108 
110  std::vector<elParams>::const_iterator p = m_parametersInt.begin();
111 
112  for (;p !=m_parametersInt.end(); ++p) {
113  if ( (*p).first == key ){
114  result = (*p).second;
115  break;
116  }
117  }
118 
119  return result;
120 }
121 
122 // ===================================================================
124 
125  using elParams = std::pair<egammaParameters::ParamDef, int>;
126 
128 
129  for (;p !=m_parametersInt.end(); ++p) {
130  if ( (*p).first == key ) break;
131  }
132 
133  if ( p == m_parametersInt.end() ) {
134  m_parametersInt.emplace_back(key,value );
135  }
136  else {
137  if ( overwrite ) {
138  (*p).second = value;
139  }
140  else {
141  throw GaudiException("parameter not saved", "EMTrackFit::set_parameter(...)", StatusCode::FAILURE);
142  }
143  }
144 
145 }
146 
147 // ========================================================================
149  if (track){
150  bremTrackAuthor( track->info().trackFitter() );
151  fillPerigeeParamters( track->perigeeParameters() );
153  fillBrems(track);
154  } else {
155  throw GaudiException("Parameters not saved, no track", "EMTrackFit::fillDetails(...)", StatusCode::FAILURE);
156  }
157 
158  }
159 
160 // =======================================================================
162 
163  std::vector<const Trk::EstimatedBremOnTrack*> estimatedBremOnTrack;
164  std::vector<const Trk::TrackStateOnSurface* > trkStateOnSurfaceWithBrem;
165 
166  Trk::TrackStates::const_iterator trackStateOnSurface = track->trackStateOnSurfaces()->begin();
167  //For look for all of the EstimatedBremsOnTrack and add the pointers to a vector
168  for (;trackStateOnSurface < track->trackStateOnSurfaces()->end(); ++trackStateOnSurface){
169  const Trk::EstimatedBremOnTrack* brem = dynamic_cast<const Trk::EstimatedBremOnTrack*>((*trackStateOnSurface)->materialEffectsOnTrack());
170  if (brem){
171  estimatedBremOnTrack.push_back ( brem );
172  trkStateOnSurfaceWithBrem.push_back( (*trackStateOnSurface) );
173  }
174  }
175 
176  if (estimatedBremOnTrack.empty()){
177  hasBrem(0);
178  bremRadius(0);
179  bremDeltaZ(0);
180  return;
181  }
182  // The energy loss weighted average position of the brem.
183  std::vector<const Trk::EstimatedBremOnTrack*>::iterator brems = estimatedBremOnTrack.begin();
184  std::vector<const Trk::TrackStateOnSurface*>::iterator tsos = trkStateOnSurfaceWithBrem.begin();
185 
186  double Z(1.);
187  double R(0.);
188  double fractionELost(0.);
189  double sigmaRetainedEnFraction(0);
190  for (; brems!=estimatedBremOnTrack.end(); ++brems, ++tsos) {
191 
192  fractionELost += 1-(*brems)->retainedEnFraction();
193 
194  Z *= (*brems)->retainedEnFraction();
195 
196  R += (1-(*brems)->retainedEnFraction()) * (*tsos)->trackParameters()->position().perp();
197  sigmaRetainedEnFraction += (1-(*brems)->retainedEnFraction()) * (*brems)->sigmaRetainedEnFraction();
198  }
199  if (Z>0 && fractionELost>0.){
200  R/=fractionELost;
201  sigmaRetainedEnFraction/=fractionELost;
202  }
203  hasBrem(estimatedBremOnTrack.size());
204  bremRadius(R);
205  bremDeltaZ(Z);
206  //Clearly this is poorly defined for multiple brems a better way of doing this need to be found
207  bremDeltaZerr(sigmaRetainedEnFraction);
208 
209  }
210 
211 // ======================================================================
213 
214  if (track == nullptr ){
215  return;
216  }
217 
240  const Trk::TrackStates* oldTrackStates = track->trackStateOnSurfaces();
241  if (oldTrackStates == nullptr)
242  {
243  return;
244  }
245 
246  for ( Trk::TrackStates::const_reverse_iterator rItTSoS = oldTrackStates->rbegin(); rItTSoS != oldTrackStates->rend(); ++rItTSoS)
247  {
248 
249  if ( (*rItTSoS)->type(Trk::TrackStateOnSurface::Measurement) && (*rItTSoS)->trackParameters()!=nullptr && (*rItTSoS)->measurementOnTrack()!=nullptr)
250  {
251  const Trk::TrackParameters* trkPara = (*rItTSoS)->trackParameters();
252  track_LastM_loc1 ( trkPara->parameters()[Trk::loc1]);
253  track_LastM_loc2 ( trkPara->parameters()[Trk::loc2]);
254  track_LastM_phi ( trkPara->parameters()[Trk::phi]);
255  track_LastM_theta ( trkPara->parameters()[Trk::theta]);
256  track_LastM_qOverP ( trkPara->parameters()[Trk::qOverP]);
257  break;
258  }
259  }
260  }
261 
262 // ========================================================================
263 bool EMTrackFit::fillPerigeeParamters(const Trk::Perigee *trackParameters){
264  if (trackParameters){
265  track_perigee_d0(trackParameters->parameters()[Trk::d0]);
266  track_perigee_z0(trackParameters->parameters()[Trk::z0]);
267  track_perigee_phi0(trackParameters->parameters()[Trk::phi]);
268  track_perigee_theta(trackParameters->parameters()[Trk::theta]);
269  track_perigee_qOverP(trackParameters->parameters()[Trk::qOverP]);
270 
271  if ( !(fillPerigeeErrors(trackParameters->covariance())) ){
272  // This Failed Jolly good
273  }
274 
275  return true;
276  }
277  return false;
278 
279  return true;
280 }
281 
282 bool EMTrackFit::fillPerigeeErrors(const AmgSymMatrix(5)* errorMatrix)
283 {
284  if(!errorMatrix)
285  return false;
286 
287 
288  track_perigee_Covd0d0 ((*errorMatrix)(Trk::d0, Trk::d0)) ;
289  track_perigee_Covd0z0 ((*errorMatrix)(Trk::d0, Trk::z0)) ;
290  track_perigee_Covd0phi ((*errorMatrix)(Trk::d0, Trk::phi)) ;
291  track_perigee_Covd0theta ((*errorMatrix)(Trk::d0, Trk::theta)) ;
292  track_perigee_Covd0qOverP ((*errorMatrix)(Trk::d0, Trk::qOverP)) ;
293  track_perigee_Covz0z0 ((*errorMatrix)(Trk::z0, Trk::z0)) ;
294  track_perigee_Covz0phi ((*errorMatrix)(Trk::z0, Trk::phi)) ;
295  track_perigee_Covz0theta ((*errorMatrix)(Trk::z0, Trk::theta)) ;
296  track_perigee_Covz0qOverP ((*errorMatrix)(Trk::z0, Trk::qOverP)) ;
297  track_perigee_Covphiphi ((*errorMatrix)(Trk::phi, Trk::phi)) ;
298  track_perigee_Covphitheta ((*errorMatrix)(Trk::phi, Trk::theta)) ;
299  track_perigee_CovphiqOverP ((*errorMatrix)(Trk::phi, Trk::qOverP)) ;
303  return true;
304 }
305 
306 // =======================================================================
307 AmgSymMatrix(5) EMTrackFit::getErrorMatrix() const
308 {
309  // Make a 5x5 matrix that is filled with zero's alternatively we could fill it with the identity matrix;
310  // Chosen the identity matrix option
311  AmgSymMatrix(5) hepSymMatrix;
312  hepSymMatrix.setIdentity();
313  // Fill the matrix
314  hepSymMatrix.fillSymmetric(0,0, track_perigee_Covd0d0());
315  hepSymMatrix.fillSymmetric(0,1, track_perigee_Covd0z0());
316  hepSymMatrix.fillSymmetric(0,2, track_perigee_Covd0phi());
317  hepSymMatrix.fillSymmetric(0,3, track_perigee_Covd0theta());
318  hepSymMatrix.fillSymmetric(0,4, track_perigee_Covd0qOverP());
319  hepSymMatrix.fillSymmetric(1,1, track_perigee_Covz0z0());
320  hepSymMatrix.fillSymmetric(1,2, track_perigee_Covz0phi());
321  hepSymMatrix.fillSymmetric(1,3, track_perigee_Covz0theta());
322  hepSymMatrix.fillSymmetric(1,4, track_perigee_Covz0qOverP());
323  hepSymMatrix.fillSymmetric(2,2, track_perigee_Covphiphi());
324  hepSymMatrix.fillSymmetric(2,3, track_perigee_Covphitheta());
325  hepSymMatrix.fillSymmetric(2,4, track_perigee_CovphiqOverP());
326  hepSymMatrix.fillSymmetric(3,3, track_perigee_Covthetatheta());
327  hepSymMatrix.fillSymmetric(3,4, track_perigee_CovthetaqOverP());
328  hepSymMatrix.fillSymmetric(4,4, track_perigee_CovqOverPqOverP());
329 
330 
331  return hepSymMatrix;
332 
333 }
334 
335 // ================================================================
337 {
338  // Create a MeasuredPerigee from the individual doubles stored in the class.
339 
340  const Trk::PerigeeSurface surface;
341 
342  const Trk::Perigee* measuredPerigee =
343  surface
349  getErrorMatrix())
350  .release();
351 
352  return measuredPerigee;
353 
354 }
355 
356 // =====================================================================
358  if ( hasIntParameter(key) ) return true;
359  if ( key == egammaParameters::refittedTrack_d0 ) return true;
360  else if ( key == egammaParameters::refittedTrack_phi0 ) return true;
361  else if ( key == egammaParameters::refittedTrack_qOverP ) return true;
362  else if ( key == egammaParameters::refittedTrack_z0 ) return true;
363  else if ( key == egammaParameters::refittedTrack_theta ) return true;
364  else if ( key == egammaParameters::refittedTrack_Covd0d0 ) return true;
365  else if ( key == egammaParameters::refittedTrack_Covd0z0 ) return true;
366  else if ( key == egammaParameters::refittedTrack_Covd0phi ) return true;
367  else if ( key == egammaParameters::refittedTrack_Covd0theta ) return true;
368  else if ( key == egammaParameters::refittedTrack_Covd0qOverP) return true;
369  else if ( key == egammaParameters::refittedTrack_Covz0z0 ) return true;
370  else if ( key == egammaParameters::refittedTrack_Covz0phi ) return true;
371  else if ( key == egammaParameters::refittedTrack_Covz0theta ) return true;
372  else if ( key == egammaParameters::refittedTrack_Covz0qOverP )return true;
373  else if ( key == egammaParameters::refittedTrack_Covphiphi ) return true;
374  else if ( key == egammaParameters::refittedTrack_Covphitheta )return true;
375  else if ( key == egammaParameters::refittedTrack_CovphiqOverP)return true;
376  else if ( key == egammaParameters::refittedTrack_Covthetatheta )return true;
377  else if ( key == egammaParameters::refittedTrack_CovthetaqOverP)return true;
378  else if ( key == egammaParameters::refittedTrack_CovqOverPqOverP)return true;
379  else if ( key == egammaParameters::refittedTrackLastM_loc1 ) return true;
380  else if ( key == egammaParameters::refittedTrackLastM_loc2 ) return true;
381  else if ( key == egammaParameters::refittedTrackLastM_phi ) return true;
382  else if ( key == egammaParameters::refittedTrackLastM_theta ) return true;
383  else if ( key == egammaParameters::refittedTrackLastM_qOverP )return true;
384  else if ( key == egammaParameters::bremDeltaQoverP ) return true;
385  else if ( key == egammaParameters::bremDeltaQoverPErr ) return true;
386  else if ( key == egammaParameters::bremMaterialTraversed ) return true;
387  else if ( key == egammaParameters::bremRadius ) return true;
388  else if ( key == egammaParameters::bremClusterRadius ) return true;
389  else if ( key == egammaParameters::bremFitChi2 ) return true;
390  return false;
391 }
392 
393 // =====================================================================
395  if (key == egammaParameters::hasBrem) return true;
396  if (key == egammaParameters::bremTrackAuthor ) return true;
397  else if (key == egammaParameters::bremFitStatus ) return true;
398  else if (key == egammaParameters::linkIndex ) return true;
399 
400  return false;
401 }
402 
403 // =======================================================================
409 
425 
431 
437 
453 
459 
461 
468 
476 
479 
482 
485 
486 
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
egammaParameters::bremRadius
@ bremRadius
estimated brem radius from EMBremFit (mm) [x-y plane]
Definition: egammaParamDefs.h:245
SG_ADD_BASE
SG_ADD_BASE(EMTrackFit, egDetail)
EMTrackFit::track_perigee_Covphiphi
double track_perigee_Covphiphi() const
Covariance matrix item (phi,phi)
egammaParameters::refittedTrack_z0
@ refittedTrack_z0
the z value at the point of closest approach after Track Refit
Definition: egammaParamDefs.h:293
EMTrackFit::track_perigee_Covz0theta
double track_perigee_Covz0theta() const
Covariance matrix item (z0,theta)
EstimatedBremOnTrack.h
egammaParameters::refittedTrackLastM_loc2
@ refittedTrackLastM_loc2
Last Measurment Surface Local Position 2 after Track Refit.
Definition: egammaParamDefs.h:331
egammaParameters::refittedTrack_CovqOverPqOverP
@ refittedTrack_CovqOverPqOverP
Refitted track perigee covariance matrix item (q/P,q/P)
Definition: egammaParamDefs.h:326
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
get_generator_info.result
result
Definition: get_generator_info.py:21
PerigeeSurface.h
Surface.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)
egammaParameters::hasBrem
@ hasBrem
The Number of brems identified by the track fitter.
Definition: egammaParamDefs.h:341
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
egammaParameters::bremTrackAuthor
@ bremTrackAuthor
The author of the Refitted track.
Definition: egammaParamDefs.h:349
Trk::PerigeeSurface
Definition: PerigeeSurface.h:43
EMTrackFit::track_perigee_Covd0z0
double track_perigee_Covd0z0() const
Covariance matrix item ( )
DataVector::rend
const_reverse_iterator rend() const noexcept
Return a const_reverse_iterator pointing at the beginning of the collection.
EMTrackFit::EMTrackFit
EMTrackFit()
Default constructor.
Definition: EMTrackFit.cxx:41
Monitored::Z
@ Z
Definition: HistogramFillerUtils.h:24
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
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
Trk::PerigeeSurface::createUniqueParameters
std::unique_ptr< ParametersT< DIM, T, PerigeeSurface > > createUniqueParameters(double l1, double l2, double phi, double theta, double qop, std::optional< AmgSymMatrix(DIM)> cov=std::nullopt) const
Use the Surface as a ParametersBase constructor, from local parameters.
Trk::z0
@ z0
Definition: ParamDefs.h:64
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
Trk::loc2
@ loc2
generic first and second local coordinate
Definition: ParamDefs.h:35
athena.value
value
Definition: athena.py:124
egammaParameters::refittedTrack_Covphiphi
@ refittedTrack_Covphiphi
Refitted track perigee covariance matrix item (phi,phi)
Definition: egammaParamDefs.h:316
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
egammaParameters::EgParamUndefined
const double EgParamUndefined
Definition: egammaParamDefs.h:78
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.
x
#define x
EMTrackFit::track_perigee_z0
double track_perigee_z0() const
the z value at the point of closest approach after Track Refit
egammaParameters::refittedTrack_Covz0theta
@ refittedTrack_Covz0theta
Refitted track perigee covariance matrix item (z0,theta)
Definition: egammaParamDefs.h:312
EMTrackFit::hasParameter
virtual bool hasParameter(egammaParameters::ParamDef) const
egammaParameters::refittedTrack_Covd0phi
@ refittedTrack_Covd0phi
Refitted track perigee covariance matrix item ( )
Definition: egammaParamDefs.h:302
EMTrackFit
Definition: EMTrackFit.h:35
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
Trk::Charged
Definition: Charged.h:27
Track.h
egammaParameters::refittedTrack_CovphiqOverP
@ refittedTrack_CovphiqOverP
Refitted track perigee covariance matrix item (phi,q/P)
Definition: egammaParamDefs.h:320
egammaParameters::refittedTrack_CovthetaqOverP
@ refittedTrack_CovthetaqOverP
Refitted track perigee covariance matrix item (theta,q/P)
Definition: egammaParamDefs.h:324
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)
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
egammaParameters::refittedTrack_Covz0phi
@ refittedTrack_Covz0phi
Refitted track perigee covariance matrix item (z0,phi)
Definition: egammaParamDefs.h:310
egammaParameters::bremFitChi2
@ bremFitChi2
chi2 of EMBremFit
Definition: egammaParamDefs.h:264
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
ClassName.h
An interface for getting the name of a class as a string.
BaseInfo.h
Provide an interface for finding inheritance information at run time.
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
egammaParameters::refittedTrack_phi0
@ refittedTrack_phi0
azimuth angle of the momentum at the point of closest approach after Track Refit
Definition: egammaParamDefs.h:289
Trk::theta
@ theta
Definition: ParamDefs.h:66
EMTrackFit::bremDeltaZerr
double bremDeltaZerr() const
Error on the fraction of the energy lost after the brem.
Definition: EMTrackFit.cxx:466
EMTrackFit::track_LastM_theta
double track_LastM_theta() const
Last Measurment Surface theta after Track Refit.
ClassName::name
static std::string name()
Return the name of class T as a string.
EMTrackFit.h
EMTrackFit::set_parameterInt
void set_parameterInt(egammaParameters::ParamDef, int, bool overwrite=false)
Definition: EMTrackFit.cxx:123
egammaParameters::refittedTrackLastM_qOverP
@ refittedTrackLastM_qOverP
Last Measurment Surface q/pT estimate according to Track Refit.
Definition: egammaParamDefs.h:337
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
egammaParameters::bremClusterRadius
@ bremClusterRadius
cluster radius (mm) [x-y plane] from EMBremFit (depth)
Definition: egammaParamDefs.h:258
AnalysisUtils::Delta::R
double R(const INavigable4Momentum *p1, const double v_eta, const double v_phi)
Definition: AnalysisMisc.h:49
Trk::ParametersBase
Definition: ParametersBase.h:55
EMTrackFit::track_perigee_CovqOverPqOverP
double track_perigee_CovqOverPqOverP() const
Covariance matrix item (q/P,q/P)
egammaParameters::bremMaterialTraversed
@ bremMaterialTraversed
The amount of material traversed as seen by the track (in X0)
Definition: egammaParamDefs.h:347
DataVector< const Trk::TrackStateOnSurface >
DataVector::rbegin
const_reverse_iterator rbegin() const noexcept
Return a const_reverse_iterator pointing past the end of the collection.
egammaParameters::refittedTrack_Covd0qOverP
@ refittedTrack_Covd0qOverP
Refitted track perigee covariance matrix item (d0,q/p)
Definition: egammaParamDefs.h:306
EMTrackFit::linkIndex
int linkIndex() const
Index of track this EMTrackFit is associated with.
Definition: EMTrackFit.cxx:483
egammaParameters::refittedTrack_Covz0z0
@ refittedTrack_Covz0z0
Refitted track perigee covariance matrix item (z0,z0)
Definition: egammaParamDefs.h:308
EMTrackFit::track_perigee_qOverP
double track_perigee_qOverP() const
1/pT estimate according to Track Refit
egammaParameters::refittedTrack_Covthetatheta
@ refittedTrack_Covthetatheta
Refitted track perigee covariance matrix item (theta,theta)
Definition: egammaParamDefs.h:322
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
python.EventInfoMgtInit.release
release
Definition: EventInfoMgtInit.py:24
Trk::d0
@ d0
Definition: ParamDefs.h:63
DataVector< const Trk::TrackStateOnSurface >::const_reverse_iterator
std::reverse_iterator< const_iterator > const_reverse_iterator
Standard const_reverse_iterator.
Definition: DataVector.h:846
egammaParameters::refittedTrack_d0
@ refittedTrack_d0
transverse impact parameter (distance of closest approach) after Track Refit
Definition: egammaParamDefs.h:287
egammaParameters::bremFitStatus
@ bremFitStatus
Minuit EMBremFit fit status.
Definition: egammaParamDefs.h:260
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
Trk::EstimatedBremOnTrack
class holding information about momentum reduction and an additional noise term due to significant en...
Definition: EstimatedBremOnTrack.h:30
egammaParameters::refittedTrack_qOverP
@ refittedTrack_qOverP
1/pT estimate according to Track Refit
Definition: egammaParamDefs.h:291
EMTrackFit::track_LastM_phi
double track_LastM_phi() const
Last Measurment Surface azimuth angle after Track Refit.
egammaParameters::bremDeltaQoverPErr
@ bremDeltaQoverPErr
Error on the fraction of energy lost.
Definition: egammaParamDefs.h:345
Trk::qOverP
@ qOverP
perigee
Definition: ParamDefs.h:67
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 ( )
egammaParameters::refittedTrackLastM_theta
@ refittedTrackLastM_theta
Last Measurment Surface theta after Track Refit.
Definition: egammaParamDefs.h:335
egammaParameters::refittedTrack_Covd0d0
@ refittedTrack_Covd0d0
Refitted track perigee covariance matrix item ( )
Definition: egammaParamDefs.h:298
egammaParameters::refittedTrack_theta
@ refittedTrack_theta
theta of the track after EMTrackFit
Definition: egammaParamDefs.h:295
Trk::phi
@ phi
Definition: ParamDefs.h:75
EMTrackFit::getMeasuredPerigee
const Trk::Perigee * getMeasuredPerigee() const
returns the MeasuredPerigee from the stored egammaParameters
egammaParameters::bremDeltaQoverP
@ bremDeltaQoverP
Fraction of the measured perigee momentum lost.
Definition: egammaParamDefs.h:343
egammaParameters::linkIndex
@ linkIndex
link index for multiple track and vertex matches
Definition: egammaParamDefs.h:574
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
egammaParameters::refittedTrackLastM_loc1
@ refittedTrackLastM_loc1
Last Measurment Surface Local Position 1 after Track Refit.
Definition: egammaParamDefs.h:329
egammaParameters::refittedTrack_Covz0qOverP
@ refittedTrack_Covz0qOverP
Refitted track perigee covariance matrix item (z0,q/p)
Definition: egammaParamDefs.h:314
egammaParameters::refittedTrack_Covd0theta
@ refittedTrack_Covd0theta
Refitted track perigee covariance matrix item (d0,theta)
Definition: egammaParamDefs.h:304
Trk::loc1
@ loc1
Definition: ParamDefs.h:34
egDetail
Definition: egDetail.h:29
EMTrackFit::fillPerigeeParamters
bool fillPerigeeParamters(const Trk::Perigee *trackParameters)
Fill the perigree parameter details.
Definition: EMTrackFit.cxx:263
egammaParameters::refittedTrack_Covphitheta
@ refittedTrack_Covphitheta
Refitted track perigee covariance matrix item (phi,theta)
Definition: egammaParamDefs.h:318
AmgSymMatrix
AmgSymMatrix(5) EMTrackFit
Definition: EMTrackFit.cxx:307
EMTrackFit::track_LastM_loc1
double track_LastM_loc1() const
Last Measurment Surface Local Position 1 after Track Refit.
Trk::TrackStateOnSurface::Measurement
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
Definition: TrackStateOnSurface.h:101
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
egammaParameters::refittedTrack_Covd0z0
@ refittedTrack_Covd0z0
Refitted track perigee covariance matrix item ( )
Definition: egammaParamDefs.h:300
EMTrackFit::bremMaterialTraversed
double bremMaterialTraversed() const
Amount of Material seen by the particle according to the track fitter (in X0)
Definition: EMTrackFit.cxx:467
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37
egammaParameters::refittedTrackLastM_phi
@ refittedTrackLastM_phi
Last Measurment Surface azimuth angle after Track Refit.
Definition: egammaParamDefs.h:333