5#ifndef ACTSGEOMETRY_CALOBLUEPRINTNODEBUILDER_H
6#define ACTSGEOMETRY_CALOBLUEPRINTNODEBUILDER_H
11#include "Acts/Surfaces/CylinderSurface.hpp"
12#include "Acts/Surfaces/DiscSurface.hpp"
13#include "Acts/Utilities/Helpers.hpp"
16#include "CaloDetDescr/CaloDetDescrElement.h"
42 case nRegions: ostr<<
"nRegions";
break;
47 using DetElVec_t = std::vector<const CaloDetDescrElement*>;
52 using SurfaceMap_t = std::array<std::vector<std::shared_ptr<Acts::Surface>>,
55 using base_class::base_class;
57 std::shared_ptr<Acts::BlueprintNode>
buildBlueprintNode(
const Acts::GeometryContext& gctx,
58 std::shared_ptr<Acts::BlueprintNode>&& childNode)
override;
60 virtual StatusCode
initialize() override final;
107 std::vector<std::uint32_t>(CaloSampling::Unknown, 0) };
112 ,
"Tolerance for determining if a ring of cells in phi has changed the radius w.r.t to the previous ring in phi" };
117 ,
"Tolerance for determining if a ring of cells in phi has changed the z w.r.t to the previous ring in phi" };
ACTS_OSTREAM_FORMATTER(ActsTrk::CaloBlueprintNodeBuilder::caloRegion)
Definition of CaloDetDescrManager.
Builds the Calo Blueprint Node.
DetElementMap_t fillDetectorElements(const CaloDetDescrManager &detDecrMgr) const
Fill the detector elements per calorimeter layer and sort them in ascending r(z) for the barrel (endc...
Gaudi::Property< std::vector< std::uint32_t > > m_surfaceDuplicates
Configure the insert of extra surfaces per each calorimeter layer.
Gaudi::Property< double > m_radiusTolerance
std::vector< const CaloDetDescrElement * > DetElVec_t
std::vector< std::shared_ptr< Acts::Surface > > fillLayer(const Acts::GeometryContext &tgContext, std::shared_ptr< Acts::Surface > &¢ralSurf) const
Fill the layer with extra surfaces.
SurfaceMap_t translateToSurfaces(const DetElementMap_t &detElements) const
Translate all detector elements to a Cylinder and Disc surfaces.
std::shared_ptr< Acts::Surface > createDiscSurface(std::span< const CaloDetDescrElement *const > detElements) const
Create a disc surface from the passed calo description elements.
std::unique_ptr< Acts::TrackingVolume > envelopeVolume(const Acts::GeometryContext &tgContext, const SurfaceMap_t &surfacesPerRegion) const
Create the envelope volume of the Calo Tracking Geometry.
std::array< std::vector< std::shared_ptr< Acts::Surface > >, Acts::toUnderlying(caloRegion::nRegions)> SurfaceMap_t
Vector of surfaces per calorimeter region.
std::shared_ptr< Acts::Surface > createCylinderSurface(std::span< const CaloDetDescrElement *const > detElements) const
Create a cylinder surface from a list of Calo detector description elements.
std::array< DetElVec_t, CaloSampling::getNumberOfSamplings()> DetElementMap_t
Vector of Detector Elements per calorimeter layer.
Gaudi::Property< double > m_zTolerance
friend std::ostream & operator<<(std::ostream &ostr, const caloRegion region)
virtual StatusCode initialize() override final
std::shared_ptr< Acts::BlueprintNode > buildBlueprintNode(const Acts::GeometryContext &gctx, std::shared_ptr< Acts::BlueprintNode > &&childNode) override
This class groups all DetDescr information related to a CaloCell.
This class provides the client interface for accessing the detector description information common to...
static constexpr unsigned int getNumberOfSamplings()
Get number of available samplings.
Support class for PropertyMgr.
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
This class is not to needed in AthSimulation.
=============================================================================