ATLAS Offline Software
Loading...
Searching...
No Matches
InDet::RobustTrackingGeometryBuilderImpl Class Reference

New Geometry builder that adapts to different layer setups. More...

#include <RobustTrackingGeometryBuilderImpl.h>

Inheritance diagram for InDet::RobustTrackingGeometryBuilderImpl:
Collaboration diagram for InDet::RobustTrackingGeometryBuilderImpl:

Public Member Functions

 RobustTrackingGeometryBuilderImpl (const std::string &, const std::string &, const IInterface *)
 Constructor.
virtual ~RobustTrackingGeometryBuilderImpl ()=default
 Destructor.
virtual StatusCode initialize () override
 AlgTool initialize method.
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Protected Types

enum  ToolType { Cond = 0 , Svc = 1 }

Protected Member Functions

template<ToolType type, typename LayerBuilders, typename PipeBuilder>
std::unique_ptr< Trk::TrackingGeometrytrackingGeometryImpl (const LayerBuilders &layerHandles, const PipeBuilder &pipeHandle, const EventContext *ctx=nullptr, SG::WriteCondHandle< Trk::TrackingGeometry > *whandle=nullptr) const
Trk::TrackingVolumepackVolumeTriple (const std::vector< Trk::Layer * > &negLayers, const std::vector< Trk::Layer * > &centralLayers, const std::vector< Trk::Layer * > &posLayers, double rMin, double rMax, double zMin, double zPosCentral, const std::string &baseName="UndefinedVolume", int colorCode=21, Trk::BinningType bintype=Trk::arbitrary) const
 Private method, creates and packs a triple containing of NegEndcap-Barrel-PosEndcap layers.
Trk::TrackingVolumepackVolumeTriple (const std::vector< Trk::TrackingVolume * > &negVolumes, const std::vector< Trk::TrackingVolume * > &centralVolumes, const std::vector< Trk::TrackingVolume * > &posVolumes, const std::string &baseName="UndefinedVolume") const
 Private method, creates and packs a triple containing of NegEndcap-Barrel-PosEndcap volumes.
void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.
void glueVolumes (TrackingVolume &firstVol, BoundarySurfaceFace firstFace, TrackingVolume &secondVol, BoundarySurfaceFace secondFace) const
 protected method to glue two Volumes together input:

Static Protected Member Functions

static void setBoundarySurface (TrackingVolume &tvol, std::shared_ptr< BoundarySurface< TrackingVolume > > bsurf, BoundarySurfaceFace face)
 protected method to set the boundary surface of a tracking volume
static void setInsideVolume (TrackingVolume &tvol, BoundarySurfaceFace face, TrackingVolume *insidevol)
 protected method to set inside Volume of a BoundarySurface: input:
static void setInsideVolumeArray (TrackingVolume &tvol, BoundarySurfaceFace face, const std::shared_ptr< BinnedArray< TrackingVolume > > &insidevolarray)
 protected method to set inside VolumeArray of a BoundarySurface: input:
static void setOutsideVolume (TrackingVolume &tvol, BoundarySurfaceFace face, TrackingVolume *outsidevol)
 protected method to set outside Volume of a BoundarySurface: input:
static void setOutsideVolumeArray (TrackingVolume &tvol, BoundarySurfaceFace face, const std::shared_ptr< BinnedArray< TrackingVolume > > &outsidevolarray)
 protected method to set outside VolumeArray of a BoundarySurface: input:
static void confineVolume (TrackingVolume &tvol, TrackingVolume *outsidevol)
 protected method to confine (dense) volumes: input:

Protected Attributes

CxxUtils::CachedUniquePtrT< Trk::Materialm_materialProperties
 overal material properties of the ID
PublicToolHandle< Trk::ITrackingVolumeCreatorm_trackingVolumeCreator
 Helper Tool to create TrackingVolumes.
PublicToolHandle< Trk::ILayerArrayCreatorm_layerArrayCreator
 Helper Tool to create BinnedArrays.
