]> git.uio.no Git - u/mrichter/AliRoot.git/blob - AliGeant4/AliMoreModulesConstruction.h
added THijing, CONTAINERS categories
[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
20 class AliMoreModulesConstruction
21 {  
22   typedef G4std::vector<AliSingleModuleConstruction*>  
23                                    AliSingleModuleConstructionPtrVector;
24
25   public:
26     AliMoreModulesConstruction();
27     AliMoreModulesConstruction(const AliMoreModulesConstruction& right);
28     virtual ~AliMoreModulesConstruction();
29
30     // operators
31     AliMoreModulesConstruction& operator=(
32                                const AliMoreModulesConstruction& right);
33
34     // methods
35     void AddModule(G4String moduleName, G4int version, 
36                    AliModuleType moduleType);
37     void Configure();
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