]> git.uio.no Git - u/mrichter/AliRoot.git/blob - AliGeant4/AliMoreModulesConstruction.h
added PrintMaterials(), GenerateXMLGeometry()
[u/mrichter/AliRoot.git] / AliGeant4 / AliMoreModulesConstruction.h
1 // $Id$
2 // Category: geometry
3 //
4 // Class for geometry construction of a set of dependent
5 // modules (AliModule). 
6
7
8 #ifndef ALI_MORE_MODULES_CONSTRUCTION_H
9 #define ALI_MORE_MODULES_CONSTRUCTION_H
10
11 #include "AliModuleType.h"
12
13 #include <G3VolTable.hh>
14 #include <globals.hh>
15
16 #include <g4std/vector>
17
18 class AliSingleModuleConstruction;
19 class AliSDManager;
20
21 class AliMoreModulesConstruction
22 {  
23   typedef G4std::vector<AliSingleModuleConstruction*>  
24                                    AliSingleModuleConstructionPtrVector;
25
26   public:
27     AliMoreModulesConstruction();
28     AliMoreModulesConstruction(const AliMoreModulesConstruction& right);
29     virtual ~AliMoreModulesConstruction();
30
31     // operators
32     AliMoreModulesConstruction& operator=(
33                                const AliMoreModulesConstruction& right);
34
35     // methods
36     void AddModule(G4String moduleName, G4int version, 
37                    AliModuleType moduleType);
38     void Construct();
39     
40     // get methods
41     G4int GetNofModules() const;
42     AliSingleModuleConstruction* GetModuleConstruction(G4int i) const;
43         
44   private:    
45     // methods
46     void CreateSensitiveDetectors(G4bool allLVSensitive);
47     void CreateSensitiveDetectors1();
48     void CreateSensitiveDetectors2();
49
50     // data members
51     AliSingleModuleConstructionPtrVector  fModuleConstructionVector; //..
52                                 //vector of AliSingleModuleConstruction
53     AliSDManager*  fSDManager;  //AliSDManager                                             
54 };                                                 
55
56 // inline methods
57
58 inline G4int AliMoreModulesConstruction::GetNofModules() const
59 { return fModuleConstructionVector.size(); }
60
61 inline AliSingleModuleConstruction* 
62   AliMoreModulesConstruction::GetModuleConstruction(G4int i) const 
63 { return fModuleConstructionVector[i]; }
64
65 #endif //ALI_MORE_MODULES_CONSTRUCTION_H