IntegerArrayProperty m_layerBinningType
 binning type for the provided layers
IntegerArrayProperty m_colorCodesConfig
 Color codes.
ServiceHandle< IEnvelopeDefSvcm_enclosingEnvelopeSvc
 the service to provide the ID envelope size
DoubleArrayProperty m_enclosingCylinderRadius
 the cylinder layer inside the enclosing volume
DoubleArrayProperty m_enclosingDiscPositionZ
 the disc position inside the enclosing volume
DoubleProperty m_layerEnvelopeCover
 innermost - outermost
BooleanProperty m_buildBoundaryLayers
 create boundary layers
BooleanProperty m_replaceJointBoundaries
 run with replacement of all joint boundaries
DoubleProperty m_outwardsFraction
 defines how much you orient yourself in an outwards way (see above)
BooleanProperty m_indexStaticLayers
 forces robust indexing for layers
StringProperty m_namespace
 identificaton namespace
StringProperty m_exitVolume
 the final ID container
BooleanProperty m_isITk
 changes volume boundary calculation for ITk layouts

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

New Geometry builder that adapts to different layer setups.

Only a few parameters are not automated:

  • m_outwardsFraction: this defines how much you orient yourself on the next bigger layer if you wrap an outer volume around an inner 0.5 would lead to a boundary fully in bewteen
    1. at the outer boundary, 0. at the inner boundary
Author
Andre.nosp@m.as.S.nosp@m.alzbu.nosp@m.rger.nosp@m.@cern.nosp@m..ch

Definition at line 65 of file RobustTrackingGeometryBuilderImpl.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Member Enumeration Documentation

◆ ToolType

Constructor & Destructor Documentation

◆ RobustTrackingGeometryBuilderImpl()

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

Constructor.

Definition at line 18 of file RobustTrackingGeometryBuilderImpl.cxx.

18 :
19 AthAlgTool(t,n,p),
20 Trk::TrackingVolumeManipulator()
21{
22}
AthAlgTool()
Default constructor:

◆ ~RobustTrackingGeometryBuilderImpl()

virtual InDet::RobustTrackingGeometryBuilderImpl::~RobustTrackingGeometryBuilderImpl ( )
virtualdefault

Destructor.

Member Function Documentation

◆ confineVolume()

void Trk::TrackingVolumeManipulator::confineVolume ( TrackingVolume & tvol,
TrackingVolume * outsidevol )
staticprotectedinherited

protected method to confine (dense) volumes: input:

  • the volume that holdes the BoundarySurfaces (embedded)
  • the volume to be set as outside volume

Definition at line 90 of file TrackingVolumeManipulator.cxx.

92{
93
94 const auto& bounds = tvol.boundarySurfaces();
95 for (const auto & bound : bounds) {
96 if (bound->outsideVolume() == nullptr) {
97 bound->setOutsideVolume(outsideVol);
98 }
99 if (bound->insideVolume() == nullptr) {
100 bound->setInsideVolume(outsideVol);
101 }
102 }
103}

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ glueVolumes()

void Trk::TrackingVolumeManipulator::glueVolumes ( Trk::TrackingVolume & firstVol,
Trk::BoundarySurfaceFace firstFace,
Trk::TrackingVolume & secondVol,
Trk::BoundarySurfaceFace secondFace ) const
protectedinherited

protected method to glue two Volumes together input:

  • first TrackingVolume that keeps boundary surface
  • face of the BoundarySurface to be kept
  • second volume that gets glued to the first volume
  • face of the BoundarySurface to be shared

Definition at line 17 of file TrackingVolumeManipulator.cxx.

