ATLAS Offline Software
Loading...
Searching...
No Matches
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
30namespace Trk {
31class TrackingVolume;
32class Material;
33class Volume;
34class Layer;
35}
36
37namespace LAr {
38
52 : public AthAlgTool
53 , virtual public Trk::ICaloTrackingVolumeBuilder
54{
55
56public:
58 LArVolumeBuilder(const std::string&, const std::string&, const IInterface*);
61
63 virtual StatusCode initialize() override final;
65 virtual StatusCode finalize() override final;
66
68 virtual std::vector<Trk::TrackingVolume*> trackingVolumes(
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,
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
Eigen::Affine3d Transform3D
Define macros for attributes used to control the static checker.
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
This class provides the client interface for accessing the detector description information common to...
Ensure that the extensions for the Vector3D are properly loaded.
LArVolumeBuilder(const std::string &, const std::string &, const IInterface *)
AlgTool style constructor.
virtual StatusCode finalize() override final
AlgTool finalize method.
DoubleProperty m_lArEndcapEnvelope
if true use DetDescr based layering, if false use biequidistant layering
ToolHandle< ICaloSurfaceBuilder > m_calosurf
BooleanProperty m_useCaloTrackingGeometryBounds
tool required for DetDescr-based layering
ToolHandle< Trk::ITrackingVolumeCreator > m_trackingVolumeCreator
envelope Cover of the Barrel
virtual StatusCode initialize() override final
AlgTool initialize method.
GeoPVConstLink getChild(const GeoPVConstLink &mother, const std::string &name, Amg::Transform3D &trIn) const
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.
static void printCheckResult(MsgStream &log, const Trk::TrackingVolume *vol)
FloatProperty m_scale_HECmaterial
UnsignedIntegerProperty m_lArLayersPerRegion
if true use DetDescr based layering, if false use biequidistant layering
void printInfo(const GeoPVConstLink &pv, const GeoAlignmentStore *gas, int gen=-1) const
virtual ~LArVolumeBuilder()
Destructor.
DoubleProperty m_lArBarrelEnvelope
envelope Cover of the Endcap
void printChildren(const GeoPVConstLink &pv, int gen, int igen, const Amg::Transform3D &tr) const
BooleanProperty m_useCaloSurfBuilder
if m_useCaloSurfBuilder == true, number of layers per dead material region or sampling
StringProperty m_lArMgrLocation
helper for volume creation
Interface class ICaloTrackingVolumeBuilders It inherits from IAlgTool.
Base Class for a Detector Layer in the Tracking realm.
Definition Layer.h:72
A common object to be contained by.
Definition Material.h:117
Full Volume description used in Tracking, it inherits from Volume to get the geometrical structure,...
Base class for all volumes inside the tracking realm, it defines the interface for inherited Volume c...
Definition Volume.h:36
Definition of ATLAS Math & Geometry primitives (Amg)
Ensure that the ATLAS eigen extensions are properly loaded.
STL namespace.
#define private