]> git.uio.no Git - u/mrichter/AliRoot.git/blob - AliGeant4/AliSingleModuleConstruction.h
Coding convention rules obeyed
[u/mrichter/AliRoot.git] / AliGeant4 / AliSingleModuleConstruction.h
1 // $Id$
2 // Category: geometry
3 //
4 // Class for geometry construction of a standalone
5 // module (AliModule). 
6
7 #ifndef ALI_SINGLE_MODULE_CONSTRUCTION_H
8 #define ALI_SINGLE_MODULE_CONSTRUCTION_H
9
10 #include "AliModuleConstruction.h"
11 #include "AliModuleType.h"
12
13 #include <globals.hh>
14
15 class AliSingleModuleConstructionMessenger;
16 class AliSDManager;
17
18 class G4VPhysicalVolume;
19 class G4LogicalVolume;
20
21 class AliSingleModuleConstruction : public AliModuleConstruction
22 {  
23   public:
24     AliSingleModuleConstruction(G4String moduleName, G4int version,
25                                 AliModuleType moduleType = kDetector);
26     AliSingleModuleConstruction(const AliSingleModuleConstruction& right);
27     // --> protected
28     // AliSingleModuleConstruction();
29     virtual ~AliSingleModuleConstruction();
30     
31     // operators
32     AliSingleModuleConstruction& operator=(
33                                 const AliSingleModuleConstruction &right);
34
35     // static set/get methods 
36     static void SetWorld(G4VPhysicalVolume* world);
37     static G4VPhysicalVolume* GetWorld();
38
39     // methods
40     void Configure();    
41     virtual void Construct();
42
43     // set methods
44     void SetProcessConfig(G4bool processConfig);
45     void SetAllLVSensitive(G4bool allLVSensitive);
46     void SetModuleFrameName(G4String moduleFrameName);
47     void SetModuleType(AliModuleType type);
48
49     // get methods
50     G4int  GetVersion() const;
51     AliModuleType GetType() const;
52     G4bool GetAllLVSensitive() const;
53     G4bool GetProcessConfig() const;
54     
55   protected:
56     AliSingleModuleConstruction();
57
58   private:
59     // methods
60     void CreateSensitiveDetectors();
61     void CreateSensitiveDetectors1();
62     void CreateSensitiveDetectors2();
63     
64     // static data members
65     static G4VPhysicalVolume* fgWorld;       //top (world) physical volume
66
67     // data members
68     AliSDManager*   fSDManager;      //AliSDManager
69     G4int           fVersion;        //module version
70     AliModuleType   fType;           //module type (detector/structure)
71     G4bool          fAllLVSensitive; //control for setting sensitive detectors
72     G4bool          fProcessConfig;  //control for processing Config.C
73     AliSingleModuleConstructionMessenger*  fMessenger; //messenger
74 };             
75
76 // inline methods
77
78 inline G4VPhysicalVolume* AliSingleModuleConstruction::GetWorld()
79 { return fgWorld; }
80
81 inline void AliSingleModuleConstruction::SetWorld(G4VPhysicalVolume* world)
82 { fgWorld = world; }
83
84 inline void AliSingleModuleConstruction::SetProcessConfig(G4bool processConfig)
85 { fProcessConfig = processConfig; }
86
87 inline void AliSingleModuleConstruction::SetAllLVSensitive(G4bool allLVSensitive)
88 { fAllLVSensitive = allLVSensitive; }
89
90 inline void AliSingleModuleConstruction::SetModuleFrameName(G4String name)
91 { fModuleFrameName = name; }
92
93 inline void AliSingleModuleConstruction::SetModuleType(AliModuleType type)
94 { fType = type; }
95
96 inline G4int AliSingleModuleConstruction::GetVersion() const
97 { return fVersion; }
98
99 inline AliModuleType AliSingleModuleConstruction::GetType() const
100 { return fType; }
101
102 inline G4bool AliSingleModuleConstruction::GetAllLVSensitive() const
103 { return fAllLVSensitive; }
104
105 inline G4bool AliSingleModuleConstruction::GetProcessConfig() const
106 { return fProcessConfig; }
107
108 #endif //ALI_SINGLE_MODULE_CONSTRUCTION_H