22{
23 // check if it is a cylinder volume
24 const Trk::CylinderVolumeBounds* cylBounds =
25 dynamic_cast<const Trk::CylinderVolumeBounds*>(&(firstVol.volumeBounds()));
26
27 if (firstFace == Trk::tubeOuterCover && secondFace == Trk::tubeInnerCover)
28 return glueVolumes(secondVol, secondFace, firstVol, firstFace);
29
30 // the second volume gets the face of the first volume assigned
31 (secondVol.m_boundarySurfaces)[secondFace] =
32 (firstVol.m_boundarySurfaces)[firstFace];
33 // the face of the first volume has been an inner tube
34 if (cylBounds && firstFace == Trk::tubeInnerCover &&
35 secondFace == Trk::tubeOuterCover) {
36 (secondVol.m_boundarySurfaces)[secondFace]->setInsideVolume(&secondVol);
37 } else {
38 (secondVol.m_boundarySurfaces)[secondFace]->setOutsideVolume(&secondVol);
39 }
40}
void glueVolumes(TrackingVolume &firstVol, BoundarySurfaceFace firstFace, TrackingVolume &secondVol, BoundarySurfaceFace secondFace) const
protected method to glue two Volumes together input:
static void setOutsideVolume(TrackingVolume &tvol, BoundarySurfaceFace face, TrackingVolume *outsidevol)
protected method to set outside Volume of a BoundarySurface: input:
static void setInsideVolume(TrackingVolume &tvol, BoundarySurfaceFace face, TrackingVolume *insidevol)
protected method to set inside Volume of a BoundarySurface: input:
std::vector< std::shared_ptr< BoundarySurface< TrackingVolume > > > m_boundarySurfaces
const VolumeBounds & volumeBounds() const
returns the volumeBounds()
Definition Volume.h:96

◆ initialize()

StatusCode InDet::RobustTrackingGeometryBuilderImpl::initialize ( )
overridevirtual

AlgTool initialize method.

Definition at line 26 of file RobustTrackingGeometryBuilderImpl.cxx.

27{
28 // retrieve envelope definition service --------------------------------------------------
30
31 // Retrieve the tracking volume creator -------------------------------------------------
33 ATH_MSG_DEBUG( "Retrieved tool " << m_trackingVolumeCreator );
34
35 // Retrieve the layer array creator ----------------------------------------------------
37 ATH_MSG_INFO( "Retrieved tool " << m_layerArrayCreator );
38
39 // Dummy MaterialProerties
40 m_materialProperties.set(std::make_unique<Trk::Material>());
41
42 ATH_MSG_INFO( "initialize() successful" );
43
44 return StatusCode::SUCCESS;
45}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_INFO(x)
#define ATH_MSG_DEBUG(x)
PublicToolHandle< Trk::ITrackingVolumeCreator > m_trackingVolumeCreator
Helper Tool to create TrackingVolumes.
CxxUtils::CachedUniquePtrT< Trk::Material > m_materialProperties
overal material properties of the ID
ServiceHandle< IEnvelopeDefSvc > m_enclosingEnvelopeSvc
the service to provide the ID envelope size
PublicToolHandle< Trk::ILayerArrayCreator > m_layerArrayCreator
Helper Tool to create BinnedArrays.

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ msg()

MsgStream & AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ packVolumeTriple() [1/2]

Trk::TrackingVolume * InDet::RobustTrackingGeometryBuilderImpl::packVolumeTriple ( const std::vector< Trk::Layer * > & negLayers,
const std::vector< Trk::Layer * > & centralLayers,
const std::vector< Trk::Layer * > & posLayers,
double rMin,
double rMax,
double zMin,
double zPosCentral,
const std::string & baseName = "UndefinedVolume",
int colorCode = 21,
Trk::BinningType bintype = Trk::arbitrary ) const
protected

Private method, creates and packs a triple containing of NegEndcap-Barrel-PosEndcap layers.

Definition at line 48 of file RobustTrackingGeometryBuilderImpl.cxx.

