GEMC  2.3
Geant4 Monte-Carlo Framework
MDetectorConstruction.h
Go to the documentation of this file.
1 #ifndef MDetectorConstruction_h
14 #define MDetectorConstruction_h 1
15 
16 // G4 headers
17 #include "G4VUserDetectorConstruction.hh"
18 #include "globals.hh"
19 #include "G4Material.hh"
20 #include "G4Region.hh"
21 
22 // gemc headers
23 #include "options.h"
24 #include "mirrors_factory.h"
25 #include "detector.h"
26 #include "field.h"
27 #include "HitProcess.h"
28 #include "sensitiveDetector.h"
29 class MDetectorMessenger;
30 
31 // Class definition
33 {
34  public:
37 
38  public:
40 
41  map<string, G4Material*> *mats;
42  map<string, mirror*> *mirs;
43  map<string, sensitiveDetector*> SeDe_Map;
44  map<string, detector> *hallMap;
45  map<string, gfield> *fieldsMap;
46  map<string, G4Region*> SeRe_Map;
47  map<string, G4ProductionCuts*> SePC_Map;
48  set<string> activeFields;
49  set<string> replicants; // don't build these physical volumes
50 
51 
52  private:
53  detector findDetector(string); // returns map detector
54  void buildDetector(string); // build detector
55 
56  public:
57  void isSensitive(detector);
58  void assignRegions(vector<string>); // define a region with name "system_volumename" and assign thresholds based on sensitive detector
59  void hasMagfield(detector);
60  void buildMirrors();
61  void assignRegions();
62  void updateGeometry();
63  G4VPhysicalVolume* Construct();
64 
65 };
66 
67 #endif
G4VPhysicalVolume * Construct()
map< string, detector > * hallMap
map< string, gfield > * fieldsMap
map< string, G4Material * > * mats
map< string, G4ProductionCuts * > SePC_Map
map< string, G4Region * > SeRe_Map
map< string, sensitiveDetector * > SeDe_Map
map< string, mirror * > * mirs
MDetectorConstruction(goptions Opts)