|
ATLAS Offline Software
|
#include <RobustTrackingGeometryBuilderImpl.h>
|
| RobustTrackingGeometryBuilderImpl (const std::string &, const std::string &, const IInterface *) |
| Constructor. More...
|
|
virtual | ~RobustTrackingGeometryBuilderImpl ()=default |
| Destructor. More...
|
|
virtual StatusCode | initialize () override |
| AlgTool initialize method. More...
|
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysInitialize () override |
| Perform system initialization for an algorithm. More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
template<ToolType type, typename LayerBuilders , typename PipeBuilder > |
std::unique_ptr< Trk::TrackingGeometry > | trackingGeometryImpl (const LayerBuilders &layerHandles, const PipeBuilder &pipeHandle, const EventContext *ctx=nullptr, SG::WriteCondHandle< Trk::TrackingGeometry > *whandle=nullptr) const |
|
Trk::TrackingVolume * | packVolumeTriple (const std::vector< Trk::Layer * > &negLayers, const std::vector< Trk::Layer * > ¢ralLayers, 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. More...
|
|
Trk::TrackingVolume * | packVolumeTriple (const std::vector< Trk::TrackingVolume * > &negVolumes, const std::vector< Trk::TrackingVolume * > ¢ralVolumes, 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. More...
|
|
void | renounceArray (SG::VarHandleKeyArray &handlesArray) |
| remove all handles from I/O resolution More...
|
|
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. More...
|
|
void | glueVolumes (TrackingVolume &firstVol, BoundarySurfaceFace firstFace, TrackingVolume &secondVol, BoundarySurfaceFace secondFace) const |
| protected method to glue two Volumes together input: More...
|
|
|
static void | setBoundarySurface (TrackingVolume &tvol, SharedObject< BoundarySurface< TrackingVolume >> bsurf, BoundarySurfaceFace face) |
| protected method to set the boundary surface of a tracking volume More...
|
|
static void | setInsideVolume (TrackingVolume &tvol, BoundarySurfaceFace face, TrackingVolume *insidevol) |
| protected method to set inside Volume of a BoundarySurface: input: More...
|
|
static void | setInsideVolumeArray (TrackingVolume &tvol, BoundarySurfaceFace face, BinnedArray< TrackingVolume > *insidevolarray) |
| protected method to set inside VolumeArray of a BoundarySurface: input: More...
|
|
static void | setInsideVolumeArray (TrackingVolume &tvol, BoundarySurfaceFace face, const SharedObject< BinnedArray< TrackingVolume >> &insidevolarray) |
| protected method to set inside VolumeArray of a BoundarySurface: input: More...
|
|
static void | setOutsideVolume (TrackingVolume &tvol, BoundarySurfaceFace face, TrackingVolume *outsidevol) |
| protected method to set outside Volume of a BoundarySurface: input: More...
|
|
static void | setOutsideVolumeArray (TrackingVolume &tvol, BoundarySurfaceFace face, BinnedArray< TrackingVolume > *outsidevolarray) |
| protected method to set outside VolumeArray of a BoundarySurface: input: More...
|
|
static void | setOutsideVolumeArray (TrackingVolume &tvol, BoundarySurfaceFace face, const SharedObject< BinnedArray< TrackingVolume >> &outsidevolarray) |
| protected method to set outside VolumeArray of a BoundarySurface: input: More...
|
|
static void | confineVolume (TrackingVolume &tvol, TrackingVolume *outsidevol) |
| protected method to confine (dense) volumes: input: More...
|
|
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
- 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.
◆ StoreGateSvc_t
◆ ToolType
◆ RobustTrackingGeometryBuilderImpl()
InDet::RobustTrackingGeometryBuilderImpl::RobustTrackingGeometryBuilderImpl |
( |
const std::string & |
t, |
|
|
const std::string & |
n, |
|
|
const IInterface * |
p |
|
) |
| |
◆ ~RobustTrackingGeometryBuilderImpl()
virtual InDet::RobustTrackingGeometryBuilderImpl::~RobustTrackingGeometryBuilderImpl |
( |
| ) |
|
|
virtualdefault |
◆ confineVolume()
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 112 of file TrackingVolumeManipulator.cxx.
116 const auto& bounds = tvol.boundarySurfaces();
117 for (
const auto & bound : bounds) {
118 if (bound->outsideVolume() ==
nullptr) {
119 bound->setOutsideVolume(outsideVol);
121 if (bound->insideVolume() ==
nullptr) {
122 bound->setInsideVolume(outsideVol);
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ extraDeps_update_handler()
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()
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.
28 return glueVolumes(secondVol, secondFace, firstVol, firstFace);
◆ initialize()
StatusCode InDet::RobustTrackingGeometryBuilderImpl::initialize |
( |
| ) |
|
|
overridevirtual |
◆ inputHandles()
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() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
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]
Private method, creates and packs a triple containing of NegEndcap-Barrel-PosEndcap layers.
Definition at line 48 of file RobustTrackingGeometryBuilderImpl.cxx.
60 ATH_MSG_VERBOSE(
'\t' <<
'\t'<<
"Pack provided Layers from '" << baseName <<
"' triple into a container volume. " );
63 std::string volumeBase =
m_namespace+
"Detectors::"+baseName;
83 volumeBase +
"::Barrel",
99 '\t' <<
'\t' <<
"Volumes have been created, now pack them into a triple.");
106 std::vector<Trk::TrackingVolume*> tripleVolumes;
107 tripleVolumes.push_back(negativeVolume);
108 tripleVolumes.push_back(centralVolume);
109 tripleVolumes.push_back(positiveVolume);
120 ATH_MSG_VERBOSE(
'\t' <<
'\t' <<
"Created container volume with bounds: "
123 return tripleContainer;
◆ packVolumeTriple() [2/2]
Private method, creates and packs a triple containing of NegEndcap-Barrel-PosEndcap volumes.
Definition at line 127 of file RobustTrackingGeometryBuilderImpl.cxx.
133 ATH_MSG_VERBOSE(
'\t' <<
'\t'<<
"Pack provided Volumes from '" << baseName <<
"' triple into a container volume. " );
135 unsigned int negVolSize = negVolumes.size();
136 unsigned int cenVolSize = centralVolumes.size();
137 unsigned int posVolSize = posVolumes.size();
142 std::string volumeBase =
m_namespace+
"Containers::"+baseName;
147 volumeBase+
"::NegativeSector",
150 (negVolSize ? negVolumes[0] :
nullptr);
154 volumeBase+
"::CentralSector",
157 (cenVolSize ? centralVolumes[0] :
nullptr) ;
162 volumeBase+
"::PositiveSector",
165 (posVolSize ? posVolumes[0] :
nullptr);
167 if (!negativeVolume && !positiveVolume){
168 ATH_MSG_DEBUG(
"No negative/positive sector given - no packing needed, returning central container!" );
169 return centralVolume;
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);
183 return tripleContainer;
◆ renounce()
◆ renounceArray()
◆ setBoundarySurface()
protected method to set the boundary surface of a tracking volume
Definition at line 43 of file TrackingVolumeManipulator.cxx.
48 (tvol.m_boundarySurfaces)[face] = std::move(bsurf);
◆ setInsideVolume()
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.
◆ setInsideVolumeArray() [1/2]
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.
◆ setInsideVolumeArray() [2/2]
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
◆ setOutsideVolume()
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 82 of file TrackingVolumeManipulator.cxx.
◆ setOutsideVolumeArray() [1/2]
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 91 of file TrackingVolumeManipulator.cxx.
◆ setOutsideVolumeArray() [2/2]
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
◆ sysInitialize()
◆ sysStart()
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 >
◆ updateVHKA()
◆ m_buildBoundaryLayers
BooleanProperty InDet::RobustTrackingGeometryBuilderImpl::m_buildBoundaryLayers |
|
protected |
◆ m_colorCodesConfig
IntegerArrayProperty InDet::RobustTrackingGeometryBuilderImpl::m_colorCodesConfig |
|
protected |
◆ m_detStore
◆ m_enclosingCylinderRadius
DoubleArrayProperty InDet::RobustTrackingGeometryBuilderImpl::m_enclosingCylinderRadius |
|
protected |
◆ m_enclosingDiscPositionZ
DoubleArrayProperty InDet::RobustTrackingGeometryBuilderImpl::m_enclosingDiscPositionZ |
|
protected |
◆ m_enclosingEnvelopeSvc
◆ m_evtStore
◆ m_exitVolume
StringProperty InDet::RobustTrackingGeometryBuilderImpl::m_exitVolume |
|
protected |
◆ m_indexStaticLayers
BooleanProperty InDet::RobustTrackingGeometryBuilderImpl::m_indexStaticLayers |
|
protected |
◆ m_isITk
BooleanProperty InDet::RobustTrackingGeometryBuilderImpl::m_isITk |
|
protected |
◆ m_layerArrayCreator
◆ m_layerBinningType
IntegerArrayProperty InDet::RobustTrackingGeometryBuilderImpl::m_layerBinningType |
|
protected |
◆ m_layerEnvelopeCover
DoubleProperty InDet::RobustTrackingGeometryBuilderImpl::m_layerEnvelopeCover |
|
protected |
◆ m_materialProperties
◆ m_namespace
StringProperty InDet::RobustTrackingGeometryBuilderImpl::m_namespace |
|
protected |
◆ m_outwardsFraction
DoubleProperty InDet::RobustTrackingGeometryBuilderImpl::m_outwardsFraction |
|
protected |
◆ m_replaceJointBoundaries
BooleanProperty InDet::RobustTrackingGeometryBuilderImpl::m_replaceJointBoundaries |
|
protected |
◆ m_trackingVolumeCreator
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
StringProperty m_namespace
identificaton namespace
CxxUtils::CachedUniquePtrT< Trk::Material > m_materialProperties
overal material properties of the ID
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
PublicToolHandle< Trk::ITrackingVolumeCreator > m_trackingVolumeCreator
Helper Tool to create TrackingVolumes.
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
static void setOutsideVolume(TrackingVolume &tvol, BoundarySurfaceFace face, TrackingVolume *outsidevol)
protected method to set outside Volume of a BoundarySurface: input:
T * set(std::unique_ptr< T > elt) const
Atomically set the element.
#define ATH_MSG_VERBOSE(x)
PublicToolHandle< Trk::ILayerArrayCreator > m_layerArrayCreator
Helper Tool to create BinnedArrays.
static void setInsideVolumeArray(TrackingVolume &tvol, BoundarySurfaceFace face, BinnedArray< TrackingVolume > *insidevolarray)
protected method to set inside VolumeArray of a BoundarySurface: input:
void registerColorCode(unsigned int icolor)
Register the color code.
static void setOutsideVolumeArray(TrackingVolume &tvol, BoundarySurfaceFace face, BinnedArray< TrackingVolume > *outsidevolarray)
protected method to set outside VolumeArray of a BoundarySurface: input:
virtual void setOwner(IDataHandleHolder *o)=0
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
ServiceHandle< IEnvelopeDefSvc > m_enclosingEnvelopeSvc
the service to provide the ID envelope size
static void setInsideVolume(TrackingVolume &tvol, BoundarySurfaceFace face, TrackingVolume *insidevol)
protected method to set inside Volume of a BoundarySurface: input:
std::shared_ptr< T > SharedObject
void glueVolumes(TrackingVolume &firstVol, BoundarySurfaceFace firstFace, TrackingVolume &secondVol, BoundarySurfaceFace secondFace) const
protected method to glue two Volumes together input:
const VolumeBounds & volumeBounds() const
returns the volumeBounds()
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
BooleanProperty m_replaceJointBoundaries
run with replacement of all joint boundaries
std::vector< SharedObject< BoundarySurface< TrackingVolume > > > m_boundarySurfaces
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
BooleanProperty m_buildBoundaryLayers
create boundary layers