ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
InDet::StagedTrackingGeometryBuilder Class Reference

#include <StagedTrackingGeometryBuilder.h>

Inheritance diagram for InDet::StagedTrackingGeometryBuilder:
Collaboration diagram for InDet::StagedTrackingGeometryBuilder:

Public Member Functions

 StagedTrackingGeometryBuilder (const std::string &, const std::string &, const IInterface *)
 Constructor. More...
 
virtual ~StagedTrackingGeometryBuilder ()=default
 Destructor. More...
 
virtual StatusCode initialize () override final
 AlgTool initialize method. More...
 
virtual std::unique_ptr< Trk::TrackingGeometrytrackingGeometry (Trk::TrackingVolume *tvol=0) const override final
 TrackingGeometry Interface methods. More...
 
virtual Trk::GeometrySignature geometrySignature () const override final
 The unique signature. More...
 

Private Attributes

ToolHandleArray< Trk::ILayerProviderm_layerProviders
 Helper Tools for the Layer creation, includes beam pipe builder. More...
 

Detailed Description

New Geometry builder that adapts to different layer setups

Only a few parameters are not automated:

Author
Andre.nosp@m.as.S.nosp@m.alzbu.nosp@m.rger.nosp@m.@cern.nosp@m..ch

Definition at line 44 of file StagedTrackingGeometryBuilder.h.

Constructor & Destructor Documentation

◆ StagedTrackingGeometryBuilder()

InDet::StagedTrackingGeometryBuilder::StagedTrackingGeometryBuilder ( const std::string &  t,
const std::string &  n,
const IInterface *  p 
)

Constructor.

Definition at line 29 of file StagedTrackingGeometryBuilder.cxx.

29  :
30  base_class(t,n,p)
31 {
32  // layer builders and their configurations
33  declareProperty("LayerBuilders", m_layerProviders);
34 }

◆ ~StagedTrackingGeometryBuilder()

virtual InDet::StagedTrackingGeometryBuilder::~StagedTrackingGeometryBuilder ( )
virtualdefault

Destructor.

Member Function Documentation

◆ geometrySignature()

virtual Trk::GeometrySignature InDet::StagedTrackingGeometryBuilder::geometrySignature ( ) const
inlinefinaloverridevirtual

The unique signature.

Definition at line 64 of file StagedTrackingGeometryBuilder.h.

64 { return Trk::ID; }

◆ initialize()

StatusCode InDet::StagedTrackingGeometryBuilder::initialize ( )
finaloverridevirtual

AlgTool initialize method.

Definition at line 38 of file StagedTrackingGeometryBuilder.cxx.

39 {
40 
41  // Retrieve the layer builders -----------------------------------------------------------
42  if (m_layerProviders.retrieve().isFailure())
43  {
44  ATH_MSG_FATAL( "Failed to retrieve tool(s) " << m_layerProviders );
45  return StatusCode::FAILURE;
46  } else
47  ATH_MSG_DEBUG( "Retrieved tool " << m_layerProviders );
48 
50 }

◆ trackingGeometry()

std::unique_ptr< Trk::TrackingGeometry > InDet::StagedTrackingGeometryBuilder::trackingGeometry ( Trk::TrackingVolume tvol = 0) const
finaloverridevirtual

TrackingGeometry Interface methods.

Definition at line 54 of file StagedTrackingGeometryBuilder.cxx.

