4 // Class providing methods for creating sensitive detectors
5 // and switching between lego sensitive detectors and
8 #ifndef ALI_SD_MANAGER_H
9 #define ALI_SD_MANAGER_H
13 //class AliSDMessenger;
17 class G4VPhysicalVolume;
18 class G4LogicalVolume;
25 // AliSDManager(const AliSDManager& right);
26 virtual ~AliSDManager();
29 static AliSDManager* Instance();
32 void CreateSD(G4LogicalVolume* lv, AliModule* module) const;
33 AliModule* FindAliModule(G4LogicalVolume* lv) const;
34 void SetLego(AliLego* lego) const;
35 void UnsetLego() const;
38 inline void SetNofLVWithSD(G4int nofLV);
39 inline G4int GetNofLVWithSD() const;
43 AliSDManager(const AliSDManager& right);
46 AliSDManager& operator=(const AliSDManager& right);
50 void CreateLegoSD(G4LogicalVolume* lv, AliLego* lego) const;
51 void UnsetLegoSD(G4LogicalVolume* lv) const;
53 // static data members
54 static AliSDManager* fgInstance; //this instance
57 G4int fNofLVWithSD; //counter of logical volumes
58 //with sensitive detectors
59 //AliSDManagerMessenger* fMessenger;
64 inline G4int AliSDManager::GetNofLVWithSD() const
65 { return fNofLVWithSD; }
67 inline void AliSDManager::SetNofLVWithSD(G4int nofLV)
68 { fNofLVWithSD = nofLV; }
70 #endif //ALI_SD_MANAGER_H