|
ATLAS Offline Software
|
#include <MaterialMapping.h>
|
| MaterialMapping (const std::string &name, ISvcLocator *pSvcLocator) |
| Standard Athena-Algorithm Constructor. More...
|
|
| ~MaterialMapping () |
| Default Destructor. More...
|
|
StatusCode | initialize () |
| standard Athena-Algorithm method More...
|
|
StatusCode | execute () |
| standard Athena-Algorithm method More...
|
|
StatusCode | finalize () |
| standard Athena-Algorithm method More...
|
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. 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 | 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 |
|
|
bool | associateHit (const Trk::Layer &tvol, const Amg::Vector3D &pos, const Amg::Vector3D &layerHitPosition, double stepl, const Trk::Material &mat) |
| Associate the Step to the Layer. More...
|
|
void | registerVolume (const Trk::TrackingVolume &tvol, int lvl) |
| Output information with Level. More...
|
|
void | assignLayerMaterialProperties (Trk::TrackingVolume &tvol, Trk::LayerMaterialMap *propSet) |
| create the LayerMaterialRecord */ More...
|
|
void | insertLayerMaterialRecord (const Trk::Layer &lay) |
|
StatusCode | handleTrackingGeometry () |
| Retrieve the TrackingGeometry and its informations. More...
|
|
const TrackingGeometry & | trackingGeometry () const |
|
void | throwFailedToGetTrackingGeometry () const |
|
const TrackingGeometry * | retrieveTrackingGeometry (const EventContext &ctx) const |
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
A simple algorithm that throws random points through detector and associates them with the given/found layer.
- Author
- Andre.nosp@m.as.S.nosp@m.alzbu.nosp@m.rger.nosp@m.@cern.nosp@m..ch
Definition at line 72 of file MaterialMapping.h.
◆ StoreGateSvc_t
◆ MaterialMapping()
Trk::MaterialMapping::MaterialMapping |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
Standard Athena-Algorithm Constructor.
Definition at line 36 of file MaterialMapping.cxx.
57 #ifdef TRKDETDESCR_MEMUSAGE
◆ ~MaterialMapping()
Trk::MaterialMapping::~MaterialMapping |
( |
| ) |
|
|
default |
◆ assignLayerMaterialProperties()
create the LayerMaterialRecord */
Definition at line 356 of file MaterialMapping.cxx.
360 if (!propSet)
return;
366 if (confinedLayers) {
374 if (
layer && (*layer).layerIndex().value() ) {
375 ATH_MSG_INFO(
" > LayerIndex: "<< (*layer).layerIndex() );
379 auto curIt = propSet->find((*layer).layerIndex());
380 if (curIt != propSet->end()) {
381 ATH_MSG_INFO(
"LayerMaterial assigned for Layer with index: "<< (*layer).layerIndex() );
383 layer->assignMaterialProperties(*((*curIt).second), 1.);
392 if (confinedVolumes) {
395 ATH_MSG_INFO(
"--> found : "<< volumes.size() <<
"confined TrackingVolumes");
397 for (
const auto & volume : volumes) {
◆ associateHit()
Associate the Step to the Layer.
Definition at line 311 of file MaterialMapping.cxx.
331 (*clIter).second.associateGeantinoHit(positionOnLayer, stepl,
mat);
332 ATH_MSG_VERBOSE(
"- associate Geantino Information at intersection [r/z] = " << positionOnLayer.perp() <<
"/"<< positionOnLayer.z() );
334 ATH_MSG_VERBOSE(
"- associate Geantino Information ( s, s/x0 , x0 , l0, a, z, rho ) = "
335 << stepl <<
", "<< stepl/
mat.X0 <<
", "<<
mat.X0 <<
", "<<
mat.L0 <<
", "<<
mat.A <<
", "<<
mat.Z <<
", "<<
mat.rho );
349 ATH_MSG_WARNING(
"- associate hit - the layer with index " <<
layer->layerIndex().value() <<
" was not found - should not happen!");
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
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.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
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.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
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.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
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.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode Trk::MaterialMapping::execute |
( |
| ) |
|
standard Athena-Algorithm method
Definition at line 116 of file MaterialMapping.cxx.
123 if (retrieveCode.isFailure()){
124 ATH_MSG_INFO(
"Could not retrieve mapping volume from tracking geometry. Exiting.");
129 ATH_MSG_VERBOSE(
"Mapping volume correctly retrieved from tracking geometry");
138 (*m_elementTable) += (*eTableEvent);
143 int associatedSteps = 0;
148 if (materialStepCollection.isValid() && !materialStepCollection->empty()){
151 size_t materialSteps = materialStepCollection->size();
152 ATH_MSG_DEBUG(
"[+] Successfully read "<< materialSteps <<
" geantino steps");
155 double dirx = (*materialStepCollection)[materialSteps-1]->hitX();
156 double diry = (*materialStepCollection)[materialSteps-1]->hitY();
157 double dirz = (*materialStepCollection)[materialSteps-1]->hitZ();
160 double eta = direction.eta();
164 return StatusCode::SUCCESS;
171 ecc.navigationCurvilinear =
false;
177 std::vector< std::pair<const Trk::Layer*, Amg::Vector3D> > layersAndHits;
183 size_t nLayersHit = ecc.extrapolationSteps.size();
184 ATH_MSG_VERBOSE(
"[+] Extrapolation to layers did succeed and found " << nLayersHit <<
" layers.");
186 layersAndHits.reserve(nLayersHit);
192 for (
auto& es : ecc.extrapolationSteps){
204 std::pair<const Trk::Layer*, Amg::Vector3D> layerHitPair(mLayer,
parameters->position());
206 layersAndHits.push_back(layerHitPair);
212 if (ecc.endParameters !=
parameters)
delete ecc.endParameters;
215 if (layersAndHits.empty()){
217 return StatusCode::SUCCESS;
221 size_t currentLayer = 0;
225 ATH_MSG_VERBOSE(
"[L] starting from layer " << currentLayer <<
" from layer collection for this step.");
227 double t =
step->steplength();
239 if (currentLayer < nLayersHit-1) {
241 double currentDistance = (
pos-layersAndHits[currentLayer].second).
mag();
243 for (
size_t testLayer = (currentLayer+1); testLayer < nLayersHit; ++testLayer){
245 double testDistance = (
pos-layersAndHits[testLayer].second).
mag();
246 ATH_MSG_VERBOSE(
"[L] Testing layer " << testLayer <<
" from layer collection for this step.");
248 if ( testDistance < currentDistance ){
250 ATH_MSG_VERBOSE(
"[L] Skipping over to current layer " << testLayer <<
" because " << testDistance <<
" < " << currentDistance);
252 currentLayer = testLayer;
253 currentDistance = testDistance;
261 const Trk::Layer* assignedLayer = layersAndHits[currentLayer].first;
262 Amg::Vector3D assignedPosition = layersAndHits[currentLayer].second;
274 for (
auto& lhp : layersAndHits){
280 (*clIter).second.associateEmptyHit(lhp.second);
281 ATH_MSG_VERBOSE(
"- to layer with index "<< lhp.first->layerIndex().value() <<
" with empty hit detected.");
283 ATH_MSG_WARNING(
"- no Layer found in the associated map! Should not happen.");
288 if (associatedSteps) {
289 ATH_MSG_VERBOSE(
"There are associated steps, need to call finalizeEvent() & record to the MaterialMapper.");
307 return StatusCode::SUCCESS;
◆ extraDeps_update_handler()
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
◆ extraOutputDeps()
const DataObjIDColl & AthAlgorithm::extraOutputDeps |
( |
| ) |
const |
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 50 of file AthAlgorithm.cxx.
57 return Algorithm::extraOutputDeps();
◆ finalize()
StatusCode Trk::MaterialMapping::finalize |
( |
| ) |
|
standard Athena-Algorithm method
Definition at line 406 of file MaterialMapping.cxx.
409 ATH_MSG_INFO(
"========================================================================================= ");
412 #ifdef TRKDETDESCR_MEMUSAGE
413 m_memoryLogger.refresh(getpid());
414 ATH_MSG_INFO(
"[ memory usage ] Start building of material maps: " );
419 std::map< std::string, Trk::LayerMaterialMap* > layerMaterialMaps;
421 ATH_MSG_INFO(
"-> Creating material map '"<< lmcIter->layerMaterialName() <<
"' from creator "<< lmcIter.typeAndName() );
435 std::string
vName = eVolume ? (eVolume->
volumeName()) :
" BoundaryCollection ";
448 #ifdef TRKDETDESCR_MEMUSAGE
449 m_memoryLogger.refresh(getpid());
450 ATH_MSG_INFO(
"[ memory usage ] Before building the map for Layer "<< layerKey.
value() );
454 #ifdef TRKDETDESCR_MEMUSAGE
455 m_memoryLogger.refresh(getpid());
456 ATH_MSG_INFO(
"[ memory usage ] After building the map for Layer "<< layerKey.
value() );
462 (*layerMaterialMaps[lmcIter->layerMaterialName()])[layerKey.
value()] = lMaterial;
465 ATH_MSG_WARNING(
"Could not analyse created LayerMaterialProperties for layer "<< layerKey.
value() );
470 ATH_MSG_INFO(
"Finalize map synchronization and write the maps to the DetectorStore.");
472 for (
auto& ilmIter : layerMaterialMaps ){
476 ilmIter.second->updateElementTable(tElementTable);
477 if (ilmIter.second->elementTable()){
478 ATH_MSG_INFO(
"ElementTable for LayerMaterialMap '" << ilmIter.first <<
"' found and syncrhonized." );
483 if ( (
detStore()->record(ilmIter.second, ilmIter.first,
false)).isFailure()){
484 ATH_MSG_ERROR(
"Writing of LayerMaterialMap with name '" << ilmIter.first <<
"' was not successful." );
485 delete ilmIter.second;
486 }
else ATH_MSG_INFO(
"LayerMaterialMap: " << ilmIter.first <<
" written to the DetectorStore!" );
490 #ifdef TRKDETDESCR_MEMUSAGE
491 m_memoryLogger.refresh(getpid());
492 ATH_MSG_INFO(
"[ memory usage ] At the end of the material map creation.");
496 ATH_MSG_INFO(
"========================================================================================= " );
501 ATH_MSG_INFO(
"========================================================================================= " );
503 return StatusCode::SUCCESS;
◆ handleTrackingGeometry()
StatusCode Trk::MaterialMapping::handleTrackingGeometry |
( |
| ) |
|
|
private |
◆ initialize()
StatusCode Trk::MaterialMapping::initialize |
( |
| ) |
|
standard Athena-Algorithm method
Definition at line 88 of file MaterialMapping.cxx.
112 return StatusCode::SUCCESS;
◆ inputHandles()
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.
◆ insertLayerMaterialRecord()
void Trk::MaterialMapping::insertLayerMaterialRecord |
( |
const Trk::Layer & |
lay | ) |
|
|
private |
Definition at line 585 of file MaterialMapping.cxx.
596 if (layerMaterialBinUtility){
599 layerMaterialBinUtility,
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
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.
◆ registerVolume()
Output information with Level.
private void Method to map the layer material
Definition at line 532 of file MaterialMapping.cxx.
534 int sublevel = lvl+1;
538 std::cout <<
"TrackingVolume name: "<< tvol.
volumeName() << std::endl;
541 std::vector<const Trk::Layer*> volumeLayers;
545 if (confinedLayers) {
550 std::cout <<
"- found : "<<
layers.size() <<
"confined Layers"<< std::endl;
552 auto clIter =
layers.begin();
553 auto clIterE =
layers.end();
554 for ( ; clIter != clIterE; ++clIter ) {
556 const Amg::Vector3D& sReferencePoint = (*clIter)->surfaceRepresentation().globalReferencePoint();
558 if ((*clIter)->layerMaterialProperties() && insideMappingVolume)
559 volumeLayers.push_back((*clIter));
564 for (
auto& lIter : volumeLayers )
569 if (confinedVolumes) {
574 std::cout <<
"- found : "<< volumes.size() <<
"confined TrackingVolumes"<< std::endl;
576 auto volumesIter = volumes.begin();
577 for (; volumesIter != volumes.end(); ++volumesIter)
◆ renounce()
◆ renounceArray()
◆ retrieveTrackingGeometry()
Definition at line 186 of file MaterialMapping.h.
190 if (!handle.isValid()) {
195 return handle.cptr();
◆ sysInitialize()
StatusCode AthAlgorithm::sysInitialize |
( |
| ) |
|
|
overridevirtualinherited |
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ throwFailedToGetTrackingGeometry()
void Trk::MaterialMapping::throwFailedToGetTrackingGeometry |
( |
| ) |
const |
|
private |
◆ trackingGeometry()
Definition at line 211 of file MaterialMapping.h.
215 if (!tracking_geometry) {
216 ATH_MSG_FATAL(
"Did not get valid TrackingGeometry. Aborting.");
217 throw GaudiException(
"MaterialMapping",
218 "Problem with TrackingGeometry loading.",
219 StatusCode::FAILURE);
221 return *tracking_geometry;
◆ updateVHKA()
◆ m_accumulatedMaterialXX0
double Trk::MaterialMapping::m_accumulatedMaterialXX0 |
|
private |
◆ m_accumulatedRhoS
double Trk::MaterialMapping::m_accumulatedRhoS |
|
private |
◆ m_associationType
int Trk::MaterialMapping::m_associationType |
|
private |
◆ m_checkForEmptyHits
bool Trk::MaterialMapping::m_checkForEmptyHits |
|
private |
◆ m_detStore
◆ m_elementTable
◆ m_etaCutOff
double Trk::MaterialMapping::m_etaCutOff |
|
private |
◆ m_etaSide
int Trk::MaterialMapping::m_etaSide |
|
private |
needed for debugging: -1 negative | 0 all | 1 positive
Definition at line 132 of file MaterialMapping.h.
◆ m_evtStore
◆ m_extendedExtraObjects
DataObjIDColl AthAlgorithm::m_extendedExtraObjects |
|
privateinherited |
◆ m_extrapolationEngine
Initial value:{
this,
"ExtrapolationEngine",
"",
"Extrapolation Engine"
}
Definition at line 116 of file MaterialMapping.h.
◆ m_inputEventElementTable
◆ m_inputMaterialStepCollection
◆ m_layerMaterialAnalysers
Initial value:{
this,
"LayerMaterialAnalysers",
{},
"Layer material analysers per creator (if wanted)"
}
Definition at line 142 of file MaterialMapping.h.
◆ m_layerMaterialCreators
Initial value:{
this,
"LayerMaterialCreators",
{},
"Layer material creators"
}
Definition at line 148 of file MaterialMapping.h.
◆ m_layerMaterialRecordAnalyser
Initial value:{
this,
"LayerMaterialRecordAnalyser",
"",
"Layer material analyser for the layer material record"
}
Definition at line 136 of file MaterialMapping.h.
◆ m_layerMaterialScreenOutput
int Trk::MaterialMapping::m_layerMaterialScreenOutput |
|
private |
◆ m_layerRecords
◆ m_layersRecordedPerEvent
std::map<const Layer*, bool> Trk::MaterialMapping::m_layersRecordedPerEvent |
|
private |
these are the layers hit per event - for empty hit scaling
Definition at line 173 of file MaterialMapping.h.
◆ m_mapComposition
bool Trk::MaterialMapping::m_mapComposition |
|
private |
◆ m_mapMaterial
bool Trk::MaterialMapping::m_mapMaterial |
|
private |
◆ m_mapped
size_t Trk::MaterialMapping::m_mapped |
|
private |
◆ m_mappingVolume
◆ m_mappingVolumeName
std::string Trk::MaterialMapping::m_mappingVolumeName |
|
private |
◆ m_materialMapper
Initial value:{ this,
"MaterialMapper",
"",
"IMaterialMapper algTool" }
Definition at line 157 of file MaterialMapping.h.
◆ m_minCompositionFraction
double Trk::MaterialMapping::m_minCompositionFraction |
|
private |
minimal fraction to be accounted for the composition recording
Definition at line 162 of file MaterialMapping.h.
◆ m_outputLayerMaterialSetName
std::string Trk::MaterialMapping::m_outputLayerMaterialSetName |
|
private |
◆ m_skippedOutside
size_t Trk::MaterialMapping::m_skippedOutside |
|
private |
◆ m_trackingGeometryReadKey
Initial value:{
this,
"TrackingGeometryReadKey",
"",
"Key of the TrackingGeometry conditions data."
}
Definition at line 198 of file MaterialMapping.h.
◆ m_unmapped
size_t Trk::MaterialMapping::m_unmapped |
|
private |
◆ m_useLayerThickness
bool Trk::MaterialMapping::m_useLayerThickness |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
ToolHandleArray< ILayerMaterialCreator > m_layerMaterialCreators
std::map< const Layer *, LayerMaterialRecord > m_layerRecords
this is the general record for the search
bool inside(const Amg::Vector3D &gp, double tol=0.) const
Inside() method for checks.
SG::ReadCondHandleKey< TrackingGeometry > m_trackingGeometryReadKey
SG::ReadHandleKey< Trk::ElementTable > m_inputEventElementTable
input event table
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
void registerVolume(const Trk::TrackingVolume &tvol, int lvl)
Output information with Level.
std::map< const Layer *, bool > m_layersRecordedPerEvent
these are the layers hit per event - for empty hit scaling
double m_etaCutOff
general steering
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
StatusCode handleTrackingGeometry()
Retrieve the TrackingGeometry and its informations.
#define ATH_MSG_VERBOSE(x)
const TrackingGeometry & trackingGeometry() const
void throwFailedToGetTrackingGeometry() const
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual void setOwner(IDataHandleHolder *o)=0
double m_minCompositionFraction
minimal fraction to be accounted for the composition recording
double m_accumulatedMaterialXX0
the accumulated material information
const LayerArray * confinedLayers() const
Return the subLayer array.
const TrackingVolume * highestTrackingVolume() const
return the world
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.
virtual StatusCode sysInitialize() override
Override sysInitialize.
void assignLayerMaterialProperties(Trk::TrackingVolume &tvol, Trk::LayerMaterialMap *propSet)
create the LayerMaterialRecord */
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
int m_etaSide
needed for debugging: -1 negative | 0 all | 1 positive
::StatusCode StatusCode
StatusCode definition for legacy code.
bool m_mapComposition
map the composition of the material
Trk::ElementTable * m_elementTable
the accumulated element table
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
const Trk::Layer * materialLayer() const
return the material Layer
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
std::string m_mappingVolumeName
int value() const
layerIndex expressed in an integer
ToolHandleArray< ILayerMaterialAnalyser > m_layerMaterialAnalysers
ToolHandle< IExtrapolationEngine > m_extrapolationEngine
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
ToolHandle< IMaterialMapper > m_materialMapper
const std::string & volumeName() const
Returns the VolumeName - for debug reason, might be depreciated later.
virtual BinnedArraySpan< T *const > arrayObjects()=0
Return all objects of the Array non-const we can still modify the T.
double thickness() const
Return the Thickness of the Layer.
Eigen::Matrix< double, 3, 1 > Vector3D
ToolHandle< ILayerMaterialAnalyser > m_layerMaterialRecordAnalyser
bool m_useLayerThickness
use the actual layer thickness
bool m_mapMaterial
Mapper and Inspector.
const Trk::Layer * associatedLayer() const
return the associated Layer
bool associateHit(const Trk::Layer &tvol, const Amg::Vector3D &pos, const Amg::Vector3D &layerHitPosition, double stepl, const Trk::Material &mat)
Associate the Step to the Layer.
virtual const BinUtility * binUtility() const override
Return the BinUtility.
DataObjIDColl m_extendedExtraObjects
bool m_checkForEmptyHits
use extrapoaltion engine to check for empty hits
std::shared_ptr< T > SharedObject
#define ATH_MSG_WARNING(x)
const TrackingVolumeArray * confinedVolumes() const
Return the subLayer array.
const LayerMaterialProperties * layerMaterialProperties() const
getting the LayerMaterialProperties including full/pre/post update
const TrackingVolume * trackingVolume(const std::string &name) const
return the tracking Volume by name, 0 if it doesn't exist
const TrackingVolume * lowestTrackingVolume(const Amg::Vector3D &gp) const
return the lowest tracking Volume
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
void insertLayerMaterialRecord(const Trk::Layer &lay)
AthAlgorithm()
Default constructor:
const Trk::TrackingVolume * m_mappingVolume
SG::ReadHandleKey< MaterialStepCollection > m_inputMaterialStepCollection
output / input steering
const TrackingGeometry * retrieveTrackingGeometry(const EventContext &ctx) const
std::span< T > BinnedArraySpan
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Scalar mag() const
mag method
int m_layerMaterialScreenOutput
const LayerIndex & layerIndex() const
get the layerIndex