ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
DetectorDescription
GeoModel
GeoModelUtilities
GeoModelUtilities
GeoModelExperiment.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
//-------------------------------------------------------------------------------------------//
6
// //
7
// This class (GeoModelExperiment) is a stored manager of managers. It provides access to //
8
// the world physical volume and all of the managers; so, indirectly, all of the detector //
9
// specific top level physical volumes. //
10
// //
11
// Joe Boudreau October 2003 //
12
// //
13
//-------------------------------------------------------------------------------------------//
14
15
#ifndef GEOMODELUTILITIES_GEOMODELEXPERIMENT_H
16
#define GEOMODELUTILITIES_GEOMODELEXPERIMENT_H
17
19
#include "
GeoPrimitives/GeoPrimitives.h
"
20
21
#include "GeoModelKernel/GeoPhysVol.h"
22
#ifndef BUILDVP1LIGHT
23
#include "
AthenaKernel/CLASS_DEF.h
"
24
#include "
AthenaKernel/CondCont.h
"
25
#endif
26
#include <set>
27
#include <string>
28
#include <vector>
29
30
class
GeoVDetectorManager;
31
32
class
GeoModelExperiment
{
33
34
public
:
35
36
37
//-----------------------------Internal----------------------------------------------------//
38
// //
39
typedef
const
GeoVDetectorManager *
value_type
;
//
40
//
41
class
NameEquals
{
//
42
public
:
//
43
//
44
NameEquals
(
const
std::string & name);
//
45
bool
operator ()
(
const
value_type
& m)
const
;
//
46
//
47
private
:
//
48
//
49
std::string
m_name
;
//
50
//
51
};
//
52
//
53
class
LexigraphicalOrder
{
//
54
public
:
//
55
bool
operator ()
(
const
value_type
&
a
,
const
value_type
& b)
const
;
//
56
};
//
57
//
58
typedef
LexigraphicalOrder
order_type
;
//
59
typedef
std::set<value_type, order_type>
collection_type
;
//
60
typedef
collection_type::iterator
iterator_type
;
//
61
typedef
collection_type::const_iterator
const_iterator_type
;
//
62
//
63
//
64
typedef
const_iterator_type
ConstIterator
;
//
65
// //
66
//-----------------------------------------------------------------------------------------//
67
68
69
// ---------------------------For you: ----------------------------------------------------//
70
// //
71
// Standard Constructor //
72
GeoModelExperiment
(PVLink physVol);
//
73
// //
74
// Standard Destructor //
75
virtual
~GeoModelExperiment
() =
default
;
//
76
// //
77
// Return the World physical volume: //
78
GeoPhysVol *
getPhysVol
();
//
79
const
GeoPhysVol *
getPhysVol
()
const
;
//
80
//
81
// Print a list of all the managers:
82
std::vector<std::string>
getListOfManagers
()
const
;
83
// //
84
// Manage the managers: //
85
void
addManager
(
const
GeoVDetectorManager *);
//
86
// //
87
// Access those managers: //
88
const
GeoVDetectorManager *
getManager
(
const
std::string & name)
const
;
//
89
ConstIterator
beginManager
()
const
;
//
90
ConstIterator
endManager
()
const
;
//
91
// Add temporary volumes created during Geo2G4 translation //
92
void
addTmpVolume
(PVConstLink volume);
//
93
// //
94
//-----------------------------------------------------------------------------------------//
95
96
private
:
97
98
PVLink
m_physVol
{};
99
collection_type
m_managers
;
100
std::vector<PVConstLink>
m_tmpVolumes
;
101
102
};
103
104
#ifndef BUILDVP1LIGHT
105
//using the macros below we can assign an identifier (and a version)
106
//This is required and checked at compile time when you try to record/retrieve
107
CLASS_DEF
(
GeoModelExperiment
, 9875, 1);
108
CONDCONT_MIXED_DEF
(
GeoModelExperiment
, 67974987 );
109
#endif
110
111
#endif
// GEOMODELSVC_GEOMODELEXPERIMENT_H
112
113
114
CondCont.h
Hold mappings of ranges to condition objects.
CONDCONT_MIXED_DEF
#define CONDCONT_MIXED_DEF(...)
Definition
CondCont.h:1446
CLASS_DEF.h
macros to associate a CLID to a type
CLASS_DEF
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
Definition
Control/AthenaKernel/AthenaKernel/CLASS_DEF.h:67
GeoPrimitives.h
a
static Double_t a
Definition
LArPhysWaveHECTool.cxx:38
GeoModelExperiment::LexigraphicalOrder
Definition
GeoModelExperiment.h:53
GeoModelExperiment::LexigraphicalOrder::operator()
bool operator()(const value_type &a, const value_type &b) const
Definition
GeoModelExperiment.cxx:80
GeoModelExperiment::NameEquals::operator()
bool operator()(const value_type &m) const
Definition
GeoModelExperiment.cxx:76
GeoModelExperiment::NameEquals::m_name
std::string m_name
Definition
GeoModelExperiment.h:49
GeoModelExperiment::NameEquals::NameEquals
NameEquals(const std::string &name)
Definition
GeoModelExperiment.cxx:73
GeoModelExperiment
Definition
GeoModelExperiment.h:32
GeoModelExperiment::m_physVol
PVLink m_physVol
Definition
GeoModelExperiment.h:98
GeoModelExperiment::endManager
ConstIterator endManager() const
Definition
GeoModelExperiment.cxx:36
GeoModelExperiment::getManager
const GeoVDetectorManager * getManager(const std::string &name) const
Definition
GeoModelExperiment.cxx:52
GeoModelExperiment::beginManager
ConstIterator beginManager() const
Definition
GeoModelExperiment.cxx:32
GeoModelExperiment::iterator_type
collection_type::iterator iterator_type
Definition
GeoModelExperiment.h:60
GeoModelExperiment::m_tmpVolumes
std::vector< PVConstLink > m_tmpVolumes
Definition
GeoModelExperiment.h:100
GeoModelExperiment::collection_type
std::set< value_type, order_type > collection_type
Definition
GeoModelExperiment.h:59
GeoModelExperiment::getPhysVol
GeoPhysVol * getPhysVol()
Destructor.
Definition
GeoModelExperiment.cxx:21
GeoModelExperiment::m_managers
collection_type m_managers
Definition
GeoModelExperiment.h:99
GeoModelExperiment::~GeoModelExperiment
virtual ~GeoModelExperiment()=default
GeoModelExperiment::const_iterator_type
collection_type::const_iterator const_iterator_type
Definition
GeoModelExperiment.h:61
GeoModelExperiment::GeoModelExperiment
GeoModelExperiment(PVLink physVol)
Constructor(s).
Definition
GeoModelExperiment.cxx:14
GeoModelExperiment::order_type
LexigraphicalOrder order_type
Definition
GeoModelExperiment.h:58
GeoModelExperiment::addManager
void addManager(const GeoVDetectorManager *)
Definition
GeoModelExperiment.cxx:40
GeoModelExperiment::addTmpVolume
void addTmpVolume(PVConstLink volume)
Definition
GeoModelExperiment.cxx:84
GeoModelExperiment::getListOfManagers
std::vector< std::string > getListOfManagers() const
Definition
GeoModelExperiment.cxx:64
GeoModelExperiment::value_type
const GeoVDetectorManager * value_type
Definition
GeoModelExperiment.h:39
GeoModelExperiment::ConstIterator
const_iterator_type ConstIterator
Definition
GeoModelExperiment.h:64
Generated on
for ATLAS Offline Software by
1.17.0