|  | ATLAS Offline Software
    | 
 
 
 
Go to the documentation of this file.
    5 #ifndef ISF_SERVICES_GEOIDSVC_H 
    6 #define ISF_SERVICES_GEOIDSVC_H 1 
    9 #include "GaudiKernel/ServiceHandle.h" 
   33     {
return lhs.first<rhs.first;}
 
   43   class GeoIDSvc : 
public extends<AthService, ISF::IGeoIDSvc> {
 
   71     template <
typename T> 
inline int sign(T 
val);
 
   75         "The EnvelopeDefinitionService describing the AtlasRegion boundaries."};
 
   79         "Estimated tolerance within which coordinates are considered being equal."};
 
   95     return (T(0) < 
val) - (
val < T(0));
 
  100 #endif //> !ISF_SERVICES_GEOIDSVC_H 
  
std::set< RadiusGeoIDPair, SortByRadius > RadiusGeoIDPairSet
std::pair< double, AtlasDetDescr::AtlasRegion > RadiusGeoIDPair
int sign(T val)
a branchless signum function
RadiusGeoIDPair * m_radiusBins
m_radiusBins[m_numZBins][numCurRadiusBins]
std::unique_ptr< RZPairList > prepareRZPairs(AtlasDetDescr::AtlasRegion geoID)
~GeoIDSvc()=default
Destructor.
AtlasDetDescr::AtlasRegion identifyGeoID(const Amg::Vector3D &pos) const
A static filter that returns the SimGeoID of the given position.
std::list< RZPair > RZPairList
::StatusCode StatusCode
StatusCode definition for legacy code.
AtlasDetDescr::AtlasRegion identifyNextGeoID(const Amg::Vector3D &pos, const Amg::Vector3D &dir) const
Find the SimGeoID that the particle will enter with its next infinitesimal step along the given direc...
GeoIDSvc(const std::string &name, ISvcLocator *svc)
Constructor with parameters.
AthROOTErrorHandlerSvc * svc
ISF::InsideType inside(const Amg::Vector3D &pos, AtlasDetDescr::AtlasRegion geoID) const
Checks if the given position (or ISFParticle) is inside a given SimGeoID.
Eigen::Matrix< double, 3, 1 > Vector3D
ServiceHandle< IEnvelopeDefSvc > m_envDefSvc
service providing the envelope dimensions for the different sub-detectors
bool operator()(const RadiusGeoIDPair &lhs, const RadiusGeoIDPair &rhs) const
bool checkSymmetric(RZPairList &positiveZ, RZPairList &negativeZ)
Check if given RZPairLists are symmetric around z==0 plane.
DoubleProperty m_tolerance
(estimated) tolerance within which coordinates are considered equal