57{
58
59
60 ATH_MSG_VERBOSE( '\t' << '\t'<< "Pack provided Layers from '" << baseName << "' triple into a container volume. " );
61
62 // create the strings
63 std::string volumeBase = m_namespace+"Detectors::"+baseName;
64
65 Trk::TrackingVolume* negativeVolume =
66 m_trackingVolumeCreator->createTrackingVolume(negLayers,
68 rMin,
69 rMax,
70 -zMax,
71 -zPosCentral,
72 volumeBase +
73 "::NegativeEndcap",
74 bintyp);
75
76 Trk::TrackingVolume* centralVolume =
77 m_trackingVolumeCreator->createTrackingVolume(centralLayers,
79 rMin,
80 rMax,
81 -zPosCentral,
82 zPosCentral,
83 volumeBase + "::Barrel",
84 bintyp);
85
86 Trk::TrackingVolume* positiveVolume =
87 m_trackingVolumeCreator->createTrackingVolume(posLayers,
89 rMin,
90 rMax,
91 zPosCentral,
92 zMax,
93 volumeBase +
94 "::PositiveEndcap",
95 bintyp);
96
97 // the base volumes have been created
99 '\t' << '\t' << "Volumes have been created, now pack them into a triple.");
100 // registerColorCode
101 negativeVolume->registerColorCode(colorCode);
102 centralVolume->registerColorCode(colorCode);
103 positiveVolume->registerColorCode(colorCode);
104
105 // pack them together
106 std::vector<Trk::TrackingVolume*> tripleVolumes;
107 tripleVolumes.push_back(negativeVolume);
108 tripleVolumes.push_back(centralVolume);
109 tripleVolumes.push_back(positiveVolume);
110
111 // create the tiple container
112 Trk::TrackingVolume* tripleContainer =
113 m_trackingVolumeCreator->createContainerTrackingVolume(
114 tripleVolumes,
116 volumeBase,
119
120 ATH_MSG_VERBOSE('\t' << '\t' << "Created container volume with bounds: "
121 << tripleContainer->volumeBounds());
122
123 return tripleContainer;
124}
#define ATH_MSG_VERBOSE(x)
BooleanProperty m_replaceJointBoundaries
run with replacement of all joint boundaries
BooleanProperty m_buildBoundaryLayers
create boundary layers
void registerColorCode(unsigned int icolor)
Register the color code.

◆ packVolumeTriple() [2/2]

Trk::TrackingVolume * InDet::RobustTrackingGeometryBuilderImpl::packVolumeTriple ( const std::vector< Trk::TrackingVolume * > & negVolumes,
const std::vector< Trk::TrackingVolume * > & centralVolumes,
const std::vector< Trk::TrackingVolume * > & posVolumes,
const std::string & baseName = "UndefinedVolume" ) const
protected

Private method, creates and packs a triple containing of NegEndcap-Barrel-PosEndcap volumes.

Definition at line 127 of file RobustTrackingGeometryBuilderImpl.cxx.

