676fb573 |
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 | |
63c8351a |
16 | #include <g4std/vector> |
676fb573 |
17 | |
18 | class AliSingleModuleConstruction; |
19 | class AliSDManager; |
20 | |
21 | class AliMoreModulesConstruction |
22 | { |
23 | public: |
24 | AliMoreModulesConstruction(); |
25 | AliMoreModulesConstruction(const AliMoreModulesConstruction& right); |
26 | virtual ~AliMoreModulesConstruction(); |
27 | |
28 | // operators |
29 | AliMoreModulesConstruction& operator=( |
30 | const AliMoreModulesConstruction& right); |
31 | |
32 | // methods |
33 | void AddModule(G4String moduleName, G4int version, |
34 | AliModuleType moduleType); |
35 | void Construct(); |
36 | |
37 | // get methods |
38 | G4int GetNofModules() const; |
39 | AliSingleModuleConstruction* GetModuleConstruction(G4int i) const; |
40 | |
41 | private: |
42 | // methods |
43 | void CreateSensitiveDetectors(G4bool allLVSensitive); |
44 | void CreateSensitiveDetectors1(); |
45 | void CreateSensitiveDetectors2(); |
46 | |
47 | // data members |
48 | vector<AliSingleModuleConstruction*> fModuleConstructionVector; //. |
49 | //vector of AliSingleModuleConstruction |
50 | AliSDManager* fSDManager; //AliSDManager |
51 | }; |
52 | |
53 | // inline methods |
54 | |
55 | inline G4int AliMoreModulesConstruction::GetNofModules() const |
56 | { return fModuleConstructionVector.size(); } |
57 | |
58 | inline AliSingleModuleConstruction* |
59 | AliMoreModulesConstruction::GetModuleConstruction(G4int i) const |
60 | { return fModuleConstructionVector[i]; } |
61 | |
62 | #endif //ALI_MORE_MODULES_CONSTRUCTION_H |