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