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 > &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 |
Static Private Member Functions | |
static void | validationActionImpl (ICache &cache) |
static void | modelActionImpl (ICache &cache, const TrackParameters *parm=nullptr) |
Private Attributes | |
bool | m_doCompoundLayerCheck |
turn on/off the necessary checks when we may have compound layers More... | |
bool | m_doEloss |
steer energy loss On/Off from outside More... | |
bool | m_doMs |
steer multiple scattering On/Off from outside More... | |
bool | m_forceMomentum |
Force the momentum to be a specific value. More... | |
bool | m_xKalmanStraggling |
the momentum Error as calculated in xKalman More... | |
bool | m_useMostProbableEloss |
use the most probable energy loss More... | |
bool | m_msgOutputValidationDirection |
validation direction used for screen output More... | |
bool | m_msgOutputCorrections |
screen output of actual corrections More... | |
bool | m_validationMode |
Switch for validation mode. More... | |
bool | m_validationIgnoreUnmeasured |
Ignore unmeasured TrackParameters (Navigation!) More... | |
bool | m_landauMode |
If in Landau mode, error propagation is done as for landaus. More... | |
int | m_validationDirection |
validation direction More... | |
double | m_momentumCut |
Minimal momentum cut for update. More... | |
double | m_momentumMax |
Maximal momentum cut for update. More... | |
double | m_forcedMomentum |
Forced momentum value. More... | |
ToolHandle< IEnergyLossUpdator > | m_eLossUpdator |
AlgoTool for EnergyLoss updates. More... | |
ToolHandle< IMultipleScatteringUpdator > | m_msUpdator |
AlgoTool for MultipleScatterin effects. More... | |
ToolHandle< IMaterialMapper > | m_materialMapper |
the material mapper for recording the layer material More... | |
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 69 of file MaterialEffectsUpdator.h.
Definition at line 89 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 | ||
) |
|
virtualdefault |
Virtual destructor.
|
private |
A simple check method for the 'removeNoise' update model.
Definition at line 819 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 347 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 243 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 170 of file MaterialEffectsUpdator.h.
|
staticprivate |
Definition at line 814 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 213 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 135 of file MaterialEffectsUpdator.h.
|
private |
Definition at line 408 of file MaterialEffectsUpdator.cxx.
|
inlinefinaloverridevirtual |
Updator interface (pre-update for a layer):
Implements Trk::IMaterialEffectsUpdator.
Definition at line 202 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 120 of file MaterialEffectsUpdator.h.
|
private |
Definition at line 354 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 224 of file MaterialEffectsUpdator.h.
|
inlinefinaloverridevirtual |
Updator interface (full update for a layer):
Implements Trk::IMaterialEffectsUpdator.
Definition at line 180 of file MaterialEffectsUpdator.h.
|
inlinefinaloverridevirtual |
User updator interface (full update for a layer):
Implements Trk::IMaterialEffectsUpdator.
Definition at line 192 of file MaterialEffectsUpdator.h.
|
inlinefinaloverridevirtual |
Dedicated Updator interface:-> create new track parameters.
Implements Trk::IMaterialEffectsUpdator.
Definition at line 146 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 93 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 107 of file MaterialEffectsUpdator.h.
|
private |
Definition at line 641 of file MaterialEffectsUpdator.cxx.
|
private |
Definition at line 140 of file MaterialEffectsUpdator.cxx.
|
private |
Definition at line 171 of file MaterialEffectsUpdator.cxx.
|
private |
Definition at line 464 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 237 of file MaterialEffectsUpdator.h.
|
inlinefinaloverridevirtual |
Validation Action - calls the writing and resetting of the TTree variables.
Implements Trk::IMaterialEffectsUpdator.
Definition at line 161 of file MaterialEffectsUpdator.h.
|
staticprivate |
Definition at line 806 of file MaterialEffectsUpdator.cxx.
|
mutableprivate |
Definition at line 346 of file MaterialEffectsUpdator.h.
|
privateinherited |
Pointer to StoreGate (detector store by default)
Definition at line 393 of file AthCommonDataStore.h.
|
private |
turn on/off the necessary checks when we may have compound layers
Definition at line 313 of file MaterialEffectsUpdator.h.
|
private |
steer energy loss On/Off from outside
Definition at line 315 of file MaterialEffectsUpdator.h.
|
private |
steer multiple scattering On/Off from outside
Definition at line 316 of file MaterialEffectsUpdator.h.
|
private |
AlgoTool for EnergyLoss updates.
Definition at line 339 of file MaterialEffectsUpdator.h.
|
privateinherited |
Pointer to StoreGate (event store by default)
Definition at line 390 of file AthCommonDataStore.h.
|
private |
Forced momentum value.
Definition at line 337 of file MaterialEffectsUpdator.h.
|
private |
Force the momentum to be a specific value.
Definition at line 318 of file MaterialEffectsUpdator.h.
|
private |
If in Landau mode, error propagation is done as for landaus.
Definition at line 331 of file MaterialEffectsUpdator.h.
|
private |
the material mapper for recording the layer material
Definition at line 341 of file MaterialEffectsUpdator.h.
|
private |
Minimal momentum cut for update.
Definition at line 335 of file MaterialEffectsUpdator.h.
|
private |
Maximal momentum cut for update.
Definition at line 336 of file MaterialEffectsUpdator.h.
|
private |
screen output of actual corrections
Definition at line 324 of file MaterialEffectsUpdator.h.
|
private |
validation direction used for screen output
Definition at line 322 of file MaterialEffectsUpdator.h.
|
private |
AlgoTool for MultipleScatterin effects.
Definition at line 340 of file MaterialEffectsUpdator.h.
|
private |
use the most probable energy loss
Definition at line 320 of file MaterialEffectsUpdator.h.
|
private |
validation direction
Definition at line 333 of file MaterialEffectsUpdator.h.
|
private |
Ignore unmeasured TrackParameters (Navigation!)
Definition at line 329 of file MaterialEffectsUpdator.h.
|
private |
Switch for validation mode.
Definition at line 328 of file MaterialEffectsUpdator.h.
|
privateinherited |
Definition at line 399 of file AthCommonDataStore.h.
|
privateinherited |
Definition at line 398 of file AthCommonDataStore.h.
|
private |
the momentum Error as calculated in xKalman
Definition at line 319 of file MaterialEffectsUpdator.h.