ATLAS Offline Software
LArVolumeBuilder.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 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 // GeoModel
18 //
19 #include "GeoModelKernel/GeoVPhysVol.h"
20 // Trk
23 // STL
24 #include <vector>
25 
26 
27 namespace Trk {
28 class ITrackingVolumeHelper;
29 class ITrackingVolumeCreator;
30 class TrackingVolume;
31 class Material;
32 class Volume;
33 class Layer;
34 }
35 
36 namespace LAr {
37 
50 class LArVolumeBuilder final
51  : public AthAlgTool
52  , virtual public Trk::ICaloTrackingVolumeBuilder
53 {
54 
55 public:
57  LArVolumeBuilder(const std::string&, const std::string&, const IInterface*);
59  virtual ~LArVolumeBuilder();
60 
62  virtual StatusCode initialize() override final;
64  virtual StatusCode finalize() override final;
65 
67  virtual std::vector<Trk::TrackingVolume*>* trackingVolumes(const CaloDetDescrManager& caloDDM)
68  const override final;
69 
70 private:
71  // ------------- private methods -----------------------------------------
72  static void printCheckResult(MsgStream& log, const Trk::TrackingVolume* vol);
73 
74  void printInfo(const GeoPVConstLink& pv, int gen = -1) const;
75  void printChildren(const GeoPVConstLink& pv,
76  int gen,
77  int igen,
78  const Amg::Transform3D& tr) const;
79  GeoPVConstLink getChild(const GeoPVConstLink& mother,
80  const std::string& name,
81  Amg::Transform3D& trIn) const;
82 
83  // ------------- private members -----------------------------------------
84 
85  std::string m_lArMgrLocation;
86 
88  ToolHandle<Trk::ITrackingVolumeHelper> m_lArTrackingVolumeHelper;
90  ToolHandle<Trk::ITrackingVolumeCreator> m_trackingVolumeCreator;
91 
94 
96  unsigned int m_lArLayersPerRegion;
100 
104 
107 
108  //internal garbage collector (protected by lock)
110  mutable MaterialGarbage m_materialGarbage ATLAS_THREAD_SAFE;
111 
112  // material scaling ( temporary ? )
114 };
115 
116 } // end of namespace
117 
118 
119 #endif // CALOTRACKINGGEOMETRY_LARVOLUMEBUILDER_H
120 
ICaloTrackingVolumeBuilder.h
LAr::LArVolumeBuilder::printChildren
void printChildren(const GeoPVConstLink &pv, int gen, int igen, const Amg::Transform3D &tr) const
Definition: LArVolumeBuilder.cxx:1833
LAr::LArVolumeBuilder::finalize
virtual StatusCode finalize() override final
AlgTool finalize method.
Definition: LArVolumeBuilder.cxx:123
LAr
Definition: LArVolumeBuilder.h:36
LAr::LArVolumeBuilder::~LArVolumeBuilder
virtual ~LArVolumeBuilder()
Destructor.
LAr::LArVolumeBuilder::m_trackingVolumeCreator
ToolHandle< Trk::ITrackingVolumeCreator > m_trackingVolumeCreator
Definition: LArVolumeBuilder.h:90
LAr::LArVolumeBuilder::m_lArLayersPerRegion
unsigned int m_lArLayersPerRegion
if true use DetDescr based layering, if false use biequidistant layering
Definition: LArVolumeBuilder.h:99
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
LAr::LArVolumeBuilder::m_lArEndcapEnvelope
double m_lArEndcapEnvelope
envelope Cover of the Endcap
Definition: LArVolumeBuilder.h:93
ICaloSurfaceBuilder
Interface to CaloSurfaceBuilder.
Definition: ICaloSurfaceBuilder.h:43
Trk::ICaloTrackingVolumeBuilder
Definition: ICaloTrackingVolumeBuilder.h:27
LAr::LArVolumeBuilder::MaterialGarbage
std::set< const Trk::Material * > MaterialGarbage
Definition: LArVolumeBuilder.h:109
python.RingerConstants.Layer
Layer
Definition: RingerConstants.py:42
master.gen
gen
Definition: master.py:32
LAr::LArVolumeBuilder::m_useCaloTrackingGeometryBounds
bool m_useCaloTrackingGeometryBounds
tool required for DetDescr-based layering
Definition: LArVolumeBuilder.h:103
GeoPrimitives.h
LAr::LArVolumeBuilder::trackingVolumes
virtual std::vector< Trk::TrackingVolume * > * trackingVolumes(const CaloDetDescrManager &caloDDM) const override final
TrackingVolumeBuilder interface method - returns vector of Volumes.
Definition: LArVolumeBuilder.cxx:136
LAr::LArVolumeBuilder::ATLAS_THREAD_SAFE
MaterialGarbage m_materialGarbage ATLAS_THREAD_SAFE
Definition: LArVolumeBuilder.h:110
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:1804
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
AthAlgTool.h
LAr::LArVolumeBuilder::m_lArTrackingVolumeHelper
ToolHandle< Trk::ITrackingVolumeHelper > m_lArTrackingVolumeHelper
helper for volume creation
Definition: LArVolumeBuilder.h:88
CxxUtils::set
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.
Definition: bitmask.h:232
LAr::LArVolumeBuilder::m_scale_HECmaterial
float m_scale_HECmaterial
Definition: LArVolumeBuilder.h:113
LAr::LArVolumeBuilder::getChild
GeoPVConstLink getChild(const GeoPVConstLink &mother, const std::string &name, Amg::Transform3D &trIn) const
Definition: LArVolumeBuilder.cxx:1869
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:221
LAr::LArVolumeBuilder::printInfo
void printInfo(const GeoPVConstLink &pv, int gen=-1) const
Definition: LArVolumeBuilder.cxx:1810
LAr::LArVolumeBuilder::m_useCaloSurfBuilder
bool m_useCaloSurfBuilder
if true use DetDescr based layering, if false use biequidistant layering
Definition: LArVolumeBuilder.h:95
LAr::LArVolumeBuilder::initialize
virtual StatusCode initialize() override final
AlgTool initialize method.
Definition: LArVolumeBuilder.cxx:91
LAr::LArVolumeBuilder::m_calosurf
ToolHandle< ICaloSurfaceBuilder > m_calosurf
Definition: LArVolumeBuilder.h:106
CaloDetDescrManager
This class provides the client interface for accessing the detector description information common to...
Definition: CaloDetDescrManager.h:473
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
python.changerun.pv
pv
Definition: changerun.py:81
LAr::LArVolumeBuilder
Definition: LArVolumeBuilder.h:53
LAr::LArVolumeBuilder::m_lArBarrelEnvelope
double m_lArBarrelEnvelope
envelope Cover of the Barrel
Definition: LArVolumeBuilder.h:92
LAr::LArVolumeBuilder::LArVolumeBuilder
LArVolumeBuilder(const std::string &, const std::string &, const IInterface *)
AlgTool style constructor.
Definition: LArVolumeBuilder.cxx:54
AthAlgTool
Definition: AthAlgTool.h:26
checker_macros.h
Define macros for attributes used to control the static checker.
Material
@ Material
Definition: MaterialTypes.h:8
LAr::LArVolumeBuilder::m_lArMgrLocation
std::string m_lArMgrLocation
Location of the CaloDetDescrMgr.
Definition: LArVolumeBuilder.h:85