ATLAS Offline Software
Public Member Functions | Public Attributes | Private Attributes | List of all members
Trk::ExtrapolationCell< T > Class Template Reference

#include <ExtrapolationCell.h>

Collaboration diagram for Trk::ExtrapolationCell< T >:

Public Member Functions

 ExtrapolationCell (T &sParameters, PropDirection pDir=alongMomentum, unsigned int econfig=1)
 start parameters are compulsory
More...
 
void addConfigurationMode (ExtrapolationMode::eMode em)
 add a configuration mode More...
 
bool checkConfigurationMode (ExtrapolationMode::eMode em) const
 check the configuration mode More...
 
bool onLastBoundary () const
 check if you are still at the last boundary surface More...
 
void stepParameters (const T *pars, ExtrapolationMode::eMode fillMode)
 fill or attach the parameters from a step - memory management steered by extrapolationConfiguration More...
 
void stepTransport (const Surface &sf, double pathLength=0., const TransportJacobian *tjac=nullptr)
 fill transport information - path length and TransportJacobian More...
 
void addMaterial (double sfactor, const MaterialProperties *mprop=nullptr)
 fill or attach material, jacobian, step length More...
 
void addMaterial (double step, const Material *mat=nullptr)
 
void stepMaterial (const Surface &sf, const Layer *lay, const Amg::Vector3D &position, double sfactor, const MaterialProperties *mprop=nullptr)
 fill or attach material, jacobian, step length More...
 
bool initialVolume () const
 check if this is the initial volume More...
 
bool finalVolumeReached () const
 trigger for final volume More...
 
bool pathLimitReached (double tolerance=0.001) const
 the materialLimitReached More...
 
bool materialLimitReached (double tolerance=0.001) const
 the materialLimitReached More...
 
void restartAtDestination ()
 prepare destination as new start point - optimised for Kalman filtering More...
 
void finalize (const ExtrapolationCode &ec)
 finalize call - this one is called by the ExtrapoaltionEngine More...
 
void emptyGarbageBin (const ExtrapolationCode &ec)
 memory cleanup More...
 
void setParticleHypothesis (const ParticleHypothesis &hypo)
 set ParticleHypothesis More...
 
void setRadialDirection ()
 estimate the radial direction of the extrapolation cell More...
 
bool checkRadialCompatibility () const
 check whether the propagation stays compatible with initial radial direction More...
 

Public Attributes

T * startParameters
 by reference - need to be defined More...
 
const TrackingVolumestartVolume
 the start volume - needed for the volumeToVolume loop More...
 
const LayerstartLayer
 the start layer - needed for layerToLayer loop More...
 
T * endParameters
 by pointer - are newly created and can be optionally 0 More...
 
const TrackingVolumeendVolume
 the end Volume - can be optionally 0 (needs other trigger to stop) More...
 
const LayerendLayer
 the end Layer - can be optionally 0 (needs other trigger to stop) More...
 
const SurfaceendSurface
 keep track of the destination surface - can be optionally 0 More...
 
T * leadParameters
 the one last truely valid parameter in the stream More...
 
const TrackingVolumeleadVolume
 the lead Volume - carrying the navigation stream More...
 
const LayerleadLayer
 the lead Layer - carrying the navigation stream More...
 
const SurfaceleadLayerSurface
 if the lead layer has sub structure that is the first one to start with More...
 
T * lastBoundaryParameters
 this is the last boundary surface to prevent loops More...
 
const SurfacelastBoundarySurface
 this is the last boundary surface to prevent loops More...
 
T * lastLeadParameters
 this is for caching the last valid More...
 
PropDirection propDirection
 this is the propagation direction More...
 
int radialDirection
 for checking if navigation is radially towards the IP, this has consequences for entering cylinders More...
 
GeometrySignature nextGeometrySignature
 when a boundary is reached the geometry signature is updated to the next volume one More...
 
int navigationStep
 a counter of the navigation Step More...
 
double pathLength
 the path length accumulated More...
 
double pathLimit
 the maximal limit of the extrapolation More...
 
double materialX0
 collected material so far in units of X0 More...
 
double materialLimitX0
 given material limit in X0 More...
 
double materialL0
 collected material so far in units of L0 More...
 
double materialLimitL0
 given material limit in L0 More...
 
int materialProcess
 the material process to be generated More...
 
ParticleHypothesis pHypothesis
 what particle hypothesis to be used, default : pion More...
 
MagneticFieldProperties mFieldMode
 what magnetic field mode to be used, default : fullField More...
 
