5#ifndef ISF_GEANT4COMMONSERVICES_G4POLYCONEGEOIDSVC_H
6#define ISF_GEANT4COMMONSERVICES_G4POLYCONEGEOIDSVC_H 1
10#include "GaudiKernel/ServiceHandle.h"
ISF::InsideType m_typeConverter[ISF::fNumInsideTypes]
a quick way to convert G4 enum EInside to ISF::InsideType
void pushDimension(AtlasDetDescr::AtlasRegion geoID, double rin, double rou, double z)
AtlasDetDescr::AtlasRegion identifyGeoID(const Amg::Vector3D &pos) const
A static filter that returns the AtlasRegion of the given position.
ISF::InsideType inside(const Amg::Vector3D &pos, AtlasDetDescr::AtlasRegion geoID) const
Checks if the given position (ISFParticle) is inside a given AtlasRegion.
ServiceHandle< IEnvelopeDefSvc > m_envDefSvc
service providing the envelope dimensions for the different sub-detectors
G4VSolid * m_volume[AtlasDetDescr::fNumAtlasRegions]
G4PolyconeGeoIDSvc(const std::string &name, ISvcLocator *svc)
Constructor with parameters.
void pushDimension(AtlasDetDescr::AtlasRegion geoID, double r, double z)
~G4PolyconeGeoIDSvc()
Destructor.
AtlasDetDescr::AtlasRegion identifyNextGeoID(const Amg::Vector3D &pos, const Amg::Vector3D &dir) const
Find the AtlasRegion that the particle will enter with its next infinitesimal step along the given di...
StatusCode fillDimensions()
Retrieve and fill in the dimensions for the different AtlasRegion.
StatusCode createVolume(AtlasDetDescr::AtlasRegion geoID)
Retrieve and fill in the dimensions for the different AtlasRegion.
Eigen::Matrix< double, 3, 1 > Vector3D
AtlasRegion
A simple enum of ATLAS regions and sub-detectors.
std::vector< double > DoubleVector