 |
ATLAS Offline Software
|
Go to the documentation of this file.
9 #ifndef TRKEXTOOLS_MATERIALEFFECTSUPDATOR_H
10 #define TRKEXTOOLS_MATERIALEFFECTSUPDATOR_H
22 #include "GaudiKernel/ToolHandle.h"
27 #include <boost/thread/tss.hpp>
33 class MaterialProperties;
87 virtual std::unique_ptr<TrackParameters>
update(
101 virtual std::unique_ptr<TrackParameters>
update(
140 virtual std::unique_ptr<TrackParameters>
update(
144 double pathcorrection,
150 cache, parm, mprop, pathcorrection,
dir,
particle, matupmode);
174 virtual std::unique_ptr<TrackParameters>
update(
186 virtual std::unique_ptr<TrackParameters>
update(
218 virtual std::unique_ptr<TrackParameters>
update(
221 double pathcorrection,
228 cache, parm, mprop, pathcorrection,
dir,
particle, matupmode);
282 double pathcorrection,
291 double pathcorrection,
308 "steer energy loss On/Off from outside"};
309 BooleanProperty
m_doMs{
this,
"MultipleScattering",
true,
310 "steer multiple scattering On/Off from outside"};
313 "Force the momentum to be a specific value"};
315 "use the most probable energy loss"};
318 {
this,
"ScreenOutputValidationDirection",
true,
319 "validation direction used for screen output"};
321 "screen output of actual corrections"};
326 "Switch for validation mode"};
328 {
this,
"ValidationIgnoreUnmeasured",
false,
329 "Ignore unmeasured TrackParameters (Navigation!)"};
331 "If in Landau mode, error propagation is done as for landaus"};
333 "validation direction"};
336 "Minimal momentum cut for update"};
338 "Maximal momentum cut for update"};
340 {
this,
"ForcedMomentumValue", 2000. *
Gaudi::Units::MeV,
"Forced momentum value"};
343 {
this,
"EnergyLossUpdator",
"Trk::EnergyLossUpdator/AtlasEnergyLossUpdator",
344 "AlgoTool for EnergyLoss updates"};
346 {
this,
"MultipleScatteringUpdator",
347 "Trk::MultipleScatteringUpdator/AtlasMultipleScatteringUpdator",
348 "AlgoTool for MultipleScatterin effects"};
350 {
this,
"ValidationMaterialMapper",
"Trk::MaterialMapper/AtlasMaterialMapper",
351 "the material mapper for recording the layer material"};
369 #endif // TRKEXTOOLS_MATERIALEFFECTSUPDATOR_H
virtual StatusCode initialize() override
AlgTool initailize method.
BooleanProperty m_validationMode
virtual void validationAction() const override final
Validation Action: outside access to internal validation steps Optional.
Cache class to allow passing information to/between calls.
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
virtual ~MaterialEffectsUpdator()
Virtual destructor.
virtual void modelAction(const TrackParameters *parm=nullptr) const override final
Model Action: Provides the possibility of doing non-local MaterialEffectsUpdates for different models...
static void modelActionImpl(ICache &cache, const TrackParameters *parm=nullptr)
virtual std::unique_ptr< TrackParameters > update(ICache &cache, const TrackParameters *parm, const MaterialEffectsOnTrack &meff, Trk::ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const override
Updator interface (full update for a layer) according to user input through MaterialEffectsOnTrack —>...
virtual std::unique_ptr< TrackParameters > preUpdate(ICache &cache, const TrackParameters *parm, const Layer &sf, PropDirection dir=alongMomentum, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const override
Updator interface (pre-update for a layer): —> ALWAYS pointer to new TrackParameters is returned.
virtual std::unique_ptr< TrackParameters > update(const TrackParameters *parm, const Layer &sf, PropDirection dir=alongMomentum, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const override final
Updator interface (full update for a layer):
BooleanProperty m_useMostProbableEloss
BooleanProperty m_msgOutputValidationDirection
BooleanProperty m_doEloss
DoubleProperty m_momentumCut
virtual std::unique_ptr< TrackParameters > postUpdate(ICache &cache, const TrackParameters &parm, const Layer &sf, PropDirection dir=alongMomentum, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const override final
Updator interface (post-update for a layer): —> ALWAYS pointer to new TrackParameters is returned if ...
ToolHandle< IEnergyLossUpdator > m_eLossUpdator
ICache & getTLSCache() const
ToolHandle< IMaterialMapper > m_materialMapper
MaterialEffectsUpdator(const std::string &, const std::string &, const IInterface *)
AlgTool like constructor.
MaterialUpdateMode
This is a steering enum to force the material update it can be: (1) addNoise (-1) removeNoise Second ...
virtual std::unique_ptr< TrackParameters > update(const TrackParameters &parm, const MaterialProperties &mprop, double pathcorrection, PropDirection dir=alongMomentum, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const override final
Updator interface: MaterialProperties based material update.
bool const RAWDATA *ch2 const
BooleanProperty m_validationIgnoreUnmeasured
AmgSymMatrix(5) &GXFTrackState
represents the full description of deflection and e-loss of a track in material.
virtual void validationAction(ICache &cache) const override final
Validation Action - calls the writing and resetting of the TTree variables.
::StatusCode StatusCode
StatusCode definition for legacy code.
boost::thread_specific_ptr< ICache > m_cache_tls
DoubleProperty m_momentumMax
BooleanProperty m_msgOutputCorrections
std::unique_ptr< TrackParameters > updateImpl(ICache &cache, const TrackParameters *parm, const Layer &sf, PropDirection dir=alongMomentum, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const
virtual std::unique_ptr< TrackParameters > update(ICache &cache, const TrackParameters &parm, const MaterialProperties &mprop, double pathcorrection, PropDirection dir=alongMomentum, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const override final
Dedicated Updator interface:-> create new track parameters.
ToolHandle< IMultipleScatteringUpdator > m_msUpdator
static void validationActionImpl(ICache &cache)
virtual std::unique_ptr< TrackParameters > update(const TrackParameters *parm, const MaterialEffectsOnTrack &meff, Trk::ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const override final
User updator interface (full update for a layer):
Ensure that the ATLAS eigen extensions are properly loaded.
virtual std::unique_ptr< TrackParameters > postUpdate(const TrackParameters &parm, const Layer &sf, PropDirection dir=alongMomentum, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const override final
Updator interface (pre-update for a layer):
bool checkCovariance(AmgSymMatrix(5) &updated) const
A simple check method for the 'removeNoise' update model.
IntegerProperty m_validationDirection
BooleanProperty m_forceMomentum
virtual std::unique_ptr< TrackParameters > preUpdate(const TrackParameters *parm, const Layer &sf, PropDirection dir=alongMomentum, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const override final
Updator interface (pre-update for a layer):
virtual void modelAction(ICache &cache, const TrackParameters *parm=nullptr) const override final
Only has an effect if m_landauMode == true.
virtual std::unique_ptr< TrackParameters > update(ICache &cache, const TrackParameters *parm, const Layer &sf, PropDirection dir=alongMomentum, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const override
Updator interface (full update for a layer) —> ALWAYS pointer to new TrackParameters is returned.
DoubleProperty m_forcedMomentum
TrackParameters * finalLandauCovarianceUpdate(const TrackParameters *parm) const
std::unique_ptr< TrackParameters > postUpdateImpl(ICache &cache, const TrackParameters &parm, const Layer &sf, PropDirection dir=alongMomentum, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const
BooleanProperty m_landauMode
IMaterialEffectsUpdator::ICache ICache
std::unique_ptr< TrackParameters > preUpdateImpl(ICache &cache, const TrackParameters *parm, const Layer &sf, PropDirection dir=alongMomentum, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const