 |
ATLAS Offline Software
|
Go to the documentation of this file.
9 #ifndef TRKGEOMETRY_TRACKINGGEOMETRY_H
10 #define TRKGEOMETRY_TRACKINGGEOMETRY_H
32 class MuonTrackingGeometryBuilderCond;
50 class MaterialProperties;
90 std::vector<const Trk::DetachedTrackingVolume*>
106 bool skipNavLayer =
false)
const;
142 void dump(MsgStream&
out,
const std::string&
head)
const;
145 void addToGarbage(std::vector<std::unique_ptr<Trk::DetachedTrackingVolume>>&& garbageVec);
146 void addToGarbage(std::vector<std::unique_ptr<Trk::TrackingVolume>>&& garbageVec);
182 const std::string&
head,
211 #include "AthenaKernel/CondCont.h"
214 #endif // TRKGEOMETRY_TRACKINGGEOMETRY_H
TrackingVolume * m_world
The known world - and the beam.
static bool atVolumeBoundary(const Amg::Vector3D &gp, const TrackingVolume *vol, double tol)
check position at volume boundary
std::map< Layer *, int > m_boundaryLayers
The unique boundary Layers.
size_t numBoundaryLayers() const
void dump(MsgStream &out, const std::string &head) const
void registerTrackingVolumes(TrackingVolume &tvol, TrackingVolume *mvol=nullptr, int lvl=0)
private method to register recursively the tracking volumes
virtual ~TrackingGeometry()
Destructor.
const Layer * nextLayer(const Amg::Vector3D &gp, const Amg::Vector3D &mom, bool skipNavLayer=false) const
Forward the next Layer information.
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
std::vector< std::unique_ptr< TrackingVolume > > m_trkVolumeGarbage
void synchronizeLayers(MsgStream &msgstream, TrackingVolume *vol=nullptr)
Geometry Builder business: synchronize all layers to enclosed volume dimensions.
static void dumpLayer(MsgStream &out, const std::string &head, const Layer *layer)
const TrackingVolume * highestTrackingVolume() const
return the world
LayerIntersection< Amg::Vector3D > closestMaterialLayer(const T &pars, PropDirection pDir=Trk::alongMomentum, const BoundaryCheck &bchk=true) const
Closest Material Layer - used for the mapping option.
auto boundaryLayers() const
const TrackingVolume * lowestStaticTrackingVolume(const Amg::Vector3D &gp) const
return the lowest static tracking Volume
void addToGarbage(std::vector< std::unique_ptr< Trk::DetachedTrackingVolume >> &&garbageVec)
void compactify(MsgStream &msgstream, TrackingVolume *vol=nullptr)
Geometry Builder busineess: set all contained surfaces TG owned - this should save memory and avoid s...
void sign(GeometrySignature geosit, GeometryType geotype=Static)
Geometry Builder busineess: the geometry builder has to sign.
void indexStaticLayers(GeometrySignature geosit, int offset=0)
indexLayers : method to re-set the index of the layers, depending on geometrySignature
std::string head(std::string s, const std::string &pattern)
head of a string
Ensure that the ATLAS eigen extensions are properly loaded.
TrackingGeometry(TrackingVolume *highestVolume, NavigationLevel navlevel=globalSearch)
Constructor.
void registerNavigationLevel(NavigationLevel navlevel)
private method the Navigation Level
void printVolumeHierarchy(MsgStream &msgstream) const
Print the summary of volume Hierarchy of the TrackingGeometry.
NavigationLevel m_navigationLevel
The Navigation level for identification.
Eigen::Matrix< double, 3, 1 > Vector3D
const std::map< Layer *, int > & boundaryLayers()
Return the unique BoundarySurfaces with MaterialInformation.
std::vector< std::unique_ptr< DetachedTrackingVolume > > m_detachedVolGarbage
In some cases the Tracking Geometry needs to keep certain objectss alive delete them at the end of it...
TrackingVolume * highestTrackingVolume()
std::vector< const Trk::DetachedTrackingVolume * > lowestDetachedTrackingVolumes(const Amg::Vector3D &gp) const
return the vector of lowest detached tracking Volume(->overlaps)
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
TrackingVolume * checkoutHighestTrackingVolume()
private method to be called from GeometryBuilder: return the world with ownership
const TrackingVolume * trackingVolume(const std::string &name) const
return the tracking Volume by name, 0 if it doesn't exist
const TrackingVolume * lowestTrackingVolume(const Amg::Vector3D &gp) const
return the lowest tracking Volume
void printVolumeInformation(MsgStream &msgstream, const TrackingVolume &tvol, int lvl) const
print VolumeInformation with Level
Class extension to return the object, a represenation & the result.
CONDCONT_MIXED_DEF(Trk::TrackingGeometry, 119021535)
const Layer * associatedLayer(const Amg::Vector3D &gp) const
Forward the associated Layer information.
Define macros for attributes used to control the static checker.
macros to associate a CLID to a type
NavigationLevel navigationLevel() const
Return the Navigation Level - only one TrackingGeometry can have full association to GeoModel.
std::map< const std::string, const TrackingVolume * > m_trackingVolumes
The Volumes in a map for later finding.