MaterialUpdateMode materialUpdateMode
 how to deal with the material effect, default: addNoise More...
 
bool navigationCurvilinear
 stay in curvilinear parameters where possible, default : true More...
 
bool sensitiveCurvilinear
 stay in curvilinear parameters even on the destination surface More...
 
bool destinationCurvilinear
 return curvilinear parameters even on destination More...
 
std::vector< ExtrapolationStep< T > > extrapolationSteps
 parameters on sensitive detector elements More...
 
ExtrapolationConfig extrapolationConfiguration
 overall global configuration More...
 
float time
 timing info More...
 
EnergyLosseLoss
 cumulated energy loss More...
 
float zOaTrX
 z/A*rho*dInX0 (for average calculations) More...
 
float zX
 z*dInX0 (for average calculations) More...
 

Private Attributes

std::vector< const T * > m_garbageCollection
 

Detailed Description

template<class T>
class Trk::ExtrapolationCell< T >

templated class as an input-output object of the extrapolation, only public members, since it is a container class

Author
Andreas.Salzburger -at- cern.ch

Definition at line 230 of file ExtrapolationCell.h.

Constructor & Destructor Documentation

◆ ExtrapolationCell()

template<class T >
Trk::ExtrapolationCell< T >::ExtrapolationCell ( T &  sParameters,
PropDirection  pDir = alongMomentum,
unsigned int  econfig = 1 
)
inline

start parameters are compulsory

Definition at line 303 of file ExtrapolationCell.h.

306  : startParameters(&sParameters)
307  , startVolume(nullptr)
308  , startLayer(nullptr)
309  , endParameters(0)
310  , endVolume(nullptr)
311  , endLayer(nullptr)
312  , endSurface(nullptr)
313  , leadParameters(&sParameters)
314  , leadVolume(nullptr)
315  , leadLayer(nullptr)
316  , leadLayerSurface(nullptr)
318  , lastBoundarySurface(nullptr)
319  , lastLeadParameters(&sParameters)
320  , propDirection(pDir)
321  , radialDirection(1)
323  , navigationStep(0)
324  , pathLength(0.)
325  , pathLimit(-1)
326  , materialX0(0.)
327  , materialLimitX0(-1.)
328  , materialL0(0.)
329  , materialLimitL0(-1.)
330  , materialProcess(0)
334  , navigationCurvilinear(true)
335  , sensitiveCurvilinear(false)
336  , destinationCurvilinear(false)
337  , extrapolationConfiguration(econfig)
338  , time(0)
339  , eLoss(nullptr)
340  , zOaTrX(0.)
341  , zX(0.)
342  {}

Member Function Documentation

◆ addConfigurationMode()

template<class T >
void Trk::ExtrapolationCell< T >::addConfigurationMode ( ExtrapolationMode::eMode  em)
inline

add a configuration mode

Definition at line 345 of file ExtrapolationCell.h.

346  {
347  // set the bit corresponding to this mode
349  }

◆ addMaterial() [1/2]

template<class T >
void Trk::ExtrapolationCell< T >::addMaterial ( double  sfactor,
const MaterialProperties mprop = nullptr 
)

fill or attach material, jacobian, step length

  • material is just a pointer copy

Definition at line 606 of file ExtrapolationCell.h.

608 {
609 
610  // fill the material if there
611  if (mprop) {
612  // the overal material
613  materialX0 += sfactor * mprop->thicknessInX0();
614  materialL0 += sfactor * mprop->thicknessInL0();
615  zOaTrX += mprop->zOverAtimesRho() * sfactor * mprop->thicknessInX0();
616  zX += mprop->averageZ() * sfactor * mprop->thicknessInX0();
617  }
618 }

◆ addMaterial() [2/2]

template<class T >
void Trk::ExtrapolationCell< T >::addMaterial ( double  step,
const Material mat = nullptr 
)

Definition at line 622 of file ExtrapolationCell.h.

623 {
624 
625  // fill the material if there
626  if (mat && step > 0.) {
627  // the overal material
628  materialX0 += step / mat->X0;
629  materialL0 += step / mat->L0;
630  zOaTrX += mat->zOverAtimesRho() * step / mat->X0;
631  zX += mat->averageZ() * step / mat->X0;
632  }
633 }

◆ checkConfigurationMode()

template<class T >
bool Trk::ExtrapolationCell< T >::checkConfigurationMode ( ExtrapolationMode::eMode  em) const
inline

check the configuration mode

Definition at line 352 of file ExtrapolationCell.h.

