|
ATLAS Offline Software
|
Go to the documentation of this file.
9 #ifndef TRKEXINTERFACES_IMATERIALEFFECTSUPDATOR_H
10 #define TRKEXINTERFACES_IMATERIALEFFECTSUPDATOR_H
13 #include "GaudiKernel/IAlgTool.h"
24 class MaterialProperties;
25 class MaterialEffectsOnTrack;
28 static const InterfaceID IID_IMaterialEffectsUpdator(
"IMaterialEffectsUpdator",
54 return IID_IMaterialEffectsUpdator;
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,
227 #endif // TRKEXINTERFACES_MATERIALEFFECTSUPDATOR_H
Cache class to allow passing information to/between calls.
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
virtual ICache getCache() const
Creates an instance of the cache to be used.
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 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.
MaterialUpdateMode
This is a steering enum to force the material update it can be: (1) addNoise (-1) removeNoise Second ...
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):
int validationSteps
number of validation steps
double accumulatedElossSigma
represents the full description of deflection and e-loss of a track in material.
virtual void validationAction() const =0
Validation Action: outside access to internal validation steps Optional.
virtual void validationAction(ICache &icache) const =0
Validation Action:
static const InterfaceID & interfaceID()
AlgTool and IAlgTool interface methods.
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 ...
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):
~ICache()=default
layer in the current validation step
Ensure that the ATLAS eigen extensions are properly loaded.
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 ~IMaterialEffectsUpdator()
Virtual destructor.
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(const TrackParameters *param=nullptr) const =0
Model Action: Provides the possibility of doing non-local MaterialEffectsUpdates for different models...
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...
double validationPhi
theta
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 void modelAction(ICache &icache, const TrackParameters *param=nullptr) const =0
Model Action:
const Trk::Layer * validationLayer
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):