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

#include <StagedTrackingGeometryBuilderCond.h>

Inheritance diagram for InDet::StagedTrackingGeometryBuilderCond:
Collaboration diagram for InDet::StagedTrackingGeometryBuilderCond:

Public Member Functions

 StagedTrackingGeometryBuilderCond (const std::string &, const std::string &, const IInterface *)
 Constructor. More...
 
virtual ~StagedTrackingGeometryBuilderCond ()=default
 Destructor. More...
 
virtual StatusCode initialize () override final
 AlgTool initialize method. More...
 
virtual std::unique_ptr< Trk::TrackingGeometrytrackingGeometry (const EventContext &ctx, Trk::TrackingVolume *tVol, SG::WriteCondHandle< Trk::TrackingGeometry > &whandle) const override final
 TrackingGeometry Interface methods. More...
 
virtual Trk::GeometrySignature geometrySignature () const override
 The unique signature. More...
 

Private Attributes

ToolHandleArray< Trk::ILayerProviderCondm_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 43 of file StagedTrackingGeometryBuilderCond.h.

Constructor & Destructor Documentation

◆ StagedTrackingGeometryBuilderCond()

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

Constructor.

Definition at line 29 of file StagedTrackingGeometryBuilderCond.cxx.

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

◆ ~StagedTrackingGeometryBuilderCond()

virtual InDet::StagedTrackingGeometryBuilderCond::~StagedTrackingGeometryBuilderCond ( )
virtualdefault

Destructor.

Member Function Documentation

◆ geometrySignature()

virtual Trk::GeometrySignature InDet::StagedTrackingGeometryBuilderCond::geometrySignature ( ) const
inlineoverridevirtual

The unique signature.

Definition at line 64 of file StagedTrackingGeometryBuilderCond.h.

64 { return Trk::ID; }

◆ initialize()

StatusCode InDet::StagedTrackingGeometryBuilderCond::initialize ( )
finaloverridevirtual

AlgTool initialize method.

Definition at line 38 of file StagedTrackingGeometryBuilderCond.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::StagedTrackingGeometryBuilderCond::trackingGeometry ( const EventContext &  ctx,
Trk::TrackingVolume tVol,
SG::WriteCondHandle< Trk::TrackingGeometry > &  whandle 
) const
finaloverridevirtual

TrackingGeometry Interface methods.

Definition at line 55 of file StagedTrackingGeometryBuilderCond.cxx.

59 {
60  // only one assumption:
61  // layer builders are ordered in increasing r
62  ATH_MSG_DEBUG( "[ Start building the ID TrackingGeometry. ]");
63  ATH_MSG_DEBUG( "[ STEP 0 ] : Getting overal dimensions from DetectorEnvelope service." );
64 
66  // The Overall Geometry
67 
68  // get the dimensions from the envelope service
69  const RZPairVector& envelopeDefs = m_enclosingEnvelopeSvc->getInDetRZBoundary();
70  ATH_MSG_VERBOSE(" -> retrieved Inner Detector envelope definitions at size " << envelopeDefs.size());
71  double envelopeVolumeRadius = envelopeDefs[1].first;
72  double envelopeVolumeHalfZ = fabs(envelopeDefs[1].second);
73 
74  if (m_removeHGTD) {
75  // If running with the HGTD, we don't want to include its volume
76  // as it will be included in another tracking geometry.
77  // re-evaluating the ID envelope dimension
78  envelopeVolumeHalfZ = m_zMinHGTD;
79  }
80 
81  ATH_MSG_VERBOSE(" -> envelope R/Z defined as : " << envelopeVolumeRadius << " / " << envelopeVolumeHalfZ );
82 
83  ATH_MSG_DEBUG( "[ STEP 1 ] : Getting overall dimensions from the different layer builders." );
84  size_t ilS = 0;
85  double maximumLayerExtendZ = 0.;
86  double maximumLayerRadius = 0.;
87  std::vector<InDet::LayerSetup> layerSetups;
88  for ( const auto& lProvider : m_layerProviders){
89  // screen output
90  ATH_MSG_DEBUG( "[ LayerBuilder : '" << lProvider->identification() << "' ] being processed. " );
91  // retrieve the layers
92  std::vector<Trk::Layer*> centralLayers = lProvider->centralLayers(ctx, whandle);
93  std::pair<const std::vector<Trk::Layer*>, const std::vector<Trk::Layer*> > endcapLayersPair = lProvider->endcapLayer(ctx, whandle);
94  ATH_MSG_INFO(" -> retrieved " << centralLayers.size() << " central layers.");
95  ATH_MSG_INFO(" -> retrieved " << endcapLayersPair.second.size() << " layers on negative side.");
96  ATH_MSG_INFO(" -> retrieved " << endcapLayersPair.first.size() << " layers on positive side.");
97  // getting the Layer setup from parsing the builder output
98  InDet::LayerSetup lSetup =
99  estimateLayerSetup(lProvider->identification(),
100  ilS,
101  endcapLayersPair.second,
102  centralLayers,
103  endcapLayersPair.first,
104  envelopeVolumeRadius,
105  envelopeVolumeHalfZ);
106  // get the maxima - for R and Z
107  takeBigger(maximumLayerRadius, lSetup.rMax);
108  takeBigger(maximumLayerExtendZ, lSetup.zMax);
109  //layer setups for the second run
110  layerSetups.push_back(lSetup);
111  // increase counter
112  ++ilS;
113  }
114  ATH_MSG_VERBOSE(" -> layer max R/Z defined as : " << maximumLayerRadius << " / " << maximumLayerExtendZ );
115  return trackingGeometryImpl(layerSetups, maximumLayerExtendZ,
116  maximumLayerRadius, envelopeVolumeHalfZ,
117  envelopeVolumeRadius);
118 }

Member Data Documentation

◆ m_layerProviders

ToolHandleArray<Trk::ILayerProviderCond> InDet::StagedTrackingGeometryBuilderCond::m_layerProviders
private

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

Definition at line 68 of file StagedTrackingGeometryBuilderCond.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
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
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::StagedTrackingGeometryBuilderImpl::initialize
virtual StatusCode initialize() override
AlgTool initialize method.
Definition: StagedTrackingGeometryBuilderImpl.cxx:38
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
InDet::StagedTrackingGeometryBuilderCond::m_layerProviders
ToolHandleArray< Trk::ILayerProviderCond > m_layerProviders
Helper Tools for the Layer creation, includes beam pipe builder.
Definition: StagedTrackingGeometryBuilderCond.h:68