![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
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 203 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 22 of file MaterialMapper.cxx.
44 declareInterface<IMaterialMapper>(
this);
◆ ~MaterialMapper()
Trk::MaterialMapper::~MaterialMapper |
( |
| ) |
|
|
virtual |
Virtual destructor.
Definition at line 69 of file MaterialMapper.cxx.
75 for ( ; volTreeIter != endVolTreeIter;
delete (volTreeIter->second), ++volTreeIter) {}
82 for ( ; layTreeIter != endLayTreeIter;
delete (layTreeIter->second), ++layTreeIter) {}
86 for ( ; layTreeIter != endLayTreeIter;
delete (layTreeIter->second), ++layTreeIter) {}
93 for ( ; surfTreeIter != endSurfTreeIter;
delete (surfTreeIter->second), ++surfTreeIter) {}
◆ bookValidationTree()
void Trk::MaterialMapper::bookValidationTree |
( |
| ) |
|
|
private |
Validation : book the Tree.
Definition at line 633 of file MaterialMapper.cxx.
639 ITHistSvc* tHistSvc =
nullptr;
675 if (service(
"THistSvc",tHistSvc).isFailure()) {
676 ATH_MSG_ERROR(
"initialize() Could not find Hist Service -> Switching ValidationMode Off !" );
681 ATH_MSG_ERROR(
"initialize() Could not register the validation Tree -> Switching ValidationMode Off !" );
◆ 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);
◆ 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.
◆ 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.
◆ 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 116 of file MaterialMapper.cxx.
119 return StatusCode::SUCCESS;
◆ finalizeLayerHits()
void Trk::MaterialMapper::finalizeLayerHits |
( |
| ) |
const |
|
private |
Finalize the SingleLayer Steps.
Definition at line 296 of file MaterialMapper.cxx.
301 for (
size_t iltm = 0; iltm < 2; ++iltm) {
306 for ( ; layObjIter != endIter; ++layObjIter ) {
310 if (!layTreeObj)
continue;
313 int hits = (*layTreeObj).densedHits;
315 if ((*layTreeObj).pathInX0 > 0.) {
317 (*layTreeObj).densedHitX /=
hits;
318 (*layTreeObj).densedHitY /=
hits;
319 (*layTreeObj).densedHitZ /=
hits;
320 (*layTreeObj).densedHitR /=
hits;
321 (*layTreeObj).densedHitPhi /=
hits;
322 (*layTreeObj).densedHitTheta /=
hits;
323 (*layTreeObj).correctionFactor /=
hits;
324 (*layTreeObj).A /= (*layTreeObj).rho;
325 (*layTreeObj).Z /= (*layTreeObj).rho;
326 (*layTreeObj).rho /= (*layTreeObj).path;
329 (*layTreeObj).tree->Fill();
332 (*layTreeObj).layerHits = 0;
333 (*layTreeObj).path = 0.;
334 (*layTreeObj).pathInX0 = 0.;
335 (*layTreeObj).pathInL0 = 0.;
336 (*layTreeObj).densedHits = 0;
337 (*layTreeObj).densedHitX = 0.;
338 (*layTreeObj).densedHitY = 0.;
339 (*layTreeObj).densedHitZ = 0.;
340 (*layTreeObj).densedHitR = 0.;
341 (*layTreeObj).densedHitPhi = 0.;
342 (*layTreeObj).densedHitTheta = 0.;
343 (*layTreeObj).correctionFactor = 0.;
344 (*layTreeObj).A = 0.;
345 (*layTreeObj).Z = 0.;
346 (*layTreeObj).rho = 0.;
◆ finalizeSurfaceHits()
void Trk::MaterialMapper::finalizeSurfaceHits |
( |
| ) |
const |
|
private |
Finalize the SingleLayer Steps.
Definition at line 383 of file MaterialMapper.cxx.
392 for ( ; surfObjIter != endIter; ++surfObjIter ) {
395 int hits = (*surfTreeObj).surfaceHits;
397 if ((*surfTreeObj).pathInX0 > 0.) {
399 (*surfTreeObj).loc1 /=
hits;
400 (*surfTreeObj).loc2 /=
hits;
401 (*surfTreeObj).eta /=
hits;
402 (*surfTreeObj).correctionFactor /=
hits;
403 (*surfTreeObj).A /=
hits;
404 (*surfTreeObj).Z /=
hits;
405 (*surfTreeObj).rho /=
hits;
408 (*surfTreeObj).tree->Fill();
411 (*surfTreeObj).loc1 = 0.;
412 (*surfTreeObj).loc2 = 0.;
413 (*surfTreeObj).eta = 0.;
415 (*surfTreeObj).correctionFactor = 0.;
416 (*surfTreeObj).path = 0.;
417 (*surfTreeObj).pathInX0 = 0.;
418 (*surfTreeObj).pathInL0 = 0.;
419 (*surfTreeObj).rho = 0.;
421 (*surfTreeObj).surfaceHits = 0;
◆ finalizeVolumeHits()
void Trk::MaterialMapper::finalizeVolumeHits |
( |
bool |
mapped = true | ) |
const |
|
private |
Finalize the Volume Steps.
Definition at line 208 of file MaterialMapper.cxx.
216 for ( ; volTreeIter != endVolTreeIter; ++volTreeIter ) {
220 if (!volTreeObj)
continue;
222 if ((*volTreeObj).path > 0.) {
227 (*volTreeObj).tree->Fill();
230 (*volTreeObj).eta = 0.;
231 (*volTreeObj).phi = 0.;
232 (*volTreeObj).path = 0.;
233 (*volTreeObj).pathInX0 = 0.;
234 (*volTreeObj).pathInL0 = 0.;
235 (*volTreeObj).pathZARho = 0.;
◆ handle()
void Trk::MaterialMapper::handle |
( |
const Incident & |
inc | ) |
|
◆ initialize()
StatusCode Trk::MaterialMapper::initialize |
( |
| ) |
|
AlgTool initialize method.
Definition at line 99 of file MaterialMapper.cxx.
105 return StatusCode::FAILURE;
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.
◆ layerTreeObject()
find (&&,||) create the LayerTreeObject
Definition at line 481 of file MaterialMapper.cxx.
483 if (!lay.layerIndex().value())
return nullptr;
506 ATH_MSG_INFO(
"MaterialLayer from BoundarySurface detected.");
509 TString tvolName = (enclosingVolume) ? enclosingVolume->
volumeName() :
"BoundaryLayers";
510 tvolName.ReplaceAll(
"::",
"_");
517 "CylinderLayer_" :
"DiscLayer_";
520 if (mLayer)
treeName +=
"boundary_";
521 treeName += lay.layerIndex().value();
523 TString treeTitle =
"TrackingVolume :";
524 treeTitle += tvolName;
526 TString treeRegName =
"/val/";
529 ATH_MSG_INFO(
"No Tree found for Layer " << lay.layerIndex().value() <<
" in Volume '" << tvolName <<
"'.");
530 ATH_MSG_INFO(
" -> Booking it now with register name : " << treeRegName.Data() );
534 else m_layerTrees.insert(std::make_pair(&lay,layTreeObj));
537 ITHistSvc* tHistSvc =
nullptr;
538 if (service(
"THistSvc",tHistSvc).isFailure()) {
539 ATH_MSG_ERROR(
"initialize() Could not find Hist Service -> Switching Tree output for this layer off !" );
540 delete layTreeObj; layTreeObj =
nullptr;
542 else if (tHistSvc && (tHistSvc->regTree(treeRegName.Data(), (*layTreeObj).tree)).isFailure()) {
543 ATH_MSG_ERROR(
"initialize() Could not register the validation Tree -> Switching Tree output for this layer off !" );
544 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 241 of file MaterialMapper.cxx.
246 const Trk::Layer* lay = amhit.associatedLayer();
252 && amhit.steplengthInX0() > 0.)
261 double posR =
pos.perp();
262 double posEta =
pos.eta();
265 (*layTreeObj).hitPositionX[(*layTreeObj).layerHits] =
posX;
266 (*layTreeObj).hitPositionY[(*layTreeObj).layerHits] =
posY;
267 (*layTreeObj).hitPositionZ[(*layTreeObj).layerHits] =
posZ;
268 (*layTreeObj).hitPositionR[(*layTreeObj).layerHits] = posR;
269 (*layTreeObj).hitPositionEta[(*layTreeObj).layerHits] = posEta;
272 ++(*layTreeObj).layerHits;
273 ++(*layTreeObj).densedHits;
276 (*layTreeObj).densedHitX +=
posX;
277 (*layTreeObj).densedHitY +=
posY;
278 (*layTreeObj).densedHitZ +=
posZ;
279 (*layTreeObj).densedHitR += posR;
280 (*layTreeObj).densedHitPhi +=
pos.phi();
281 (*layTreeObj).densedHitTheta +=
pos.theta();
284 (*layTreeObj).correctionFactor += amhit.correctionFactor();
285 (*layTreeObj).path += amhit.steplength();
286 (*layTreeObj).pathInX0 += amhit.steplengthInX0();
287 (*layTreeObj).pathInL0 += amhit.steplengthInL0();
288 (*layTreeObj).A += amhit.A() * amhit.rho() * amhit.steplength();
289 (*layTreeObj).Z += amhit.Z() * amhit.rho() * amhit.steplength();
290 (*layTreeObj).rho += amhit.rho() * amhit.steplength();
◆ recordMaterialHit()
Record material hit along the recording.
Implements Trk::IMaterialMapper.
Definition at line 122 of file MaterialMapper.cxx.
132 const Trk::Layer* lay = amhit.associatedLayer();
135 ATH_MSG_WARNING(
"Could not associate TrackingVolume to material step!");
147 (*volTreeObj).path += amhit.steplength();
148 (*volTreeObj).pathInX0 += amhit.steplengthInX0();
149 (*volTreeObj).pathInL0 += amhit.steplengthInL0();
150 if(amhit.A() != 0.0) {
151 (*volTreeObj).pathZARho += (amhit.Z()/amhit.A())*amhit.rho()*amhit.steplength();
164 double steplength = amhit.steplength();
171 if(amhit.A() != 0.0) {
◆ recordSurfaceHit()
Record material hit on a surface.
Implements Trk::IMaterialMapper.
Definition at line 352 of file MaterialMapper.cxx.
358 const Trk::Layer* lay = amhit.associatedLayer();
365 (*surfTreeObj).loc1 += locpos[0];
366 (*surfTreeObj).loc2 += locpos[1];
367 (*surfTreeObj).eta += amhit.materialPosition().eta();
368 (*surfTreeObj).correctionFactor += amhit.correctionFactor();
369 (*surfTreeObj).path += amhit.steplength();
370 (*surfTreeObj).pathInX0 += amhit.steplengthInX0();
371 (*surfTreeObj).pathInL0 += amhit.steplengthInL0();
372 (*surfTreeObj).A += amhit.A()*amhit.steplength()*amhit.rho();
373 (*surfTreeObj).Z += amhit.Z()*amhit.steplength()*amhit.rho();
374 (*surfTreeObj).rho += amhit.rho()*amhit.steplength();
376 ++(*surfTreeObj).surfaceHits;
◆ renounce()
◆ renounceArray()
◆ surfaceTreeObject()
find (&&,||) create the LayerTreeObject
Definition at line 553 of file MaterialMapper.cxx.
562 if (findIter == endIter) {
565 TString volumeName = (enclosingVolume) ? enclosingVolume->
volumeName() :
"Unknown";
568 treeName += lay.layerIndex().value();
570 TString treeTitle =
"TrackingVolume :";
571 treeTitle += volumeName;
573 TString treeRegName =
"/val/";
576 ATH_MSG_INFO(
"No Tree found for Layer " << lay.layerIndex().value()
577 <<
" in Volume '" << volumeName <<
"'." );
578 ATH_MSG_INFO(
" -> Booking it now with register name : " << treeRegName.Data() );
584 ITHistSvc* tHistSvc =
nullptr;
585 if (service(
"THistSvc",tHistSvc).isFailure()) {
586 ATH_MSG_INFO(
"initialize() Could not find Hist Service -> Switching Tree output for this surface off !" );
587 delete surfTreeObj; surfTreeObj =
nullptr;
589 else if (tHistSvc && (tHistSvc->regTree(treeRegName.Data(), (*surfTreeObj).tree)).isFailure()) {
590 ATH_MSG_INFO(
"initialize() Could not register the validation Tree -> Switching Tree output for this surface off !" );
591 delete surfTreeObj; surfTreeObj =
nullptr;
595 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 427 of file MaterialMapper.cxx.
437 if (findIter == endIter) {
439 TString tvolName = tvol->volumeName();
440 tvolName.ReplaceAll(
"::",
"_");
447 TString treeTitle =
"TrackingVolume : ";
448 treeTitle += tvolName;
449 if (!lay) treeTitle +=
" - UNMAPPED";
451 TString treeRegName =
"/val/";
455 ATH_MSG_INFO(
" -> Booking it now with register name : " << treeRegName.Data() );
464 ITHistSvc* tHistSvc =
nullptr;
465 if (service(
"THistSvc",tHistSvc).isFailure()) {
466 ATH_MSG_ERROR(
"initialize() Could not find Hist Service -> Switching Tree output for this volume off !" );
467 delete tvolTreeObj; tvolTreeObj =
nullptr;
469 else if (tHistSvc && (tHistSvc->regTree(treeRegName.Data(), (*tvolTreeObj).tree)).isFailure()) {
470 ATH_MSG_ERROR(
"initialize() Could not register the validation Tree -> Switching Tree output for this volume off !" );
471 delete tvolTreeObj; tvolTreeObj =
nullptr;
475 tvolTreeObj = findIter->second;
◆ m_averageEta
float Trk::MaterialMapper::m_averageEta |
|
mutableprivate |
◆ m_averagePhi
float Trk::MaterialMapper::m_averagePhi |
|
mutableprivate |
◆ m_detStore
◆ m_evtStore
◆ 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 302 of file MaterialMapper.h.
◆ m_materialProjPositionX
x position of the material recording when assigned to layer
Definition at line 299 of file MaterialMapper.h.
◆ m_materialProjPositionY
y position of the material recording when assigned to layer
Definition at line 300 of file MaterialMapper.h.
◆ m_materialProjPositionZ
z position of the material recording when assigned to layer
Definition at line 301 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 272 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 273 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 271 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.
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