5#ifndef ACTSGEOMETRY_CALOBLUEPRINTNODEBUILDER_H
6#define ACTSGEOMETRY_CALOBLUEPRINTNODEBUILDER_H
11#include "Acts/Surfaces/CylinderSurface.hpp"
12#include "Acts/Surfaces/Surface.hpp"
14#include "CaloDetDescr/CaloDetDescrElement.h"
29 using base_class::base_class;
34 std::shared_ptr<Acts::Experimental::BlueprintNode>
buildBlueprintNode(
const Acts::GeometryContext& gctx,
35 std::shared_ptr<Acts::Experimental::BlueprintNode>&& childNode)
override;
62 std::shared_ptr<Acts::CylinderSurface>
generateCylinderSurface(
const double& maxLArBRadius,
const double& minLArBRadius,
const double& lowZLarB,
const double& highZLarB)
const;
76 std::vector<CaloCell_ID::CaloSample>
m_caloDiscSampleList{CaloCell_ID::PreSamplerE, CaloCell_ID::EME1, CaloCell_ID::EME2,
77 CaloCell_ID::EME3, CaloCell_ID::HEC0, CaloCell_ID::HEC1, CaloCell_ID::HEC2, CaloCell_ID::HEC3, CaloCell_ID::TileGap3};
80 CaloCell_ID::EMB3,CaloCell_ID::TileBar0, CaloCell_ID::TileBar1, CaloCell_ID::TileBar2,
81 CaloCell_ID::TileGap1, CaloCell_ID::TileGap2, CaloCell_ID::TileExt0, CaloCell_ID::TileExt1,
82 CaloCell_ID::TileExt2};
87 ,
"Tolerance for determining if a ring of cells in phi has changed the radius w.r.t to the previous ring in phi" };
92 ,
"Tolerance for determining if a ring of cells in phi has changed the z w.r.t to the previous ring in phi" };
std::map< CaloCell_ID::CaloSample, std::vector< std::shared_ptr< Acts::Surface > > > caloSampleSurfaceMap_t
std::map< CaloCell_ID::CaloSample, std::vector< const CaloDetDescrElement * > > caloSampleDDEElementsMap_t
std::map< std::string, double > caloDimensionMap_t
Definition of CaloDetDescrManager.
Builds the Calo Blueprint Node.
void fillCaloDimensionsMap(caloDimensionMap_t &caloDimensionsMap, caloSampleDDEElementsMap_t &caloSampleDDEElementsMap) const
fillCaloDimensionsMap fills a map of calorimeter dimensions for each sampling layer.
Gaudi::Property< double > m_radiusTolerance
void generateCylinderSurfaces(caloSampleSurfaceMap_t &caloSampleSurfaceMap, caloSampleDDEElementsMap_t &caloSampleDDEElementsMap) const
generateCylinderSurfaces generates cylindrical surfaces for each calo sampling.
std::shared_ptr< Acts::CylinderSurface > generateCylinderSurface(const double &maxLArBRadius, const double &minLArBRadius, const double &lowZLarB, const double &highZLarB) const
generateCylinderSurface generates a cylindrical surface for a given set of parameters.
std::vector< CaloCell_ID::CaloSample > m_caloCylinderSampleList
void addCylindricalTrackingVolumeToCaloNode(Acts::Experimental::CylinderContainerBlueprintNode &containerNode, caloDimensionMap_t &caloDimensionMap, const std::string &volumeName, const std::vector< std::shared_ptr< Acts::Surface > > &surfaces) const
addCylindricalTrackingVolumeToCaloNode adds a cylindrical tracking volume to the calo node.
StatusCode initialize() override
std::vector< CaloCell_ID::CaloSample > m_caloDiscSampleList
void fillMaps(caloSampleSurfaceMap_t &caloSampleSurfaceMap, caloSampleDDEElementsMap_t &caloSampleDDEElementsMap) const
fillMaps fills two maps.
std::shared_ptr< Acts::Experimental::BlueprintNode > buildBlueprintNode(const Acts::GeometryContext &gctx, std::shared_ptr< Acts::Experimental::BlueprintNode > &&childNode) override
Build the Itk Blueprint Node.
StatusCode finalize() override
Gaudi::Property< double > m_zTolerance
std::unique_ptr< CaloDetDescrManager > m_caloDetSecrMgr
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...