|
ATLAS Offline Software
|
Go to the documentation of this file.
9 #ifndef TRKGEOMETRY_TRACKINGGEOMETRY_H
10 #define TRKGEOMETRY_TRACKINGGEOMETRY_H
24 #include <boost/iterator/transform_iterator.hpp>
25 #include <boost/range.hpp>
33 class MuonTrackingGeometryBuilderCond;
51 class MaterialProperties;
79 const std::pair<Trk::Layer*, int>& in)
const
81 return std::pair<const Trk::Layer*, int>{ in.first, in.second };
87 std::map<Trk::Layer*, int>::const_iterator>;
107 std::vector<const Trk::DetachedTrackingVolume*>
123 bool skipNavLayer =
false)
const;
160 void dump(MsgStream&
out,
const std::string&
head)
const;
163 void addToGarbage(std::vector<std::unique_ptr<Trk::DetachedTrackingVolume>>&& garbageVec);
164 void addToGarbage(std::vector<std::unique_ptr<Trk::TrackingVolume>>&& garbageVec);
200 const std::string&
head,
225 #include "AthenaKernel/CondCont.h"
228 #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
constMapRange_t boundaryLayers() const
virtual ~TrackingGeometry()
Destructor.
const Layer * nextLayer(const Amg::Vector3D &gp, const Amg::Vector3D &mom, bool skipNavLayer=false) const
Forward the next Layer information.
This class provides conversion from CSC RDO data to CSC Digits.
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.
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
boost::iterator_range< iterator_convert_const_t > constMapRange_t
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.
boost::transform_iterator< constTransformLayerMap, std::map< Trk::Layer *, int >::const_iterator > iterator_convert_const_t
std::vector< std::shared_ptr< DetachedTrackingVolume > > m_detachedVolGarbage
keep ownership of MuonTrackingGeometry elements in here
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
std::vector< std::shared_ptr< TrackingVolume > > m_trkVolumeGarbage
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.