ATLAS Offline Software
Loading...
Searching...
No Matches
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
20
21#include "GeoModelKernel/GeoPhysVol.h"
22#ifndef BUILDVP1LIGHT
25#endif
26#include <set>
27#include <string>
28#include <vector>
29
30class GeoVDetectorManager;
31
33
34public:
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 //
54 public: //
55 bool operator () (const value_type & a, const value_type & b) const; //
56 }; //
57 //
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 //
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{};
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
109#endif
110
111#endif // GEOMODELSVC_GEOMODELEXPERIMENT_H
112
113
114
Hold mappings of ranges to condition objects.
#define CONDCONT_MIXED_DEF(...)
Definition CondCont.h:1446
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
static Double_t a
bool operator()(const value_type &a, const value_type &b) const
bool operator()(const value_type &m) const
NameEquals(const std::string &name)
ConstIterator endManager() const
const GeoVDetectorManager * getManager(const std::string &name) const
ConstIterator beginManager() const
collection_type::iterator iterator_type
std::vector< PVConstLink > m_tmpVolumes
std::set< value_type, order_type > collection_type
GeoPhysVol * getPhysVol()
Destructor.
collection_type m_managers
virtual ~GeoModelExperiment()=default
collection_type::const_iterator const_iterator_type
GeoModelExperiment(PVLink physVol)
Constructor(s)
LexigraphicalOrder order_type
void addManager(const GeoVDetectorManager *)
void addTmpVolume(PVConstLink volume)
std::vector< std::string > getListOfManagers() const
const GeoVDetectorManager * value_type
const_iterator_type ConstIterator