ATLAS Offline Software
TileVolumeBuilder.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 // TileVolumeBuilder.h, (c) ATLAS Detector software
8 
9 #ifndef TILETRACKINGGEOMETRY_TILEVOLUMEBUILDER_H
10 #define TILETRACKINGGEOMETRY_TILEVOLUMEBUILDER_H
11 
12 // Gaudi
15 #include "GaudiKernel/ToolHandle.h"
16 // GeoModel
18 //
19 #include "GeoModelKernel/GeoVPhysVol.h"
20 // Trk
23 #include "TrkGeometry/Material.h"
24 // STL
25 #include <memory>
26 #include <mutex>
27 #include <vector>
28 
31 class CaloDepthTool;
32 class StoreGateSvc;
33 
34 namespace Trk {
35 class ILayerArrayCreator;
36 class ITrackingVolumeCreator;
37 class TrackingVolume;
38 class Volume;
39 class Layer;
40 }
41 
42 namespace Tile {
43 
57  : public AthAlgTool
58  , virtual public Trk::ICaloTrackingVolumeBuilder
59 {
60 
61 public:
63  TileVolumeBuilder(const std::string&, const std::string&, const IInterface*);
65  virtual ~TileVolumeBuilder();
66 
68  virtual StatusCode initialize() override final;
69 
72  virtual std::vector<Trk::TrackingVolume*> trackingVolumes(
73  const CaloDetDescrManager& caloDDM,
74  const GeoAlignmentStore* geoAlign) const override final;
75 
76  private:
77  static void printCheckResult(MsgStream& log, const Trk::TrackingVolume* vol) ;
78 
79  void printInfo(const GeoPVConstLink& pv) const;
80  void printChildren(const GeoPVConstLink& pv, int igen, const Amg::Transform3D& trIn) const;
81 
82  void throwIntoGarbage(std::unique_ptr<Trk::Material> mat) const;
83 
85  std::string m_tileMgrLocation;
86 
87  ToolHandle<Trk::ITrackingVolumeCreator> m_trackingVolumeCreator;
88 
90 
95 
97 
98 };
99 
100 } // end of namespace
101 
102 #endif // TILETRACKINGGEOMETRY_TILEVOLUMEBUILDER_H
103 
Tile::TileVolumeBuilder::m_tileMgrLocation
std::string m_tileMgrLocation
Location of the CaloDetDescrMgr.
Definition: TileVolumeBuilder.h:85
CaloDepthTool
Implementation of the ICaloDepthTool interface.Given a Track direction, checks if it is in the Calori...
Definition: CaloDepthTool.h:47
GeoAlignmentStore
Ensure that the extensions for the Vector3D are properly loaded.
Definition: GeoAlignmentStore.h:24
ICaloTrackingVolumeBuilder.h
Tile::TileVolumeBuilder::m_trackingVolumeCreator
ToolHandle< Trk::ITrackingVolumeCreator > m_trackingVolumeCreator
Second helper for volume creation.
Definition: TileVolumeBuilder.h:87
Tile::TileVolumeBuilder::m_tileBarrelLayersPerSampling
unsigned int m_tileBarrelLayersPerSampling
if m_useCaloSurfBuilder == true, number of layers per dead material region or sampling
Definition: TileVolumeBuilder.h:92
Tile::TileVolumeBuilder::throwIntoGarbage
void throwIntoGarbage(std::unique_ptr< Trk::Material > mat) const
mat
GeoMaterial * mat
Definition: LArDetectorConstructionTBEC.cxx:55
Tile::TileVolumeBuilder::printInfo
void printInfo(const GeoPVConstLink &pv) const
Definition: TileVolumeBuilder.cxx:743
Tile::TileVolumeBuilder::trackingVolumes
virtual std::vector< Trk::TrackingVolume * > trackingVolumes(const CaloDetDescrManager &caloDDM, const GeoAlignmentStore *geoAlign) const override final
TrackingVolumeBuilder interface method - returns vector of ptrs to volumes.
Definition: TileVolumeBuilder.cxx:106
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
Tile::TileVolumeBuilder::~TileVolumeBuilder
virtual ~TileVolumeBuilder()
Destructor.
ICaloSurfaceBuilder
Interface to CaloSurfaceBuilder.
Definition: ICaloSurfaceBuilder.h:43
Trk::ICaloTrackingVolumeBuilder
Definition: ICaloTrackingVolumeBuilder.h:28
python.RingerConstants.Layer
Layer
Definition: RingerConstants.py:42
GeoPrimitives.h
StoreGateSvc
The Athena Transient Store API.
Definition: StoreGateSvc.h:120
Tile
Definition: TileVolumeBuilder.h:42
TileDetDescrManager
Definition: TileDetDescrManager.h:33
Tile::TileVolumeBuilder::m_tileBarrelEnvelope
double m_tileBarrelEnvelope
envelope Cover of the Barrel
Definition: TileVolumeBuilder.h:89
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
vector
Definition: MultiHisto.h:13
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
AthAlgTool.h
Tile::TileVolumeBuilder::TileVolumeBuilder
TileVolumeBuilder(const std::string &, const std::string &, const IInterface *)
AlgTool style constructor.
Definition: TileVolumeBuilder.cxx:58
Tile::TileVolumeBuilder::initialize
virtual StatusCode initialize() override final
AlgTool initialize method.
Definition: TileVolumeBuilder.cxx:90
columnar::final
CM final
Definition: ColumnAccessor.h:106
Tile::TileVolumeBuilder::m_useCaloSurfBuilder
bool m_useCaloSurfBuilder
if true use DetDescr based layering, if false use biequidistant layering
Definition: TileVolumeBuilder.h:91
Tile::TileVolumeBuilder::m_surfBuilder
ToolHandle< ICaloSurfaceBuilder > m_surfBuilder
tool required for definition of active volumes
Definition: TileVolumeBuilder.h:94
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
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:79
Tile::TileVolumeBuilder::printCheckResult
static void printCheckResult(MsgStream &log, const Trk::TrackingVolume *vol)
Definition: TileVolumeBuilder.cxx:737
private
#define private
Definition: xAODTruthCnvAlg.h:20
AthAlgTool
Definition: AthAlgTool.h:26
checker_macros.h
Define macros for attributes used to control the static checker.
Material
@ Material
Definition: MaterialTypes.h:8
Tile::TileVolumeBuilder::m_tileMgr
const TileDetDescrManager * m_tileMgr
Calo DetDescrMgr.
Definition: TileVolumeBuilder.h:84
Tile::TileVolumeBuilder::m_forceSymmetry
bool m_forceSymmetry
forces volume symmetry between negative/positive part
Definition: TileVolumeBuilder.h:96
Material.h
Tile::TileVolumeBuilder::printChildren
void printChildren(const GeoPVConstLink &pv, int igen, const Amg::Transform3D &trIn) const
Definition: TileVolumeBuilder.cxx:754
Tile::TileVolumeBuilder
Definition: TileVolumeBuilder.h:59