GeoModel - GeoModelCore
GeometryMap.h
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef GEOMODELKERNEL_GEOMETRYMAP_H
6 #define GEOMODELKERNEL_GEOMETRYMAP_H
7 #include <string>
8 #include "GeoModelKernel/GeoVPhysVol.h"
9 
10 class GeometryMap {
11 
12  public:
13 
14  // constructor
15  GeometryMap();
16 
17  // Destructor;
18  ~GeometryMap();
19 
20  GeometryMap (const GeometryMap&) = delete;
21  GeometryMap& operator= (const GeometryMap&) = delete;
22 
23  // Add a name to the list of designated volumes: Can use wildcards.
24  void add(const std::string & name);
25 
26  // Create the map; this will maintain a list of all volumes matching
27  // the expressions under the given physical volume.
28  void finalize(PVConstLink pv);
29 
30 
31  // For iteration:
32  typedef std::vector<PVConstLink>::const_iterator Iterator;
33 
34  Iterator begin() const;
35  Iterator end() const;
36 
37  private:
38 
39  class Clockwork;
40  Clockwork *m_c;
41 
42 };
43 #endif