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
25 
26 // STL
27 #include <vector>
28 
29 
30 namespace Trk {
31 class TrackingVolume;
32 class Material;
33 class Volume;
34 class Layer;
35 }
36 
37 namespace LAr {
38 
52  : public AthAlgTool
53  , virtual public Trk::ICaloTrackingVolumeBuilder
54 {
55 
56 public:
58  LArVolumeBuilder(const std::string&, const std::string&, const IInterface*);
60  virtual ~LArVolumeBuilder();
61 
63  virtual StatusCode initialize() override final;
65  virtual StatusCode finalize() override final;
66 
68  virtual std::vector<Trk::TrackingVolume*> trackingVolumes(
69  const CaloDetDescrManager& caloDDM,
70  const GeoAlignmentStore* geoAlign) const override final;
71 
72  private:
73  // ------------- private methods -----------------------------------------
74  static void printCheckResult(MsgStream& log, const Trk::TrackingVolume* vol);
75 
76  void printInfo(const GeoPVConstLink& pv, const GeoAlignmentStore* gas, int gen = -1) const;
77  void printChildren(const GeoPVConstLink& pv,
78  int gen,
79  int igen,
80  const Amg::Transform3D& tr) const;
81  GeoPVConstLink getChild(const GeoPVConstLink& mother,
82  const std::string& name,
83  Amg::Transform3D& trIn) const;
84 
85  // ------------- private members -----------------------------------------
86  StringProperty m_lArMgrLocation{
87  this, "LArDetManagerLocation", "LArMgr", "Store Gate key for LAr Detector Manager"};
88 
90  ToolHandle<Trk::ITrackingVolumeCreator> m_trackingVolumeCreator{
91  this, "TrackingVolumeCreator", "Trk::CylinderVolumeCreator/TrackingVolumeCreator"};
92 
94  DoubleProperty m_lArBarrelEnvelope{this, "BarrelEnvelopeCover", 25.*Gaudi::Units::mm};
96  DoubleProperty m_lArEndcapEnvelope{this, "EndcapEnvelopeCover", 25.*Gaudi::Units::mm};
97 
99  BooleanProperty m_useCaloSurfBuilder{this, "UseCaloSurfBuilder", true};
100 
103  UnsignedIntegerProperty m_lArLayersPerRegion{this, "LayersPerRegion", 1};
104 
107  BooleanProperty m_useCaloTrackingGeometryBounds{this, "UseCaloTrackingGeometryBounds", true};
108 
110  ToolHandle<ICaloSurfaceBuilder> m_calosurf{this, "CaloSurfaceBuilder", "CaloSurfaceBuilder"};
111 
112  // material scaling ( temporary ? )
113  FloatProperty m_scale_HECmaterial{this, "ScaleFactor_HECmaterial", 1.1};
114 };
115 
116 } // end of namespace
117 
118 
119 #endif // CALOTRACKINGGEOMETRY_LARVOLUMEBUILDER_H
120 
GeoAlignmentStore
Ensure that the extensions for the Vector3D are properly loaded.
Definition: GeoAlignmentStore.h:24
ICaloTrackingVolumeBuilder.h
LAr::LArVolumeBuilder::m_scale_HECmaterial
FloatProperty m_scale_HECmaterial
Definition: LArVolumeBuilder.h:113
LAr::LArVolumeBuilder::printChildren
void printChildren(const GeoPVConstLink &pv, int gen, int igen, const Amg::Transform3D &tr) const
Definition: LArVolumeBuilder.cxx:1736
python.SystemOfUnits.mm
float mm
Definition: SystemOfUnits.py:97
LAr::LArVolumeBuilder::finalize
virtual StatusCode finalize() override final
AlgTool finalize method.
Definition: LArVolumeBuilder.cxx:78
LAr
Definition: LArVolumeBuilder.h:37
LAr::LArVolumeBuilder::~LArVolumeBuilder
virtual ~LArVolumeBuilder()
Destructor.
LAr::LArVolumeBuilder::m_lArMgrLocation
StringProperty m_lArMgrLocation
helper for volume creation
Definition: LArVolumeBuilder.h:86
LAr::LArVolumeBuilder::m_useCaloSurfBuilder
BooleanProperty m_useCaloSurfBuilder
if m_useCaloSurfBuilder == true, number of layers per dead material region or sampling
Definition: LArVolumeBuilder.h:99
LAr::LArVolumeBuilder::trackingVolumes
virtual std::vector< Trk::TrackingVolume * > trackingVolumes(const CaloDetDescrManager &caloDDM, const GeoAlignmentStore *geoAlign) const override final
TrackingVolumeBuilder interface method - returns vector of ptrs to tracking Volumes.
Definition: LArVolumeBuilder.cxx:84
LAr::LArVolumeBuilder::m_trackingVolumeCreator
ToolHandle< Trk::ITrackingVolumeCreator > m_trackingVolumeCreator
envelope Cover of the Barrel
Definition: LArVolumeBuilder.h:90
LAr::LArVolumeBuilder::m_lArLayersPerRegion
UnsignedIntegerProperty m_lArLayersPerRegion
if true use DetDescr based layering, if false use biequidistant layering
Definition: LArVolumeBuilder.h:103
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
Trk::ICaloTrackingVolumeBuilder
Definition: ICaloTrackingVolumeBuilder.h:28
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:96
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:1691
LAr::LArVolumeBuilder::m_lArBarrelEnvelope
DoubleProperty m_lArBarrelEnvelope
envelope Cover of the Endcap
Definition: LArVolumeBuilder.h:94
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
AthAlgTool.h
ITrackingVolumeCreator.h
columnar::final
CM final
Definition: ColumnAccessor.h:106
LAr::LArVolumeBuilder::getChild
GeoPVConstLink getChild(const GeoPVConstLink &mother, const std::string &name, Amg::Transform3D &trIn) const
Definition: LArVolumeBuilder.cxx:1788
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:240
LAr::LArVolumeBuilder::initialize
virtual StatusCode initialize() override final
AlgTool initialize method.
Definition: LArVolumeBuilder.cxx:62
LAr::LArVolumeBuilder::m_calosurf
ToolHandle< ICaloSurfaceBuilder > m_calosurf
Definition: LArVolumeBuilder.h:110
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:1697
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
python.changerun.pv
pv
Definition: changerun.py:79
LAr::LArVolumeBuilder::m_useCaloTrackingGeometryBounds
BooleanProperty m_useCaloTrackingGeometryBounds
tool required for DetDescr-based layering
Definition: LArVolumeBuilder.h:107
LAr::LArVolumeBuilder
Definition: LArVolumeBuilder.h:54
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