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;
18 class G4VPhysicalVolume;
19 class G4LogicalVolume;
21 class AliSingleModuleConstruction : public AliModuleConstruction
24 AliSingleModuleConstruction(G4String moduleName, G4int version,
25 AliModuleType moduleType = kDetector);
26 AliSingleModuleConstruction(const AliSingleModuleConstruction& right);
28 // AliSingleModuleConstruction();
29 virtual ~AliSingleModuleConstruction();
32 AliSingleModuleConstruction& operator=(
33 const AliSingleModuleConstruction &right);
35 // static set/get methods
36 static void SetWorld(G4VPhysicalVolume* world);
37 static G4VPhysicalVolume* GetWorld();
41 virtual void Construct();
44 void SetProcessConfig(G4bool processConfig);
45 void SetAllLVSensitive(G4bool allLVSensitive);
46 void SetModuleFrameName(G4String moduleFrameName);
47 void SetModuleType(AliModuleType type);
50 G4int GetVersion() const;
51 AliModuleType GetType() const;
52 G4bool GetAllLVSensitive() const;
53 G4bool GetProcessConfig() const;
56 AliSingleModuleConstruction();
60 void CreateSensitiveDetectors();
61 void CreateSensitiveDetectors1();
62 void CreateSensitiveDetectors2();
64 // static data members
65 static G4VPhysicalVolume* fgWorld; //top (world) physical volume
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
78 inline G4VPhysicalVolume* AliSingleModuleConstruction::GetWorld()
81 inline void AliSingleModuleConstruction::SetWorld(G4VPhysicalVolume* world)
84 inline void AliSingleModuleConstruction::SetProcessConfig(G4bool processConfig)
85 { fProcessConfig = processConfig; }
87 inline void AliSingleModuleConstruction::SetAllLVSensitive(G4bool allLVSensitive)
88 { fAllLVSensitive = allLVSensitive; }
90 inline void AliSingleModuleConstruction::SetModuleFrameName(G4String name)
91 { fModuleFrameName = name; }
93 inline void AliSingleModuleConstruction::SetModuleType(AliModuleType type)
96 inline G4int AliSingleModuleConstruction::GetVersion() const
99 inline AliModuleType AliSingleModuleConstruction::GetType() const
102 inline G4bool AliSingleModuleConstruction::GetAllLVSensitive() const
103 { return fAllLVSensitive; }
105 inline G4bool AliSingleModuleConstruction::GetProcessConfig() const
106 { return fProcessConfig; }
108 #endif //ALI_SINGLE_MODULE_CONSTRUCTION_H