56 {
57  // only one assumption:
58  // layer builders are ordered in increasing r
59  ATH_MSG_DEBUG( "[ Start building the ID TrackingGeometry. ]");
60  ATH_MSG_DEBUG( "[ STEP 0 ] : Getting overal dimensions from DetectorEnvelope service." );
62  // The Overall Geometry
63  // get the dimensions from the envelope service
64  const RZPairVector& envelopeDefs = m_enclosingEnvelopeSvc->getInDetRZBoundary();
65  ATH_MSG_VERBOSE(" -> retrieved Inner Detector envelope definitions at size " << envelopeDefs.size());
66  double envelopeVolumeRadius = envelopeDefs[1].first;
67  double envelopeVolumeHalfZ = fabs(envelopeDefs[1].second);
68  ATH_MSG_VERBOSE(" -> envelope R/Z defined as : " << envelopeVolumeRadius << " / " << envelopeVolumeHalfZ );
69 
70  ATH_MSG_DEBUG( "[ STEP 1 ] : Getting overal dimensions from the different layer builders." );
71  size_t ilS = 0;
72  double maximumLayerExtendZ = 0.;
73  double maximumLayerRadius = 0.;
74  std::vector<InDet::LayerSetup> layerSetups;
75  for ( const auto& lProvider : m_layerProviders){
76  // screen output
77  ATH_MSG_DEBUG( "[ LayerBuilder : '" << lProvider->identification() << "' ] being processed. " );
78  // retrieve the layers
79  std::vector<Trk::Layer*> centralLayers = lProvider->centralLayers();
80  std::pair<const std::vector<Trk::Layer*>, const std::vector<Trk::Layer*> > endcapLayersPair = lProvider->endcapLayer();
81  ATH_MSG_VERBOSE(" -> retrieved " << centralLayers.size() << " central layers.");
82  ATH_MSG_VERBOSE(" -> retrieved " << endcapLayersPair.second.size() << " layers on negative side.");
83  ATH_MSG_VERBOSE(" -> retrieved " << endcapLayersPair.first.size() << " layers on positive side.");
84  // getting the Layer setup from parsing the builder output
85  InDet::LayerSetup lSetup =
86  estimateLayerSetup(lProvider->identification(),
87  ilS,
88  endcapLayersPair.second,
89  centralLayers,
90  endcapLayersPair.first,
91  envelopeVolumeRadius,
92  envelopeVolumeHalfZ);
93  // get the maxima - for R and Z
94  takeBigger(maximumLayerRadius, lSetup.rMax);
95  takeBigger(maximumLayerExtendZ, lSetup.zMax);
96  //layer setups for the second run
97  layerSetups.push_back(lSetup);
98  // increase counter
99  ++ilS;
100  }
101  ATH_MSG_VERBOSE(" -> layer max R/Z defined as : " << maximumLayerRadius << " / " << maximumLayerExtendZ );
102 
103  return trackingGeometryImpl(layerSetups, maximumLayerExtendZ,
104  maximumLayerRadius, envelopeVolumeHalfZ,
105  envelopeVolumeRadius);
106 }

Member Data Documentation

◆ m_layerProviders

ToolHandleArray<Trk::ILayerProvider> InDet::StagedTrackingGeometryBuilder::m_layerProviders
private

Helper Tools for the Layer creation, includes beam pipe builder.

Definition at line 68 of file StagedTrackingGeometryBuilder.h.


The documentation for this class was generated from the following files:
python.SystemOfUnits.second
int second
Definition: SystemOfUnits.py:120
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
InDet::LayerSetup
Definition: StagedTrackingGeometryBuilderImpl.h:45
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
Trk::ID
@ ID
Definition: GeometrySignature.h:26
RZPairVector
std::vector< RZPair > RZPairVector
Definition: RZPair.h:18
InDet::LayerSetup::rMax
double rMax
Definition: StagedTrackingGeometryBuilderImpl.h:69
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
takeBigger
#define takeBigger(current, test)
Definition: RobustTrackingGeometryBuilderImpl.h:44
beamspotman.n
n
Definition: beamspotman.py:731
InDet::LayerSetup::zMax
double zMax
Definition: StagedTrackingGeometryBuilderImpl.h:70
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
InDet::StagedTrackingGeometryBuilder::m_layerProviders
ToolHandleArray< Trk::ILayerProvider > m_layerProviders
Helper Tools for the Layer creation, includes beam pipe builder.
Definition: StagedTrackingGeometryBuilder.h:68
InDet::StagedTrackingGeometryBuilderImpl::initialize
virtual StatusCode initialize() override
AlgTool initialize method.
Definition: StagedTrackingGeometryBuilderImpl.cxx:38
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15