]> git.uio.no Git - u/mrichter/AliRoot.git/blob - AliGeant4/AliSDManager.h
The argument of SetHighWaterMark declared const
[u/mrichter/AliRoot.git] / AliGeant4 / AliSDManager.h
1 // $Id$
2 // Category: geometry
3 //
4 // Class providing methods for creating sensitive detectors
5 // and switching between lego sensitive detectors and 
6 // the standard ones.
7
8 #ifndef ALI_SD_MANAGER_H
9 #define ALI_SD_MANAGER_H
10
11 #include <globals.hh>
12
13 //class AliSDMessenger;
14 class AliLego;
15 class AliModule;
16
17 class G4VPhysicalVolume;
18 class G4LogicalVolume;
19
20 class AliSDManager 
21 {  
22   public:
23     // --> protected
24     // AliSDManager();
25     // AliSDManager(const AliSDManager& right);
26     virtual ~AliSDManager();
27     
28     // static methods
29     static AliSDManager* Instance();
30     
31     // methods
32     void CreateSD(G4LogicalVolume* lv, AliModule* module) const;
33     AliModule* FindAliModule(G4LogicalVolume* lv) const;
34     void SetLego(AliLego* lego) const;
35     void UnsetLego() const;
36
37     // set/get methods 
38     inline void SetNofLVWithSD(G4int nofLV);
39     inline G4int GetNofLVWithSD() const;
40     
41   protected:
42     AliSDManager();
43     AliSDManager(const AliSDManager& right);
44
45     // operators
46     AliSDManager& operator=(const AliSDManager& right);
47   
48   private:
49     // methods
50     void CreateLegoSD(G4LogicalVolume* lv, AliLego* lego) const;
51     void UnsetLegoSD(G4LogicalVolume* lv) const;
52
53     // static data members
54     static AliSDManager*    fgInstance;   //this instance
55
56     // data members
57     G4int                   fNofLVWithSD; //counter of logical volumes
58                                           //with sensitive detectors
59     //AliSDManagerMessenger*  fMessenger;
60 };             
61
62 // inline methods
63
64 inline G4int AliSDManager::GetNofLVWithSD() const
65 { return fNofLVWithSD; }
66
67 inline void AliSDManager::SetNofLVWithSD(G4int nofLV)
68 { fNofLVWithSD = nofLV; }
69
70 #endif //ALI_SD_MANAGER_H