]> git.uio.no Git - u/mrichter/AliRoot.git/blob - AliGeant4/AliMoreModulesConstruction.h
updated for changes in Config.C
[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 <globals.hh>
14
15 #include <g4std/vector>
16
17 class AliSingleModuleConstruction;
18 class AliSDManager;
19 class AliFiles;
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 Configure(const AliFiles& files);
39     void Construct();
40     
41     // get methods
42     G4int GetNofModules() const;
43     AliSingleModuleConstruction* GetModuleConstruction(G4int i) const;
44         
45   private:    
46     // methods
47     void CreateSensitiveDetectors(G4bool allLVSensitive);
48     void CreateSensitiveDetectors1();
49     void CreateSensitiveDetectors2();
50
51     // data members
52     AliSingleModuleConstructionPtrVector  fModuleConstructionVector; //..
53                                 //vector of AliSingleModuleConstruction
54     AliSDManager*  fSDManager;  //AliSDManager                                             
55 };                                                 
56
57 // inline methods
58
59 inline G4int AliMoreModulesConstruction::GetNofModules() const
60 { return fModuleConstructionVector.size(); }
61
62 inline AliSingleModuleConstruction* 
63   AliMoreModulesConstruction::GetModuleConstruction(G4int i) const 
64 { return fModuleConstructionVector[i]; }
65
66 #endif //ALI_MORE_MODULES_CONSTRUCTION_H