]> git.uio.no Git - u/mrichter/AliRoot.git/blob - AliGeant4/AliSingleModuleConstruction.h
Updated class description: added class title, author;
[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 AliFiles;
16
17 class G4VPhysicalVolume;
18 class G4LogicalVolume;
19
20 class AliSingleModuleConstruction : public AliModuleConstruction
21 {  
22   public:
23     AliSingleModuleConstruction(G4String moduleName, G4int version,
24                                 AliModuleType moduleType = kDetector);
25     AliSingleModuleConstruction(const AliSingleModuleConstruction& right);
26     // --> protected
27     // AliSingleModuleConstruction();
28     virtual ~AliSingleModuleConstruction();
29     
30     // operators
31     AliSingleModuleConstruction& operator=(
32                                 const AliSingleModuleConstruction &right);
33
34     // static set/get methods 
35     static void SetWorld(G4VPhysicalVolume* world);
36     static G4VPhysicalVolume* GetWorld();
37
38     // methods
39     void Configure(const AliFiles& files);    
40     virtual void Construct();
41
42     // set methods
43     void SetProcessConfig(G4bool processConfig);
44     void SetModuleFrameName(G4String moduleFrameName);
45     void SetModuleType(AliModuleType type);
46
47     // get methods
48     G4int  GetVersion() const;
49     AliModuleType GetType() const;
50     G4bool GetProcessConfig() const;
51     
52   protected:
53     AliSingleModuleConstruction();
54
55   private:    
56     // static data members
57     static G4VPhysicalVolume* fgWorld;       //top (world) physical volume
58
59     // data members
60     G4int           fVersion;        //module version
61     AliModuleType   fType;           //module type (detector/structure)
62     G4bool          fProcessConfig;  //control for processing Config.C
63 };             
64
65 // inline methods
66
67 inline G4VPhysicalVolume* AliSingleModuleConstruction::GetWorld()
68 { return fgWorld; }
69
70 inline void AliSingleModuleConstruction::SetWorld(G4VPhysicalVolume* world)
71 { fgWorld = world; }
72
73 inline void AliSingleModuleConstruction::SetProcessConfig(G4bool processConfig)
74 { fProcessConfig = processConfig; }
75
76 inline void AliSingleModuleConstruction::SetModuleFrameName(G4String name)
77 { fModuleFrameName = name; }
78
79 inline void AliSingleModuleConstruction::SetModuleType(AliModuleType type)
80 { fType = type; }
81
82 inline G4int AliSingleModuleConstruction::GetVersion() const
83 { return fVersion; }
84
85 inline AliModuleType AliSingleModuleConstruction::GetType() const
86 { return fType; }
87
88 inline G4bool AliSingleModuleConstruction::GetProcessConfig() const
89 { return fProcessConfig; }
90
91 #endif //ALI_SINGLE_MODULE_CONSTRUCTION_H