ATLAS Offline Software
Loading...
Searching...
No Matches
EMTrackFit.cxx File Reference
#include "egammaEvent/EMTrackFit.h"
#include "AthenaKernel/BaseInfo.h"
#include "AthenaKernel/ClassName.h"
#include "GaudiKernel/GaudiException.h"
#include "TrkMaterialOnTrack/EstimatedBremOnTrack.h"
#include "TrkSurfaces/PerigeeSurface.h"
#include "TrkSurfaces/Surface.h"
#include "TrkTrack/Track.h"
#include <cmath>
Include dependency graph for EMTrackFit.cxx:

Go to the source code of this file.

Functions

 AmgSymMatrix (5) EMTrackFit
 SG_ADD_BASE (EMTrackFit, egDetail)

Function Documentation

◆ AmgSymMatrix()

AmgSymMatrix ( 5 )

Definition at line 307 of file EMTrackFit.cxx.

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// ================================================================
336const Trk::Perigee* EMTrackFit::getMeasuredPerigee () const
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
344 .createUniqueParameters<5, Trk::Charged>(track_perigee_d0(),
345 track_perigee_z0(),
346 track_perigee_phi0(),
347 track_perigee_theta(),
348 track_perigee_qOverP(),
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
void fillSymmetric(size_t i, size_t j, Scalar value)
method to fill elements for a symmetric matrix
#define AmgSymMatrix(dim)
#define x
Contains the fit result with addtional brem information EMTrackFit is made by EMTrkRefitter.
Definition EMTrackFit.h:35
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.
double track_LastM_phi() const
Last Measurment Surface azimuth angle after Track Refit.
double track_perigee_Covphiphi() const
Covariance matrix item (phi,phi)
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)
double track_LastM_loc2() const
Last Measurment Surface Local Position 2 after Track Refit.
double track_perigee_theta() const
theta of the track after EMTrackFit
double track_perigee_Covthetatheta() const
Covariance matrix item (theta,theta)
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 track_LastM_loc1() const
Last Measurment Surface Local Position 1 after Track Refit.
virtual double parameter(egammaParameters::ParamDef) 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)
double track_perigee_Covz0phi() const
Covariance matrix item (z0,phi)
double track_perigee_Covd0z0() const
Covariance matrix item ( )
virtual bool hasIntParameter(egammaParameters::ParamDef) const
checks if the parameter is integer
double track_perigee_Covd0phi() const
Covariance matrix item ( )
double track_perigee_Covd0qOverP() const
Covariance matrix item (d0,q/p)
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)
double track_perigee_Covz0z0() const
Covariance matrix item (z0,z0)
double track_perigee_CovphiqOverP() const
Covariance matrix item (phi,q/P)
double track_perigee_Covd0d0() const
Covariance matrix item ( )
double track_perigee_Covd0theta() const
Covariance matrix item (d0,theta)
Simple helper class for defining track parameters for charged particles.
Definition Charged.h:27
Class describing the Line to which the Perigee refers to.
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.
Ensure that the ATLAS eigen extensions are properly loaded.
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee
@ refittedTrackLastM_loc2
Last Measurment Surface Local Position 2 after Track Refit.
@ bremFitStatus
Minuit EMBremFit fit status.
@ refittedTrack_Covd0z0
Refitted track perigee covariance matrix item ( )
@ bremDeltaQoverPErr
Error on the fraction of energy lost.
@ refittedTrack_Covz0qOverP
Refitted track perigee covariance matrix item (z0,q/p)
@ refittedTrack_Covz0z0
Refitted track perigee covariance matrix item (z0,z0)
@ bremRadius
estimated brem radius from EMBremFit (mm) [x-y plane]
@ refittedTrack_Covphiphi
Refitted track perigee covariance matrix item (phi,phi)
@ refittedTrack_Covphitheta
Refitted track perigee covariance matrix item (phi,theta)
@ refittedTrack_CovqOverPqOverP
Refitted track perigee covariance matrix item (q/P,q/P)
@ refittedTrack_phi0
azimuth angle of the momentum at the point of closest approach after Track Refit
@ refittedTrack_qOverP
1/pT estimate according to Track Refit
@ refittedTrack_Covd0qOverP
Refitted track perigee covariance matrix item (d0,q/p)
@ refittedTrack_Covthetatheta
Refitted track perigee covariance matrix item (theta,theta)
@ refittedTrackLastM_qOverP
Last Measurment Surface q/pT estimate according to Track Refit.
@ bremDeltaQoverP
Fraction of the measured perigee momentum lost.
@ bremMaterialTraversed
The amount of material traversed as seen by the track (in X0)
@ bremTrackAuthor
The author of the Refitted track.
@ refittedTrackLastM_phi
Last Measurment Surface azimuth angle after Track Refit.
@ refittedTrack_Covz0phi
Refitted track perigee covariance matrix item (z0,phi)
@ refittedTrack_theta
theta of the track after EMTrackFit
@ refittedTrackLastM_theta
Last Measurment Surface theta after Track Refit.
@ linkIndex
link index for multiple track and vertex matches
@ refittedTrack_CovthetaqOverP
Refitted track perigee covariance matrix item (theta,q/P)
@ refittedTrack_d0
transverse impact parameter (distance of closest approach) after Track Refit
@ bremClusterRadius
cluster radius (mm) [x-y plane] from EMBremFit (depth)
@ refittedTrack_Covd0phi
Refitted track perigee covariance matrix item ( )
@ refittedTrack_z0
the z value at the point of closest approach after Track Refit
@ refittedTrack_CovphiqOverP
Refitted track perigee covariance matrix item (phi,q/P)
@ refittedTrack_Covd0d0
Refitted track perigee covariance matrix item ( )
@ hasBrem
The Number of brems identified by the track fitter.
@ bremFitChi2
chi2 of EMBremFit
@ refittedTrack_Covz0theta
Refitted track perigee covariance matrix item (z0,theta)
@ refittedTrackLastM_loc1
Last Measurment Surface Local Position 1 after Track Refit.
@ refittedTrack_Covd0theta
Refitted track perigee covariance matrix item (d0,theta)

◆ SG_ADD_BASE()

SG_ADD_BASE ( EMTrackFit ,
egDetail  )