132{
133 ATH_MSG_VERBOSE( '\t' << '\t'<< "Pack provided Volumes from '" << baseName << "' triple into a container volume. " );
134
135 unsigned int negVolSize = negVolumes.size();
136 unsigned int cenVolSize = centralVolumes.size();
137 unsigned int posVolSize = posVolumes.size();
138
139
140
141 // create the strings
142 std::string volumeBase = m_namespace+"Containers::"+baseName;
143
144 Trk::TrackingVolume* negativeVolume = (negVolSize > 1) ?
145 m_trackingVolumeCreator->createContainerTrackingVolume(negVolumes,
147 volumeBase+"::NegativeSector",
150 (negVolSize ? negVolumes[0] : nullptr);
151 Trk::TrackingVolume* centralVolume = (cenVolSize > 1) ?
152 m_trackingVolumeCreator->createContainerTrackingVolume(centralVolumes,
154 volumeBase+"::CentralSector",
157 (cenVolSize ? centralVolumes[0] : nullptr) ;
158
159 Trk::TrackingVolume* positiveVolume = ( posVolSize > 1) ?
160 m_trackingVolumeCreator->createContainerTrackingVolume(posVolumes,
162 volumeBase+"::PositiveSector",
165 (posVolSize ? posVolumes[0] : nullptr);
166
167 if (!negativeVolume && !positiveVolume){
168 ATH_MSG_DEBUG( "No negative/positive sector given - no packing needed, returning central container!" );
169 return centralVolume;
170 }
171 // pack them together
172 std::vector<Trk::TrackingVolume*> tripleVolumes;
173 if (negativeVolume) tripleVolumes.push_back(negativeVolume);
174 if (centralVolume) tripleVolumes.push_back(centralVolume);
175 if (positiveVolume) tripleVolumes.push_back(positiveVolume);
176 // create the tiple container
177 Trk::TrackingVolume* tripleContainer =
178 m_trackingVolumeCreator->createContainerTrackingVolume(tripleVolumes,
180 volumeBase,
183 return tripleContainer;
184}

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ setBoundarySurface()

void Trk::TrackingVolumeManipulator::setBoundarySurface ( Trk::TrackingVolume & tvol,
std::shared_ptr< BoundarySurface< TrackingVolume > > bsurf,
Trk::BoundarySurfaceFace face )
staticprotectedinherited

protected method to set the boundary surface of a tracking volume

Definition at line 43 of file TrackingVolumeManipulator.cxx.

47{
48 (tvol.m_boundarySurfaces)[face] = std::move(bsurf);
49}

◆ setInsideVolume()

void Trk::TrackingVolumeManipulator::setInsideVolume ( Trk::TrackingVolume & tvol,
Trk::BoundarySurfaceFace face,
Trk::TrackingVolume * insidevol )
staticprotectedinherited

protected method to set inside Volume of a BoundarySurface: input:

  • the volume that holdes the BoundarySurface
  • the face type of the boundary to be set
  • the volume to be set as inside volume

Definition at line 52 of file TrackingVolumeManipulator.cxx.

55{
56
57 (tvol.m_boundarySurfaces)[face]->setInsideVolume(insidevol);
58}

◆ setInsideVolumeArray()

void Trk::TrackingVolumeManipulator::setInsideVolumeArray ( Trk::TrackingVolume & tvol,
Trk::BoundarySurfaceFace face,
const std::shared_ptr< BinnedArray< TrackingVolume > > & insidevolarray )
staticprotectedinherited

protected method to set inside VolumeArray of a BoundarySurface: input:

  • ithe volume that holdes the BoundarySurface
  • the face type of the boundary to be set
  • the volume array to be set as inside volume array

Definition at line 61 of file TrackingVolumeManipulator.cxx.

66{
67 (tvol.m_boundarySurfaces)[face]->setInsideVolumeArray(insidevolarray);
68}
static void setInsideVolumeArray(TrackingVolume &tvol, BoundarySurfaceFace face, const std::shared_ptr< BinnedArray< TrackingVolume > > &insidevolarray)
protected method to set inside VolumeArray of a BoundarySurface: input:

◆ setOutsideVolume()

void Trk::TrackingVolumeManipulator::setOutsideVolume ( Trk::TrackingVolume & tvol,
Trk::BoundarySurfaceFace face,
Trk::TrackingVolume * outsidevol )
staticprotectedinherited

protected method to set outside Volume of a BoundarySurface: input:

  • the volume that holdes the BoundarySurface
  • the face type of the boundary to be set
  • the volume to be set as outside volume

Definition at line 71 of file TrackingVolumeManipulator.cxx.

75{
76 (tvol.m_boundarySurfaces)[face]->setOutsideVolume(outsidevol);
77}

◆ setOutsideVolumeArray()

void Trk::TrackingVolumeManipulator::setOutsideVolumeArray ( Trk::TrackingVolume & tvol,
Trk::BoundarySurfaceFace face,
const std::shared_ptr< BinnedArray< TrackingVolume > > & outsidevolarray )
staticprotectedinherited

protected method to set outside VolumeArray of a BoundarySurface: input:

  • the volume that holdes the BoundarySurface
  • the face type of the boundary to be set
  • the volume array to be set as outside volume array

Definition at line 80 of file TrackingVolumeManipulator.cxx.

85{
86 (tvol.m_boundarySurfaces)[face]->setOutsideVolumeArray(outsidevolarray);
87}
static void setOutsideVolumeArray(TrackingVolume &tvol, BoundarySurfaceFace face, const std::shared_ptr< BinnedArray< TrackingVolume > > &outsidevolarray)
protected method to set outside VolumeArray of a BoundarySurface: input:

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and DerivationFramework::CfAthAlgTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ trackingGeometryImpl()

template<ToolType type, typename LayerBuilders, typename PipeBuilder>
std::unique_ptr< Trk::TrackingGeometry > InDet::RobustTrackingGeometryBuilderImpl::trackingGeometryImpl ( const LayerBuilders & layerHandles,
const PipeBuilder & pipeHandle,
const EventContext * ctx = nullptr,
SG::WriteCondHandle< Trk::TrackingGeometry > * whandle = nullptr ) const
protected

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_buildBoundaryLayers

BooleanProperty InDet::RobustTrackingGeometryBuilderImpl::m_buildBoundaryLayers
protected
Initial value:
{this, "BuildBoundaryLayers",
true}

create boundary layers

Definition at line 149 of file RobustTrackingGeometryBuilderImpl.h.

149 {this, "BuildBoundaryLayers",
150 true};

◆ m_colorCodesConfig

IntegerArrayProperty InDet::RobustTrackingGeometryBuilderImpl::m_colorCodesConfig
protected
Initial value:
{
this, "ColorCodes", {}}

Color codes.

Definition at line 130 of file RobustTrackingGeometryBuilderImpl.h.

130 {
131 this, "ColorCodes", {}};

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_enclosingCylinderRadius

DoubleArrayProperty InDet::RobustTrackingGeometryBuilderImpl::m_enclosingCylinderRadius
protected
Initial value:
{
this,
"VolumeEnclosureCylinderRadii",
{}}

the cylinder layer inside the enclosing volume

Definition at line 138 of file RobustTrackingGeometryBuilderImpl.h.

138 {
139 this,
140 "VolumeEnclosureCylinderRadii",
141 {}};

◆ m_enclosingDiscPositionZ

DoubleArrayProperty InDet::RobustTrackingGeometryBuilderImpl::m_enclosingDiscPositionZ
protected
Initial value:
{
this,
"VolumeEnclosureDiscPositions",
{}}

the disc position inside the enclosing volume

Definition at line 142 of file RobustTrackingGeometryBuilderImpl.h.

142 {
143 this,
144 "VolumeEnclosureDiscPositions",
145 {}};

◆ m_enclosingEnvelopeSvc

ServiceHandle<IEnvelopeDefSvc> InDet::RobustTrackingGeometryBuilderImpl::m_enclosingEnvelopeSvc
protected
Initial value:
{
this, "EnvelopeDefinitionSvc",
"AtlasEnvelopeDefSvc"}

the service to provide the ID envelope size

Definition at line 134 of file RobustTrackingGeometryBuilderImpl.h.

134 {
135 this, "EnvelopeDefinitionSvc",
136 "AtlasEnvelopeDefSvc"};

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_exitVolume

StringProperty InDet::RobustTrackingGeometryBuilderImpl::m_exitVolume
protected
Initial value:
{
this, "ExitVolumeName",
"InDet::Containers::InnerDetector"}

the final ID container

Definition at line 167 of file RobustTrackingGeometryBuilderImpl.h.

167 {
168 this, "ExitVolumeName",
169 "InDet::Containers::InnerDetector"};

◆ m_indexStaticLayers

BooleanProperty InDet::RobustTrackingGeometryBuilderImpl::m_indexStaticLayers
protected
Initial value:
{
this, "IndexStaticLayers", true}

forces robust indexing for layers

Definition at line 161 of file RobustTrackingGeometryBuilderImpl.h.

161 {
162 this, "IndexStaticLayers", true};

◆ m_isITk

BooleanProperty InDet::RobustTrackingGeometryBuilderImpl::m_isITk
protected
Initial value:
{
this, "isITk",
false}

changes volume boundary calculation for ITk layouts

Definition at line 170 of file RobustTrackingGeometryBuilderImpl.h.

170 {
171 this, "isITk",
172 false};

◆ m_layerArrayCreator

PublicToolHandle<Trk::ILayerArrayCreator> InDet::RobustTrackingGeometryBuilderImpl::m_layerArrayCreator
protected
Initial value:
{
this, "LayerArrayCreator",
"Trk::LayerArrayCreator/LayerArrayCreator"}

Helper Tool to create BinnedArrays.

Definition at line 122 of file RobustTrackingGeometryBuilderImpl.h.

122 {
123 this, "LayerArrayCreator",
124 "Trk::LayerArrayCreator/LayerArrayCreator"};

◆ m_layerBinningType

IntegerArrayProperty InDet::RobustTrackingGeometryBuilderImpl::m_layerBinningType
protected
Initial value:
{
this, "LayerBinningType", {}}

binning type for the provided layers

Definition at line 128 of file RobustTrackingGeometryBuilderImpl.h.

128 {
129 this, "LayerBinningType", {}};

◆ m_layerEnvelopeCover

DoubleProperty InDet::RobustTrackingGeometryBuilderImpl::m_layerEnvelopeCover
protected
Initial value:
{
this, "EnvelopeCover", 2 * Gaudi::Units::mm}

innermost - outermost

Definition at line 147 of file RobustTrackingGeometryBuilderImpl.h.

147 {
148 this, "EnvelopeCover", 2 * Gaudi::Units::mm};

◆ m_materialProperties

CxxUtils::CachedUniquePtrT<Trk::Material> InDet::RobustTrackingGeometryBuilderImpl::m_materialProperties
protected

overal material properties of the ID

Definition at line 112 of file RobustTrackingGeometryBuilderImpl.h.

◆ m_namespace

StringProperty InDet::RobustTrackingGeometryBuilderImpl::m_namespace
protected
Initial value:
{this, "VolumeNamespace",
"InDet::"}

identificaton namespace

Definition at line 164 of file RobustTrackingGeometryBuilderImpl.h.

164 {this, "VolumeNamespace",
165 "InDet::"};

◆ m_outwardsFraction

DoubleProperty InDet::RobustTrackingGeometryBuilderImpl::m_outwardsFraction
protected
Initial value:
{
this, "OutwardsFraction",
0.75}

defines how much you orient yourself in an outwards way (see above)

Definition at line 156 of file RobustTrackingGeometryBuilderImpl.h.

156 {
157 this, "OutwardsFraction",
158 0.75};

◆ m_replaceJointBoundaries

BooleanProperty InDet::RobustTrackingGeometryBuilderImpl::m_replaceJointBoundaries
protected
Initial value:
{
this, "ReplaceAllJointBoundaries",
true}

run with replacement of all joint boundaries

Definition at line 151 of file RobustTrackingGeometryBuilderImpl.h.

151 {
152 this, "ReplaceAllJointBoundaries",
153 true};

◆ m_trackingVolumeCreator

PublicToolHandle<Trk::ITrackingVolumeCreator> InDet::RobustTrackingGeometryBuilderImpl::m_trackingVolumeCreator
protected
Initial value:
{
this, "TrackingVolumeCreator",
"Trk::CylinderVolumeCreator/"
"CylinderVolumeCreator"}

Helper Tool to create TrackingVolumes.

Definition at line 116 of file RobustTrackingGeometryBuilderImpl.h.

116 {
117 this, "TrackingVolumeCreator",
118 "Trk::CylinderVolumeCreator/"
119 "CylinderVolumeCreator"};

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files: