ATLAS Offline Software
Public Member Functions | Protected Member Functions | Static Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
Trk::GeometryBuilder Class Reference

#include <GeometryBuilder.h>

Inheritance diagram for Trk::GeometryBuilder:
Collaboration diagram for Trk::GeometryBuilder:

Public Member Functions

 GeometryBuilder (const std::string &, const std::string &, const IInterface *)
 Constructor. More...
 
virtual ~GeometryBuilder ()
 Destructor. More...
 
StatusCode initialize ()
 AlgTool initialize method. More...
 
std::unique_ptr< TrackingGeometrytrackingGeometry (TrackingVolume *tvol=0) const
 TrackingGeometry Interface method - optionally a pointer to Bounds. More...
 
GeometrySignature geometrySignature () const
 The unique signature. 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
 
 DeclareInterfaceID (IGeometryBuilder, 1, 0)
 Creates the InterfaceID and interfaceID() method. More...
 

Protected Member Functions

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 Protected Member Functions

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...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

std::unique_ptr< TrackingGeometryatlasTrackingGeometry () const
 TrackingGeometry for ATLAS setup. More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

bool m_createWorld
 Boolean Switch to create World manually. More...
 
int m_navigationLevel
 NavigationLevel. More...
 
std::vector< double > m_worldDimension
 The dimensions of the manually created world. More...
 
std::vector< double > m_worldMaterialProperties
 The material properties of the created world. More...
 
Material m_worldMaterial
 the world material More...
 
ToolHandle< ITrackingVolumeArrayCreatorm_trackingVolumeArrayCreator
 Helper Tool to create TrackingVolume Arrays. More...
 
ToolHandle< ITrackingVolumeHelperm_trackingVolumeHelper
 Helper Tool to create TrackingVolumes. More...
 
ToolHandle< IGeometryBuilderm_inDetGeometryBuilder
 GeometryBuilder for the InnerDetector. More...
 
bool m_caloGeometry
 switch on TrackingGeometry for the Calorimeters More...
 
ToolHandle< IGeometryBuilderm_caloGeometryBuilder
 GeometryBuilder for the Calorimeters. More...
 
bool m_muonGeometry
 GeometryBuilder for the Muon System. More...
 
ToolHandle< IGeometryBuilderm_muonGeometryBuilder
 GeometryBuilder for the Muon System. More...
 
bool m_compactify
 optimize event memory usage: register all surfaces with TG More...
 
bool m_synchronizeLayers
 synchronize contained layer dimensions to volumes More...
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

The Trk::TrackingGeometry Builder for ATLAS Geometry

It retrieves Trk::TrackingGeometry builders for the subdetectors and joins them together to a single Trk::TrackingGeometry.

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

Definition at line 47 of file GeometryBuilder.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ GeometryBuilder()

Trk::GeometryBuilder::GeometryBuilder ( const std::string &  t,
const std::string &  n,
const IInterface *  p 
)

Constructor.

Definition at line 34 of file GeometryBuilder.cxx.

35 : AthAlgTool(t,n,p),
37 #ifdef TRKDETDESCR_MEMUSAGE
38  m_memoryLogger(),
39 #endif
40  m_createWorld(true),
44  m_trackingVolumeArrayCreator("Trk::TrackingVolumeArrayCreator/TrackingVolumeArrayCreator"),
45  m_trackingVolumeHelper("Trk::TrackingVolumeHelper/TrackingVolumeHelper"),
46  m_inDetGeometryBuilder("", this),
48  m_caloGeometryBuilder("", this),
50  m_muonGeometryBuilder("", this),
51  m_compactify(true),
53 {
54  declareInterface<IGeometryBuilder>(this);
55  // by hand declarations
56  declareProperty("CreateWorldManually", m_createWorld);
57  declareProperty("NavigationLevel", m_navigationLevel);
58  // (1) dimension & material
59  declareProperty("WorldDimension", m_worldDimension);
60  declareProperty("WorldMaterialProperties", m_worldMaterialProperties);
61  // tool declarations ----------------------------------------------------------------
62  declareProperty("TrackingVolumeArrayCreator", m_trackingVolumeArrayCreator);
63  declareProperty("TrackingVolumeHelper", m_trackingVolumeHelper);
64  declareProperty("InDetTrackingGeometryBuilder", m_inDetGeometryBuilder);
65  declareProperty("CaloTrackingGeometryBuilder", m_caloGeometryBuilder);
66  declareProperty("MuonTrackingGeometryBuilder", m_muonGeometryBuilder);
67  // optimize layer dimension & memory usage -------------------------------
68  declareProperty("Compactify", m_compactify );
69  declareProperty("SynchronizeLayers", m_synchronizeLayers );
70 }

◆ ~GeometryBuilder()

Trk::GeometryBuilder::~GeometryBuilder ( )
virtualdefault

Destructor.

Member Function Documentation

◆ atlasTrackingGeometry()

std::unique_ptr< Trk::TrackingGeometry > Trk::GeometryBuilder::atlasTrackingGeometry ( ) const
private

TrackingGeometry for ATLAS setup.

Definition at line 152 of file GeometryBuilder.cxx.

153 {
154  // the return geometry
155  std::unique_ptr<Trk::TrackingGeometry> atlasTrackingGeometry = nullptr;
156 
157  // A ------------- INNER DETECTOR SECTION --------------------------------------------------------------------------------
158  // get the Inner Detector and/or Calorimeter trackingGeometry
159  std::unique_ptr<Trk::TrackingGeometry> inDetTrackingGeometry = nullptr;
160  std::unique_ptr<Trk::TrackingGeometry> caloTrackingGeometry = nullptr;
161 
162  // the volumes to be given to higher level tracking geometry builders
163  Trk::TrackingVolume* inDetVolume = nullptr;
164  Trk::TrackingVolume* caloVolume = nullptr;
165 
166  // mark the highest volume
167  Trk::TrackingVolume* highestVolume = nullptr;
168 
169 #ifdef TRKDETDESCR_MEMUSAGE
170  m_memoryLogger.refresh(getpid());
171  ATH_MSG_INFO( "[ memory usage ] Start of TrackingGeometry building: " );
172  ATH_MSG_INFO( m_memoryLogger );
173 #endif
174 
175  // ========================== INNER DETECTOR PART =================================================
176  if (!m_inDetGeometryBuilder.empty()) {
177  // debug output
178  ATH_MSG_VERBOSE( "ID Tracking Geometry is going to be built." );
179  // build the geometry
180  inDetTrackingGeometry = m_inDetGeometryBuilder->trackingGeometry();
181  // check
182  if (inDetTrackingGeometry) {
183  // sign it
184  inDetTrackingGeometry->sign(m_inDetGeometryBuilder->geometrySignature());
185  // check whether the world has to be created or not
187  // checkout the highest InDet volume
188  inDetVolume = inDetTrackingGeometry->checkoutHighestTrackingVolume();
189  // assign it as the highest volume
190  highestVolume = inDetVolume;
191  } else // -> Take the exit and return ID stand alone
192  atlasTrackingGeometry = std::move(inDetTrackingGeometry);
193  }
194 
195 #ifdef TRKDETDESCR_MEMUSAGE
196  m_memoryLogger.refresh(getpid());
197  ATH_MSG_INFO( "[ memory usage ] After InDet TrackingGeometry building: " );
198  ATH_MSG_INFO( m_memoryLogger );
199 #endif
200 
201  }
202 
203  // ========================== CALORIMETER PART =================================================
204  // if a Calo Geometry Builder is present -> wrap it around the ID
205  if (!m_caloGeometryBuilder.empty()) {
206  if (inDetVolume)
207  ATH_MSG_VERBOSE( "Calorimeter Tracking Geometry is going to be built with enclosed ID." );
208  else
209  ATH_MSG_VERBOSE( "Calorimeter Tracking Geometry is going to be built stand-alone." );
210  // get the InnerDetector TrackingGeometry
211  caloTrackingGeometry = m_caloGeometryBuilder->trackingGeometry(inDetVolume);
212  // if you have to create world or there is a Muon geometry builder ...
213  if (caloTrackingGeometry) {
214  // sign it
215  caloTrackingGeometry->sign(m_caloGeometryBuilder->geometrySignature());
217  // check out the highest Calo volume
218  caloVolume = caloTrackingGeometry->checkoutHighestTrackingVolume();
219  // assign it as the highest volume (overwrite ID)
220  highestVolume = caloVolume;
221  } else // -> Take the exit and return Calo back
222  atlasTrackingGeometry = std::move(caloTrackingGeometry);
223  }
224 
225 #ifdef TRKDETDESCR_MEMUSAGE
226  m_memoryLogger.refresh(getpid());
227  ATH_MSG_INFO( "[ memory usage ] After Calo TrackingGeometry building: " );
228  ATH_MSG_INFO( m_memoryLogger );
229 #endif
230 
231  }
232 
233  // ========================== MUON SYSTEM PART =================================================
234  // if Muon Geometry Builder is present -> wrap either ID or Calo
235  if (!m_muonGeometryBuilder.empty()) {
236 
237  std::string enclosed = "stand-alone.";
238  if (inDetVolume && caloVolume)
239  enclosed = "with encloded ID/Calo.";
240  else if (inDetVolume || caloVolume)
241  enclosed = (inDetVolume) ? "with encloded ID." : "with encloded Calo.";
242  ATH_MSG_VERBOSE( "Muon System Tracking Geometry is going to be built "<< enclosed );
243  // there's nothing outside the muons -- wrap the calo if it exists
244  if (inDetVolume && !caloVolume)
245  atlasTrackingGeometry = m_muonGeometryBuilder->trackingGeometry( inDetVolume );
246  else
247  atlasTrackingGeometry = m_muonGeometryBuilder->trackingGeometry( caloVolume );
248 
249  // sign it
251  atlasTrackingGeometry->sign(m_muonGeometryBuilder->geometrySignature());
252 
253 #ifdef TRKDETDESCR_MEMUSAGE
254  m_memoryLogger.refresh(getpid());
255  ATH_MSG_INFO( "[ memory usage ] After Muon TrackingGeometry building: " );
256  ATH_MSG_INFO( m_memoryLogger );
257 #endif
258 
259  // ========================== WRAPPING SECTION FOR ID/CALO ====================================
260  } else if (m_createWorld && highestVolume) {
261  // wrapping and world creation has been switched on
262  ATH_MSG_VERBOSE( "Enclosing world is going to be built for: " << highestVolume->volumeName() );
263  // get the glue volumes
264  Trk::GlueVolumesDescriptor& innerGlueVolumes = highestVolume->glueVolumesDescriptor();
265  // some screen output
266  ATH_MSG_VERBOSE( "Retrieved with following glue volumes: " << innerGlueVolumes );
267  // at negative face
268  const std::vector<Trk::TrackingVolume*>& innerNegativeFaceVolumes = innerGlueVolumes.glueVolumes(Trk::negativeFaceXY);
269  // at cylinder cover
270  const std::vector<Trk::TrackingVolume*>& innerCentralFaceVolumes = innerGlueVolumes.glueVolumes(Trk::cylinderCover);
271  // at positive face
272  const std::vector<Trk::TrackingVolume*>& innerPositiveFaceVolumes = innerGlueVolumes.glueVolumes(Trk::positiveFaceXY);
273 
274  // get the dimensions
275  // cast them to CylinderVolumeBounds
276  const Trk::CylinderVolumeBounds* innerVolumeBounds = dynamic_cast<const Trk::CylinderVolumeBounds*>(&(highestVolume->volumeBounds()));
277  if (!innerVolumeBounds) ATH_MSG_WARNING( "atlasTrackingGeometry() ... dynamic cast to innerVolumeBounds failed!" );
278  double innerVolumeOuterR = innerVolumeBounds ? innerVolumeBounds->outerRadius() : 0;
279  double innerVolumeHalflengthZ = innerVolumeBounds ? innerVolumeBounds->halflengthZ() : 0;
280  // Hierarchy after enclosing
281  //
282  // AtlasWorldVolume:
283  // AtlasInnerCylinder
284  // AtlasInnerNegativeSector
285  // InnerEnclosedVolume (can be ID/Calo)
286  // AtlasOuterNegativeSector
287  // AtlasOuterTube
288  // B -------------- BUILD WORLD AROUND for ID stand alone applications
289 
290  double innerCylinderSectorHalflengthZ = 0.5*(m_worldDimension[2] - innerVolumeHalflengthZ);
291  Trk::CylinderVolumeBounds* innerCylinderSectorBounds =
292  new Trk::CylinderVolumeBounds(0., innerVolumeOuterR, innerCylinderSectorHalflengthZ);
293 
294  double innerCylinderSectorPositionZ = fabs(m_worldDimension[2]-innerCylinderSectorHalflengthZ);
295 
296  // the AtlasInnerNegativeSector
297  Amg::Transform3D* atlasInnerNegativeSectorTransf = new Amg::Transform3D;
298  (*atlasInnerNegativeSectorTransf) = Amg::Translation3D(0.,0.,-innerCylinderSectorPositionZ);
299  Trk::TrackingVolume* atlasInnerNegativeSector = new Trk::TrackingVolume(
300  atlasInnerNegativeSectorTransf,
301  innerCylinderSectorBounds,
303  nullptr,
304  nullptr,
305  "AtlasInnerNegativeSector");
306 
307  // the AtlasInnerPositiveSector
308  Amg::Transform3D* atlasInnerPositiveSectorTransf = new Amg::Transform3D;
309  (*atlasInnerPositiveSectorTransf) = Amg::Translation3D(0.,0.,innerCylinderSectorPositionZ);
310  Trk::TrackingVolume* atlasInnerPositiveSector = new Trk::TrackingVolume(
311  atlasInnerPositiveSectorTransf,
312  innerCylinderSectorBounds->clone(),
314  nullptr,
315  nullptr,
316  "AtlasInnerPositiveSector");
317 
318  ATH_MSG_VERBOSE( "Inner Negative/Positive Sectors built successfully." );
319 
320  // create the subvolume Array
321  auto atlasInnerSectorVolumes = std::vector<Trk::TrackingVolume*>{atlasInnerNegativeSector,highestVolume,atlasInnerPositiveSector};
322 
323  ATH_MSG_VERBOSE( "Create the Atlas Inner Sector volumes. " );
325  m_trackingVolumeArrayCreator->cylinderVolumesArrayInZ(atlasInnerSectorVolumes) : nullptr;
326 
327 
328  // Atlas inner Sector bounds
329  Trk::CylinderVolumeBounds* innerSectorBounds =
330  new Trk::CylinderVolumeBounds(0., innerVolumeOuterR, m_worldDimension[2]);
331  // build the Tracking volumes
332  Trk::TrackingVolume* atlasInnerSector = new Trk::TrackingVolume(nullptr,
333  innerSectorBounds,
335  nullptr,
336  atlasInnerSectorVolumeArray,
337  "AtlasInnerSector");
338 
339  // Atlas outer Sector
340  Trk::CylinderVolumeBounds* outerSectorBounds =
341  new Trk::CylinderVolumeBounds(innerVolumeOuterR, m_worldDimension[1], m_worldDimension[2]);
342  Trk::TrackingVolume* atlasOuterSector = new Trk::TrackingVolume(nullptr,
343  outerSectorBounds,
345  nullptr,
346  nullptr,
347  "AtlasOuterSector");
348 
349  ATH_MSG_VERBOSE( "Atlas Inner/Outer Sectors built successfully." );
350 
351  // create the array of Inner and Outer sector
352  auto atlasVolumes = std::vector<Trk::TrackingVolume*>{atlasInnerSector, atlasOuterSector};
353 
355  m_trackingVolumeArrayCreator->cylinderVolumesArrayInR(atlasVolumes) : nullptr;
356 
357  // create the Atlas volume bounds
359 
360  // create the Atlas TrackingVolume
361  Trk::TrackingVolume* atlasVolume = new Trk::TrackingVolume(nullptr,
362  atlasBounds,
364  nullptr,
365  atlasVolumeArray,
366  "Atlas");
367 
368  ATH_MSG_VERBOSE( "Atlas Tracking World volume built successfully." );
369 
370 
371  // glue the inner sector to be complete
372  m_trackingVolumeHelper->glueTrackingVolumes( *atlasInnerNegativeSector, Trk::positiveFaceXY,
373  innerNegativeFaceVolumes, Trk::negativeFaceXY );
374 
375  m_trackingVolumeHelper->glueTrackingVolumes( *atlasInnerPositiveSector, Trk::negativeFaceXY,
376  innerPositiveFaceVolumes, Trk::positiveFaceXY );
377 
378  ATH_MSG_VERBOSE( "Atlas Inner Sector glued successfully together." );
379 
380  // iterators to the face volumes
381  auto volIter = innerCentralFaceVolumes.begin();
382  auto volIterEnd = innerCentralFaceVolumes.end();
383 
384  // glue outer and inner sector together
385  std::vector<Trk::TrackingVolume*> atlasInnerOuterVolumes;
386  atlasInnerOuterVolumes.push_back(atlasInnerNegativeSector);
387  for ( ; volIter != volIterEnd; ++volIter)
388  if (*volIter) atlasInnerOuterVolumes.push_back(*volIter);
389  atlasInnerOuterVolumes.push_back(atlasInnerPositiveSector);
390 
391  m_trackingVolumeHelper->glueTrackingVolumes(*atlasOuterSector, Trk::tubeInnerCover,
392  atlasInnerOuterVolumes, Trk::tubeOuterCover);
393 
394  ATH_MSG_VERBOSE( "Atlas Inner/Outer Sector glued successfully together." );
395 
396  // job done -> create the TrackingGeometry
397  atlasTrackingGeometry = std::make_unique<Trk::TrackingGeometry>(atlasVolume);
398 
399  // detailed information about this tracking geometry
400  ATH_MSG_VERBOSE( "Atlas TrackingGeometry built with following parameters : ");
401  //ATH_MSG_VERBOSE( " - TrackingVolume containers : " << atlasTrackingGeometry->numberOfContainerVolumes() );
402  //ATH_MSG_VERBOSE( " - TrackingVolume at navigation level : " << atlasTrackingGeometry->numberOfContainerVolumes() );
403  //ATH_MSG_VERBOSE( " - Contained static layers : " << atlasTrackingGeometry->boundaryLayers().size());
404  ATH_MSG_VERBOSE( " - Unique material layers on boundaries : " << atlasTrackingGeometry->boundaryLayers().size());
405 
406 #ifdef TRKDETDESCR_MEMUSAGE
407  m_memoryLogger.refresh(getpid());
408  ATH_MSG_INFO( "[ memory usage ] After Outer Sector TrackingGeometry building: " );
409  ATH_MSG_INFO( m_memoryLogger );
410 #endif
411 
412  }
413 
414  if (atlasTrackingGeometry) {
415  if (m_navigationLevel < 3)
417  }
418  else ATH_MSG_WARNING( "atlasTrackingGeometry() ... atlasTrackingGeometry = 0, could not call registerNavigationLevel and propagateMagneticFieldProperties" );
419 
420 #ifdef TRKDETDESCR_MEMUSAGE
421  m_memoryLogger.refresh(getpid());
422  ATH_MSG_INFO( "[ memory usage ] End of TrackingGeometry building: " );
423  ATH_MSG_INFO( m_memoryLogger );
424 #endif
425 
426  // synchronize the layers
427  if (atlasTrackingGeometry) {
428  if (m_synchronizeLayers) atlasTrackingGeometry->synchronizeLayers(msg());
429 
430  // compactify if configured to do so
431  if (m_compactify) atlasTrackingGeometry->compactify(msg());
432  }
433  return atlasTrackingGeometry;
434 }

◆ 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 112 of file TrackingVolumeManipulator.cxx.

114 {
115 
116  const auto& bounds = tvol.boundarySurfaces();
117  for (const auto & bound : bounds) {
118  if (bound->outsideVolume() == nullptr) {
119  bound->setOutsideVolume(outsideVol);
120  }
121  if (bound->insideVolume() == nullptr) {
122  bound->setInsideVolume(outsideVol);
123  }
124  }
125 }

◆ declareGaudiProperty() [1/4]

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

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

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

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

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

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

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

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

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ DeclareInterfaceID()

Trk::IGeometryBuilder::DeclareInterfaceID ( IGeometryBuilder  ,
,
 
)
inherited

Creates the InterfaceID and interfaceID() method.

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation 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.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation 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.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation 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.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation 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.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

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

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ 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.

95 { return m_detStore; }

◆ evtStore() [1/2]

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.

85 { return m_evtStore; }

◆ evtStore() [2/2]

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

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

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ 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

◆ geometrySignature()

GeometrySignature Trk::GeometryBuilder::geometrySignature ( ) const
inlinevirtual

The unique signature.

Implements Trk::IGeometryBuilder.

Definition at line 67 of file GeometryBuilder.h.

67 { return Trk::Global; }

◆ 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:

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 }

◆ initialize()

StatusCode Trk::GeometryBuilder::initialize ( )

AlgTool initialize method.

Definition at line 79 of file GeometryBuilder.cxx.

80 {
81 
82  // Retrieve the volume array creator ----------------------------------------------------
84 
85  // Retrieve the tracking volume helper --------------------------------------------------
86  ATH_CHECK (m_trackingVolumeHelper.retrieve());
87  // Geometries =============================================================================
88  // (I) Inner Detector ---------------------------------------------------------------------
89  if (!m_inDetGeometryBuilder.empty()) {
91  }
92  // (C) Calorimeter --------------------------------------------------------------------------
93  if (!m_caloGeometryBuilder.empty()) {
94  ATH_CHECK (m_caloGeometryBuilder.retrieve());
95  }
96  // (M) Muon System -------------------------------------------------------------------------
97  if (!m_muonGeometryBuilder.empty()) {
98  ATH_CHECK(m_muonGeometryBuilder.retrieve());
99  }
100 
101  // if no world dimensions are declared, take default ones
102  if (m_worldDimension.empty())
104 
105  // if no world materials are declared, take default ones - set vacuum
106  if (m_worldMaterialProperties.size() < 5)
107  m_worldMaterialProperties = std::vector<double>{10.e10,10.e10,0., 0., 0.};
108 
114 
115  ATH_MSG_DEBUG( " initialize() successful" );
116 
117  return StatusCode::SUCCESS;
118 }