353  {
354  // check if the bit is set or not
356  }

◆ checkRadialCompatibility()

template<class T >
bool Trk::ExtrapolationCell< T >::checkRadialCompatibility ( ) const
inline

check whether the propagation stays compatible with initial radial direction

Definition at line 454 of file ExtrapolationCell.h.

455  {
456  // this checks the radial compatibility - not needed for outwards moving
457  if (radialDirection > 0)
458  return true;
459  // this was radially inwards moving and stays like this
460  if (leadParameters->position().perp() >
461  (leadParameters->position() +
462  propDirection * leadParameters->momentum().unit())
463  .perp())
464  return true;
465  // radial direction changed
466  return false;
467  }

◆ emptyGarbageBin()

template<class T >
void Trk::ExtrapolationCell< T >::emptyGarbageBin ( const ExtrapolationCode ec)

memory cleanup

Definition at line 520 of file ExtrapolationCell.h.

521 {
522  for (auto bC : m_garbageCollection)
523  delete bC;
524  m_garbageCollection.clear();
525  // in case of failure of the extrapolation stream, clear all the caches
526  if (ec.isFailure()) {
527  for (auto& es : extrapolationSteps) {
528  delete es.parameters;
529  delete es.transportJacobian;
530  }
531  // now clear the vector
532  extrapolationSteps.clear();
533  }
534 }

◆ finalize()

template<class T >
void Trk::ExtrapolationCell< T >::finalize ( const ExtrapolationCode ec)

finalize call - this one is called by the ExtrapoaltionEngine

Definition at line 504 of file ExtrapolationCell.h.

505 {
506  // set the leadParameters to the endParameters if anything happened here and
507  // the code wass succesful
508  if (ec.isSuccessOrRecovered() && leadParameters != startParameters) {
509  // end parameters are the last lead parameters !< @TODO check if we need a
510  // clone here! should not be necessary
511  endParameters = leadParameters->clone();
512  }
513  // now do the cleanup - will delete the step content if eCode is failure
514  emptyGarbageBin(ec);
515  delete eLoss;
516 }

◆ finalVolumeReached()

template<class T >
bool Trk::ExtrapolationCell< T >::finalVolumeReached ( ) const
inline

trigger for final volume

Definition at line 391 of file ExtrapolationCell.h.

392  {
393  return (leadVolume == endVolume && endVolume);
394  }

◆ initialVolume()

template<class T >
bool Trk::ExtrapolationCell< T >::initialVolume ( ) const
inline

check if this is the initial volume

Definition at line 388 of file ExtrapolationCell.h.

388 { return (leadVolume == startVolume); }

◆ materialLimitReached()

template<class T >
bool Trk::ExtrapolationCell< T >::materialLimitReached ( double  tolerance = 0.001) const
inline

◆ onLastBoundary()

template<class T >
bool Trk::ExtrapolationCell< T >::onLastBoundary ( ) const
inline

check if you are still at the last boundary surface

Definition at line 359 of file ExtrapolationCell.h.

360  {
362  }

◆ pathLimitReached()

template<class T >
bool Trk::ExtrapolationCell< T >::pathLimitReached ( double  tolerance = 0.001) const
inline

the materialLimitReached

Definition at line 397 of file ExtrapolationCell.h.

◆ restartAtDestination()

template<class T >
void Trk::ExtrapolationCell< T >::restartAtDestination

prepare destination as new start point - optimised for Kalman filtering

set end to start - and reset the rest

Definition at line 475 of file ExtrapolationCell.h.

476 {
481  endParameters = 0;
482  endVolume = 0;
483  endLayer = 0;
484  endSurface = 0;
486  leadVolume = 0;
487  leadLayer = 0;
488  leadLayerSurface = 0;
492  navigationStep = 0;
493  pathLength = 0.;
494  materialX0 = 0.;
495  materialL0 = 0.;
496  if (eLoss)
497  eLoss->set(0., 0., 0., 0., 0., 0.);
498  // clear the vector
499  extrapolationSteps.clear();
500 }

◆ setParticleHypothesis()

template<class T >
void Trk::ExtrapolationCell< T >::setParticleHypothesis ( const ParticleHypothesis hypo)
inline

set ParticleHypothesis

Definition at line 424 of file ExtrapolationCell.h.

425  {
426  pHypothesis = hypo;
427  }

◆ setRadialDirection()

template<class T >
void Trk::ExtrapolationCell< T >::setRadialDirection ( )
inline

estimate the radial direction of the extrapolation cell

