![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
Go to the documentation of this file.
11 #include "Gaudi/Property.h"
12 #include "GaudiKernel/Bootstrap.h"
13 #include "GaudiKernel/IMessageSvc.h"
14 #include "GaudiKernel/IService.h"
15 #include "GaudiKernel/ISvcLocator.h"
16 #include "GaudiKernel/IToolSvc.h"
17 #include "GaudiKernel/MsgStream.h"
18 #include "GaudiKernel/SystemOfUnits.h"
35 #include "CaloDetDescr/CaloDetDescrElement.h"
57 const std::string&
name,
61 , m_lar_mat(
"LArRecoMaterialTool")
62 , m_lar_simplegeom(
"LArRecoSimpleGeomTool")
64 declareInterface<ICaloSurfaceBuilder>(
this);
76 return StatusCode::FAILURE;
81 return StatusCode::FAILURE;
86 return StatusCode::FAILURE;
90 ATH_MSG_FATAL(
"Could not find TileDetDescrManager in DetStore");
91 return StatusCode::FAILURE;
94 return StatusCode::SUCCESS;
101 for (
auto & layerEntry : m_layerEntries) {
102 delete layerEntry.first;
103 delete layerEntry.second;
106 if (!m_layerExits.empty()) {
126 const double etaCaloLocal,
159 if (etaCaloLocal < 0)
207 double betterrad = 0;
216 if (hphi < 0.9 *
M_PI) {
238 if (hphi < 0.9 *
M_PI) {
251 const double etaCaloLocal,
277 if (etaCaloLocal < 0)
311 std::vector<TileDetDescriptor*>::const_iterator Tile_first =
330 if (hphi < 0.9 *
M_PI) {
345 std::vector<TileDetDescriptor*>::const_iterator Tile_first =
348 zend = TileGap_descr->
zcenter(2) + .5 * TileGap_descr->
dz(2);
355 zend =
descr->calo_z_max();
369 if (hphi < 0.9 *
M_PI) {
376 "This sample is not a 'LAST' surface... returning dummy surface");
386 return &(*m_calodepth);
445 ATH_MSG_ERROR(
" get_cylinder_surface Not Cylindrical Tile found!!! ");
455 hphi = .5 *
reg->dphi() *
reg->n_phi();
502 result =
reg->get_disk_surface(htrans, zow, ri, ra, hphisec,
depth);
503 if (!
reg->is_lar_em_endcap_inner())
515 result =
reg->get_disk_surface(htrans, zow, ri, ra, hphisec,
depth);
516 if (!
reg->is_lar_em_endcap_inner())
530 htrans = (htrans) *
vec;
538 std::vector<double>&
radius,
539 std::vector<double>&
depth,
540 std::vector<double>& hlength)
const
554 htrans = (htrans) *
vec;
561 htrans = (htrans) *
vec;
572 std::vector<double>&
z,
573 std::vector<double>&
depth,
574 std::vector<double>& rmin,
575 std::vector<double>& rmax)
const
578 alvol, htrans, hphi,
z,
depth, rmin, rmax);
595 float etaRef = (
sample < 4 || std::abs(
sample - 13) < 2) ? 1. : 2.;
602 m_layerEntries.emplace_back(spos, sneg);
610 std::vector<float>
offset(neta);
612 for (
unsigned int ie = 0;
ie < neta;
ie++) {
638 for (
unsigned int ie = 0;
ie < neta;
ie++) {
663 for (
unsigned int ie = 0;
ie < neta;
ie++) {
689 for (
unsigned int ie = 0;
ie < neta;
ie++) {
716 for (
unsigned int ie = 0;
ie < neta;
ie++) {
743 for (
unsigned int ie = 0;
ie < neta;
ie++) {
769 for (
unsigned int ie = 0;
ie < neta;
ie++) {
796 for (
unsigned int ie = 0;
ie < neta;
ie++) {
819 m_layerExits.push_back(m_layerEntries[
sample + 1]);
834 std::pair<const Trk::Surface*, const Trk::Surface*>(lpos, lneg);
845 std::pair<const Trk::Surface*, const Trk::Surface*>(lpos, lneg);
856 std::pair<const Trk::Surface*, const Trk::Surface*>(lpos, lneg);
867 std::pair<const Trk::Surface*, const Trk::Surface*>(lpos, lneg);
878 std::pair<const Trk::Surface*, const Trk::Surface*>(lpos, lneg);
def retrieve(aClass, aKey=None)
tile_descr_const_iterator tile_descriptors_begin() const
ToolHandle< ICaloRecoMaterialTool > m_lar_mat
@ depth
pointing depth of the shower as calculated in egammaqgcld
ToolHandle< ICaloRecoSimpleGeomTool > m_lar_simplegeom
void setOwner(SurfaceOwner x)
set Ownership
Scalar eta() const
pseudorapidity method
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
ToolHandle< CaloDepthTool > m_calodepth
virtual ~CaloSurfaceBuilder()
std::vector< size_t > vec
const Amg::Vector3D & center() const
Returns the center position of the Surface.
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
reg
globals -----------------------------------------------------------------—
float dz(unsigned int samp) const
Definition of CaloDetDescrManager.
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
const std::string & lar_geometry() const
get lar geometry label, distinguish between full atlas and TB
float dr(unsigned int samp) const
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
typename vecDetail::vec_typedef< T, N >::type vec
Define a nice alias for the vectorized type.
Definition of CaloDetDescriptor.
float rcenter(unsigned int samp) const
CaloSampling::CaloSample CaloSample
virtual CaloDepthTool * getCaloDepth() override final
float zcenter(unsigned int samp) const
::StatusCode StatusCode
StatusCode definition for legacy code.
Eigen::Affine3d Transform3D
virtual StatusCode initialize() override final
CaloSurfaceBuilder(const std::string &type, const std::string &name, const IInterface *parent)
virtual const SurfaceBounds & bounds() const =0
Surface Bounds method.
virtual StatusCode finalize() override final
calo_descr_range calo_descriptors_range() const
Range over descriptors.
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,...
This class provides the client interface for accessing the detector description information common to...
This is a base class for LAr and Tile Descriptors The primary goal is to speed up loops over all the ...
const TileDetDescrManager * m_tile_dd
Eigen::Translation< double, 3 > Translation3D
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
calo_descr_range tile_descriptors_range() const
Range over tile descriptors.
void fill_tg_surfaces(const CaloDetDescrManager *calo_dd) const
ALIGNVOL
LAr Alignable volumes.
virtual double r() const =0
Interface method for the maximal extension or the radius.