◆ 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() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

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

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ 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.

◆ 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();
383  PBASE::renounce (h);
384  }

◆ 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  {
365  handlesArray.renounce();
366  }

◆ setBoundarySurface()

void Trk::TrackingVolumeManipulator::setBoundarySurface ( TrackingVolume tvol,
SharedObject< BoundarySurface< TrackingVolume >>  bsurf,
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() [1/2]

void Trk::TrackingVolumeManipulator::setInsideVolumeArray ( Trk::TrackingVolume tvol,
Trk::BoundarySurfaceFace  face,
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.

65 {
66 
69 }

◆ setInsideVolumeArray() [2/2]

static void Trk::TrackingVolumeManipulator::setInsideVolumeArray ( TrackingVolume tvol,
BoundarySurfaceFace  face,
const SharedObject< 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

◆ 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 82 of file TrackingVolumeManipulator.cxx.

86 {
87  (tvol.m_boundarySurfaces)[face]->setOutsideVolume(outsidevol);
88 }

◆ setOutsideVolumeArray() [1/2]

void Trk::TrackingVolumeManipulator::setOutsideVolumeArray ( Trk::TrackingVolume tvol,
Trk::BoundarySurfaceFace  face,
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 91 of file TrackingVolumeManipulator.cxx.

95 {
96 
99 }

◆ setOutsideVolumeArray() [2/2]

static void Trk::TrackingVolumeManipulator::setOutsideVolumeArray ( TrackingVolume tvol,
BoundarySurfaceFace  face,
const SharedObject< 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

◆ 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 DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ 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.

◆ trackingGeometry()

std::unique_ptr< Trk::TrackingGeometry > Trk::GeometryBuilder::trackingGeometry ( Trk::TrackingVolume tvol = 0) const
virtual

TrackingGeometry Interface method - optionally a pointer to Bounds.

Implements Trk::IGeometryBuilder.

Definition at line 121 of file GeometryBuilder.cxx.

122 {
123 
124  // the geometry to be constructed
125  std::unique_ptr<Trk::TrackingGeometry> tGeometry = nullptr;
126  if ( m_inDetGeometryBuilder.empty() && m_caloGeometryBuilder.empty() && m_muonGeometryBuilder.empty() ) {
127 
128  ATH_MSG_VERBOSE( "Configured to only create world TrackingVolume." );
129 
131  m_worldDimension[1],
132  m_worldDimension[2]);
133 
134  Trk::TrackingVolume* worldVolume = new Trk::TrackingVolume(nullptr,
135  worldBounds,
137  nullptr,
138  nullptr,
139  "EmptyWorldVolume");
140 
141  // create a new geometry
142  tGeometry = std::make_unique<Trk::TrackingGeometry>(worldVolume);
143  } else
144  tGeometry = atlasTrackingGeometry();
145  // sign it before you return anything
146  tGeometry->sign(geometrySignature());
147  return tGeometry;
148 
149 }

◆ 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) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ m_caloGeometry

bool Trk::GeometryBuilder::m_caloGeometry
private

switch on TrackingGeometry for the Calorimeters

Definition at line 94 of file GeometryBuilder.h.

◆ m_caloGeometryBuilder

ToolHandle<IGeometryBuilder> Trk::GeometryBuilder::m_caloGeometryBuilder
private

GeometryBuilder for the Calorimeters.

Definition at line 95 of file GeometryBuilder.h.

◆ m_compactify

bool Trk::GeometryBuilder::m_compactify
private

optimize event memory usage: register all surfaces with TG

Definition at line 100 of file GeometryBuilder.h.

◆ m_createWorld

bool Trk::GeometryBuilder::m_createWorld
private

Boolean Switch to create World manually.

Definition at line 78 of file GeometryBuilder.h.

◆ 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_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_inDetGeometryBuilder

ToolHandle<IGeometryBuilder> Trk::GeometryBuilder::m_inDetGeometryBuilder
private

GeometryBuilder for the InnerDetector.

Definition at line 92 of file GeometryBuilder.h.

◆ m_muonGeometry

bool Trk::GeometryBuilder::m_muonGeometry
private

GeometryBuilder for the Muon System.

Definition at line 97 of file GeometryBuilder.h.

◆ m_muonGeometryBuilder

ToolHandle<IGeometryBuilder> Trk::GeometryBuilder::m_muonGeometryBuilder
private

GeometryBuilder for the Muon System.

Definition at line 98 of file GeometryBuilder.h.

◆ m_navigationLevel

int Trk::GeometryBuilder::m_navigationLevel
private

NavigationLevel.

Definition at line 79 of file GeometryBuilder.h.

◆ m_synchronizeLayers

bool Trk::GeometryBuilder::m_synchronizeLayers
private

synchronize contained layer dimensions to volumes

Definition at line 101 of file GeometryBuilder.h.

◆ m_trackingVolumeArrayCreator

ToolHandle<ITrackingVolumeArrayCreator> Trk::GeometryBuilder::m_trackingVolumeArrayCreator
private

Helper Tool to create TrackingVolume Arrays.

Definition at line 87 of file GeometryBuilder.h.

◆ m_trackingVolumeHelper

ToolHandle<ITrackingVolumeHelper> Trk::GeometryBuilder::m_trackingVolumeHelper
private

Helper Tool to create TrackingVolumes.

Definition at line 89 of file GeometryBuilder.h.

◆ 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.

◆ m_worldDimension

std::vector< double > Trk::GeometryBuilder::m_worldDimension
private

The dimensions of the manually created world.

Definition at line 81 of file GeometryBuilder.h.

◆ m_worldMaterial

Material Trk::GeometryBuilder::m_worldMaterial
private

the world material

Definition at line 83 of file GeometryBuilder.h.

◆ m_worldMaterialProperties

std::vector< double > Trk::GeometryBuilder::m_worldMaterialProperties
private

The material properties of the created world.

Definition at line 82 of file GeometryBuilder.h.


The documentation for this class was generated from the following files:
Trk::TrackingVolume::glueVolumesDescriptor
GlueVolumesDescriptor & glueVolumesDescriptor()
Definition: TrackingVolume.cxx:1205
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
Trk::GeometryBuilder::m_navigationLevel
int m_navigationLevel
NavigationLevel.
Definition: GeometryBuilder.h:79
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
Trk::GeometryBuilder::m_trackingVolumeHelper
ToolHandle< ITrackingVolumeHelper > m_trackingVolumeHelper
Helper Tool to create TrackingVolumes.
Definition: GeometryBuilder.h:89
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
Trk::GeometryBuilder::m_createWorld
bool m_createWorld
Boolean Switch to create World manually.
Definition: GeometryBuilder.h:78
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
bound
@ bound
Definition: L1CaloPprPlotManager.h:74
Trk::positiveFaceXY
@ positiveFaceXY
Definition: BoundarySurfaceFace.h:33
Trk::TrackingVolumeManipulator::setOutsideVolume
static void setOutsideVolume(TrackingVolume &tvol, BoundarySurfaceFace face, TrackingVolume *outsidevol)
protected method to set outside Volume of a BoundarySurface: input:
Definition: TrackingVolumeManipulator.cxx:82
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
Trk::GeometryBuilder::m_caloGeometryBuilder
ToolHandle< IGeometryBuilder > m_caloGeometryBuilder
GeometryBuilder for the Calorimeters.
Definition: GeometryBuilder.h:95
Trk::TrackingVolumeManipulator::setInsideVolumeArray
static void setInsideVolumeArray(TrackingVolume &tvol, BoundarySurfaceFace face, BinnedArray< TrackingVolume > *insidevolarray)
protected method to set inside VolumeArray of a BoundarySurface: input:
Definition: TrackingVolumeManipulator.cxx:61
Trk::TrackingVolumeManipulator::setOutsideVolumeArray
static void setOutsideVolumeArray(TrackingVolume &tvol, BoundarySurfaceFace face, BinnedArray< TrackingVolume > *outsidevolarray)
protected method to set outside VolumeArray of a BoundarySurface: input:
Definition: TrackingVolumeManipulator.cxx:91
Trk::GeometryBuilder::geometrySignature
GeometrySignature geometrySignature() const
The unique signature.
Definition: GeometryBuilder.h:67
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
Trk::VolumeBounds
Definition: VolumeBounds.h:45
Trk::NavigationLevel
NavigationLevel
Definition: TrackingGeometry.h:43
AthCommonDataStore
Definition: AthCommonDataStore.h:52
python.SystemOfUnits.meter
int meter
Definition: SystemOfUnits.py:61
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
Trk::GeometryBuilder::m_worldMaterial
Material m_worldMaterial
the world material
Definition: GeometryBuilder.h:83
Trk::GeometryBuilder::m_muonGeometry
bool m_muonGeometry
GeometryBuilder for the Muon System.
Definition: GeometryBuilder.h:97
Trk::GeometryBuilder::m_worldDimension
std::vector< double > m_worldDimension
The dimensions of the manually created world.
Definition: GeometryBuilder.h:81
beamspotman.n
n
Definition: beamspotman.py:731
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
Trk::GeometryBuilder::m_muonGeometryBuilder
ToolHandle< IGeometryBuilder > m_muonGeometryBuilder
GeometryBuilder for the Muon System.
Definition: GeometryBuilder.h:98
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
Trk::CylinderVolumeBounds::halflengthZ
double halflengthZ() const
This method returns the halflengthZ.
Definition: CylinderVolumeBounds.h:207
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
Trk::negativeFaceXY
@ negativeFaceXY
Definition: BoundarySurfaceFace.h:32
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
Trk::TrackingGeometry::sign
void sign(GeometrySignature geosit, GeometryType geotype=Static)
Geometry Builder busineess: the geometry builder has to sign.
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
Trk::Global
@ Global
Definition: GeometrySignature.h:25
Trk::GeometryBuilder::atlasTrackingGeometry
std::unique_ptr< TrackingGeometry > atlasTrackingGeometry() const
TrackingGeometry for ATLAS setup.
Definition: GeometryBuilder.cxx:152
Trk::CylinderVolumeBounds
Definition: CylinderVolumeBounds.h:70
Trk::TrackingVolume::volumeName
const std::string & volumeName() const
Returns the VolumeName - for debug reason, might be depreciated later.
Trk::GlueVolumesDescriptor::glueVolumes
const std::vector< TrackingVolume * > & glueVolumes(BoundarySurfaceFace)
retrieve them again
Definition: GlueVolumesDescriptor.cxx:40
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
Trk::CylinderVolumeBounds::outerRadius
double outerRadius() const
This method returns the outer radius.
Definition: CylinderVolumeBounds.h:191
Trk::GeometryBuilder::m_inDetGeometryBuilder
ToolHandle< IGeometryBuilder > m_inDetGeometryBuilder
GeometryBuilder for the InnerDetector.
Definition: GeometryBuilder.h:92
Trk::GeometryBuilder::m_trackingVolumeArrayCreator
ToolHandle< ITrackingVolumeArrayCreator > m_trackingVolumeArrayCreator
Helper Tool to create TrackingVolume Arrays.
Definition: GeometryBuilder.h:87
Trk::GeometryBuilder::m_synchronizeLayers
bool m_synchronizeLayers
synchronize contained layer dimensions to volumes
Definition: GeometryBuilder.h:101
Trk::GlueVolumesDescriptor
Definition: GlueVolumesDescriptor.h:40
Trk::TrackingVolumeManipulator::setInsideVolume
static void setInsideVolume(TrackingVolume &tvol, BoundarySurfaceFace face, TrackingVolume *insidevol)
protected method to set inside Volume of a BoundarySurface: input:
Definition: TrackingVolumeManipulator.cxx:52
a
TList * a
Definition: liststreamerinfos.cxx:10
Trk::SharedObject
std::shared_ptr< T > SharedObject
Definition: SharedObject.h:24
h
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
Trk::GeometryBuilder::m_compactify
bool m_compactify
optimize event memory usage: register all surfaces with TG
Definition: GeometryBuilder.h:100
Trk::TrackingVolumeManipulator::glueVolumes
void glueVolumes(TrackingVolume &firstVol, BoundarySurfaceFace firstFace, TrackingVolume &secondVol, BoundarySurfaceFace secondFace) const
protected method to glue two Volumes together input:
Definition: TrackingVolumeManipulator.cxx:17
Amg::Translation3D
Eigen::Translation< double, 3 > Translation3D
Definition: GeoPrimitives.h:44
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
Trk::TrackingGeometry::checkoutHighestTrackingVolume
TrackingVolume * checkoutHighestTrackingVolume()
private method to be called from GeometryBuilder: return the world with ownership
Definition: TrackingGeometry.cxx:169
Trk::Volume::volumeBounds
const VolumeBounds & volumeBounds() const
returns the volumeBounds()
Definition: Volume.h:97
Trk::cylinderCover
@ cylinderCover
Definition: BoundarySurfaceFace.h:38
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
Trk::GeometryBuilder::m_caloGeometry
bool m_caloGeometry
switch on TrackingGeometry for the Calorimeters
Definition: GeometryBuilder.h:94
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
Trk::tubeOuterCover
@ tubeOuterCover
Definition: BoundarySurfaceFace.h:40
Trk::GeometryBuilder::m_worldMaterialProperties
std::vector< double > m_worldMaterialProperties
The material properties of the created world.
Definition: GeometryBuilder.h:82
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
Trk::tubeInnerCover
@ tubeInnerCover
Definition: BoundarySurfaceFace.h:39
Trk::BinnedArray
Definition: BinnedArray.h:38
Trk::TrackingVolume::m_boundarySurfaces
std::vector< SharedObject< BoundarySurface< TrackingVolume > > > m_boundarySurfaces
Definition: TrackingVolume.h:454
Trk::TrackingVolume
Definition: TrackingVolume.h:121
Trk::CylinderVolumeBounds::clone
CylinderVolumeBounds * clone() const override
Virtual constructor.
Definition: CylinderVolumeBounds.h:171
Material
@ Material
Definition: MaterialTypes.h:8
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
Trk::TrackingVolumeManipulator::TrackingVolumeManipulator
TrackingVolumeManipulator()
constructor
Definition: TrackingVolumeManipulator.h:35
fitman.k
k
Definition: fitman.py:528