ATLAS Offline Software
G4PolyconeGeoIDSvc.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ISF_GEANT4COMMONSERVICES_G4POLYCONEGEOIDSVC_H
6 #define ISF_GEANT4COMMONSERVICES_G4POLYCONEGEOIDSVC_H 1
7 
8 // framework includes
10 #include "GaudiKernel/ServiceHandle.h"
11 
12 // ISF includes
14 
15 // EnvelopeDefinitionService
17 
18 // DetectorDescription
20 
21 // stl includes
22 #include <vector>
23 #include <string>
24 
25 // forward declarations
26 class G4VSolid;
27 
28 
29 namespace ISF {
30 
31  typedef std::vector<double> DoubleVector;
32 
39  class G4PolyconeGeoIDSvc : public extends<AthService, ISF::IGeoIDSvc> {
40  public:
42  G4PolyconeGeoIDSvc(const std::string& name,ISvcLocator* svc);
43 
46 
47  // Athena algtool's Hooks
49 
52 
55 
59 
60  private:
63 
65  void pushDimension(AtlasDetDescr::AtlasRegion geoID, double rin, double rou, double z);
66 
68  void pushDimension(AtlasDetDescr::AtlasRegion geoID, double r, double z);
69 
72 
74  ServiceHandle<IEnvelopeDefSvc> m_envDefSvc{this, "EnvelopeDefSvc", "AtlasGeometry_EnvelopeDefSvc"};
75 
78 
81  };
82 
83 }
84 
85 
86 #endif //> !ISF_GEANT4COMMONSERVICES_G4POLYCONEGEOIDSVC_H
AtlasDetDescr::fNumAtlasRegions
@ fNumAtlasRegions
Definition: AtlasRegion.h:39
beamspotman.r
def r
Definition: beamspotman.py:676
ISF::G4PolyconeGeoIDSvc::identifyNextGeoID
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...
Definition: G4PolyconeGeoIDSvc.cxx:110
ISF::G4PolyconeGeoIDSvc::~G4PolyconeGeoIDSvc
~G4PolyconeGeoIDSvc()
Destructor.
Definition: G4PolyconeGeoIDSvc.cxx:42
ISF::G4PolyconeGeoIDSvc::createVolume
StatusCode createVolume(AtlasDetDescr::AtlasRegion geoID)
Retrieve and fill in the dimensions for the different AtlasRegion.
Definition: G4PolyconeGeoIDSvc.cxx:132
IEnvelopeDefSvc.h
ISF::G4PolyconeGeoIDSvc::identifyGeoID
AtlasDetDescr::AtlasRegion identifyGeoID(const Amg::Vector3D &pos) const
A static filter that returns the AtlasRegion of the given position.
Definition: G4PolyconeGeoIDSvc.cxx:94
AtlasRegion.h
ISF::fNumInsideTypes
@ fNumInsideTypes
Definition: IGeoIDSvc.h:27
AtlasDetDescr::AtlasRegion
AtlasRegion
Definition: AtlasRegion.h:27
ISF::G4PolyconeGeoIDSvc::G4PolyconeGeoIDSvc
G4PolyconeGeoIDSvc(const std::string &name, ISvcLocator *svc)
Constructor with parameters.
Definition: G4PolyconeGeoIDSvc.cxx:33
ISF::InsideType
InsideType
Definition: IGeoIDSvc.h:22
ISF::G4PolyconeGeoIDSvc::m_typeConverter
ISF::InsideType m_typeConverter[ISF::fNumInsideTypes]
a quick way to convert G4 enum EInside to ISF::InsideType
Definition: G4PolyconeGeoIDSvc.h:80
ISF::G4PolyconeGeoIDSvc::m_envDefSvc
ServiceHandle< IEnvelopeDefSvc > m_envDefSvc
service providing the envelope dimensions for the different sub-detectors
Definition: G4PolyconeGeoIDSvc.h:74
ISF::DoubleVector
std::vector< double > DoubleVector
Definition: G4PolyconeGeoIDSvc.h:31
ISF::G4PolyconeGeoIDSvc
Definition: G4PolyconeGeoIDSvc.h:39
z
#define z
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
IGeoIDSvc.h
Handler::svc
AthROOTErrorHandlerSvc * svc
Definition: AthROOTErrorHandlerSvc.cxx:10
beamspotman.dir
string dir
Definition: beamspotman.py:623
ISF::G4PolyconeGeoIDSvc::pushDimension
void pushDimension(AtlasDetDescr::AtlasRegion geoID, double r, double z)
ISF::G4PolyconeGeoIDSvc::pushDimension
void pushDimension(AtlasDetDescr::AtlasRegion geoID, double rin, double rou, double z)
ISF::G4PolyconeGeoIDSvc::inside
ISF::InsideType inside(const Amg::Vector3D &pos, AtlasDetDescr::AtlasRegion geoID) const
Checks if the given position (ISFParticle) is inside a given AtlasRegion.
Definition: G4PolyconeGeoIDSvc.cxx:73
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
ISF::G4PolyconeGeoIDSvc::fillDimensions
StatusCode fillDimensions()
Retrieve and fill in the dimensions for the different AtlasRegion.
ISF::G4PolyconeGeoIDSvc::initialize
StatusCode initialize()
Definition: G4PolyconeGeoIDSvc.cxx:48
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
ISF::G4PolyconeGeoIDSvc::m_volume
G4VSolid * m_volume[AtlasDetDescr::fNumAtlasRegions]
Definition: G4PolyconeGeoIDSvc.h:77
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
ISF
ISFParticleOrderedQueue.
Definition: PrimaryParticleInformation.h:13
AthService.h
ServiceHandle< IEnvelopeDefSvc >