![]() |
ATLAS Offline Software
|
#include <MaterialEffectsUpdator.h>
Public Types | |
typedef IMaterialEffectsUpdator::ICache | ICache |
Public Member Functions | |
MaterialEffectsUpdator (const std::string &, const std::string &, const IInterface *) | |
AlgTool like constructor. More... | |
virtual | ~MaterialEffectsUpdator () |
Virtual destructor. More... | |
virtual StatusCode | initialize () override |
AlgTool initailize method. More... | |
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. More... | |
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 —> ALWAYS pointer to new TrackParameters is returned. More... | |
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. More... | |
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 no postUpdate is to be done : return nullptr. More... | |
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. More... | |
virtual void | validationAction (ICache &cache) const override final |
Validation Action - calls the writing and resetting of the TTree variables. More... | |
virtual void | modelAction (ICache &cache, const TrackParameters *parm=nullptr) const override final |
Only has an effect if m_landauMode == true. More... | |
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): More... | |
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): More... | |
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): More... | |
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): More... | |
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. More... | |
virtual void | validationAction () const override final |
Validation Action: outside access to internal validation steps Optional. More... | |
virtual void | modelAction (const TrackParameters *parm=nullptr) const override final |
Model Action: Provides the possibility of doing non-local MaterialEffectsUpdates for different models Optional. More... | |
ServiceHandle< StoreGateSvc > & | evtStore () |
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More... | |
const ServiceHandle< StoreGateSvc > & | evtStore () const |
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More... | |
const ServiceHandle< StoreGateSvc > & | detStore () const |
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More... | |
virtual StatusCode | sysInitialize () override |
Perform system initialization for an algorithm. More... | |
virtual StatusCode | sysStart () override |
Handle START transition. More... | |
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
Return this algorithm's input handles. More... | |
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
Return this algorithm's output handles. More... | |
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T, V, H > &t) |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
Declare a new Gaudi property. More... | |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
Declare a new Gaudi property. More... | |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
Declare a new Gaudi property. More... | |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
Declare a new Gaudi property. More... | |
void | updateVHKA (Gaudi::Details::PropertyBase &) |
MsgStream & | msg () const |
MsgStream & | msg (const MSG::Level lvl) const |
bool | msgLvl (const MSG::Level lvl) const |
virtual ICache | getCache () const |
Creates an instance of the cache to be used. More... | |
Static Public Member Functions | |
static const InterfaceID & | interfaceID () |
AlgTool and IAlgTool interface methods. More... | |
Protected Member Functions | |
void | renounceArray (SG::VarHandleKeyArray &handlesArray) |
remove all handles from I/O resolution More... | |
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > | renounce (T &h) |
void | extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps) |
Add StoreName to extra input/output deps as needed. More... | |
Private Types | |
typedef ServiceHandle< StoreGateSvc > | StoreGateSvc_t |
Private Member Functions | |
std::unique_ptr< TrackParameters > | updateImpl (ICache &cache, const TrackParameters *parm, const Layer &sf, PropDirection dir=alongMomentum, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const |
std::unique_ptr< TrackParameters > | updateImpl (ICache &cache, const TrackParameters *parm, const MaterialEffectsOnTrack &meff, Trk::ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const |
std::unique_ptr< TrackParameters > | preUpdateImpl (ICache &cache, const TrackParameters *parm, const Layer &sf, PropDirection dir=alongMomentum, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const |
std::unique_ptr< TrackParameters > | postUpdateImpl (ICache &cache, const TrackParameters &parm, const Layer &sf, PropDirection dir=alongMomentum, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const |
std::unique_ptr< TrackParameters > | updateImpl (ICache &cache, const TrackParameters *parm, const MaterialProperties &mprop, double pathcorrection, PropDirection dir=alongMomentum, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const |
std::unique_ptr< TrackParameters > | updateImpl (ICache &cache, const TrackParameters &parm, const MaterialProperties &mprop, double pathcorrection, PropDirection dir=alongMomentum, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const |
bool | checkCovariance (AmgSymMatrix(5) &updated) const |
A simple check method for the 'removeNoise' update model. More... | |
TrackParameters * | finalLandauCovarianceUpdate (const TrackParameters *parm) const |
ICache & | getTLSCache () const |
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &) |
specialization for handling Gaudi::Property<SG::VarHandleKey> More... | |
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &) |
specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More... | |
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &) |
specialization for handling Gaudi::Property<SG::VarHandleBase> More... | |
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &t, const SG::NotHandleType &) |
specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More... | |
Static Private Member Functions | |
static void | validationActionImpl (ICache &cache) |
static void | modelActionImpl (ICache &cache, const TrackParameters *parm=nullptr) |
Private Attributes | |
BooleanProperty | m_doEloss |
BooleanProperty | m_doMs |
BooleanProperty | m_forceMomentum |
BooleanProperty | m_useMostProbableEloss |
BooleanProperty | m_msgOutputValidationDirection |
BooleanProperty | m_msgOutputCorrections |
BooleanProperty | m_validationMode |
BooleanProperty | m_validationIgnoreUnmeasured |
BooleanProperty | m_landauMode |
IntegerProperty | m_validationDirection |
DoubleProperty | m_momentumCut |
DoubleProperty | m_momentumMax |
DoubleProperty | m_forcedMomentum {this, "ForcedMomentumValue", 2000. * Gaudi::Units::MeV, "Forced momentum value"} |
ToolHandle< IEnergyLossUpdator > | m_eLossUpdator |
ToolHandle< IMultipleScatteringUpdator > | m_msUpdator |
ToolHandle< IMaterialMapper > | m_materialMapper |
boost::thread_specific_ptr< ICache > | m_cache_tls |
StoreGateSvc_t | m_evtStore |
Pointer to StoreGate (event store by default) More... | |
StoreGateSvc_t | m_detStore |
Pointer to StoreGate (detector store by default) More... | |
std::vector< SG::VarHandleKeyArray * > | m_vhka |
bool | m_varHandleArraysDeclared |
Point-like (also called surface-based) update of TrackParameters and the associated covariance
Pre/Post/update notation.
Given a sensitive detector element, it can be (e.g silicon sensors) that most of the material corresponds to the sensor itself or is located behind it.
In this case the material effects would be post-update with respect to the measurement update on the given surface, e.g in a Kalman filter procedure. The same material would have to be taken into account before, pre-update, the measurement update in the smoothing/ backward filtering kalman filtering process.
Pre/Post update make sense in these specific contexts. For a uniform detector or non-sensitive material a full update is applied.
Definition at line 63 of file MaterialEffectsUpdator.h.
Definition at line 83 of file MaterialEffectsUpdator.h.
|
privateinherited |
Definition at line 388 of file AthCommonDataStore.h.
Trk::MaterialEffectsUpdator::MaterialEffectsUpdator | ( | const std::string & | t, |
const std::string & | n, | ||
const IInterface * | p | ||
) |
AlgTool like constructor.
Definition at line 40 of file MaterialEffectsUpdator.cxx.
|
virtualdefault |
Virtual destructor.
|
private |
A simple check method for the 'removeNoise' update model.
Definition at line 766 of file MaterialEffectsUpdator.cxx.
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
|
inlineprivateinherited |
specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>
Definition at line 199 of file AthCommonDataStore.h.
|
inlineinherited |
Declare a new Gaudi property.
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
|
inlineinherited |
Declare a new Gaudi property.
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
|
inlineinherited |
Definition at line 259 of file AthCommonDataStore.h.
|
inlineinherited |
Declare a new Gaudi property.
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
|
inlineinherited |
Declare a new Gaudi property.
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
|
inlineinherited |
Definition at line 145 of file AthCommonDataStore.h.
|
inlineinherited |
The standard StoreGateSvc/DetectorStore
Returns (kind of) a pointer to the StoreGateSvc
.
Definition at line 95 of file AthCommonDataStore.h.
|
inlineinherited |
The standard StoreGateSvc
(event store) Returns (kind of) a pointer to the StoreGateSvc
.
Definition at line 85 of file AthCommonDataStore.h.
|
inlineinherited |
The standard StoreGateSvc
(event store) Returns (kind of) a pointer to the StoreGateSvc
.
Definition at line 90 of file AthCommonDataStore.h.
|
protectedinherited |
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
|
private |
|
inlinevirtualinherited |
Creates an instance of the cache to be used.
by the client.
Definition at line 87 of file IMaterialEffectsUpdator.h.
|
inlineprivate |
Definition at line 357 of file MaterialEffectsUpdator.h.
|
overridevirtual |
|
overridevirtualinherited |
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
|
inlinestaticinherited |
AlgTool and IAlgTool interface methods.
Definition at line 52 of file IMaterialEffectsUpdator.h.
|
inlinefinaloverridevirtual |
Model Action: Provides the possibility of doing non-local MaterialEffectsUpdates for different models Optional.
Implements Trk::IMaterialEffectsUpdator.
Definition at line 237 of file MaterialEffectsUpdator.h.
|
inlinefinaloverridevirtual |
Only has an effect if m_landauMode == true.
Resets mutable variables used for non-local calculation of energy loss if parm == 0. Otherwise, modifies parm with the final update of the covariance matrix
Implements Trk::IMaterialEffectsUpdator.
Definition at line 164 of file MaterialEffectsUpdator.h.
|
staticprivate |
Definition at line 761 of file MaterialEffectsUpdator.cxx.
|
inlineinherited |
Definition at line 24 of file AthCommonMsg.h.
|
inlineinherited |
Definition at line 27 of file AthCommonMsg.h.
|
inlineinherited |
Definition at line 30 of file AthCommonMsg.h.
|
overridevirtualinherited |
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
|
inlinefinaloverridevirtual |
Updator interface (pre-update for a layer):
Implements Trk::IMaterialEffectsUpdator.
Definition at line 207 of file MaterialEffectsUpdator.h.
|
inlinefinaloverridevirtual |
Updator interface (post-update for a layer): —> ALWAYS pointer to new TrackParameters is returned if no postUpdate is to be done : return nullptr.
Implements Trk::IMaterialEffectsUpdator.
Definition at line 129 of file MaterialEffectsUpdator.h.
|
private |
Definition at line 363 of file MaterialEffectsUpdator.cxx.
|
inlinefinaloverridevirtual |
Updator interface (pre-update for a layer):
Implements Trk::IMaterialEffectsUpdator.
Definition at line 196 of file MaterialEffectsUpdator.h.
|
inlineoverridevirtual |
Updator interface (pre-update for a layer): —> ALWAYS pointer to new TrackParameters is returned.
Implements Trk::IMaterialEffectsUpdator.
Definition at line 114 of file MaterialEffectsUpdator.h.
|
private |
Definition at line 309 of file MaterialEffectsUpdator.cxx.
|
inlineprotectedinherited |
Definition at line 380 of file AthCommonDataStore.h.
|
inlineprotectedinherited |
remove all handles from I/O resolution
Definition at line 364 of file AthCommonDataStore.h.
|
overridevirtualinherited |
Perform system initialization for an algorithm.
We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.
Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.
|
overridevirtualinherited |
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
|
inlinefinaloverridevirtual |
Updator interface: MaterialProperties based material update.
Implements Trk::IMaterialEffectsUpdator.
Definition at line 218 of file MaterialEffectsUpdator.h.
|
inlinefinaloverridevirtual |
Updator interface (full update for a layer):
Implements Trk::IMaterialEffectsUpdator.
Definition at line 174 of file MaterialEffectsUpdator.h.
|
inlinefinaloverridevirtual |
User updator interface (full update for a layer):
Implements Trk::IMaterialEffectsUpdator.
Definition at line 186 of file MaterialEffectsUpdator.h.
|
inlinefinaloverridevirtual |
Dedicated Updator interface:-> create new track parameters.
Implements Trk::IMaterialEffectsUpdator.
Definition at line 140 of file MaterialEffectsUpdator.h.
|
inlineoverridevirtual |
Updator interface (full update for a layer) —> ALWAYS pointer to new TrackParameters is returned.
Implements Trk::IMaterialEffectsUpdator.
Definition at line 87 of file MaterialEffectsUpdator.h.
|
inlineoverridevirtual |
Updator interface (full update for a layer) according to user input through MaterialEffectsOnTrack —> ALWAYS pointer to new TrackParameters is returned.
Implements Trk::IMaterialEffectsUpdator.
Definition at line 101 of file MaterialEffectsUpdator.h.
|
private |
Definition at line 590 of file MaterialEffectsUpdator.cxx.
|
private |
Definition at line 101 of file MaterialEffectsUpdator.cxx.
|
private |
Definition at line 132 of file MaterialEffectsUpdator.cxx.
|
private |
Definition at line 419 of file MaterialEffectsUpdator.cxx.
|
inlineinherited |
Definition at line 308 of file AthCommonDataStore.h.
|
inlinefinaloverridevirtual |
Validation Action: outside access to internal validation steps Optional.
Implements Trk::IMaterialEffectsUpdator.
Definition at line 231 of file MaterialEffectsUpdator.h.
|
inlinefinaloverridevirtual |
Validation Action - calls the writing and resetting of the TTree variables.
Implements Trk::IMaterialEffectsUpdator.
Definition at line 155 of file MaterialEffectsUpdator.h.
|
staticprivate |
Definition at line 753 of file MaterialEffectsUpdator.cxx.
|
mutableprivate |
Definition at line 356 of file MaterialEffectsUpdator.h.
|
privateinherited |
Pointer to StoreGate (detector store by default)
Definition at line 393 of file AthCommonDataStore.h.
|
private |
Definition at line 307 of file MaterialEffectsUpdator.h.
|
private |
Definition at line 309 of file MaterialEffectsUpdator.h.
|
private |
Definition at line 342 of file MaterialEffectsUpdator.h.
|
privateinherited |
Pointer to StoreGate (event store by default)
Definition at line 390 of file AthCommonDataStore.h.
|
private |
Definition at line 339 of file MaterialEffectsUpdator.h.
|
private |
Definition at line 312 of file MaterialEffectsUpdator.h.
|
private |
Definition at line 330 of file MaterialEffectsUpdator.h.
|
private |
Definition at line 349 of file MaterialEffectsUpdator.h.
|
private |
Definition at line 335 of file MaterialEffectsUpdator.h.
|
private |
Definition at line 337 of file MaterialEffectsUpdator.h.
|
private |
Definition at line 320 of file MaterialEffectsUpdator.h.
|
private |
Definition at line 317 of file MaterialEffectsUpdator.h.
|
private |
Definition at line 345 of file MaterialEffectsUpdator.h.
|
private |
Definition at line 314 of file MaterialEffectsUpdator.h.
|
private |
Definition at line 332 of file MaterialEffectsUpdator.h.
|
private |
Definition at line 327 of file MaterialEffectsUpdator.h.
|
private |
Definition at line 325 of file MaterialEffectsUpdator.h.
|
privateinherited |
Definition at line 399 of file AthCommonDataStore.h.
|
privateinherited |
Definition at line 398 of file AthCommonDataStore.h.