ATLAS Offline Software
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
Trk::FitMeasurement Class Reference

#include <FitMeasurement.h>

Collaboration diagram for Trk::FitMeasurement:

Public Member Functions

 FitMeasurement (int hitIndex, HitOnTrack *hitOnTrack, const MeasurementBase *measurementBase)
 
 FitMeasurement (const MaterialEffectsBase *materialEffects, double particleMass, const Amg::Vector3D &position, double qOverP=0., bool calo=false)
 
 FitMeasurement (double radiationThickness, double deltaE, double particleMass, const Amg::Vector3D &position, const Amg::Vector3D &direction, double qOverP, const Surface *surface=0)
 
 FitMeasurement (const AlignmentEffectsOnTrack *alignmentEffects, const Amg::Vector3D &direction, const Amg::Vector3D &position)
 
 FitMeasurement (const TrackSurfaceIntersection &intersection, double shift)
 
 FitMeasurement (const TrackStateOnSurface &TSOS)
 
 FitMeasurement (int hitIndex, HitOnTrack *hitOnTrack, const Amg::Vector3D &position, double sigma, double sigma2, double sinStereo, int status, const Surface *surface, MeasurementType type)
 
 FitMeasurement (int hitIndex, HitOnTrack *hitOnTrack, const Amg::Vector3D &position, double sigma, double signedDriftDistance, double sinStereo, const Surface *surface)
 
 FitMeasurement (const TrackParameters &perigee)
 
 FitMeasurement (double d0, const Amg::Vector3D &position, double sigma)
 
 ~FitMeasurement (void)
 
bool afterCalo (void) const
 
double alignmentAngle (void) const
 
void alignmentAngle (double value)
 
const AlignmentEffectsOnTrackalignmentEffects (void) const
 
double alignmentOffset (void) const
 
void alignmentOffset (double value)
 
unsigned alignmentParameter (void) const
 
void alignmentParameter (unsigned value)
 
unsigned alignmentParameter2 (void) const
 
void alignmentParameter2 (unsigned value)
 
double derivative (int param) const
 
void derivative (int param, double value)
 
void derivative (double *pointer)
 
double derivative2 (int param) const
 
void derivative2 (int param, double value)
 
void derivative2 (double *pointer)
 
int derivativeRow (void) const
 
void derivativeRow (int row)
 
double d0 (void) const
 
double energyLoss (void) const
 
double energyLossSigma (void) const
 
unsigned firstParameter (void) const
 
void firstParameter (unsigned value)
 
void flipDriftDirection (void)
 
int hitIndex (void) const
 
const HitOnTrack * hitOnTrack (void) const
 
HitOnTrack * hitOnTrack (void)
 
bool hasIntersection (ExtrapolationType type) const
 
const TrackSurfaceIntersectionintersection (ExtrapolationType type) const
 
void intersection (ExtrapolationType type, const std::optional< TrackSurfaceIntersection > &value)
 
bool isAlignment (void) const
 
bool isCluster (void) const
 
bool isDrift (void) const
 
bool isEnergyDeposit (void) const
 
bool isFlipped (void) const
 
bool isMaterialDelimiter (void) const
 
bool isOutlier (void) const
 
bool isPassive (void) const
 
bool isPerigee (void) const
 
bool isPositionMeasurement (void) const
 
bool isPseudo (void) const
 
bool isScatterer (void) const
 
bool isTrapezoidCluster (void) const
 
bool isVertex (void) const
 
bool is2Dimensional (void) const
 
unsigned lastParameter (void) const
 
void lastParameter (unsigned value, bool afterCalo=false)
 
const MaterialEffectsBasematerialEffects (void) const
 
const MeasurementBasemeasurementBase (void) const
 
double minEnergyDeposit (void) const
 
const Amg::Vector3DminimizationDirection (void) const
 
void minimizationDirection (const Amg::Vector3D &value)
 
const Amg::Vector3Dnormal (void) const
 
int numberDoF (void) const
 
void numberDoF (int value)
 
bool numericalDerivative (void) const
 
const Amg::VectorXperigee (void) const
 
const Amg::MatrixXperigeeWeight (void) const
 
const Amg::Vector3Dposition (void) const
 
void print (MsgStream &log) const
 
double qOverP (void) const
 
void qOverP (double value)
 
double radiationThickness (void) const
 
double residual (void) const
 
void residual (double value)
 
void residual (std::vector< double >::iterator pointer)
 
double residual2 (void) const
 
void residual2 (double value)
 
double scattererPhi (void) const
 
void scattererPhi (double value)
 
double scattererTheta (void) const
 
void scattererTheta (double value)
 
void scatteringAngle (double angle, double totalRadiationThickness)
 
const Amg::Vector3DsensorDirection (void) const
 
void setEnergyGain (void)
 
void setMaterialEffectsOwner (void)
 
void setNumericalDerivative (void)
 
void setOutlier (void)
 
void setSigma (void)
 
void setSigmaMinus (void)
 
void setSigmaPlus (void)
 
void setSigmaSymmetric (void)
 
double sigma (void) const
 
double sigma2 (void) const
 
double signedDriftDistance (void) const
 
int status (void) const
 
const Surfacesurface (void) const
 
MeasurementType type (void) const
 
void unsetOutlier (void)
 
double weight (void) const
 
double weight2 (void) const
 

Static Public Member Functions

static void printHeading (MsgStream &log)
 

Private Member Functions

 FitMeasurement (const FitMeasurement &)
 
FitMeasurementoperator= (const FitMeasurement &)
 

Private Attributes

bool m_afterCalo
 
const AlignmentEffectsOnTrackm_alignmentEffects
 
unsigned m_alignmentParameter
 
unsigned m_alignmentParameter2
 
double m_betaSquared
 
double * m_derivative
 
double * m_derivative2
 
int m_derivativeRow
 
double m_d0
 
double m_energyLoss
 
unsigned m_firstParameter
 
bool m_flippedDriftDistance
 
int m_hitIndex
 
HitOnTrack * m_hitOnTrack
 
std::array< std::optional< TrackSurfaceIntersection >, ExtrapolationTypesm_intersection
 
unsigned m_lastParameter
 
const MaterialEffectsBasem_materialEffects
 
bool m_materialEffectsOwner
 
const MeasurementBasem_measurementBase
 
double m_minEnergyDeposit
 
Amg::Vector3D m_minimizationDirection
 
Amg::Vector3D m_normal
 
int m_numberDoF
 
bool m_numericalDerivative
 
bool m_outlier
 
double m_particleMassSquared
 
Amg::VectorX m_perigee
 
Amg::MatrixX m_perigeeWeight
 
Amg::Vector3D m_position
 
double m_qOverP
 
double m_radiationThickness
 
std::vector< double >::iterator m_residual
 
double m_scaleFactor
 
double m_scatterPhi
 
double m_scatterTheta
 
double m_scatteringAngle
 
double m_scatteringAngleOffSet
 
double m_secondResidual
 
Amg::Vector3D m_sensorDirection
 
double m_sigma
 
double m_sigmaMinus
 
double m_sigmaPlus
 
double m_signedDriftDistance
 
int m_status
 
const Surfacem_surface
 
MeasurementType m_type
 
double m_weight
 
double m_weight2
 

Detailed Description

Definition at line 40 of file FitMeasurement.h.

Constructor & Destructor Documentation

◆ FitMeasurement() [1/11]

Trk::FitMeasurement::FitMeasurement ( int  hitIndex,
HitOnTrack *  hitOnTrack,
const MeasurementBase measurementBase 
)

Definition at line 45 of file FitMeasurement.cxx.

