]> git.uio.no Git - u/mrichter/AliRoot.git/blame - AliGeant4/AliSingleModuleConstruction.h
Add ResetDecayTable() and SsetDecayTable() methods.
[u/mrichter/AliRoot.git] / AliGeant4 / AliSingleModuleConstruction.h
CommitLineData
676fb573 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
15class AliSingleModuleConstructionMessenger;
16class AliSDManager;
30e0c456 17class AliFiles;
676fb573 18
19class G4VPhysicalVolume;
20class G4LogicalVolume;
21
22class AliSingleModuleConstruction : public AliModuleConstruction
23{
24 public:
25 AliSingleModuleConstruction(G4String moduleName, G4int version,
26 AliModuleType moduleType = kDetector);
27 AliSingleModuleConstruction(const AliSingleModuleConstruction& right);
28 // --> protected
29 // AliSingleModuleConstruction();
30 virtual ~AliSingleModuleConstruction();
31
32 // operators
33 AliSingleModuleConstruction& operator=(
34 const AliSingleModuleConstruction &right);
35
36 // static set/get methods
37 static void SetWorld(G4VPhysicalVolume* world);
38 static G4VPhysicalVolume* GetWorld();
39
40 // methods
30e0c456 41 void Configure(const AliFiles& files);
676fb573 42 virtual void Construct();
43
44 // set methods
45 void SetProcessConfig(G4bool processConfig);
46 void SetAllLVSensitive(G4bool allLVSensitive);
47 void SetModuleFrameName(G4String moduleFrameName);
48 void SetModuleType(AliModuleType type);
49
50 // get methods
51 G4int GetVersion() const;
52 AliModuleType GetType() const;
53 G4bool GetAllLVSensitive() const;
54 G4bool GetProcessConfig() const;
55
56 protected:
57 AliSingleModuleConstruction();
58
59 private:
60 // methods
61 void CreateSensitiveDetectors();
62 void CreateSensitiveDetectors1();
63 void CreateSensitiveDetectors2();
64
65 // static data members
66 static G4VPhysicalVolume* fgWorld; //top (world) physical volume
67
68 // data members
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
75};
76
77// inline methods
78
79inline G4VPhysicalVolume* AliSingleModuleConstruction::GetWorld()
80{ return fgWorld; }
81
82inline void AliSingleModuleConstruction::SetWorld(G4VPhysicalVolume* world)
83{ fgWorld = world; }
84
85inline void AliSingleModuleConstruction::SetProcessConfig(G4bool processConfig)
86{ fProcessConfig = processConfig; }
87
88inline void AliSingleModuleConstruction::SetAllLVSensitive(G4bool allLVSensitive)
89{ fAllLVSensitive = allLVSensitive; }
90
91inline void AliSingleModuleConstruction::SetModuleFrameName(G4String name)
92{ fModuleFrameName = name; }
93
94inline void AliSingleModuleConstruction::SetModuleType(AliModuleType type)
95{ fType = type; }
96
97inline G4int AliSingleModuleConstruction::GetVersion() const
98{ return fVersion; }
99
100inline AliModuleType AliSingleModuleConstruction::GetType() const
101{ return fType; }
102
103inline G4bool AliSingleModuleConstruction::GetAllLVSensitive() const
104{ return fAllLVSensitive; }
105
106inline G4bool AliSingleModuleConstruction::GetProcessConfig() const
107{ return fProcessConfig; }
108
109#endif //ALI_SINGLE_MODULE_CONSTRUCTION_H