9#ifndef TRKEXINTERFACES_IMATERIALEFFECTSUPDATOR_H
10#define TRKEXINTERFACES_IMATERIALEFFECTSUPDATOR_H
13#include "GaudiKernel/IAlgTool.h"
93 virtual std::unique_ptr<TrackParameters>
update(
106 virtual std::unique_ptr<TrackParameters>
update(
146 virtual std::unique_ptr<TrackParameters>
update(
150 double pathcorrection,
165 virtual std::unique_ptr<TrackParameters>
update(
175 virtual std::unique_ptr<TrackParameters>
update(
205 virtual std::unique_ptr<TrackParameters>
update(
208 double pathcorrection,
Cache class to allow passing information to/between calls.
double validationPhi
theta
~ICache()=default
layer in the current validation step
double accumulatedElossSigma
const Trk::Layer * validationLayer
int validationSteps
number of validation steps
Interface class for the updater AlgTool, it inherits from IAlgTool.
virtual std::unique_ptr< TrackParameters > postUpdate(const TrackParameters ¶m, const Layer &sf, PropDirection dir=alongMomentum, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const =0
Updator interface (pre-update for a layer):
virtual void validationAction(ICache &icache) const =0
Validation Action:
virtual void validationAction() const =0
Validation Action: outside access to internal validation steps Optional.
virtual std::unique_ptr< TrackParameters > update(const TrackParameters *param, const MaterialEffectsOnTrack &meff, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const =0
User updator interface (full update for a layer):
virtual ~IMaterialEffectsUpdator()
Virtual destructor.
virtual ICache getCache() const
Creates an instance of the cache to be used.
virtual std::unique_ptr< TrackParameters > preUpdate(const TrackParameters *param, const Layer &sf, PropDirection dir=alongMomentum, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const =0
Updator interface (pre-update for a layer):
virtual std::unique_ptr< TrackParameters > update(ICache &icache, const TrackParameters *param, const Layer &sf, PropDirection dir=alongMomentum, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const =0
Updator interface (full update for a layer): The parameters are given as a pointer owned by the calle...
virtual std::unique_ptr< TrackParameters > postUpdate(ICache &icache, const TrackParameters ¶m, const Layer &sf, PropDirection dir=alongMomentum, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const =0
Updator interface (pre-update for a layer): The parameters are given as a pointer owned by the caller...
virtual std::unique_ptr< TrackParameters > update(const TrackParameters *param, const Layer &sf, PropDirection dir=alongMomentum, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const =0
Updator interface (full update for a layer):
virtual std::unique_ptr< TrackParameters > update(ICache &icache, const TrackParameters ¶m, const MaterialProperties &mprop, double pathcorrection, PropDirection dir=alongMomentum, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const =0
Updator interface: The parameters are given as a pointer owned by the caller.
virtual std::unique_ptr< TrackParameters > update(const TrackParameters ¶m, const MaterialProperties &mprop, double pathcorrection, PropDirection dir=alongMomentum, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const =0
Updator interface: MaterialProperties based material update.
virtual void modelAction(const TrackParameters *param=nullptr) const =0
Model Action: Provides the possibility of doing non-local MaterialEffectsUpdates for different models...
virtual std::unique_ptr< TrackParameters > preUpdate(ICache &icache, const TrackParameters *param, const Layer &sf, PropDirection dir=alongMomentum, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const =0
Updator interface (pre-update for a layer): The parameters are given as a pointer owned by the caller...
virtual void modelAction(ICache &icache, const TrackParameters *param=nullptr) const =0
Model Action:
virtual std::unique_ptr< TrackParameters > update(ICache &icache, const TrackParameters *param, const MaterialEffectsOnTrack &meff, Trk::ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const =0
User updator interface (full update for a layer): The parameters are given as a pointer owned by the ...
static const InterfaceID & interfaceID()
AlgTool and IAlgTool interface methods.
Base Class for a Detector Layer in the Tracking realm.
represents the full description of deflection and e-loss of a track in material.
Material with information about thickness of material.
Ensure that the ATLAS eigen extensions are properly loaded.
PropDirection
PropDirection, enum for direction of the propagation.
ParticleHypothesis
Enumeration for Particle hypothesis respecting the interaction with material.
MaterialUpdateMode
This is a steering enum to force the material update it can be: (1) addNoise (-1) removeNoise Second ...
ParametersBase< TrackParametersDim, Charged > TrackParameters
static const InterfaceID IID_IMaterialEffectsUpdator("IMaterialEffectsUpdator", 1, 0)
Interface ID for IMaterialEffectsUpdator.