62  {},
63  m_normal{},
65  m_numericalDerivative(false),
66  m_outlier(false),
68  m_perigee{},
71  m_qOverP(0.),
73  m_residual(0),
74  m_scaleFactor(0.),
75  m_scatterPhi(0.),
76  m_scatterTheta(0.),
79  m_secondResidual(0.),
81  m_sigma(0.),
82  m_sigmaMinus(0.),
83  m_sigmaPlus(0.),
85  m_status(0),
88  m_weight(1.),
89  m_weight2(1.) {
90  double sigma = 0.;
91  if (m_numberDoF > 0)
93  double sigma2 = 0.;
94  if (m_numberDoF > 1)
96 
97  // remaining data according to surface (normal, sensor, minimization
98  // directions etc)
99  if (dynamic_cast<const PlaneSurface*>(m_surface)) {
100  m_normal = Amg::Vector3D(m_surface->transform().rotation().col(2));
101  const Amg::Vector3D posptr =
103  m_position = posptr;
104 
105  // special case to get sensor for endcap trapezoids (discs represented as
106  // planes) thus sensor direction rotates according to localX - rather than
107  // being parallel and there is only 1 'real' degree of freedom for
108  // covariance
109  if (m_numberDoF == 2 &&
110  dynamic_cast<const TrapezoidBounds*>(&m_surface->bounds())) {
111  m_numberDoF = 1;
114  double ab = measurementBase->localCovariance()(locX, locY);
115  double bb = measurementBase->localCovariance()(locY, locY);
116  double sum = aa + bb;
117  double diff = std::sqrt(sum * sum - 4. * (aa * bb - ab * ab));
118  // used by obsolete scaling
119  // double lengthSq = 0.5*(sum + diff);
120  double widthSq = 0.5 * (sum - diff);
121  sigma = std::sqrt(widthSq);
122  double term = 0.5 * (aa - bb) / diff;
123  double cosStereo = std::sqrt(0.5 - term);
124  double sinStereo = 0.0;
125  if (term > -0.5) {
126  sinStereo = std::sqrt(0.5 + term);
127  if (ab * m_normal.z() < 0.)
128  sinStereo = -sinStereo;
129  }
130 
131  const Amg::Vector3D& axis = m_surface->transform().rotation().col(1);
133  Amg::Vector3D(axis(0) * cosStereo + axis(1) * sinStereo,
134  axis(1) * cosStereo - axis(0) * sinStereo, axis(2));
135  } else {
137  Amg::Vector3D(m_surface->transform().rotation().col(1));
138  }
139 
141  if (m_numberDoF == 2)
143  } else if (dynamic_cast<const StraightLineSurface*>(m_surface)) {
144  // StraightLines can be driftCircles or pseudoMeasurements along the wire
146  // driftCircles will eventually have sagged surfaces.
147  // then may need something like:
148  // get z-along wire from (globPos-center).dot(sensor)
149  // then loc3D = (0,0,zalongwire)
150  // position = surface->transform() * loc3D
151  // but probably just same as using centre with wire direction ...
153  Amg::Vector3D(m_surface->transform().rotation().col(2));
156  } else {
157  // pseudomeasurement - minimize along wire direction
159  Amg::Vector3D(m_surface->transform().rotation().col(2));
160  double mag = m_surface->center().mag();
162  : Amg::Vector3D(m_surface->normal());
168  }
169  }
170 
171  const PerigeeSurface* perigee =
172  dynamic_cast<const PerigeeSurface*>(m_surface);
173  if (perigee) {
175  m_sensorDirection = Amg::Vector3D(0., 0., 1.);
177  if (m_numberDoF == 2)
178  m_type = vertex;
179  }
180 
181  // there are no measurements from Atlas detectors of cylinder or disc type
182  // const CylinderSurface* cylinder = dynamic_cast<const
183  // CylinderSurface*>(m_surface); if (cylinder)
184  // {
185  // }
186 
187  // const DiscSurface* disc = dynamic_cast<const
188  // DiscSurface*>(m_surface); if (disc)
189  // {
190  // }
191 
192  // add protection against junk input
193  if (sigma > 0.)
194  m_weight = 1. / sigma;
195  if (sigma2 > 0.)
196  m_weight2 = 1. / sigma2;
197 }
198 
199 // MaterialEffectsBase constructor
200 FitMeasurement::FitMeasurement(const MaterialEffectsBase* materialEffects,
201  double particleMass,

◆ FitMeasurement() [2/11]

Trk::FitMeasurement::FitMeasurement ( const MaterialEffectsBase materialEffects,
double  particleMass,
const Amg::Vector3D position,
double  qOverP = 0.,
bool  calo = false 
)

Definition at line 204 of file FitMeasurement.cxx.

204  : m_afterCalo(false),
205  m_alignmentEffects(nullptr),
208  m_betaSquared(1.),
209  m_derivative(nullptr),
210  m_derivative2(nullptr),
211  m_derivativeRow(-1),
212  m_d0(0.),
213  m_energyLoss(0.),
214  m_firstParameter(0),
215  m_flippedDriftDistance(false),
216  m_hitIndex(0),
217  m_hitOnTrack(nullptr),
218  m_lastParameter(0),
220  m_materialEffectsOwner(false),
221  m_measurementBase(nullptr),
222  m_minEnergyDeposit(0.),
224  m_normal{},
225  m_numberDoF(0),
226  m_numericalDerivative(false),
227  m_outlier(false),
228  m_particleMassSquared(particleMass * particleMass),
229  m_perigee{},
230  m_perigeeWeight{},
232  m_qOverP(qOverP),
234  m_residual(0),
235  m_scaleFactor(0.),
236  m_scatterPhi(0.),
237  m_scatterTheta(0.),
238  m_scatteringAngle(0.),
240  m_secondResidual(0.),
242  m_sigma(0.),
243  m_sigmaMinus(0.),
244  m_sigmaPlus(0.),
246  m_status(0),
249  m_weight(0.),
250  m_weight2(0.) {
251  if (dynamic_cast<const CylinderSurface*>(m_surface) ||
252  std::abs(m_surface->normal()(2)) < 0.5)
254 
255  if (calo)
257 
258  // set any energy loss
259  const EnergyLoss* energyLoss = nullptr;
260  const ScatteringAngles* scattering = nullptr;
261  const MaterialEffectsOnTrack* meot =
262  dynamic_cast<const MaterialEffectsOnTrack*>(materialEffects);
263  if (meot) {
264  energyLoss = meot->energyLoss();
265  scattering = meot->scatteringAngles();
266  }
267 
268  if (energyLoss) {
269  // note: EDM defines energy loss to be negative
270  // but here take opposite as this convention is not accepted by
271  // CaloEnergy clients (exception to take verbatim for CaloEnergy)
272  // m_energyLoss = -energyLoss->deltaE();
273  m_energyLoss = std::abs(energyLoss->deltaE());
274 
275  // calo energy deposit treated as a single pure energy loss measurement,
276  // with fit taking error into account
277  if (calo && !scattering && energyLoss->sigmaDeltaE() > 0.) {
278  m_energyLoss = energyLoss->deltaE();
279  m_numberDoF = 1;
280  m_sigma = energyLoss->sigmaDeltaE();
281  m_sigmaMinus = energyLoss->sigmaMinusDeltaE();
282  m_sigmaPlus = energyLoss->sigmaPlusDeltaE();
284  m_weight = 1. / m_sigma;
286  if (m_energyLoss > 0. && m_energyLoss > 5.0 * m_sigmaMinus) {
288  } else if (m_energyLoss < 0. && m_energyLoss < -5.0 * m_sigmaMinus) {
290  }
291  }
292  }
293 
294  // initialize scattering angles
295  if (scattering) {
296  m_scatterPhi = scattering->deltaPhi();
297  m_scatterTheta = scattering->deltaTheta();
298  if (calo)
299  m_scatteringAngleOffSet = scattering->sigmaDeltaTheta();
300  // if(calo) std::cout << " Calorimeter scaterrer with sigmaDeltaPhi "
301  // << scattering->sigmaDeltaPhi() << " sigmaDeltaTheta " <<
302  // scattering->sigmaDeltaTheta() << std::endl;
303  }
304 }
305 
306 // constructor creating MaterialEffects for merged scatterers
308  double particleMass,

◆ FitMeasurement() [3/11]

Trk::FitMeasurement::FitMeasurement ( double  radiationThickness,
double  deltaE,
double  particleMass,
const Amg::Vector3D position,
const Amg::Vector3D direction,
double  qOverP,
const Surface surface = 0 
)

Definition at line 311 of file FitMeasurement.cxx.

312  : m_afterCalo(false),
313  m_alignmentEffects(nullptr),
316  m_betaSquared(1.),
317  m_derivative(nullptr),
318  m_derivative2(nullptr),
319  m_derivativeRow(-1),
320  m_d0(0.),
321  m_energyLoss(-deltaE),
322  m_firstParameter(0),
323  m_flippedDriftDistance(false),
324  m_hitIndex(0),
325  m_hitOnTrack(nullptr),
326  m_lastParameter(0),
327  m_materialEffects(nullptr),
329  m_measurementBase(nullptr),
330  m_minEnergyDeposit(0.),
332  m_normal{},
333  m_numberDoF(0),
334  m_numericalDerivative(false),
335  m_outlier(false),
336  m_particleMassSquared(particleMass * particleMass),
337  m_perigee{},
338  m_perigeeWeight{},
340  m_qOverP(qOverP),
342  m_residual(0),
343  m_scaleFactor(0.),
344  m_scatterPhi(0.),
345  m_scatterTheta(0.),
346  m_scatteringAngle(0.),
348  m_secondResidual(0.),
350  m_sigma(0.),
351  m_sigmaMinus(0.),
352  m_sigmaPlus(0.),
354  m_status(0),
357  m_weight(0.),
358  m_weight2(0.) {
359  // plane surface with normal along input direction
360  if (m_surface && (dynamic_cast<const CylinderSurface*>(m_surface) ||
361  std::abs(m_surface->normal()(2)) < 0.5))
363  else if (std::abs(direction(2)) < 0.5)
365  if (!m_surface) {
366  CurvilinearUVT uvt(direction);
367  m_surface = new PlaneSurface(position, uvt);
368  }
369 
370  // create MaterialEffects
371  std::bitset<MaterialEffectsBase::NumberOfMaterialEffectsTypes> typeMaterial;
372  if (deltaE != 0.)
373  typeMaterial.set(MaterialEffectsBase::EnergyLossEffects);
374  auto energyLoss = std::make_unique<EnergyLoss>(deltaE, 0., 0., 0.);
375  m_materialEffects = new MaterialEffectsOnTrack(
376  radiationThickness, std::move(energyLoss), *m_surface, typeMaterial);
377  if (!surface)
378  delete m_surface;
380 
382  std::make_optional<TrackSurfaceIntersection>(position, direction, 0.);
383 }
384 
385 // constructor for adding (mis-)alignment effects
386 FitMeasurement::FitMeasurement(const AlignmentEffectsOnTrack* alignmentEffects,
387  const Amg::Vector3D& direction,

◆ FitMeasurement() [4/11]

Trk::FitMeasurement::FitMeasurement ( const AlignmentEffectsOnTrack alignmentEffects,
const Amg::Vector3D direction,
const Amg::Vector3D position 
)

Definition at line 390 of file FitMeasurement.cxx.

408  {},
409  m_normal{},
410  m_numberDoF(2),
411  m_numericalDerivative(false),
412  m_outlier(false),
414  m_perigee{},
415  m_perigeeWeight{},
417  m_qOverP(0.),
419  m_residual(0),
420  m_scaleFactor(0.),
423  m_scatteringAngle(0.),
425  m_secondResidual(0.),
427  m_sigma(0.),
431  m_status(0),
433  m_type(alignment),
434  m_weight(1.),
435  m_weight2(1.) {
436  // set weights
437  if (m_sigmaMinus)
438  m_weight = 1. / m_sigmaMinus;
439  if (m_sigmaPlus)
440  m_weight2 = 1. / m_sigmaPlus;
441 
443  std::make_optional<TrackSurfaceIntersection>(position, direction, 0.);
444 }
445 
446 // constructor creating placeholder Surface for delimiting material aggregation
447 FitMeasurement::FitMeasurement(const TrackSurfaceIntersection& intersection,
448  double shift)

◆ FitMeasurement() [5/11]

Trk::FitMeasurement::FitMeasurement ( const TrackSurfaceIntersection intersection,
double  shift 
)

Definition at line 451 of file FitMeasurement.cxx.

468  {},
469  m_normal{},
470  m_numberDoF(0),
471  m_numericalDerivative(false),
472  m_outlier(false),
474  m_perigee{},
475  m_perigeeWeight{},
477  m_qOverP(0.),
479  m_residual(0),
480  m_scaleFactor(0.),
481  m_scatterPhi(0.),
482  m_scatterTheta(0.),
483  m_scatteringAngle(0.),
485  m_secondResidual(0.),
487  m_sigma(0.),
488  m_sigmaMinus(0.),
489  m_sigmaPlus(0.),
491  m_status(0),
492  m_surface(nullptr),
494  m_weight(0.),
495  m_weight2(0.) {
496  // plane surface with normal along input direction and shift wrt position
498  m_position += offset;
499  CurvilinearUVT uvt(intersection.direction());
500  m_surface = new PlaneSurface(m_position, uvt);
501 
502  m_intersection[FittedTrajectory] = std::make_optional<TrackSurfaceIntersection>(
504 }
505 
506 // other TrackStateOnSurface types
507 FitMeasurement::FitMeasurement(const TrackStateOnSurface& TSOS)
508  : m_afterCalo(false),

◆ FitMeasurement() [6/11]

Trk::FitMeasurement::FitMeasurement ( const TrackStateOnSurface TSOS)

Definition at line 511 of file FitMeasurement.cxx.

527  {},
528  m_normal{},
529  m_numberDoF(0),
530  m_numericalDerivative(false),
531  m_outlier(false),
533  m_perigee{},
534  m_perigeeWeight{},
535  m_position(TSOS.trackParameters()->position()),
536  m_qOverP(0.),
538  m_residual(0),
539  m_scaleFactor(0.),
540  m_scatterPhi(0.),
541  m_scatterTheta(0.),
542  m_scatteringAngle(0.),
544  m_secondResidual(0.),
546  m_sigma(0.),
547  m_sigmaMinus(0.),
548  m_sigmaPlus(0.),
550  m_status(0),
551  m_surface(&TSOS.trackParameters()->associatedSurface()),
552  m_type(hole),
553  m_weight(0.),
554  m_weight2(0.) {
555  // set type if necessary (hole = default)
556  if (TSOS.type(TrackStateOnSurface::Outlier)) {
557  m_outlier = true;
558  }
559  // else if (TSOS.type(TrackStateOnSurface::Perigee))
560  // {
561  // m_type = MSperigee;
562  // }
563 }
564 
565 // SiliconTracker constructor (from iPatRec)
567  const Amg::Vector3D& position, double sigma,

◆ FitMeasurement() [7/11]

Trk::FitMeasurement::FitMeasurement ( int  hitIndex,
HitOnTrack *  hitOnTrack,
const Amg::Vector3D position,
double  sigma,
double  sigma2,
double  sinStereo,
int  status,
const Surface surface,
MeasurementType  type 
)

Definition at line 570 of file FitMeasurement.cxx.

570  : m_afterCalo(false),
571  m_alignmentEffects(nullptr),
574  m_betaSquared(1.),
575  m_derivative(nullptr),
576  m_derivative2(nullptr),
577  m_derivativeRow(-1),
578  m_d0(0.),
579  m_energyLoss(0.),
580  m_firstParameter(0),
581  m_flippedDriftDistance(false),
584  m_lastParameter(0),
585  m_materialEffects(nullptr),
586  m_materialEffectsOwner(false),
587  m_measurementBase(nullptr),
588  m_minEnergyDeposit(0.),
589  m_numberDoF(1),
590  m_numericalDerivative(false),
591  m_outlier(false),
593  m_perigee{},
594  m_perigeeWeight{},
596  m_qOverP(0.),
598  m_residual(0),
599  m_scaleFactor(0.),
600  m_scatterPhi(0.),
601  m_scatterTheta(0.),
602  m_scatteringAngle(0.),
604  m_secondResidual(0.),
605  m_sigma(0.),
606  m_sigmaMinus(0.),
607  m_sigmaPlus(0.),
609  m_status(status),
611  m_type(type),
612  m_weight(1.),
613  m_weight2(1.) {
614  // pixel has 2-D measurement
615  if (type == pixelCluster) {
616  m_numberDoF = 2;
617  }
618 
619  // special treatment for projective trapezoidal chambers in the endcap
620  // take sensorDirection from stereo angle as I don't understand Surface axes
621  // in this case
622  m_normal = Amg::Vector3D(m_surface->transform().rotation().col(2));
623  if (m_numberDoF == 1 && std::abs(m_normal.z()) > 0.99 &&
624  std::abs(sinStereo) < 0.5) // end-cap projective geometry
625  {
626  double cosStereo = std::sqrt(1. - sinStereo * sinStereo);
628  Amg::Vector3D(position(0) * cosStereo + position(1) * sinStereo,
629  -position(0) * sinStereo + position(1) * cosStereo, 0.);
631  } else // otherwise chambers have parallel strips with sensor direction =
632  // appropriate module axis
633  {
634  m_sensorDirection = Amg::Vector3D(m_surface->transform().rotation().col(1));
635  }
637 
638  // add protection against junk input
639  if (sigma > 0.) {
640  m_weight = 1. / sigma;
641  } else {
642  m_numberDoF = 0;
643  m_outlier = true;
644  }
645  if (m_numberDoF == 2) {
646  if (sigma2 > 0.) {
647  m_weight2 = 1. / sigma2;
648  } else {
649  m_numberDoF = 0;
650  m_outlier = true;
651  }
652  }
653 }
654 
655 // drift constructor (TRT from iPatRec)
657  const Amg::Vector3D& position, double sigma,

◆ FitMeasurement() [8/11]

Trk::FitMeasurement::FitMeasurement ( int  hitIndex,
HitOnTrack *  hitOnTrack,
const Amg::Vector3D position,
double  sigma,
double  signedDriftDistance,
double  sinStereo,
const Surface surface 
)

Definition at line 660 of file FitMeasurement.cxx.

660  : m_afterCalo(false),
661  m_alignmentEffects(nullptr),
664  m_betaSquared(1.),
665  m_derivative(nullptr),
666  m_derivative2(nullptr),
667  m_derivativeRow(-1),
668  m_d0(0.),
669  m_energyLoss(0.),
670  m_firstParameter(0),
671  m_flippedDriftDistance(false),
674  m_lastParameter(0),
675  m_materialEffects(nullptr),
676  m_materialEffectsOwner(false),
677  m_measurementBase(nullptr),
678  m_minEnergyDeposit(0.),
680  m_normal{},
681  m_numberDoF(1),
682  m_numericalDerivative(false),
683  m_outlier(false),
685  m_perigee{},
686  m_perigeeWeight{},
688  m_qOverP(0.),
690  m_residual(0),
691  m_scaleFactor(0.),
692  m_scatterPhi(0.),
693  m_scatterTheta(0.),
694  m_scatteringAngle(0.),
696  m_secondResidual(0.),
697  m_sigma(0.),
698  m_sigmaMinus(0.),
699  m_sigmaPlus(0.),
701  m_status(0),
704  m_weight(1.),
705  m_weight2(1.) {
706  m_sensorDirection = Amg::Vector3D(m_surface->transform().rotation().col(2));
707 
708  // add protection against junk input
709  if (sigma > 0.) {
710  m_weight = 1. / sigma;
711  } else {
712  m_numberDoF = 0;
713  m_outlier = true;
714  }
715 }
716 
717 // perigee (TrackParameters) constructor
719  : m_afterCalo(false),

◆ FitMeasurement() [9/11]

Trk::FitMeasurement::FitMeasurement ( const TrackParameters perigee)

Definition at line 722 of file FitMeasurement.cxx.

738  {},
739  m_normal{},
740  m_numberDoF(0),
741  m_numericalDerivative(false),
742  m_outlier(true), // use base class for additional trackParameters at
743  // detector boundary
745  m_perigee{},
746  m_perigeeWeight{},
747  m_position(perigee.associatedSurface().center()),
748  m_qOverP(0.),
750  m_residual(0),
751  m_scaleFactor(0.),
752  m_scatterPhi(0.),
753  m_scatterTheta(0.),
754  m_scatteringAngle(0.),
756  m_secondResidual(0.),
758  m_sigma(0.),
759  m_sigmaMinus(0.),
760  m_sigmaPlus(0.),
762  m_status(0),
763  m_surface(&perigee.associatedSurface()),
765  m_weight(1.),
766  m_weight2(1.) {
767  // perigee axis needed for propagation of fitted parameters
768  m_sensorDirection = Amg::Vector3D(m_surface->transform().rotation().col(2));
769 
770  // is this perigee to be used as a measurement?
771  if (perigee.covariance() && !m_outlier) {
772  // use as measurement
773  m_numberDoF = 5;
774  m_outlier = false;
775 
776  // perigeeParameters as HepVector
777  Amg::Vector3D momentum = perigee.momentum();
778  double ptInv0 = 1. / momentum.perp();
779  double cosPhi = ptInv0 * momentum(0);
780  double sinPhi = ptInv0 * momentum(1);
781  double cotTheta = ptInv0 * momentum(2);
782  ptInv0 *= perigee.charge();
783 
785  parameters(0) = perigee.parameters()[Trk::d0];
786  parameters(1) = perigee.parameters()[Trk::z0];
787  parameters(2) = cosPhi;
788  parameters(3) = sinPhi;
789  parameters(4) = cotTheta;
790  parameters(5) = ptInv0;
792 
793  // weight = inverse covariance
794  AmgSymMatrix(5) covariance(*perigee.covariance());
795 
796  // convert to internal units (TeV) to avoid rounding
797  for (int row = 0; row < 5; ++row) {
798  covariance(4, row) *= Gaudi::Units::TeV;
799  covariance(row, 4) = covariance(4, row);
800  }
801  covariance(4, 4) *= Gaudi::Units::TeV;
802  covariance.inverse();
803 
804  JacobianCotThetaPtToThetaP jacobian(cotTheta, ptInv0);
806  Amg::MatrixX(jacobian * covariance * jacobian.transpose());
807  }
808 }
809 
810 // transverseVertex constructor
812  double sigma)

◆ FitMeasurement() [10/11]

Trk::FitMeasurement::FitMeasurement ( double  d0,
const Amg::Vector3D position,
double  sigma 
)

Definition at line 815 of file FitMeasurement.cxx.

832  {},
833  m_normal{},
834  m_numberDoF(1),
835  m_numericalDerivative(false),
836  m_outlier(false),
838  m_perigee{},
839  m_perigeeWeight{},
841  m_qOverP(0.),
843  m_residual(0),
844  m_scaleFactor(0.),
845  m_scatterPhi(0.),
846  m_scatterTheta(0.),
847  m_scatteringAngle(0.),
849  m_secondResidual(0.),
850  m_sensorDirection(Amg::Vector3D(0., 0., 1.)),
851  m_sigma(0.),
852  m_sigmaMinus(0.),
853  m_sigmaPlus(0.),
855  m_status(0),
858  m_weight(1. / sigma),
859  m_weight2(1.) {}
860 
861 // destructor

◆ ~FitMeasurement()

Trk::FitMeasurement::~FitMeasurement ( void  )

Definition at line 866 of file FitMeasurement.cxx.

871  {

◆ FitMeasurement() [11/11]

Trk::FitMeasurement::FitMeasurement ( const FitMeasurement )
private

Member Function Documentation

◆ afterCalo()

bool Trk::FitMeasurement::afterCalo ( void  ) const
inline

Definition at line 243 of file FitMeasurement.h.

243  {
244  return m_afterCalo;
245 }

◆ alignmentAngle() [1/2]

void Trk::FitMeasurement::alignmentAngle ( double  value)
inline

Definition at line 251 of file FitMeasurement.h.

251  {
253 }

◆ alignmentAngle() [2/2]

double Trk::FitMeasurement::alignmentAngle ( void  ) const
inline

Definition at line 247 of file FitMeasurement.h.

247  {
248  return m_scatterPhi;
249 }

◆ alignmentEffects()

const AlignmentEffectsOnTrack * Trk::FitMeasurement::alignmentEffects ( void  ) const
inline

Definition at line 255 of file FitMeasurement.h.

256  {
257  return m_alignmentEffects;
258 }

◆ alignmentOffset() [1/2]

void Trk::FitMeasurement::alignmentOffset ( double  value)
inline

Definition at line 264 of file FitMeasurement.h.

264  {
266 }

◆ alignmentOffset() [2/2]

double Trk::FitMeasurement::alignmentOffset ( void  ) const
inline

Definition at line 260 of file FitMeasurement.h.

260  {
261  return m_scatterTheta;
262 }

◆ alignmentParameter() [1/2]

void Trk::FitMeasurement::alignmentParameter ( unsigned  value)
inline

Definition at line 272 of file FitMeasurement.h.

272  {
274 }

◆ alignmentParameter() [2/2]

unsigned Trk::FitMeasurement::alignmentParameter ( void  ) const
inline

Definition at line 268 of file FitMeasurement.h.

268  {
269  return m_alignmentParameter;
270 }

◆ alignmentParameter2() [1/2]

void Trk::FitMeasurement::alignmentParameter2 ( unsigned  value)
inline

Definition at line 280 of file FitMeasurement.h.

280  {
282 }

◆ alignmentParameter2() [2/2]

unsigned Trk::FitMeasurement::alignmentParameter2 ( void  ) const
inline

Definition at line 276 of file FitMeasurement.h.

276  {
277  return m_alignmentParameter2;
278 }

◆ d0()

double Trk::FitMeasurement::d0 ( void  ) const
inline

Definition at line 316 of file FitMeasurement.h.

316  {
317  return m_d0;
318 }

◆ derivative() [1/3]

void Trk::FitMeasurement::derivative ( double *  pointer)
inline

Definition at line 292 of file FitMeasurement.h.

292  {
293  m_derivative = pointer;
294 }

◆ derivative() [2/3]

double Trk::FitMeasurement::derivative ( int  param) const
inline

Definition at line 284 of file FitMeasurement.h.

284  {
285  return *(m_derivative + param);
286 }

◆ derivative() [3/3]

void Trk::FitMeasurement::derivative ( int  param,
double  value 
)
inline

Definition at line 288 of file FitMeasurement.h.

288  {
289  *(m_derivative + param) = value;
290 }

◆ derivative2() [1/3]

void Trk::FitMeasurement::derivative2 ( double *  pointer)
inline

Definition at line 304 of file FitMeasurement.h.

304  {
305  m_derivative2 = pointer;
306 }

◆ derivative2() [2/3]

double Trk::FitMeasurement::derivative2 ( int  param) const
inline

Definition at line 296 of file FitMeasurement.h.

296  {
297  return *(m_derivative2 + param);
298 }

◆ derivative2() [3/3]

void Trk::FitMeasurement::derivative2 ( int  param,
double  value 
)
inline

Definition at line 300 of file FitMeasurement.h.

300  {
301  *(m_derivative2 + param) = value;
302 }

◆ derivativeRow() [1/2]

void Trk::FitMeasurement::derivativeRow ( int  row)
inline

Definition at line 312 of file FitMeasurement.h.

312  {
314 }

◆ derivativeRow() [2/2]

int Trk::FitMeasurement::derivativeRow ( void  ) const
inline

Definition at line 308 of file FitMeasurement.h.

308  {
309  return m_derivativeRow;
310 }

◆ energyLoss()

double Trk::FitMeasurement::energyLoss ( void  ) const
inline

Definition at line 320 of file FitMeasurement.h.

320  {
321  return m_energyLoss;
322 }

◆ energyLossSigma()

double Trk::FitMeasurement::energyLossSigma ( void  ) const
inline

Definition at line 324 of file FitMeasurement.h.

324  {
325  return m_sigma;
326 }

◆ firstParameter() [1/2]

void Trk::FitMeasurement::firstParameter ( unsigned  value)
inline

Definition at line 332 of file FitMeasurement.h.

332  {
334 }

◆ firstParameter() [2/2]

unsigned Trk::FitMeasurement::firstParameter ( void  ) const
inline

Definition at line 328 of file FitMeasurement.h.

328  {
329  return m_firstParameter;
330 }

◆ flipDriftDirection()

void Trk::FitMeasurement::flipDriftDirection ( void  )
inline

Definition at line 336 of file FitMeasurement.h.

336  {
337  if (m_type == driftCircle) {
338  m_flippedDriftDistance = true;
340  }
341 }

◆ hasIntersection()

bool Trk::FitMeasurement::hasIntersection ( ExtrapolationType  type) const
inline

Definition at line 355 of file FitMeasurement.h.

355  {
356  return (bool)m_intersection[type];
357 }

◆ hitIndex()

int Trk::FitMeasurement::hitIndex ( void  ) const
inline

Definition at line 343 of file FitMeasurement.h.

343  {
344  return m_hitIndex;
345 }

◆ hitOnTrack() [1/2]

HitOnTrack * Trk::FitMeasurement::hitOnTrack ( void  )
inline

Definition at line 351 of file FitMeasurement.h.

351  {
352  return m_hitOnTrack;
353 }

◆ hitOnTrack() [2/2]

const HitOnTrack * Trk::FitMeasurement::hitOnTrack ( void  ) const
inline

Definition at line 347 of file FitMeasurement.h.

347  {
348  return m_hitOnTrack;
349 }

◆ intersection() [1/2]

const TrackSurfaceIntersection & Trk::FitMeasurement::intersection ( ExtrapolationType  type) const
inline

Definition at line 359 of file FitMeasurement.h.

360  {
361  return *m_intersection[type];
362 }

◆ intersection() [2/2]

void Trk::FitMeasurement::intersection ( ExtrapolationType  type,
const std::optional< TrackSurfaceIntersection > &  value 
)

Definition at line 874 of file FitMeasurement.cxx.

875  {
876  log << " residual 1........2 r phi z"
877  << " sigma 1.......2 energy energyLoss scatteringAngle "

◆ is2Dimensional()

bool Trk::FitMeasurement::is2Dimensional ( void  ) const
inline

Definition at line 423 of file FitMeasurement.h.

423  {
424  return (m_numberDoF == 2);
425 }

◆ isAlignment()

bool Trk::FitMeasurement::isAlignment ( void  ) const
inline

Definition at line 364 of file FitMeasurement.h.

364  {
365  return (m_type == alignment);
366 }

◆ isCluster()

bool Trk::FitMeasurement::isCluster ( void  ) const
inline

Definition at line 368 of file FitMeasurement.h.

368  {
369  return (m_type == pixelCluster || m_type == stripCluster ||
371 }

◆ isDrift()

bool Trk::FitMeasurement::isDrift ( void  ) const
inline

Definition at line 373 of file FitMeasurement.h.

373  {
374  return (m_type == driftCircle);
375 }

◆ isEnergyDeposit()

bool Trk::FitMeasurement::isEnergyDeposit ( void  ) const
inline

Definition at line 377 of file FitMeasurement.h.

377  {
378  return (m_type == energyDeposit);
379 }

◆ isFlipped()

bool Trk::FitMeasurement::isFlipped ( void  ) const
inline

Definition at line 381 of file FitMeasurement.h.

381  {
383 }

◆ isMaterialDelimiter()

bool Trk::FitMeasurement::isMaterialDelimiter ( void  ) const
inline

Definition at line 385 of file FitMeasurement.h.

385  {
386  return (m_type == materialDelimiter);
387 }

◆ isOutlier()

bool Trk::FitMeasurement::isOutlier ( void  ) const
inline

Definition at line 389 of file FitMeasurement.h.

389  {
390  return m_outlier;
391 }

◆ isPassive()

bool Trk::FitMeasurement::isPassive ( void  ) const
inline

Definition at line 393 of file FitMeasurement.h.

393  {
394  return (m_type > bremPoint);
395 }

◆ isPerigee()

bool Trk::FitMeasurement::isPerigee ( void  ) const
inline

Definition at line 397 of file FitMeasurement.h.

397  {
398  return (m_type == perigeeParameters);
399 }

◆ isPositionMeasurement()

bool Trk::FitMeasurement::isPositionMeasurement ( void  ) const
inline

Definition at line 401 of file FitMeasurement.h.

401  {
402  return (m_type < barrelScatterer);
403 }

◆ isPseudo()

bool Trk::FitMeasurement::isPseudo ( void  ) const
inline

Definition at line 405 of file FitMeasurement.h.

405  {
406  return (m_type == pseudoMeasurement);
407 }

◆ isScatterer()

bool Trk::FitMeasurement::isScatterer ( void  ) const
inline

Definition at line 409 of file FitMeasurement.h.

409  {
410  return (m_type == barrelScatterer || m_type == endcapScatterer ||
412  m_type == endcapInert);
413 }

◆ isTrapezoidCluster()

bool Trk::FitMeasurement::isTrapezoidCluster ( void  ) const
inline

Definition at line 415 of file FitMeasurement.h.

415  {
416  return (m_type == trapezoidCluster);
417 }

◆ isVertex()

bool Trk::FitMeasurement::isVertex ( void  ) const
inline

Definition at line 419 of file FitMeasurement.h.

419  {
420  return (m_type == vertex || m_type == transverseVertex);
421 }

◆ lastParameter() [1/2]

void Trk::FitMeasurement::lastParameter ( unsigned  value,
bool  afterCalo = false 
)
inline

Definition at line 431 of file FitMeasurement.h.

431  {
434 }

◆ lastParameter() [2/2]

unsigned Trk::FitMeasurement::lastParameter ( void  ) const
inline

Definition at line 427 of file FitMeasurement.h.

427  {
428  return m_lastParameter;
429 }

◆ materialEffects()

const MaterialEffectsBase * Trk::FitMeasurement::materialEffects ( void  ) const
inline

Definition at line 436 of file FitMeasurement.h.

436  {
437  return m_materialEffects;
438 }

◆ measurementBase()

const MeasurementBase * Trk::FitMeasurement::measurementBase ( void  ) const
inline

Definition at line 440 of file FitMeasurement.h.

440  {
441  return m_measurementBase;
442 }

◆ minEnergyDeposit()

double Trk::FitMeasurement::minEnergyDeposit ( void  ) const
inline

Definition at line 444 of file FitMeasurement.h.

444  {
445  return m_minEnergyDeposit;
446 }

◆ minimizationDirection() [1/2]

void Trk::FitMeasurement::minimizationDirection ( const Amg::Vector3D value)
inline

Definition at line 452 of file FitMeasurement.h.

452  {
454 }

◆ minimizationDirection() [2/2]

const Amg::Vector3D & Trk::FitMeasurement::minimizationDirection ( void  ) const
inline

Definition at line 448 of file FitMeasurement.h.

448  {
450 }

◆ normal()

const Amg::Vector3D & Trk::FitMeasurement::normal ( void  ) const
inline

Definition at line 456 of file FitMeasurement.h.

456  {
457  return m_normal;
458 }

◆ numberDoF() [1/2]

void Trk::FitMeasurement::numberDoF ( int  value)
inline

Definition at line 466 of file FitMeasurement.h.

466  {
467  m_numberDoF = value;
468 }

◆ numberDoF() [2/2]

int Trk::FitMeasurement::numberDoF ( void  ) const
inline

Definition at line 460 of file FitMeasurement.h.

460  {
461  if (m_outlier)
462  return 0;
463  return m_numberDoF;
464 }

◆ numericalDerivative()

bool Trk::FitMeasurement::numericalDerivative ( void  ) const
inline

Definition at line 470 of file FitMeasurement.h.

470  {
471  return m_numericalDerivative;
472 }

◆ operator=()

FitMeasurement& Trk::FitMeasurement::operator= ( const FitMeasurement )
private

◆ perigee()

const Amg::VectorX & Trk::FitMeasurement::perigee ( void  ) const
inline

Definition at line 474 of file FitMeasurement.h.

474  {
475  return m_perigee;
476 }

◆ perigeeWeight()

const Amg::MatrixX & Trk::FitMeasurement::perigeeWeight ( void  ) const
inline

Definition at line 478 of file FitMeasurement.h.

478  {
479  return m_perigeeWeight;
480 }

◆ position()

const Amg::Vector3D & Trk::FitMeasurement::position ( void  ) const
inline

Definition at line 482 of file FitMeasurement.h.

482  {
483  return m_position;
484 }

◆ print()

void Trk::FitMeasurement::print ( MsgStream &  log) const

Definition at line 886 of file FitMeasurement.cxx.

887  {
888  log << std::setw(9) << std::setprecision(3) << *(m_residual + 1);
889  } else if (m_alignmentParameter2) {
890  log << " A" << std::setw(1) << m_alignmentParameter << " A"
891  << std::setw(1) << m_alignmentParameter2 << " ";
892  } else if (m_alignmentParameter) {
893  log << " A" << std::setw(1) << m_alignmentParameter << " ";
894  } else {
895  log << " ";
896  }
897  } else {
898  if (isPositionMeasurement()) {
899  log << std::setw(9) << std::setprecision(3) << *m_residual << " outlier ";
900  } else {
901  log << " ";
902  }
905  }
906  log << std::setw(10) << std::setprecision(1) << position.perp()
907  << std::setw(9) << std::setprecision(4) << position.phi() << std::setw(10)
908  << std::setprecision(1) << position(2);
909 
910  if (isPositionMeasurement()) {
911  log << std::setw(13) << std::setprecision(3) << 1. / m_weight;
912  if (m_numberDoF == 2) {
913  log << std::setw(8) << std::setprecision(3) << 1. / m_weight2;
914  } else if (isDrift()) {
915  log << "(" << std::setw(7) << std::setprecision(3)
916  << m_signedDriftDistance << ")";
917  } else {
918  log << " ";
919  }
920  } else if (isScatterer()) {
921  log << std::setw(33) << std::setprecision(3)
922  << 1. / std::abs(m_qOverP * Gaudi::Units::GeV) << std::setw(12)
923  << std::setprecision(4) << m_energyLoss / Gaudi::Units::GeV;
924  if (m_type < barrelInert || m_scatteringAngle > 0.) {
925  double totScat = sqrt(m_scatteringAngle * std::abs(m_qOverP) *
926  m_scatteringAngle * std::abs(m_qOverP) +
928  log << std::setw(16) << std::setprecision(6) << totScat << std::setw(13)
929  << std::setprecision(3) << m_radiationThickness;
930  }
931  } else if (isAlignment()) {
932  log << std::setw(13) << std::setprecision(3) << 1. / m_weight;
933  if (m_numberDoF == 2) {
934  log << std::setw(8) << std::setprecision(3) << 1. / m_weight2;
935  }
936  } else if (isEnergyDeposit()) {
937  if (m_numberDoF) {
938  log << std::setw(13) << std::setprecision(3)
939  << 1. / (m_weight * Gaudi::Units::GeV) << std::setw(32)
940  << std::setprecision(4) << m_energyLoss / Gaudi::Units::GeV;
941  } else {
942  log << std::setw(33) << std::setprecision(3)
943  << 1. / std::abs(m_qOverP * Gaudi::Units::GeV);
944  log << std::setw(12) << std::setprecision(4)
946  }
947  }
948  log << std::endl;
949 }
950 
951 void FitMeasurement::qOverP(double value) {
952  m_qOverP = value;
953 

◆ printHeading()

void Trk::FitMeasurement::printHeading ( MsgStream &  log)
static

Definition at line 879 of file FitMeasurement.cxx.

882  {
884  log << m_type << std::setiosflags(std::ios::fixed);

◆ qOverP() [1/2]

void Trk::FitMeasurement::qOverP ( double  value)

Definition at line 955 of file FitMeasurement.cxx.

957  {
958  double pSquare = 1. / (value * value);
959  m_betaSquared = pSquare / (pSquare + m_particleMassSquared);
960  m_weight = std::sqrt(m_betaSquared * pSquare) / m_scatteringAngle;
961  }
962 
964  if (m_weight > 0) {
965  m_weight = sqrt(1. / (1. / m_weight / m_weight +
967  } else {
969  }
970  }
971 }
972 
974  double totalRadiationThickness) {
975  // update the m_scatteringAngleOffSet at initialisation

◆ qOverP() [2/2]

double Trk::FitMeasurement::qOverP ( void  ) const
inline

Definition at line 486 of file FitMeasurement.h.

486  {
487  return m_qOverP;
488 }

◆ radiationThickness()

double Trk::FitMeasurement::radiationThickness ( void  ) const
inline

Definition at line 490 of file FitMeasurement.h.

490  {
491  return m_radiationThickness;
492 }

◆ residual() [1/3]

void Trk::FitMeasurement::residual ( double  value)
inline

Definition at line 498 of file FitMeasurement.h.

498  {
499  *m_residual = value;
500 }

◆ residual() [2/3]

void Trk::FitMeasurement::residual ( std::vector< double >::iterator  pointer)
inline

Definition at line 502 of file FitMeasurement.h.

502  {
503  m_residual = pointer;
504 }

◆ residual() [3/3]

double Trk::FitMeasurement::residual ( void  ) const
inline

Definition at line 494 of file FitMeasurement.h.

494  {
495  return *m_residual;
496 }

◆ residual2() [1/2]

void Trk::FitMeasurement::residual2 ( double  value)
inline

Definition at line 510 of file FitMeasurement.h.

510  {
511  *(m_residual + 1) = value;
512 }

◆ residual2() [2/2]

double Trk::FitMeasurement::residual2 ( void  ) const
inline

Definition at line 506 of file FitMeasurement.h.

506  {
507  return *(m_residual + 1);
508 }

◆ scattererPhi() [1/2]

void Trk::FitMeasurement::scattererPhi ( double  value)
inline

Definition at line 518 of file FitMeasurement.h.

518  {
520 }

◆ scattererPhi() [2/2]

double Trk::FitMeasurement::scattererPhi ( void  ) const
inline

Definition at line 514 of file FitMeasurement.h.

514  {
515  return m_scatterPhi;
516 }

◆ scattererTheta() [1/2]

void Trk::FitMeasurement::scattererTheta ( double  value)
inline

Definition at line 526 of file FitMeasurement.h.

526  {
528 }

◆ scattererTheta() [2/2]

double Trk::FitMeasurement::scattererTheta ( void  ) const
inline

Definition at line 522 of file FitMeasurement.h.

522  {
523  return m_scatterTheta;
524 }

◆ scatteringAngle()

void Trk::FitMeasurement::scatteringAngle ( double  angle,
double  totalRadiationThickness 
)

Definition at line 977 of file FitMeasurement.cxx.

978  {
979  //
980  double angle_iPat = angle * std::abs(m_qOverP);
981 
982  // std::cout << " scatteringAngle type " << m_type << " angle_iPat "
983  // << angle_iPat << " m_scatteringAngleOffSet " <<
984  // m_scatteringAngleOffSet;
985 
986  if (angle_iPat < m_scatteringAngleOffSet) {
989  angle_iPat * angle_iPat);
990  } else {
992  }
993  // std::cout << " corrected m_scatteringAngleOffSet " <<
994  // m_scatteringAngleOffSet << std::endl;
995  }
996 
998  m_radiationThickness = totalRadiationThickness;
999  if (m_type == barrelInert) {
1001  } else if (m_type == endcapInert) {
1003  }
1004 
1005  if (m_qOverP != 0.) {
1006  double pSquare = 1. / (m_qOverP * m_qOverP);
1007  m_betaSquared = pSquare / (pSquare + m_particleMassSquared);
1008  m_weight = std::sqrt(m_betaSquared * pSquare) / m_scatteringAngle;
1010  if (m_weight > 0) {
1011  m_weight =
1012  sqrt(1. / (1. / m_weight / m_weight +
1014  } else {
1016  }
1017  }
1018  }
1019 }
1020 
1022  double sigma = std::sqrt(

◆ sensorDirection()

const Amg::Vector3D & Trk::FitMeasurement::sensorDirection ( void  ) const
inline

Definition at line 530 of file FitMeasurement.h.

530  {
531  return m_sensorDirection;
532 }

◆ setEnergyGain()

void Trk::FitMeasurement::setEnergyGain ( void  )
inline

Definition at line 534 of file FitMeasurement.h.

534  {
535  m_energyLoss = -fabs(m_energyLoss);
536 }

◆ setMaterialEffectsOwner()

void Trk::FitMeasurement::setMaterialEffectsOwner ( void  )
inline

Definition at line 538 of file FitMeasurement.h.

538  {
539  m_materialEffectsOwner = true;
540 }

◆ setNumericalDerivative()

void Trk::FitMeasurement::setNumericalDerivative ( void  )
inline

Definition at line 542 of file FitMeasurement.h.

542  {
543  m_numericalDerivative = true;
544 }

◆ setOutlier()

void Trk::FitMeasurement::setOutlier ( void  )
inline

Definition at line 546 of file FitMeasurement.h.

546  {
547  m_numberDoF = 0;
548  m_outlier = true;
549  m_weight = 1.0;
550  m_weight2 = 1.0;
551 }

◆ setSigma()

void Trk::FitMeasurement::setSigma ( void  )
inline

Definition at line 553 of file FitMeasurement.h.

553  {
554  m_weight = 1. / m_sigma;
555 }

◆ setSigmaMinus()

void Trk::FitMeasurement::setSigmaMinus ( void  )
inline

Definition at line 557 of file FitMeasurement.h.

557  {
558  m_weight = 1. / m_sigmaMinus;
559 }

◆ setSigmaPlus()

void Trk::FitMeasurement::setSigmaPlus ( void  )
inline

Definition at line 561 of file FitMeasurement.h.

561  {
562  m_weight = 1. / m_sigmaPlus;
563 }

◆ setSigmaSymmetric()

void Trk::FitMeasurement::setSigmaSymmetric ( void  )

Definition at line 1025 of file FitMeasurement.cxx.

◆ sigma()

double Trk::FitMeasurement::sigma ( void  ) const
inline

Definition at line 565 of file FitMeasurement.h.

565  {
566  if (!m_weight)
567  return 0;
568  return 1. / m_weight;
569 }

◆ sigma2()

double Trk::FitMeasurement::sigma2 ( void  ) const
inline

Definition at line 571 of file FitMeasurement.h.

571  {
572  if (!m_weight2)
573  return 0;
574  return 1. / m_weight2;
575 }

◆ signedDriftDistance()

double Trk::FitMeasurement::signedDriftDistance ( void  ) const
inline

Definition at line 577 of file FitMeasurement.h.

577  {
578  return m_signedDriftDistance;
579 }

◆ status()

int Trk::FitMeasurement::status ( void  ) const
inline

Definition at line 581 of file FitMeasurement.h.

581  {
582  return m_status;
583 }

◆ surface()

const Surface * Trk::FitMeasurement::surface ( void  ) const
inline

Definition at line 585 of file FitMeasurement.h.

585  {
586  return m_surface;
587 }

◆ type()

MeasurementType Trk::FitMeasurement::type ( void  ) const
inline

Definition at line 589 of file FitMeasurement.h.

589  {
590  return m_type;
591 }

◆ unsetOutlier()

void Trk::FitMeasurement::unsetOutlier ( void  )
inline

Definition at line 593 of file FitMeasurement.h.

593  {
594  m_outlier = false;
595 }

◆ weight()

double Trk::FitMeasurement::weight ( void  ) const
inline

Definition at line 597 of file FitMeasurement.h.

597  {
598  return m_weight;
599 }

◆ weight2()

double Trk::FitMeasurement::weight2 ( void  ) const
inline

Definition at line 601 of file FitMeasurement.h.

601  {
602  return m_weight2;
603 }

Member Data Documentation

◆ m_afterCalo

bool Trk::FitMeasurement::m_afterCalo
private

Definition at line 190 of file FitMeasurement.h.

◆ m_alignmentEffects

const AlignmentEffectsOnTrack* Trk::FitMeasurement::m_alignmentEffects
private

Definition at line 191 of file FitMeasurement.h.

◆ m_alignmentParameter

unsigned Trk::FitMeasurement::m_alignmentParameter
private

Definition at line 192 of file FitMeasurement.h.

◆ m_alignmentParameter2

unsigned Trk::FitMeasurement::m_alignmentParameter2
private

Definition at line 193 of file FitMeasurement.h.

◆ m_betaSquared

double Trk::FitMeasurement::m_betaSquared
private

Definition at line 194 of file FitMeasurement.h.

◆ m_d0

double Trk::FitMeasurement::m_d0
private

Definition at line 198 of file FitMeasurement.h.

◆ m_derivative

double* Trk::FitMeasurement::m_derivative
private

Definition at line 195 of file FitMeasurement.h.

◆ m_derivative2

double* Trk::FitMeasurement::m_derivative2
private

Definition at line 196 of file FitMeasurement.h.

◆ m_derivativeRow

int Trk::FitMeasurement::m_derivativeRow
private

Definition at line 197 of file FitMeasurement.h.

◆ m_energyLoss

double Trk::FitMeasurement::m_energyLoss
private

Definition at line 199 of file FitMeasurement.h.

◆ m_firstParameter

unsigned Trk::FitMeasurement::m_firstParameter
private

Definition at line 200 of file FitMeasurement.h.

◆ m_flippedDriftDistance

bool Trk::FitMeasurement::m_flippedDriftDistance
private

Definition at line 201 of file FitMeasurement.h.

◆ m_hitIndex

int Trk::FitMeasurement::m_hitIndex
private

Definition at line 202 of file FitMeasurement.h.

◆ m_hitOnTrack

HitOnTrack* Trk::FitMeasurement::m_hitOnTrack
private

Definition at line 203 of file FitMeasurement.h.

◆ m_intersection

std::array<std::optional<TrackSurfaceIntersection>, ExtrapolationTypes> Trk::FitMeasurement::m_intersection
private

Definition at line 205 of file FitMeasurement.h.

◆ m_lastParameter

unsigned Trk::FitMeasurement::m_lastParameter
private

Definition at line 206 of file FitMeasurement.h.

◆ m_materialEffects

const MaterialEffectsBase* Trk::FitMeasurement::m_materialEffects
private

Definition at line 207 of file FitMeasurement.h.

◆ m_materialEffectsOwner

bool Trk::FitMeasurement::m_materialEffectsOwner
private

Definition at line 208 of file FitMeasurement.h.

◆ m_measurementBase

const MeasurementBase* Trk::FitMeasurement::m_measurementBase
private

Definition at line 209 of file FitMeasurement.h.

◆ m_minEnergyDeposit

double Trk::FitMeasurement::m_minEnergyDeposit
private

Definition at line 210 of file FitMeasurement.h.

◆ m_minimizationDirection

Amg::Vector3D Trk::FitMeasurement::m_minimizationDirection
private

Definition at line 211 of file FitMeasurement.h.

◆ m_normal

Amg::Vector3D Trk::FitMeasurement::m_normal
private

Definition at line 212 of file FitMeasurement.h.

◆ m_numberDoF

int Trk::FitMeasurement::m_numberDoF
private

Definition at line 213 of file FitMeasurement.h.

◆ m_numericalDerivative

bool Trk::FitMeasurement::m_numericalDerivative
private

Definition at line 214 of file FitMeasurement.h.

◆ m_outlier

bool Trk::FitMeasurement::m_outlier
private

Definition at line 215 of file FitMeasurement.h.

◆ m_particleMassSquared

double Trk::FitMeasurement::m_particleMassSquared
private

Definition at line 216 of file FitMeasurement.h.

◆ m_perigee

Amg::VectorX Trk::FitMeasurement::m_perigee
private

Definition at line 217 of file FitMeasurement.h.

◆ m_perigeeWeight

Amg::MatrixX Trk::FitMeasurement::m_perigeeWeight
private

Definition at line 218 of file FitMeasurement.h.

◆ m_position

Amg::Vector3D Trk::FitMeasurement::m_position
private

Definition at line 219 of file FitMeasurement.h.

◆ m_qOverP

double Trk::FitMeasurement::m_qOverP
private

Definition at line 220 of file FitMeasurement.h.

◆ m_radiationThickness

double Trk::FitMeasurement::m_radiationThickness
private

Definition at line 221 of file FitMeasurement.h.

◆ m_residual

std::vector<double>::iterator Trk::FitMeasurement::m_residual
private

Definition at line 222 of file FitMeasurement.h.

◆ m_scaleFactor

double Trk::FitMeasurement::m_scaleFactor
private

Definition at line 223 of file FitMeasurement.h.

◆ m_scatteringAngle

double Trk::FitMeasurement::m_scatteringAngle
private

Definition at line 226 of file FitMeasurement.h.

◆ m_scatteringAngleOffSet

double Trk::FitMeasurement::m_scatteringAngleOffSet
private

Definition at line 227 of file FitMeasurement.h.

◆ m_scatterPhi

double Trk::FitMeasurement::m_scatterPhi
private

Definition at line 224 of file FitMeasurement.h.

◆ m_scatterTheta

double Trk::FitMeasurement::m_scatterTheta
private

Definition at line 225 of file FitMeasurement.h.

◆ m_secondResidual

double Trk::FitMeasurement::m_secondResidual
private

Definition at line 228 of file FitMeasurement.h.

◆ m_sensorDirection

Amg::Vector3D Trk::FitMeasurement::m_sensorDirection
private

Definition at line 229 of file FitMeasurement.h.

◆ m_sigma

double Trk::FitMeasurement::m_sigma
private

Definition at line 230 of file FitMeasurement.h.

◆ m_sigmaMinus

double Trk::FitMeasurement::m_sigmaMinus
private

Definition at line 231 of file FitMeasurement.h.

◆ m_sigmaPlus

double Trk::FitMeasurement::m_sigmaPlus
private

Definition at line 232 of file FitMeasurement.h.

◆ m_signedDriftDistance

double Trk::FitMeasurement::m_signedDriftDistance
private

Definition at line 233 of file FitMeasurement.h.

◆ m_status

int Trk::FitMeasurement::m_status
private

Definition at line 234 of file FitMeasurement.h.

◆ m_surface

const Surface* Trk::FitMeasurement::m_surface
private

Definition at line 235 of file FitMeasurement.h.

◆ m_type

MeasurementType Trk::FitMeasurement::m_type
private

Definition at line 236 of file FitMeasurement.h.

◆ m_weight

double Trk::FitMeasurement::m_weight
private

Definition at line 237 of file FitMeasurement.h.

◆ m_weight2

double Trk::FitMeasurement::m_weight2
private

Definition at line 238 of file FitMeasurement.h.


The documentation for this class was generated from the following files:
Trk::FitMeasurement::m_scatterTheta
double m_scatterTheta
Definition: FitMeasurement.h:225
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
query_example.row
row
Definition: query_example.py:24
Trk::FitMeasurement::intersection
const TrackSurfaceIntersection & intersection(ExtrapolationType type) const
Definition: FitMeasurement.h:359
Trk::FitMeasurement::m_betaSquared
double m_betaSquared
Definition: FitMeasurement.h:194
GeV
#define GeV
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/Root/HelperFunctions.cxx:17
Amg::VectorX
Eigen::Matrix< double, Eigen::Dynamic, 1 > VectorX
Dynamic Vector - dynamic allocation.
Definition: EventPrimitives.h:30
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition: EventPrimitives.h:27
Trk::bremPoint
@ bremPoint
Definition: MeasurementType.h:35
perigeeParameters
Definition: ExtrapolatorComparisonTest.h:42
Trk::locX
@ locX
Definition: ParamDefs.h:37
Trk::FitMeasurement::m_d0
double m_d0
Definition: FitMeasurement.h:198
Trk::locY
@ locY
local cartesian
Definition: ParamDefs.h:38
Trk::FitMeasurement::m_intersection
std::array< std::optional< TrackSurfaceIntersection >, ExtrapolationTypes > m_intersection
Definition: FitMeasurement.h:205
Trk::FitMeasurement::m_hitOnTrack
HitOnTrack * m_hitOnTrack
Definition: FitMeasurement.h:203
Trk::PerigeeSurface
Definition: PerigeeSurface.h:43
Trk::materialDelimiter
@ materialDelimiter
Definition: MeasurementType.h:37
Trk::FitMeasurement::m_normal
Amg::Vector3D m_normal
Definition: FitMeasurement.h:212
Trk::FitMeasurement::m_derivativeRow
int m_derivativeRow
Definition: FitMeasurement.h:197
Trk::FitMeasurement::surface
const Surface * surface(void) const
Definition: FitMeasurement.h:585
Trk::FitMeasurement::isDrift
bool isDrift(void) const
Definition: FitMeasurement.h:373
yodamerge_tmp.axis
list axis
Definition: yodamerge_tmp.py:241
Trk::LocalParameters::contains
bool contains(ParamDefs par) const
The simple check for the clients whether the parameter is contained.
Trk::calorimeterScatterer
@ calorimeterScatterer
Definition: MeasurementType.h:29
Trk::FitMeasurement::m_scatterPhi
double m_scatterPhi
Definition: FitMeasurement.h:224
mc.diff
diff
Definition: mc.SFGenPy8_MuMu_DD.py:14
Trk::FitMeasurement::m_minimizationDirection
Amg::Vector3D m_minimizationDirection
Definition: FitMeasurement.h:211
Trk::z0
@ z0
Definition: ParamDefs.h:64
athena.value
value
Definition: athena.py:124
Trk::MaterialEffectsBase::thicknessInX0
double thicknessInX0() const
returns the actually traversed material .
Trk::FitMeasurement::~FitMeasurement
~FitMeasurement(void)
Definition: FitMeasurement.cxx:866
python.SystemOfUnits.TeV
int TeV
Definition: SystemOfUnits.py:158
Trk::FitMeasurement::m_materialEffects
const MaterialEffectsBase * m_materialEffects
Definition: FitMeasurement.h:207
Trk::FitMeasurement::m_particleMassSquared
double m_particleMassSquared
Definition: FitMeasurement.h:216
Trk::FitMeasurement::position
const Amg::Vector3D & position(void) const
Definition: FitMeasurement.h:482
Trk::AlignmentEffectsOnTrack::deltaAngle
double deltaAngle() const
returns the
Definition: AlignmentEffectsOnTrack.h:103
Trk::FitMeasurement::d0
double d0(void) const
Definition: FitMeasurement.h:316
Trk::barrelScatterer
@ barrelScatterer
Definition: MeasurementType.h:27
Trk::Surface::center
const Amg::Vector3D & center() const
Returns the center position of the Surface.
Trk::FitMeasurement::m_sensorDirection
Amg::Vector3D m_sensorDirection
Definition: FitMeasurement.h:229
Trk::FitMeasurement::m_sigmaPlus
double m_sigmaPlus
Definition: FitMeasurement.h:232
Trk::FitMeasurement::setSigmaSymmetric
void setSigmaSymmetric(void)
Definition: FitMeasurement.cxx:1025
Trk::FitMeasurement::m_alignmentParameter
unsigned m_alignmentParameter
Definition: FitMeasurement.h:192
Trk::FitMeasurement::m_derivative
double * m_derivative
Definition: FitMeasurement.h:195
Trk::energyDeposit
@ energyDeposit
Definition: MeasurementType.h:32
Trk::FitMeasurement::hitOnTrack
const HitOnTrack * hitOnTrack(void) const
Definition: FitMeasurement.h:347
Trk::FitMeasurement::materialEffects
const MaterialEffectsBase * materialEffects(void) const
Definition: FitMeasurement.h:436
Trk::FitMeasurement::m_alignmentParameter2
unsigned m_alignmentParameter2
Definition: FitMeasurement.h:193
Trk::stripCluster
@ stripCluster
Definition: MeasurementType.h:23
Trk::transverseVertex
@ transverseVertex
Definition: MeasurementType.h:20
Trk::FitMeasurement::type
MeasurementType type(void) const
Definition: FitMeasurement.h:589
Trk::TrackStateOnSurface::Outlier
@ Outlier
This TSoS contains an outlier, that is, it contains a MeasurementBase/RIO_OnTrack which was not used ...
Definition: TrackStateOnSurface.h:122
Trk::AmgSymMatrix
AmgSymMatrix(5) &GXFTrackState
Definition: GXFTrackState.h:156
Trk::FitMeasurement::sigma2
double sigma2(void) const
Definition: FitMeasurement.h:571
Trk::FitMeasurement::m_scaleFactor
double m_scaleFactor
Definition: FitMeasurement.h:223
Trk::FitMeasurement::m_radiationThickness
double m_radiationThickness
Definition: FitMeasurement.h:221
Trk::trapezoidCluster
@ trapezoidCluster
Definition: MeasurementType.h:24
Trk::FitMeasurement::hitIndex
int hitIndex(void) const
Definition: FitMeasurement.h:343
Trk::FitMeasurement::scatteringAngle
void scatteringAngle(double angle, double totalRadiationThickness)
Definition: FitMeasurement.cxx:977
convertTimingResiduals.sum
sum
Definition: convertTimingResiduals.py:55
ParticleGun_EoverP_Config.momentum
momentum
Definition: ParticleGun_EoverP_Config.py:63
Trk::barrelInert
@ barrelInert
Definition: MeasurementType.h:30
Trk::FitMeasurement::m_weight
double m_weight
Definition: FitMeasurement.h:237
Trk::FitMeasurement::measurementBase
const MeasurementBase * measurementBase(void) const
Definition: FitMeasurement.h:440
Trk::FitMeasurement::energyLoss
double energyLoss(void) const
Definition: FitMeasurement.h:320
Trk::FitMeasurement::m_residual
std::vector< double >::iterator m_residual
Definition: FitMeasurement.h:222
Trk::TrackSurfaceIntersection::position
const Amg::Vector3D & position() const
Method to retrieve the position of the Intersection.
Definition: TrackSurfaceIntersection.h:80
Trk::endcapInert
@ endcapInert
Definition: MeasurementType.h:31
angle
double angle(const GeoTrf::Vector2D &a, const GeoTrf::Vector2D &b)
Definition: TRTDetectorFactory_Full.cxx:73
Trk::driftRadius
@ driftRadius
trt, straws
Definition: ParamDefs.h:53
Trk::FitMeasurement::alignmentEffects
const AlignmentEffectsOnTrack * alignmentEffects(void) const
Definition: FitMeasurement.h:255
Trk::FitMeasurement::m_alignmentEffects
const AlignmentEffectsOnTrack * m_alignmentEffects
Definition: FitMeasurement.h:191
Trk::FitMeasurement::signedDriftDistance
double signedDriftDistance(void) const
Definition: FitMeasurement.h:577
Trk::FitMeasurement::m_weight2
double m_weight2
Definition: FitMeasurement.h:238
Trk::Surface::normal
virtual const Amg::Vector3D & normal() const
Returns the normal vector of the Surface (i.e.
Trk::FitMeasurement::m_outlier
bool m_outlier
Definition: FitMeasurement.h:215
Trk::FitMeasurement::status
int status(void) const
Definition: FitMeasurement.h:581
Trk::FitMeasurement::m_position
Amg::Vector3D m_position
Definition: FitMeasurement.h:219
Trk::FitMeasurement::m_sigmaMinus
double m_sigmaMinus
Definition: FitMeasurement.h:231
Trk::FitMeasurement::radiationThickness
double radiationThickness(void) const
Definition: FitMeasurement.h:490
Trk::FitMeasurement::FitMeasurement
FitMeasurement(int hitIndex, HitOnTrack *hitOnTrack, const MeasurementBase *measurementBase)
Definition: FitMeasurement.cxx:45
Trk::FitMeasurement::m_minEnergyDeposit
double m_minEnergyDeposit
Definition: FitMeasurement.h:210
Trk::MeasurementBase::localCovariance
const Amg::MatrixX & localCovariance() const
Interface method to get the localError.
Definition: MeasurementBase.h:138
Trk::FitMeasurement::m_secondResidual
double m_secondResidual
Definition: FitMeasurement.h:228
Trk::FitMeasurement::m_energyLoss
double m_energyLoss
Definition: FitMeasurement.h:199
Trk::FitMeasurement::sigma
double sigma(void) const
Definition: FitMeasurement.h:565
Trk::FitMeasurement::m_signedDriftDistance
double m_signedDriftDistance
Definition: FitMeasurement.h:233
Trk::FitMeasurement::isEnergyDeposit
bool isEnergyDeposit(void) const
Definition: FitMeasurement.h:377
Trk::FitMeasurement::m_flippedDriftDistance
bool m_flippedDriftDistance
Definition: FitMeasurement.h:201
Amg
Definition of ATLAS Math & Geometry primitives (Amg)
Definition: AmgStringHelpers.h:19
Trk::FitMeasurement::m_status
int m_status
Definition: FitMeasurement.h:234
Trk::FitMeasurement::normal
const Amg::Vector3D & normal(void) const
Definition: FitMeasurement.h:456
Trk::Surface::bounds
virtual const SurfaceBounds & bounds() const =0
Surface Bounds method.
Trk::MeasurementBase::associatedSurface
virtual const Surface & associatedSurface() const =0
Interface method to get the associated Surface.
Trk::d0
@ d0
Definition: ParamDefs.h:63
Amg::error
double error(const Amg::MatrixX &mat, int index)
return diagonal error of the matrix caller should ensure the matrix is symmetric and the index is in ...
Definition: EventPrimitivesHelpers.h:40
Trk::FitMeasurement::m_hitIndex
int m_hitIndex
Definition: FitMeasurement.h:202
Trk::TrackParameters
ParametersBase< TrackParametersDim, Charged > TrackParameters
Definition: Tracking/TrkEvent/TrkParameters/TrkParameters/TrackParameters.h:27
Trk::FitMeasurement::m_numberDoF
int m_numberDoF
Definition: FitMeasurement.h:213
Trk::FittedTrajectory
@ FittedTrajectory
Definition: ExtrapolationType.h:19
Trk::FitMeasurement::isAlignment
bool isAlignment(void) const
Definition: FitMeasurement.h:364
Trk::FitMeasurement::m_scatteringAngle
double m_scatteringAngle
Definition: FitMeasurement.h:226
Trk::pseudoMeasurement
@ pseudoMeasurement
Definition: MeasurementType.h:26
Trk::FitMeasurement::afterCalo
bool afterCalo(void) const
Definition: FitMeasurement.h:243
Trk::FitMeasurement::m_perigeeWeight
Amg::MatrixX m_perigeeWeight
Definition: FitMeasurement.h:218
Trk::MeasurementBase::globalPosition
virtual const Amg::Vector3D & globalPosition() const =0
Interface method to get the global Position.
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::FitMeasurement::m_qOverP
double m_qOverP
Definition: FitMeasurement.h:220
Trk::TrackSurfaceIntersection::direction
const Amg::Vector3D & direction() const
Method to retrieve the direction at the Intersection.
Definition: TrackSurfaceIntersection.h:88
Trk::MaterialEffectsBase::EnergyLossEffects
@ EnergyLossEffects
contains energy loss corrections
Definition: MaterialEffectsBase.h:48
Trk::MeasurementBase::localParameters
const LocalParameters & localParameters() const
Interface method to get the LocalParameters.
Definition: MeasurementBase.h:132
Trk::pixelCluster
@ pixelCluster
Definition: MeasurementType.h:22
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
Trk::FitMeasurement::m_numericalDerivative
bool m_numericalDerivative
Definition: FitMeasurement.h:214
Trk::FitMeasurement::m_type
MeasurementType m_type
Definition: FitMeasurement.h:236
Trk::FitMeasurement::m_derivative2
double * m_derivative2
Definition: FitMeasurement.h:196
Trk::FitMeasurement::m_materialEffectsOwner
bool m_materialEffectsOwner
Definition: FitMeasurement.h:208
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
convertTimingResiduals.offset
offset
Definition: convertTimingResiduals.py:71
TRT::Track::cotTheta
@ cotTheta
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:65
physics_parameters.parameters
parameters
Definition: physics_parameters.py:144
Trk::FitMeasurement::m_scatteringAngleOffSet
double m_scatteringAngleOffSet
Definition: FitMeasurement.h:227
Trk::AlignmentEffectsOnTrack::sigmaDeltaTranslation
double sigmaDeltaTranslation() const
returns the
Definition: AlignmentEffectsOnTrack.h:97
Trk::hole
@ hole
Definition: MeasurementType.h:36
Trk::FitMeasurement::m_lastParameter
unsigned m_lastParameter
Definition: FitMeasurement.h:206
Trk::FitMeasurement::isPositionMeasurement
bool isPositionMeasurement(void) const
Definition: FitMeasurement.h:401
Trk::AlignmentEffectsOnTrack::deltaTranslation
double deltaTranslation() const
returns the
Definition: AlignmentEffectsOnTrack.h:91
Trk::AlignmentEffectsOnTrack::associatedSurface
const Trk::Surface & associatedSurface() const
The surface on which this offset is expressed.
Definition: AlignmentEffectsOnTrack.h:128
Trk::FitMeasurement::m_sigma
double m_sigma
Definition: FitMeasurement.h:230
Trk::FitMeasurement::m_perigee
Amg::VectorX m_perigee
Definition: FitMeasurement.h:217
Trk::FitMeasurement::qOverP
double qOverP(void) const
Definition: FitMeasurement.h:486
Trk::FitMeasurement::m_measurementBase
const MeasurementBase * m_measurementBase
Definition: FitMeasurement.h:209
Trk::FitMeasurement::isScatterer
bool isScatterer(void) const
Definition: FitMeasurement.h:409
test_AnalysisBaseEventLoopJob.aa
aa
Definition: test_AnalysisBaseEventLoopJob.py:37
Trk::FitMeasurement::m_firstParameter
unsigned m_firstParameter
Definition: FitMeasurement.h:200
Trk::Surface::transform
const Amg::Transform3D & transform() const
Returns HepGeom::Transform3D by reference.
Trk::FitMeasurement::m_afterCalo
bool m_afterCalo
Definition: FitMeasurement.h:190
Trk::FitMeasurement::m_surface
const Surface * m_surface
Definition: FitMeasurement.h:235
Trk::MaterialEffectsBase::associatedSurface
const Surface & associatedSurface() const
returns the surface to which these m.eff. are associated.
Trk::alignment
@ alignment
Definition: MeasurementType.h:33
mag
Scalar mag() const
mag method
Definition: AmgMatrixBasePlugin.h:26
Trk::endcapScatterer
@ endcapScatterer
Definition: MeasurementType.h:28
Trk::driftCircle
@ driftCircle
Definition: MeasurementType.h:25
Trk::Surface::localToGlobal
virtual void localToGlobal(const Amg::Vector2D &locp, const Amg::Vector3D &mom, Amg::Vector3D &glob) const =0
Specified by each surface type: LocalToGlobal method without dynamic memory allocation.
Trk::FitMeasurement::perigee
const Amg::VectorX & perigee(void) const
Definition: FitMeasurement.h:474
Trk::AlignmentEffectsOnTrack::sigmaDeltaAngle
double sigmaDeltaAngle() const
returns the
Definition: AlignmentEffectsOnTrack.h:109