Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
LArVolumeBuilder.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // LArVolumeBuilder.h, (c) ATLAS Detector software
8 
9 #ifndef LARTRACKINGGEOMETRY_LARVOLUMEBUILDER_H
10 #define LARTRACKINGGEOMETRY_LARVOLUMEBUILDER_H
11 
12 // Athena/Gaudi
15 #include "GaudiKernel/ToolHandle.h"
16 #include "GaudiKernel/SystemOfUnits.h"
17 // GeoModel
19 //
20 #include "GeoModelKernel/GeoVPhysVol.h"
21 // Trk
26 
27 // STL
28 #include <vector>
29 
30 
31 namespace Trk {
32 class TrackingVolume;
33 class Material;
34 class Volume;
35 class Layer;
36 }
37 
38 namespace LAr {
39 
53  : public AthAlgTool
54  , virtual public Trk::ICaloTrackingVolumeBuilder
55 {
56 
57 public:
59  LArVolumeBuilder(const std::string&, const std::string&, const IInterface*);
61  virtual ~LArVolumeBuilder();
62 
64  virtual StatusCode initialize() override final;
66  virtual StatusCode finalize() override final;
67 
69  virtual std::vector<Trk::TrackingVolume*>* trackingVolumes(const CaloDetDescrManager& caloDDM
70  , const GeoAlignmentStore* geoAlign)
71  const override final;
72 
73 private:
74  // ------------- private methods -----------------------------------------
75  static void printCheckResult(MsgStream& log, const Trk::TrackingVolume* vol);
76 
77  void printInfo(const GeoPVConstLink& pv, const GeoAlignmentStore* gas, int gen = -1) const;
78  void printChildren(const GeoPVConstLink& pv,
79  int gen,
80  int igen,
81  const Amg::Transform3D& tr) const;
82  GeoPVConstLink getChild(const GeoPVConstLink& mother,
83  const std::string& name,
84  Amg::Transform3D& trIn) const;
85 
86  // ------------- private members -----------------------------------------
87  StringProperty m_lArMgrLocation{
88  this, "LArDetManagerLocation", "LArMgr", "Store Gate key for LAr Detector Manager"};
89 
91  ToolHandle<Trk::ITrackingVolumeHelper> m_lArTrackingVolumeHelper{
92  this, "TrackingVolumeHelper", "Trk::TrackingVolumeHelper/LArTrackingVolumeHelper"};
94  ToolHandle<Trk::ITrackingVolumeCreator> m_trackingVolumeCreator{
95  this, "TrackingVolumeCreator", "Trk::CylinderVolumeCreator/TrackingVolumeCreator"};
96 
98  DoubleProperty m_lArBarrelEnvelope{this, "BarrelEnvelopeCover", 25.*Gaudi::Units::mm};
100  DoubleProperty m_lArEndcapEnvelope{this, "EndcapEnvelopeCover", 25.*Gaudi::Units::mm};
101 
103  BooleanProperty m_useCaloSurfBuilder{this, "UseCaloSurfBuilder", true};
104 
107  UnsignedIntegerProperty m_lArLayersPerRegion{this, "LayersPerRegion", 1};
108 
111  BooleanProperty m_useCaloTrackingGeometryBounds{this, "UseCaloTrackingGeometryBounds", true};
112 
114  ToolHandle<ICaloSurfaceBuilder> m_calosurf{this, "CaloSurfaceBuilder", "CaloSurfaceBuilder"};
115 
116  //internal garbage collector (protected by lock)
117  typedef std::set<const Trk::Material*> MaterialGarbage;
118  mutable MaterialGarbage m_materialGarbage ATLAS_THREAD_SAFE;
119 
120  // material scaling ( temporary ? )
121  FloatProperty m_scale_HECmaterial{this, "ScaleFactor_HECmaterial", 1.1};
122 };
123 
124 } // end of namespace
125 
126 
127 #endif // CALOTRACKINGGEOMETRY_LARVOLUMEBUILDER_H
128 
GeoAlignmentStore
Ensure that the extensions for the Vector3D are properly loaded.
Definition: GeoAlignmentStore.h:24
columnar::final
CM final
Definition: ColumnAccessor.h:106
ICaloTrackingVolumeBuilder.h
LAr::LArVolumeBuilder::m_scale_HECmaterial
FloatProperty m_scale_HECmaterial
Definition: LArVolumeBuilder.h:121
LAr::LArVolumeBuilder::printChildren
void printChildren(const GeoPVConstLink &pv, int gen, int igen, const Amg::Transform3D &tr) const
Definition: LArVolumeBuilder.cxx:1819
LAr::LArVolumeBuilder::finalize
virtual StatusCode finalize() override final
AlgTool finalize method.
Definition: LArVolumeBuilder.cxx:83
LAr
Definition: LArVolumeBuilder.h:38
LAr::LArVolumeBuilder::~LArVolumeBuilder
virtual ~LArVolumeBuilder()
Destructor.
LAr::LArVolumeBuilder::m_lArMgrLocation
StringProperty m_lArMgrLocation
Helper Tool to create TrackingVolumes.
Definition: LArVolumeBuilder.h:87
LAr::LArVolumeBuilder::m_useCaloSurfBuilder
BooleanProperty m_useCaloSurfBuilder
if m_useCaloSurfBuilder == true, number of layers per dead material region or sampling
Definition: LArVolumeBuilder.h:103
LAr::LArVolumeBuilder::trackingVolumes
virtual std::vector< Trk::TrackingVolume * > * trackingVolumes(const CaloDetDescrManager &caloDDM, const GeoAlignmentStore *geoAlign) const override final
TrackingVolumeBuilder interface method - returns vector of Volumes.
Definition: LArVolumeBuilder.cxx:96
LAr::LArVolumeBuilder::m_trackingVolumeCreator
ToolHandle< Trk::ITrackingVolumeCreator > m_trackingVolumeCreator
envelope Cover of the Barrel
Definition: LArVolumeBuilder.h:94
LAr::LArVolumeBuilder::m_lArLayersPerRegion
UnsignedIntegerProperty m_lArLayersPerRegion
if true use DetDescr based layering, if false use biequidistant layering
Definition: LArVolumeBuilder.h:107
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
Trk::ICaloTrackingVolumeBuilder
Definition: ICaloTrackingVolumeBuilder.h:28
LAr::LArVolumeBuilder::MaterialGarbage
std::set< const Trk::Material * > MaterialGarbage
Definition: LArVolumeBuilder.h:117
python.RingerConstants.Layer
Layer
Definition: RingerConstants.py:42
master.gen
gen
Definition: master.py:32
GeoPrimitives.h
LAr::LArVolumeBuilder::m_lArEndcapEnvelope
DoubleProperty m_lArEndcapEnvelope
if true use DetDescr based layering, if false use biequidistant layering
Definition: LArVolumeBuilder.h:100
LAr::LArVolumeBuilder::ATLAS_THREAD_SAFE
MaterialGarbage m_materialGarbage ATLAS_THREAD_SAFE
Definition: LArVolumeBuilder.h:118
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
vector
Definition: MultiHisto.h:13
LAr::LArVolumeBuilder::printCheckResult
static void printCheckResult(MsgStream &log, const Trk::TrackingVolume *vol)
Definition: LArVolumeBuilder.cxx:1790
LAr::LArVolumeBuilder::m_lArBarrelEnvelope
DoubleProperty m_lArBarrelEnvelope
envelope Cover of the Endcap
Definition: LArVolumeBuilder.h:98
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
AthAlgTool.h
ITrackingVolumeCreator.h
LAr::LArVolumeBuilder::m_lArTrackingVolumeHelper
ToolHandle< Trk::ITrackingVolumeHelper > m_lArTrackingVolumeHelper
helper for volume creation
Definition: LArVolumeBuilder.h:91
LAr::LArVolumeBuilder::getChild
GeoPVConstLink getChild(const GeoPVConstLink &mother, const std::string &name, Amg::Transform3D &trIn) const
Definition: LArVolumeBuilder.cxx:1855
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
ICaloSurfaceBuilder.h
Amg
Definition of ATLAS Math & Geometry primitives (Amg)
Definition: AmgStringHelpers.h:19
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
LAr::LArVolumeBuilder::initialize
virtual StatusCode initialize() override final
AlgTool initialize method.
Definition: LArVolumeBuilder.cxx:63
python.SystemOfUnits.mm
int mm
Definition: SystemOfUnits.py:83
LAr::LArVolumeBuilder::m_calosurf
ToolHandle< ICaloSurfaceBuilder > m_calosurf
Definition: LArVolumeBuilder.h:114
CaloDetDescrManager
This class provides the client interface for accessing the detector description information common to...
Definition: CaloDetDescrManager.h:473
LAr::LArVolumeBuilder::printInfo
void printInfo(const GeoPVConstLink &pv, const GeoAlignmentStore *gas, int gen=-1) const
Definition: LArVolumeBuilder.cxx:1796
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
python.changerun.pv
pv
Definition: changerun.py:81
LAr::LArVolumeBuilder::m_useCaloTrackingGeometryBounds
BooleanProperty m_useCaloTrackingGeometryBounds
tool required for DetDescr-based layering
Definition: LArVolumeBuilder.h:111
LAr::LArVolumeBuilder
Definition: LArVolumeBuilder.h:55
LAr::LArVolumeBuilder::LArVolumeBuilder
LArVolumeBuilder(const std::string &, const std::string &, const IInterface *)
AlgTool style constructor.
Definition: LArVolumeBuilder.cxx:50
AthAlgTool
Definition: AthAlgTool.h:26
checker_macros.h
Define macros for attributes used to control the static checker.
Material
@ Material
Definition: MaterialTypes.h:8
ITrackingVolumeHelper.h