4 // Class for geometry construction of a standalone
7 #ifndef ALI_SINGLE_MODULE_CONSTRUCTION_H
8 #define ALI_SINGLE_MODULE_CONSTRUCTION_H
10 #include "AliModuleConstruction.h"
11 #include "AliModuleType.h"
15 class AliSingleModuleConstructionMessenger;
19 class G4VPhysicalVolume;
20 class G4LogicalVolume;
22 class AliSingleModuleConstruction : public AliModuleConstruction
25 AliSingleModuleConstruction(G4String moduleName, G4int version,
26 AliModuleType moduleType = kDetector);
27 AliSingleModuleConstruction(const AliSingleModuleConstruction& right);
29 // AliSingleModuleConstruction();
30 virtual ~AliSingleModuleConstruction();
33 AliSingleModuleConstruction& operator=(
34 const AliSingleModuleConstruction &right);
36 // static set/get methods
37 static void SetWorld(G4VPhysicalVolume* world);
38 static G4VPhysicalVolume* GetWorld();
41 void Configure(const AliFiles& files);
42 virtual void Construct();
45 void SetProcessConfig(G4bool processConfig);
46 void SetAllLVSensitive(G4bool allLVSensitive);
47 void SetModuleFrameName(G4String moduleFrameName);
48 void SetModuleType(AliModuleType type);
51 G4int GetVersion() const;
52 AliModuleType GetType() const;
53 G4bool GetAllLVSensitive() const;
54 G4bool GetProcessConfig() const;
57 AliSingleModuleConstruction();
61 void CreateSensitiveDetectors();
62 void CreateSensitiveDetectors1();
63 void CreateSensitiveDetectors2();
65 // static data members
66 static G4VPhysicalVolume* fgWorld; //top (world) physical volume
69 AliSDManager* fSDManager; //AliSDManager
70 G4int fVersion; //module version
71 AliModuleType fType; //module type (detector/structure)
72 G4bool fAllLVSensitive; //control for setting sensitive detectors
73 G4bool fProcessConfig; //control for processing Config.C
74 AliSingleModuleConstructionMessenger* fMessenger; //messenger
79 inline G4VPhysicalVolume* AliSingleModuleConstruction::GetWorld()
82 inline void AliSingleModuleConstruction::SetWorld(G4VPhysicalVolume* world)
85 inline void AliSingleModuleConstruction::SetProcessConfig(G4bool processConfig)
86 { fProcessConfig = processConfig; }
88 inline void AliSingleModuleConstruction::SetAllLVSensitive(G4bool allLVSensitive)
89 { fAllLVSensitive = allLVSensitive; }
91 inline void AliSingleModuleConstruction::SetModuleFrameName(G4String name)
92 { fModuleFrameName = name; }
94 inline void AliSingleModuleConstruction::SetModuleType(AliModuleType type)
97 inline G4int AliSingleModuleConstruction::GetVersion() const
100 inline AliModuleType AliSingleModuleConstruction::GetType() const
103 inline G4bool AliSingleModuleConstruction::GetAllLVSensitive() const
104 { return fAllLVSensitive; }
106 inline G4bool AliSingleModuleConstruction::GetProcessConfig() const
107 { return fProcessConfig; }
109 #endif //ALI_SINGLE_MODULE_CONSTRUCTION_H