Definition at line 430 of file ExtrapolationCell.h.

431  {
432  // in FATRAS extrapolation mode force radial direction to be outwards (+1)
434  radialDirection = 1;
435  else {
436  // if the endSurface is given, it is used to evaluate the radial direction
437  // else the leadParamenters are used
438  if (endSurface) {
439  if (leadParameters->position().perp() >
441  radialDirection = -1;
442  } else {
443  if (leadParameters->position().perp() >
444  (leadParameters->position() +
445  propDirection * leadParameters->momentum().unit())
446  .perp())
447  radialDirection = -1;
448  }
449  }
450  }

◆ stepMaterial()

template<class T >
void Trk::ExtrapolationCell< T >::stepMaterial ( const Surface sf,
const Layer lay,
const Amg::Vector3D position,
double  sfactor,
const MaterialProperties mprop = nullptr 
)

fill or attach material, jacobian, step length

  • material is just a pointer copy

Definition at line 637 of file ExtrapolationCell.h.

642 {
643 
644  // add material to the global counter
645  addMaterial(sfactor, mprop);
646  // find out if you want to attach or you need a new one
647  // current step surface
648  const Surface* cssf = &sf;
649  // get the last step surface - if it is identical with the current one ->
650  // attach information
651  const Surface* lssf =
652  extrapolationSteps.size()
653  ? extrapolationSteps[extrapolationSteps.size() - 1].surface
654  : 0;
655  // create a new step
656  if (cssf != lssf)
657  extrapolationSteps.push_back(ExtrapolationStep<T>());
658  // set the surface
659  extrapolationSteps[extrapolationSteps.size() - 1].surface = cssf;
660  extrapolationSteps[extrapolationSteps.size() - 1].layer = lay;
661  // fill the material if there
662  if (mprop) {
663  // record the step information
664  extrapolationSteps[extrapolationSteps.size() - 1].material = mprop;
665  extrapolationSteps[extrapolationSteps.size() - 1].stepConfiguration.addMode(
667  extrapolationSteps[extrapolationSteps.size() - 1].materialPosition =
668  mposition;
669  extrapolationSteps[extrapolationSteps.size() - 1].materialScaling = sfactor;
670  }
671 }

◆ stepParameters()

template<class T >
void Trk::ExtrapolationCell< T >::stepParameters ( const T *  pars,
ExtrapolationMode::eMode  fillMode 
)

fill or attach the parameters from a step - memory management steered by extrapolationConfiguration

Definition at line 538 of file ExtrapolationCell.h.

540 {
541  // this is the garbage bin collection
542  if (!checkConfigurationMode(fillMode)) {
543  // only dump them in the garbage bin
544  m_garbageCollection.push_back(parameters);
545  return;
546  }
547  // find out if you want to attach or you need a new one
548  // current step surface
549  const Surface* cssf = &(parameters->associatedSurface());
550  // get the last step surface - if it is identical with the current one ->
551  // attach information
552  const Surface* lssf =
553  extrapolationSteps.size()
554  ? extrapolationSteps[extrapolationSteps.size() - 1].surface
555  : 0;
556  // create a new step
557  if (cssf != lssf)
558  extrapolationSteps.push_back(ExtrapolationStep<T>());
559  // fill the parameters, the surface and add the mode
560  extrapolationSteps[extrapolationSteps.size() - 1].parameters = parameters;
561  extrapolationSteps[extrapolationSteps.size() - 1].surface = cssf;
562  extrapolationSteps[extrapolationSteps.size() - 1].stepConfiguration.addMode(
563  fillMode);
564 }

◆ stepTransport()

template<class T >
void Trk::ExtrapolationCell< T >::stepTransport ( const Surface sf,
double  pathLength = 0.,
const TransportJacobian tjac = nullptr 
)

fill transport information - path length and TransportJacobian

  • jacobians need to be cleared

Definition at line 568 of file ExtrapolationCell.h.

571 {
572  // find out if you want to attach or you need a new one
573  // current step surface
574  const Surface* cssf = &sf;
575  // get the last step surface - if it is identical with the current one ->
576  // attach information
577  const Surface* lssf =
578  extrapolationSteps.size()
579  ? extrapolationSteps[extrapolationSteps.size() - 1].surface
580  : 0;
581  // only create a new step for a transport jacobian
582  if (tjac) {
583  // create a new step
584  if (cssf != lssf)
585  extrapolationSteps.push_back(ExtrapolationStep<T>());
586  // set the surface
587  extrapolationSteps[extrapolationSteps.size() - 1].surface = cssf;
588  // set the the transport information
589  extrapolationSteps[extrapolationSteps.size() - 1].transportJacobian = tjac;
590  extrapolationSteps[extrapolationSteps.size() - 1].stepConfiguration.addMode(
592  // fill the step path length
593  if (pLength > 0.) {
594  extrapolationSteps[extrapolationSteps.size() - 1].pathLength = pLength;
596  .stepConfiguration.addMode(Trk::ExtrapolationMode::CollectPathSteps);
597  }
598  } else {
599  // let's just fill the pathLength information
600  pathLength += pLength;
601  }
602 }

Member Data Documentation

◆ destinationCurvilinear

template<class T >
bool Trk::ExtrapolationCell< T >::destinationCurvilinear

return curvilinear parameters even on destination

Definition at line 288 of file ExtrapolationCell.h.

◆ eLoss

template<class T >
EnergyLoss* Trk::ExtrapolationCell< T >::eLoss

cumulated energy loss

Definition at line 298 of file ExtrapolationCell.h.

◆ endLayer

template<class T >
const Layer* Trk::ExtrapolationCell< T >::endLayer

the end Layer - can be optionally 0 (needs other trigger to stop)

Definition at line 241 of file ExtrapolationCell.h.

◆ endParameters

template<class T >
T* Trk::ExtrapolationCell< T >::endParameters

by pointer - are newly created and can be optionally 0

Definition at line 238 of file ExtrapolationCell.h.

◆ endSurface

template<class T >
const Surface* Trk::ExtrapolationCell< T >::endSurface

keep track of the destination surface - can be optionally 0

Definition at line 244 of file ExtrapolationCell.h.

◆ endVolume

template<class T >
const TrackingVolume* Trk::ExtrapolationCell< T >::endVolume

the end Volume - can be optionally 0 (needs other trigger to stop)

Definition at line 239 of file ExtrapolationCell.h.

◆ extrapolationConfiguration

template<class T >
ExtrapolationConfig Trk::ExtrapolationCell< T >::extrapolationConfiguration

overall global configuration

Definition at line 295 of file ExtrapolationCell.h.

◆ extrapolationSteps

template<class T >
std::vector<ExtrapolationStep<T> > Trk::ExtrapolationCell< T >::extrapolationSteps

parameters on sensitive detector elements

Definition at line 292 of file ExtrapolationCell.h.

◆ lastBoundaryParameters

template<class T >
T* Trk::ExtrapolationCell< T >::lastBoundaryParameters

this is the last boundary surface to prevent loops

Definition at line 253 of file ExtrapolationCell.h.

◆ lastBoundarySurface

template<class T >
const Surface* Trk::ExtrapolationCell< T >::lastBoundarySurface

this is the last boundary surface to prevent loops

Definition at line 256 of file ExtrapolationCell.h.

◆ lastLeadParameters

template<class T >
T* Trk::ExtrapolationCell< T >::lastLeadParameters

this is for caching the last valid

parameters before the lead parameters

Definition at line 258 of file ExtrapolationCell.h.

◆ leadLayer

template<class T >
const Layer* Trk::ExtrapolationCell< T >::leadLayer

the lead Layer - carrying the navigation stream

Definition at line 249 of file ExtrapolationCell.h.

◆ leadLayerSurface

template<class T >
const Surface* Trk::ExtrapolationCell< T >::leadLayerSurface

if the lead layer has sub structure that is the first one to start with

Definition at line 250 of file ExtrapolationCell.h.

◆ leadParameters

template<class T >
T* Trk::ExtrapolationCell< T >::leadParameters

the one last truely valid parameter in the stream

Definition at line 246 of file ExtrapolationCell.h.

◆ leadVolume

template<class T >
const TrackingVolume* Trk::ExtrapolationCell< T >::leadVolume

the lead Volume - carrying the navigation stream

Definition at line 248 of file ExtrapolationCell.h.

◆ m_garbageCollection

template<class T >
std::vector<const T*> Trk::ExtrapolationCell< T >::m_garbageCollection
private

Definition at line 470 of file ExtrapolationCell.h.

◆ materialL0

template<class T >
double Trk::ExtrapolationCell< T >::materialL0

collected material so far in units of L0

Definition at line 274 of file ExtrapolationCell.h.

◆ materialLimitL0

template<class T >
double Trk::ExtrapolationCell< T >::materialLimitL0

given material limit in L0

Definition at line 275 of file ExtrapolationCell.h.

◆ materialLimitX0

template<class T >
double Trk::ExtrapolationCell< T >::materialLimitX0

given material limit in X0

Definition at line 273 of file ExtrapolationCell.h.

◆ materialProcess

template<class T >
int Trk::ExtrapolationCell< T >::materialProcess

the material process to be generated

Definition at line 276 of file ExtrapolationCell.h.

◆ materialUpdateMode

template<class T >
MaterialUpdateMode Trk::ExtrapolationCell< T >::materialUpdateMode

how to deal with the material effect, default: addNoise

Definition at line 282 of file ExtrapolationCell.h.

◆ materialX0

template<class T >
double Trk::ExtrapolationCell< T >::materialX0

collected material so far in units of X0

Definition at line 272 of file ExtrapolationCell.h.

◆ mFieldMode

template<class T >
MagneticFieldProperties Trk::ExtrapolationCell< T >::mFieldMode

what magnetic field mode to be used, default : fullField

Definition at line 281 of file ExtrapolationCell.h.

◆ navigationCurvilinear

template<class T >
bool Trk::ExtrapolationCell< T >::navigationCurvilinear

stay in curvilinear parameters where possible, default : true

Definition at line 284 of file ExtrapolationCell.h.

◆ navigationStep

template<class T >
int Trk::ExtrapolationCell< T >::navigationStep

a counter of the navigation Step

Definition at line 268 of file ExtrapolationCell.h.

◆ nextGeometrySignature

template<class T >
GeometrySignature Trk::ExtrapolationCell< T >::nextGeometrySignature

when a boundary is reached the geometry signature is updated to the next volume one

Definition at line 265 of file ExtrapolationCell.h.

◆ pathLength

template<class T >
double Trk::ExtrapolationCell< T >::pathLength

the path length accumulated

Definition at line 269 of file ExtrapolationCell.h.

◆ pathLimit

template<class T >
double Trk::ExtrapolationCell< T >::pathLimit

the maximal limit of the extrapolation

Definition at line 270 of file ExtrapolationCell.h.

◆ pHypothesis

template<class T >
ParticleHypothesis Trk::ExtrapolationCell< T >::pHypothesis

what particle hypothesis to be used, default : pion

Definition at line 279 of file ExtrapolationCell.h.

◆ propDirection

template<class T >
PropDirection Trk::ExtrapolationCell< T >::propDirection

this is the propagation direction

Definition at line 260 of file ExtrapolationCell.h.

◆ radialDirection

template<class T >
int Trk::ExtrapolationCell< T >::radialDirection

for checking if navigation is radially towards the IP, this has consequences for entering cylinders

Definition at line 261 of file ExtrapolationCell.h.

◆ sensitiveCurvilinear

template<class T >
bool Trk::ExtrapolationCell< T >::sensitiveCurvilinear

stay in curvilinear parameters even on the destination surface

Definition at line 286 of file ExtrapolationCell.h.

◆ startLayer

template<class T >
const Layer* Trk::ExtrapolationCell< T >::startLayer

the start layer - needed for layerToLayer loop

Definition at line 236 of file ExtrapolationCell.h.

◆ startParameters

template<class T >
T* Trk::ExtrapolationCell< T >::startParameters

by reference - need to be defined

Definition at line 233 of file ExtrapolationCell.h.

◆ startVolume

template<class T >
const TrackingVolume* Trk::ExtrapolationCell< T >::startVolume

the start volume - needed for the volumeToVolume loop

Definition at line 235 of file ExtrapolationCell.h.

◆ time

template<class T >
float Trk::ExtrapolationCell< T >::time

timing info

Definition at line 297 of file ExtrapolationCell.h.

◆ zOaTrX

template<class T >
float Trk::ExtrapolationCell< T >::zOaTrX

z/A*rho*dInX0 (for average calculations)

Definition at line 299 of file ExtrapolationCell.h.

◆ zX

template<class T >
float Trk::ExtrapolationCell< T >::zX

z*dInX0 (for average calculations)

Definition at line 300 of file ExtrapolationCell.h.


The documentation for this class was generated from the following file:
Trk::ExtrapolationCell::materialLimitX0
double materialLimitX0
given material limit in X0
Definition: ExtrapolationCell.h:273
Trk::ExtrapolationCell::destinationCurvilinear
bool destinationCurvilinear
return curvilinear parameters even on destination
Definition: ExtrapolationCell.h:288
Trk::ExtrapolationCell::extrapolationSteps
std::vector< ExtrapolationStep< T > > extrapolationSteps
parameters on sensitive detector elements
Definition: ExtrapolationCell.h:292
Trk::ExtrapolationCell::lastBoundarySurface
const Surface * lastBoundarySurface
this is the last boundary surface to prevent loops
Definition: ExtrapolationCell.h:256
Trk::ExtrapolationCell::m_garbageCollection
std::vector< const T * > m_garbageCollection
Definition: ExtrapolationCell.h:470
Trk::MagneticFieldProperties
Definition: MagneticFieldProperties.h:31
Trk::ExtrapolationMode::StopWithMaterialLimitL0
@ StopWithMaterialLimitL0
Definition: ExtrapolationCell.h:53
Trk::ExtrapolationCell::propDirection
PropDirection propDirection
this is the propagation direction
Definition: ExtrapolationCell.h:260
Trk::ExtrapolationCell::pHypothesis
ParticleHypothesis pHypothesis
what particle hypothesis to be used, default : pion
Definition: ExtrapolationCell.h:279
mat
GeoMaterial * mat
Definition: LArDetectorConstructionTBEC.cxx:55
Trk::ExtrapolationMode::StopWithPathLimit
@ StopWithPathLimit
Definition: ExtrapolationCell.h:50
Surface
Definition: Trigger/TrigAccel/TrigCudaFitter/src/Surface.h:8
Trk::ExtrapolationCell::emptyGarbageBin
void emptyGarbageBin(const ExtrapolationCode &ec)
memory cleanup
Definition: ExtrapolationCell.h:520
Trk::ExtrapolationCell::sensitiveCurvilinear
bool sensitiveCurvilinear
stay in curvilinear parameters even on the destination surface
Definition: ExtrapolationCell.h:286
Trk::ExtrapolationCell::endLayer
const Layer * endLayer
the end Layer - can be optionally 0 (needs other trigger to stop)
Definition: ExtrapolationCell.h:241
Trk::ExtrapolationMode::CollectPathSteps
@ CollectPathSteps
Definition: ExtrapolationCell.h:61
Trk::Surface::globalReferencePoint
virtual const Amg::Vector3D & globalReferencePoint() const
Returns a global reference point on the surface, for PlaneSurface, StraightLineSurface,...
Trk::ExtrapolationCell::startVolume
const TrackingVolume * startVolume
the start volume - needed for the volumeToVolume loop
Definition: ExtrapolationCell.h:235
Trk::ExtrapolationCell::pathLength
double pathLength
the path length accumulated
Definition: ExtrapolationCell.h:269
Trk::ExtrapolationCell::leadLayer
const Layer * leadLayer
the lead Layer - carrying the navigation stream
Definition: ExtrapolationCell.h:249
Trk::ExtrapolationCell::zX
float zX
z*dInX0 (for average calculations)
Definition: ExtrapolationCell.h:300
Trk::ExtrapolationCell::eLoss
EnergyLoss * eLoss
cumulated energy loss
Definition: ExtrapolationCell.h:298
Trk::ExtrapolationCell::navigationStep
int navigationStep
a counter of the navigation Step
Definition: ExtrapolationCell.h:268
Trk::ExtrapolationCell::materialX0
double materialX0
collected material so far in units of X0
Definition: ExtrapolationCell.h:272
Trk::ExtrapolationCell::nextGeometrySignature
GeometrySignature nextGeometrySignature
when a boundary is reached the geometry signature is updated to the next volume one
Definition: ExtrapolationCell.h:265
Trk::ExtrapolationCell::radialDirection
int radialDirection
for checking if navigation is radially towards the IP, this has consequences for entering cylinders
Definition: ExtrapolationCell.h:261
Trk::ExtrapolationMode::FATRAS
@ FATRAS
Definition: ExtrapolationCell.h:63
Trk::ExtrapolationCell::materialL0
double materialL0
collected material so far in units of L0
Definition: ExtrapolationCell.h:274
Trk::EnergyLoss::set
void set(double eLoss, double sigde, double ioni, double sigi, double rad, double sigr)
Trk::pion
@ pion
Definition: ParticleHypothesis.h:29
Trk::ExtrapolationConfig::addMode
void addMode(ExtrapolationMode::eMode em)
add a configuration mode
Definition: ExtrapolationCell.h:84
Trk::ExtrapolationCell::endParameters
T * endParameters
by pointer - are newly created and can be optionally 0
Definition: ExtrapolationCell.h:238
Trk::ExtrapolationMode::CollectJacobians
@ CollectJacobians
Definition: ExtrapolationCell.h:60
Trk::ExtrapolationCell::startParameters
T * startParameters
by reference - need to be defined
Definition: ExtrapolationCell.h:233
Trk::ExtrapolationCell::materialProcess
int materialProcess
the material process to be generated
Definition: ExtrapolationCell.h:276
Trk::ExtrapolationConfig::checkMode
bool checkMode(ExtrapolationMode::eMode em) const
check the configuration mode
Definition: ExtrapolationCell.h:91
Trk::Unsigned
@ Unsigned
Definition: GeometrySignature.h:33
Trk::FullField
@ FullField
Field is set to be realistic, but within a given Volume.
Definition: MagneticFieldMode.h:21
Trk::ExtrapolationCell::checkConfigurationMode
bool checkConfigurationMode(ExtrapolationMode::eMode em) const
check the configuration mode
Definition: ExtrapolationCell.h:352
reachedLimit
#define reachedLimit(current, limit, tolerance)
Definition: ExtrapolationCell.h:24
Trk::ExtrapolationCell::lastBoundaryParameters
T * lastBoundaryParameters
this is the last boundary surface to prevent loops
Definition: ExtrapolationCell.h:253
tolerance
Definition: suep_shower.h:17
Trk::ExtrapolationCell::lastLeadParameters
T * lastLeadParameters
this is for caching the last valid
Definition: ExtrapolationCell.h:258
Trk::ExtrapolationCell::materialLimitL0
double materialLimitL0
given material limit in L0
Definition: ExtrapolationCell.h:275
Trk::ExtrapolationCell::materialUpdateMode
MaterialUpdateMode materialUpdateMode
how to deal with the material effect, default: addNoise
Definition: ExtrapolationCell.h:282
Trk::ExtrapolationCell::pathLimit
double pathLimit
the maximal limit of the extrapolation
Definition: ExtrapolationCell.h:270
Trk::ExtrapolationMode::CollectMaterial
@ CollectMaterial
Definition: ExtrapolationCell.h:59
Trk::ExtrapolationCell::zOaTrX
float zOaTrX
z/A*rho*dInX0 (for average calculations)
Definition: ExtrapolationCell.h:299
Trk::ExtrapolationCell::addMaterial
void addMaterial(double sfactor, const MaterialProperties *mprop=nullptr)
fill or attach material, jacobian, step length
Definition: ExtrapolationCell.h:606
Trk::ExtrapolationCell::leadParameters
T * leadParameters
the one last truely valid parameter in the stream
Definition: ExtrapolationCell.h:246
mapkey::sf
@ sf
Definition: TElectronEfficiencyCorrectionTool.cxx:38
Trk::addNoise
@ addNoise
Definition: MaterialUpdateMode.h:19
Trk::ExtrapolationCell::navigationCurvilinear
bool navigationCurvilinear
stay in curvilinear parameters where possible, default : true
Definition: ExtrapolationCell.h:284
LArCellBinning.step
step
Definition: LArCellBinning.py:158
physics_parameters.parameters
parameters
Definition: physics_parameters.py:144
Trk::ExtrapolationCell::time
float time
timing info
Definition: ExtrapolationCell.h:297
Trk::ExtrapolationMode::StopWithMaterialLimitX0
@ StopWithMaterialLimitX0
Definition: ExtrapolationCell.h:51
Trk::ExtrapolationCell::endVolume
const TrackingVolume * endVolume
the end Volume - can be optionally 0 (needs other trigger to stop)
Definition: ExtrapolationCell.h:239
Trk::ExtrapolationCell::leadVolume
const TrackingVolume * leadVolume
the lead Volume - carrying the navigation stream
Definition: ExtrapolationCell.h:248
Trk::ExtrapolationCell::startLayer
const Layer * startLayer
the start layer - needed for layerToLayer loop
Definition: ExtrapolationCell.h:236
Trk::ExtrapolationCell::endSurface
const Surface * endSurface
keep track of the destination surface - can be optionally 0
Definition: ExtrapolationCell.h:244
Trk::ExtrapolationCell::mFieldMode
MagneticFieldProperties mFieldMode
what magnetic field mode to be used, default : fullField
Definition: ExtrapolationCell.h:281
Trk::ExtrapolationCell::extrapolationConfiguration
ExtrapolationConfig extrapolationConfiguration
overall global configuration
Definition: ExtrapolationCell.h:295
Trk::ExtrapolationCell::leadLayerSurface
const Surface * leadLayerSurface
if the lead layer has sub structure that is the first one to start with
Definition: ExtrapolationCell.h:250