ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Simulation
ISF
ISF_Geant4
ISF_Geant4CommonServices
src
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
9
#include "
AthenaBaseComps/AthService.h
"
10
#include "GaudiKernel/ServiceHandle.h"
11
12
// ISF includes
13
#include "
ISF_Interfaces/IGeoIDSvc.h
"
14
15
// EnvelopeDefinitionService
16
#include "
SubDetectorEnvelopes/IEnvelopeDefSvc.h
"
17
18
// DetectorDescription
19
#include "
AtlasDetDescr/AtlasRegion.h
"
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
45
~G4PolyconeGeoIDSvc
();
46
47
// Athena algtool's Hooks
48
StatusCode
initialize
();
49
51
AtlasDetDescr::AtlasRegion
identifyGeoID
(
const
Amg::Vector3D
&pos)
const
;
52
54
ISF::InsideType
inside
(
const
Amg::Vector3D
&pos,
AtlasDetDescr::AtlasRegion
geoID)
const
;
55
58
AtlasDetDescr::AtlasRegion
identifyNextGeoID
(
const
Amg::Vector3D
&pos,
const
Amg::Vector3D
&dir)
const
;
59
60
private
:
62
StatusCode
fillDimensions
();
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
71
StatusCode
createVolume
(
AtlasDetDescr::AtlasRegion
geoID);
72
74
ServiceHandle<IEnvelopeDefSvc>
m_envDefSvc
{
this
,
"EnvelopeDefSvc"
,
"AtlasGeometry_EnvelopeDefSvc"
};
75
77
G4VSolid *
m_volume
[
AtlasDetDescr::fNumAtlasRegions
];
78
80
ISF::InsideType
m_typeConverter
[
ISF::fNumInsideTypes
];
81
};
82
83
}
84
85
86
#endif
//> !ISF_GEANT4COMMONSERVICES_G4POLYCONEGEOIDSVC_H
AthService.h
AtlasRegion.h
IEnvelopeDefSvc.h
IGeoIDSvc.h
z
#define z
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::pushDimension
void pushDimension(AtlasDetDescr::AtlasRegion geoID, double rin, double rou, double z)
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
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
ISF::G4PolyconeGeoIDSvc::m_envDefSvc
ServiceHandle< IEnvelopeDefSvc > m_envDefSvc
service providing the envelope dimensions for the different sub-detectors
Definition
G4PolyconeGeoIDSvc.h:74
ISF::G4PolyconeGeoIDSvc::m_volume
G4VSolid * m_volume[AtlasDetDescr::fNumAtlasRegions]
Definition
G4PolyconeGeoIDSvc.h:77
ISF::G4PolyconeGeoIDSvc::G4PolyconeGeoIDSvc
G4PolyconeGeoIDSvc(const std::string &name, ISvcLocator *svc)
Constructor with parameters.
Definition
G4PolyconeGeoIDSvc.cxx:33
ISF::G4PolyconeGeoIDSvc::initialize
StatusCode initialize()
Definition
G4PolyconeGeoIDSvc.cxx:48
ISF::G4PolyconeGeoIDSvc::pushDimension
void pushDimension(AtlasDetDescr::AtlasRegion geoID, double r, double z)
ISF::G4PolyconeGeoIDSvc::~G4PolyconeGeoIDSvc
~G4PolyconeGeoIDSvc()
Destructor.
Definition
G4PolyconeGeoIDSvc.cxx:42
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::fillDimensions
StatusCode fillDimensions()
Retrieve and fill in the dimensions for the different AtlasRegion.
ISF::G4PolyconeGeoIDSvc::createVolume
StatusCode createVolume(AtlasDetDescr::AtlasRegion geoID)
Retrieve and fill in the dimensions for the different AtlasRegion.
Definition
G4PolyconeGeoIDSvc.cxx:132
ServiceHandle
Definition
ClusterMakerTool.h:36
r
int r
Definition
globals.cxx:22
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition
GeoPrimitives.h:47
AtlasDetDescr::AtlasRegion
AtlasRegion
A simple enum of ATLAS regions and sub-detectors.
Definition
AtlasRegion.h:21
AtlasDetDescr::fNumAtlasRegions
@ fNumAtlasRegions
Definition
AtlasRegion.h:33
ISF
ISFParticleOrderedQueue.
Definition
PrimaryParticleInformation.h:13
ISF::DoubleVector
std::vector< double > DoubleVector
Definition
G4PolyconeGeoIDSvc.h:31
ISF::InsideType
InsideType
Definition
IGeoIDSvc.h:22
ISF::fNumInsideTypes
@ fNumInsideTypes
Definition
IGeoIDSvc.h:27
Generated on
for ATLAS Offline Software by
1.17.0