|
ATLAS Offline Software
|
#include <MaterialMapper.h>
|
| MaterialMapper (const std::string &, const std::string &, const IInterface *) |
| AlgTool like constructor. More...
|
|
virtual | ~MaterialMapper () |
| Virtual destructor. More...
|
|
StatusCode | initialize () |
| AlgTool initialize method. More...
|
|
StatusCode | finalize () |
| AlgTool finalize method. More...
|
|
void | recordMaterialHit (const AssociatedMaterial &amhit, const Amg::Vector3D &projectedPosition) const |
| Record material hit along the recording. More...
|
|
void | recordLayerHit (const AssociatedMaterial &amhit, bool full=false) const |
| Record material hit - if various hits per uniform layer are recorded, or if you want to record one full hit. More...
|
|
void | recordSurfaceHit (const Amg::Vector2D &locpos, const AssociatedMaterial &amhit) const |
| Record material hit on a surface. More...
|
|
void | handle (const Incident &inc) |
| Handle the incident from the incident service. 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 |
|
| DeclareInterfaceID (IMaterialMapper, 1, 0) |
| Creates the InterfaceID and interfaceID() method. More...
|
|
Implementation of the class MaterialMapper. The correct material mapping can only be done with stiff tracks as the finalizeEvent method requires an eta,phi bin!
- Author
- Andre.nosp@m.as.S.nosp@m.alzbu.nosp@m.rger.nosp@m.@cern.nosp@m..ch
Definition at line 204 of file MaterialMapper.h.
◆ StoreGateSvc_t
◆ MaterialMapper()
Trk::MaterialMapper::MaterialMapper |
( |
const std::string & |
t, |
|
|
const std::string & |
n, |
|
|
const IInterface * |
p |
|
) |
| |
AlgTool like constructor.
Definition at line 20 of file MaterialMapper.cxx.
43 declareInterface<IMaterialMapper>(
this);
◆ ~MaterialMapper()
Trk::MaterialMapper::~MaterialMapper |
( |
| ) |
|
|
virtual |
Virtual destructor.
Definition at line 68 of file MaterialMapper.cxx.
74 for ( ; volTreeIter != endVolTreeIter;
delete (volTreeIter->second), ++volTreeIter) {}
81 for ( ; layTreeIter != endLayTreeIter;
delete (layTreeIter->second), ++layTreeIter) {}
85 for ( ; layTreeIter != endLayTreeIter;
delete (layTreeIter->second), ++layTreeIter) {}
92 for ( ; surfTreeIter != endSurfTreeIter;
delete (surfTreeIter->second), ++surfTreeIter) {}
◆ bookValidationTree()
void Trk::MaterialMapper::bookValidationTree |
( |
| ) |
|
|
private |
◆ 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]
◆ DeclareInterfaceID()
Creates the InterfaceID and interfaceID() method.
◆ 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]
◆ 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
◆ finalize()
StatusCode Trk::MaterialMapper::finalize |
( |
| ) |
|
AlgTool finalize method.
Definition at line 114 of file MaterialMapper.cxx.
117 return StatusCode::SUCCESS;
◆ finalizeLayerHits()
void Trk::MaterialMapper::finalizeLayerHits |
( |
| ) |
const |
|
private |
Finalize the SingleLayer Steps.
Definition at line 294 of file MaterialMapper.cxx.
299 for (
size_t iltm = 0; iltm < 2; ++iltm) {
304 for ( ; layObjIter != endIter; ++layObjIter ) {
308 if (!layTreeObj)
continue;
311 int hits = (*layTreeObj).densedHits;
313 if ((*layTreeObj).pathInX0 > 0.) {
315 (*layTreeObj).densedHitX /=
hits;
316 (*layTreeObj).densedHitY /=
hits;
317 (*layTreeObj).densedHitZ /=
hits;
318 (*layTreeObj).densedHitR /=
hits;
319 (*layTreeObj).densedHitPhi /=
hits;
320 (*layTreeObj).densedHitTheta /=
hits;
321 (*layTreeObj).correctionFactor /=
hits;
322 (*layTreeObj).A /= (*layTreeObj).rho;
323 (*layTreeObj).Z /= (*layTreeObj).rho;
324 (*layTreeObj).rho /= (*layTreeObj).path;
327 (*layTreeObj).tree->Fill();
330 (*layTreeObj).layerHits = 0;
331 (*layTreeObj).path = 0.;
332 (*layTreeObj).pathInX0 = 0.;
333 (*layTreeObj).pathInL0 = 0.;
334 (*layTreeObj).densedHits = 0;
335 (*layTreeObj).densedHitX = 0.;
336 (*layTreeObj).densedHitY = 0.;
337 (*layTreeObj).densedHitZ = 0.;
338 (*layTreeObj).densedHitR = 0.;
339 (*layTreeObj).densedHitPhi = 0.;
340 (*layTreeObj).densedHitTheta = 0.;
341 (*layTreeObj).correctionFactor = 0.;
342 (*layTreeObj).A = 0.;
343 (*layTreeObj).Z = 0.;
344 (*layTreeObj).rho = 0.;
◆ finalizeSurfaceHits()
void Trk::MaterialMapper::finalizeSurfaceHits |
( |
| ) |
const |
|
private |
Finalize the SingleLayer Steps.
Definition at line 381 of file MaterialMapper.cxx.
390 for ( ; surfObjIter != endIter; ++surfObjIter ) {
393 int hits = (*surfTreeObj).surfaceHits;
395 if ((*surfTreeObj).pathInX0 > 0.) {
397 (*surfTreeObj).loc1 /=
hits;
398 (*surfTreeObj).loc2 /=
hits;
399 (*surfTreeObj).eta /=
hits;
400 (*surfTreeObj).correctionFactor /=
hits;
401 (*surfTreeObj).A /=
hits;
402 (*surfTreeObj).Z /=
hits;
403 (*surfTreeObj).rho /=
hits;
406 (*surfTreeObj).tree->Fill();
409 (*surfTreeObj).loc1 = 0.;
410 (*surfTreeObj).loc2 = 0.;
411 (*surfTreeObj).eta = 0.;
413 (*surfTreeObj).correctionFactor = 0.;
414 (*surfTreeObj).path = 0.;
415 (*surfTreeObj).pathInX0 = 0.;
416 (*surfTreeObj).pathInL0 = 0.;
417 (*surfTreeObj).rho = 0.;
419 (*surfTreeObj).surfaceHits = 0;
◆ finalizeVolumeHits()
void Trk::MaterialMapper::finalizeVolumeHits |
( |
bool |
mapped = true | ) |
const |
|
private |
Finalize the Volume Steps.
Definition at line 206 of file MaterialMapper.cxx.
214 for ( ; volTreeIter != endVolTreeIter; ++volTreeIter ) {
218 if (!volTreeObj)
continue;
220 if ((*volTreeObj).path > 0.) {
225 (*volTreeObj).tree->Fill();
228 (*volTreeObj).eta = 0.;
229 (*volTreeObj).phi = 0.;
230 (*volTreeObj).path = 0.;
231 (*volTreeObj).pathInX0 = 0.;
232 (*volTreeObj).pathInL0 = 0.;
233 (*volTreeObj).pathZARho = 0.;
◆ handle()
void Trk::MaterialMapper::handle |
( |
const Incident & |
inc | ) |
|
◆ initialize()
StatusCode Trk::MaterialMapper::initialize |
( |
| ) |
|
AlgTool initialize method.
Definition at line 98 of file MaterialMapper.cxx.
110 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.
◆ layerTreeObject()
find (&&,||) create the LayerTreeObject
Definition at line 474 of file MaterialMapper.cxx.
476 if (!lay.layerIndex().value())
return nullptr;
499 ATH_MSG_INFO(
"MaterialLayer from BoundarySurface detected.");
502 TString tvolName = (enclosingVolume) ? enclosingVolume->
volumeName() :
"BoundaryLayers";
503 tvolName.ReplaceAll(
"::",
"_");
510 "CylinderLayer_" :
"DiscLayer_";
513 if (mLayer)
treeName +=
"boundary_";
514 treeName += lay.layerIndex().value();
516 TString treeTitle =
"TrackingVolume :";
517 treeTitle += tvolName;
519 TString treeRegName =
"/val/";
522 ATH_MSG_INFO(
"No Tree found for Layer " << lay.layerIndex().value() <<
" in Volume '" << tvolName <<
"'.");
523 ATH_MSG_INFO(
" -> Booking it now with register name : " << treeRegName.Data() );
527 else m_layerTrees.insert(std::make_pair(&lay,layTreeObj));
530 if (
m_histSvc->regTree(treeRegName.Data(), (*layTreeObj).tree).isFailure()) {
531 ATH_MSG_ERROR(
"initialize() Could not register the validation Tree -> Switching Tree output for this layer off !" );
532 delete layTreeObj; layTreeObj =
nullptr;
◆ 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.
◆ recordLayerHit()
Record material hit - if various hits per uniform layer are recorded, or if you want to record one full hit.
Implements Trk::IMaterialMapper.
Definition at line 239 of file MaterialMapper.cxx.
244 const Trk::Layer* lay = amhit.associatedLayer();
250 && amhit.steplengthInX0() > 0.)
259 double posR =
pos.perp();
260 double posEta =
pos.eta();
263 (*layTreeObj).hitPositionX[(*layTreeObj).layerHits] =
posX;
264 (*layTreeObj).hitPositionY[(*layTreeObj).layerHits] =
posY;
265 (*layTreeObj).hitPositionZ[(*layTreeObj).layerHits] =
posZ;
266 (*layTreeObj).hitPositionR[(*layTreeObj).layerHits] = posR;
267 (*layTreeObj).hitPositionEta[(*layTreeObj).layerHits] = posEta;
270 ++(*layTreeObj).layerHits;
271 ++(*layTreeObj).densedHits;
274 (*layTreeObj).densedHitX +=
posX;
275 (*layTreeObj).densedHitY +=
posY;
276 (*layTreeObj).densedHitZ +=
posZ;
277 (*layTreeObj).densedHitR += posR;
278 (*layTreeObj).densedHitPhi +=
pos.phi();
279 (*layTreeObj).densedHitTheta +=
pos.theta();
282 (*layTreeObj).correctionFactor += amhit.correctionFactor();
283 (*layTreeObj).path += amhit.steplength();
284 (*layTreeObj).pathInX0 += amhit.steplengthInX0();
285 (*layTreeObj).pathInL0 += amhit.steplengthInL0();
286 (*layTreeObj).A += amhit.A() * amhit.rho() * amhit.steplength();
287 (*layTreeObj).Z += amhit.Z() * amhit.rho() * amhit.steplength();
288 (*layTreeObj).rho += amhit.rho() * amhit.steplength();
◆ recordMaterialHit()
Record material hit along the recording.
Implements Trk::IMaterialMapper.
Definition at line 120 of file MaterialMapper.cxx.
130 const Trk::Layer* lay = amhit.associatedLayer();
133 ATH_MSG_WARNING(
"Could not associate TrackingVolume to material step!");
145 (*volTreeObj).path += amhit.steplength();
146 (*volTreeObj).pathInX0 += amhit.steplengthInX0();
147 (*volTreeObj).pathInL0 += amhit.steplengthInL0();
148 if(amhit.A() != 0.0) {
149 (*volTreeObj).pathZARho += (amhit.Z()/amhit.A())*amhit.rho()*amhit.steplength();
162 double steplength = amhit.steplength();
169 if(amhit.A() != 0.0) {
◆ recordSurfaceHit()
Record material hit on a surface.
Implements Trk::IMaterialMapper.
Definition at line 350 of file MaterialMapper.cxx.
356 const Trk::Layer* lay = amhit.associatedLayer();
363 (*surfTreeObj).loc1 += locpos[0];
364 (*surfTreeObj).loc2 += locpos[1];
365 (*surfTreeObj).eta += amhit.materialPosition().eta();
366 (*surfTreeObj).correctionFactor += amhit.correctionFactor();
367 (*surfTreeObj).path += amhit.steplength();
368 (*surfTreeObj).pathInX0 += amhit.steplengthInX0();
369 (*surfTreeObj).pathInL0 += amhit.steplengthInL0();
370 (*surfTreeObj).A += amhit.A()*amhit.steplength()*amhit.rho();
371 (*surfTreeObj).Z += amhit.Z()*amhit.steplength()*amhit.rho();
372 (*surfTreeObj).rho += amhit.rho()*amhit.steplength();
374 ++(*surfTreeObj).surfaceHits;
◆ renounce()
◆ renounceArray()
◆ surfaceTreeObject()
find (&&,||) create the LayerTreeObject
Definition at line 541 of file MaterialMapper.cxx.
550 if (findIter == endIter) {
553 TString volumeName = (enclosingVolume) ? enclosingVolume->
volumeName() :
"Unknown";
556 treeName += lay.layerIndex().value();
558 TString treeTitle =
"TrackingVolume :";
559 treeTitle += volumeName;
561 TString treeRegName =
"/val/";
564 ATH_MSG_INFO(
"No Tree found for Layer " << lay.layerIndex().value()
565 <<
" in Volume '" << volumeName <<
"'." );
566 ATH_MSG_INFO(
" -> Booking it now with register name : " << treeRegName.Data() );
572 if (
m_histSvc->regTree(treeRegName.Data(), (*surfTreeObj).tree).isFailure()) {
573 ATH_MSG_INFO(
"initialize() Could not register the validation Tree -> Switching Tree output for this surface off !" );
574 delete surfTreeObj; surfTreeObj =
nullptr;
578 surfTreeObj = findIter->second;
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ volumeTreeObject()
find (&&,||) create a VolumeTreObject
Definition at line 425 of file MaterialMapper.cxx.
435 if (findIter == endIter) {
437 TString tvolName = tvol->volumeName();
438 tvolName.ReplaceAll(
"::",
"_");
445 TString treeTitle =
"TrackingVolume : ";
446 treeTitle += tvolName;
447 if (!lay) treeTitle +=
" - UNMAPPED";
449 TString treeRegName =
"/val/";
453 ATH_MSG_INFO(
" -> Booking it now with register name : " << treeRegName.Data() );
462 if (
m_histSvc->regTree(treeRegName.Data(), (*tvolTreeObj).tree).isFailure()) {
463 ATH_MSG_ERROR(
"initialize() Could not register the validation Tree -> Switching Tree output for this volume off !" );
464 delete tvolTreeObj; tvolTreeObj =
nullptr;
468 tvolTreeObj = findIter->second;
◆ m_averageEta
float Trk::MaterialMapper::m_averageEta |
|
mutableprivate |
◆ m_averagePhi
float Trk::MaterialMapper::m_averagePhi |
|
mutableprivate |
◆ m_detStore
◆ m_evtStore
◆ m_histSvc
◆ m_incidentSvc
◆ m_layerFullTrees
◆ m_layerTreePrefix
std::string Trk::MaterialMapper::m_layerTreePrefix |
|
private |
◆ m_layerTrees
◆ m_layerValidation
bool Trk::MaterialMapper::m_layerValidation |
|
private |
◆ m_mapped
◆ m_mappedPath
float Trk::MaterialMapper::m_mappedPath |
|
mutableprivate |
◆ m_mappedPathInL0
float Trk::MaterialMapper::m_mappedPathInL0 |
|
mutableprivate |
◆ m_mappedPathInX0
float Trk::MaterialMapper::m_mappedPathInX0 |
|
mutableprivate |
◆ m_mappedPathRho
float Trk::MaterialMapper::m_mappedPathRho |
|
mutableprivate |
◆ m_mappedPathZARho
float Trk::MaterialMapper::m_mappedPathZARho |
|
mutableprivate |
◆ m_materialAccumPathInX0
◆ m_materialAccumPathZARho
◆ m_materialAssociationType
int Trk::MaterialMapper::m_materialAssociationType |
|
private |
◆ m_materialProjDistance
◆ m_materialProjPositionR
r value of the material recording when assigned to layer
Definition at line 304 of file MaterialMapper.h.
◆ m_materialProjPositionX
x position of the material recording when assigned to layer
Definition at line 301 of file MaterialMapper.h.
◆ m_materialProjPositionY
y position of the material recording when assigned to layer
Definition at line 302 of file MaterialMapper.h.
◆ m_materialProjPositionZ
z position of the material recording when assigned to layer
Definition at line 303 of file MaterialMapper.h.
◆ m_materialStepA
◆ m_materialStepL0
◆ m_materialStepPath
◆ m_materialStepPositionR
◆ m_materialStepPositionX
◆ m_materialStepPositionY
◆ m_materialStepPositionZ
◆ m_materialStepRho
◆ m_materialSteps
int Trk::MaterialMapper::m_materialSteps |
|
mutableprivate |
◆ m_materialStepX0
◆ m_materialStepZ
◆ m_maxMappingEvents
unsigned int Trk::MaterialMapper::m_maxMappingEvents |
|
private |
◆ m_processedEvents
unsigned int Trk::MaterialMapper::m_processedEvents |
|
mutableprivate |
◆ m_surfaceTreePrefix
std::string Trk::MaterialMapper::m_surfaceTreePrefix |
|
private |
◆ m_surfaceTrees
◆ m_surfaceValidation
bool Trk::MaterialMapper::m_surfaceValidation |
|
private |
◆ m_totalMaterialTree
std::string Trk::MaterialMapper::m_totalMaterialTree |
|
private |
◆ m_unmappedPathInX0
float Trk::MaterialMapper::m_unmappedPathInX0 |
|
mutableprivate |
◆ m_validationTree
TTree* Trk::MaterialMapper::m_validationTree |
|
private |
◆ m_validationTreeDescription
std::string Trk::MaterialMapper::m_validationTreeDescription |
|
private |
validation tree description - second argument in TTree
Definition at line 274 of file MaterialMapper.h.
◆ m_validationTreeFolder
std::string Trk::MaterialMapper::m_validationTreeFolder |
|
private |
stream/folder to for the TTree to be written out
Definition at line 275 of file MaterialMapper.h.
◆ m_validationTreeName
std::string Trk::MaterialMapper::m_validationTreeName |
|
private |
validation tree name - to be accessed by this from root
Definition at line 273 of file MaterialMapper.h.
◆ m_varHandleArraysDeclared
◆ m_vhka
◆ m_volumeTreePrefix
std::string Trk::MaterialMapper::m_volumeTreePrefix |
|
private |
◆ m_volumeTrees
◆ m_volumeTreesUnmapped
◆ m_volumeValidation
bool Trk::MaterialMapper::m_volumeValidation |
|
private |
The documentation for this class was generated from the following files:
std::string m_surfaceTreePrefix
std::map< const Trk::TrackingVolume *, VolumeTreeObject * > m_volumeTreesUnmapped
std::map< const Trk::Layer *, LayerTreeObject * > m_layerTrees
void finalizeSurfaceHits() const
Finalize the SingleLayer Steps.
float m_materialStepX0[TRKDETDESCRTOOLS_MAXSTEPS]
step x0
std::string m_validationTreeDescription
validation tree description - second argument in TTree
float m_mappedPathInX0
total mapped path in X0
void finalizeVolumeHits(bool mapped=true) const
Finalize the Volume Steps.
float m_materialProjPositionX[TRKDETDESCRTOOLS_MAXSTEPS]
x position of the material recording when assigned to layer
float m_materialStepPositionX[TRKDETDESCRTOOLS_MAXSTEPS]
x position of the material recording
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
TTree * m_validationTree
The validation tree.
float m_mappedPathRho
total mapped path times rho
const TrackingVolume * getMotherVolume() const
Return the MotherVolume - if it exists.
ServiceHandle< ITHistSvc > m_histSvc
void bookValidationTree()
Validation : book the Tree.
float m_materialStepA[TRKDETDESCRTOOLS_MAXSTEPS]
step A
std::string m_volumeTreePrefix
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::string m_layerTreePrefix
std::vector< SG::VarHandleKeyArray * > m_vhka
float m_materialStepZ[TRKDETDESCRTOOLS_MAXSTEPS]
step Z
void finalizeLayerHits() const
Finalize the SingleLayer Steps.
#define ATH_MSG_VERBOSE(x)
ServiceHandle< IIncidentSvc > m_incidentSvc
float m_materialAccumPathZARho[TRKDETDESCRTOOLS_MAXSTEPS]
accumulated path length times (Z/A)*rho
float m_materialStepRho[TRKDETDESCRTOOLS_MAXSTEPS]
step rho
std::map< const Trk::Layer *, LayerTreeObject * > m_layerFullTrees
virtual void setOwner(IDataHandleHolder *o)=0
LayerTreeObject * layerTreeObject(const Layer &lay, bool full=false) const
find (&&,||) create the LayerTreeObject
int m_materialSteps
number of update positions
unsigned int m_maxMappingEvents
unsigned int m_processedEvents
float m_materialStepPositionZ[TRKDETDESCRTOOLS_MAXSTEPS]
z position of the material recording
#define TRKDETDESCRTOOLS_MAXLAYERHITS
float m_unmappedPathInX0
total path in x0 in these events lost
float m_materialProjDistance[TRKDETDESCRTOOLS_MAXSTEPS]
the distance to the projected hit
float m_materialStepPositionY[TRKDETDESCRTOOLS_MAXSTEPS]
y position of the material recording
float m_mappedPathZARho
total mapped path times (Z/A)*rho
std::string m_validationTreeFolder
stream/folder to for the TTree to be written out
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
float m_materialProjPositionZ[TRKDETDESCRTOOLS_MAXSTEPS]
z position of the material recording when assigned to layer
int value() const
layerIndex expressed in an integer
SurfaceTreeObject * surfaceTreeObject(const Layer &lay) const
find (&&,||) create the LayerTreeObject
float m_mappedPathInL0
total mapped path in L0
std::string m_validationTreeName
validation tree name - to be accessed by this from root
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
const std::string & volumeName() const
Returns the VolumeName - for debug reason, might be depreciated later.
VolumeTreeObject * volumeTreeObject(const Layer *lay=0, const TrackingVolume *tvol=0) const
find (&&,||) create a VolumeTreObject
float m_materialStepL0[TRKDETDESCRTOOLS_MAXSTEPS]
step l0
float m_materialAccumPathInX0[TRKDETDESCRTOOLS_MAXSTEPS]
accumulated path length in x0
void recordLayerHit(const AssociatedMaterial &amhit, bool full=false) const
Record material hit - if various hits per uniform layer are recorded, or if you want to record one fu...
Eigen::Matrix< double, 3, 1 > Vector3D
std::string m_totalMaterialTree
float m_averagePhi
average ogu
int m_mapped[TRKDETDESCRTOOLS_MAXSTEPS]
mapped or not mapped
#define ATH_MSG_WARNING(x)
float m_materialStepPath[TRKDETDESCRTOOLS_MAXSTEPS]
step path
float m_materialStepPositionR[TRKDETDESCRTOOLS_MAXSTEPS]
r value of the material recording
std::map< const Trk::Layer *, SurfaceTreeObject * > m_surfaceTrees
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
std::vector< std::string > mapped
float m_materialProjPositionY[TRKDETDESCRTOOLS_MAXSTEPS]
y position of the material recording when assigned to layer
float m_mappedPath
total mapped path
float m_averageEta
average eta
std::map< const Trk::TrackingVolume *, VolumeTreeObject * > m_volumeTrees
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_materialAssociationType
float m_materialProjPositionR[TRKDETDESCRTOOLS_MAXSTEPS]
r value of the material recording when assigned to layer
const LayerIndex & layerIndex() const
get the layerIndex