17#ifndef CALOTRACKINGGEOMETRY_CALOSURFACEBUILDER_H
18#define CALOTRACKINGGEOMETRY_CALOSURFACEBUILDER_H
24#include "GaudiKernel/ToolHandle.h"
39class ICaloSurfaceHelper;
64 const std::string& name,
65 const IInterface* parent);
69 virtual StatusCode
initialize() override final;
70 virtual StatusCode
finalize() override final;
78 const double etaCaloLocal,
85 const double etaCaloLocal,
157 "CaloDepthTool/CaloDepthTool",
158 "CaloDepthTool to be used" };
161inline std::vector<std::pair<const Trk::Surface*, const Trk::Surface*>>
164 std::call_once(m_fillOnce, [
this, calo_dd]() {
fill_tg_surfaces(calo_dd); });
165 return m_layerEntries;
168inline std::vector<std::pair<const Trk::Surface*, const Trk::Surface*>>
171 std::call_once(m_fillOnce, [
this, calo_dd]() {
fill_tg_surfaces(calo_dd); });
CaloCell_ID::CaloSample CaloSample
CaloPhiRange class declaration.
CaloSubdetNames declaration.
Eigen::Affine3d Transform3D
Define macros for attributes used to control the static checker.
Helper class for offline cell identifiers.
This class provides the client interface for accessing the detector description information common to...
This class contains the ENUM needed to label the calorimeter pieces which be mooved independently,...
CaloSurfaceBuilder(const std::string &type, const std::string &name, const IInterface *parent)
void fill_tg_surfaces(const CaloDetDescrManager *calo_dd) const
virtual std::vector< std::pair< const Trk::Surface *, const Trk::Surface * > > exitSurfaces(const CaloDetDescrManager *calo_dd) const override final
virtual bool get_cylinder_surface(CaloCell_ID::CaloSample sample, int side, Amg::Transform3D &htrans, double &radius, double &hphi, double &hlength, double &depth, const CaloDetDescrManager *calo_dd) const override final
These methods provide the default parameters used by the CaloTrackingGeometry and Surface Builders,...
virtual Trk::Surface * CreateUserSurface(const CaloCell_ID::CaloSample sample, const double offset, const double etaCaloLocal, const CaloDetDescrManager *calo_dd) const override final
overwrite DD radius/z by CaloDepth radius, and an offset can be added
std::vector< std::pair< const Trk::Surface *, const Trk::Surface * > > m_layerEntries ATLAS_THREAD_SAFE
virtual std::vector< std::pair< const Trk::Surface *, const Trk::Surface * > > entrySurfaces(const CaloDetDescrManager *calo_dd) const override final
const TileDetDescrManager * m_tile_dd
virtual Trk::Surface * CreateLastSurface(const CaloCell_ID::CaloSample sample, const double offset, const double etaCaloLocal, const CaloDetDescrManager *calo_dd) const override final
end of the sample for the last layers of the Calo
ToolHandle< CaloDepthTool > m_calodepth
virtual StatusCode initialize() override final
virtual bool get_disk_surface(CaloCell_ID::CaloSample sample, int side, Amg::Transform3D &htrans, double &z, double &rmin, double &rmax, double &hphisec, double &depth, const CaloDetDescrManager *calo_dd) const override final
virtual CaloDepthTool * getCaloDepth() override final
ToolHandle< ICaloRecoSimpleGeomTool > m_lar_simplegeom
virtual StatusCode finalize() override final
virtual ~CaloSurfaceBuilder()
ToolHandle< ICaloRecoMaterialTool > m_lar_mat
Class to describe a cylindrical detector layer for tracking, it inhertis from both,...
Class to describe a disc-like detector layer for tracking, it inhertis from both, Layer base class an...
Interface class ITrackingVolumeBuilders It inherits from IAlgTool.
This virtual base class encapsulates the logics to build pre/post/full update material for Layer stru...
Material with information about thickness of material.
Abstract Base Class for tracking surfaces.
std::string depth
tag string for intendation
Definition of ATLAS Math & Geometry primitives (Amg)
Ensure that the ATLAS eigen extensions are properly loaded.