]> git.uio.no Git - u/mrichter/AliRoot.git/blame - AliGeant4/AliSDManager.h
Initial version
[u/mrichter/AliRoot.git] / AliGeant4 / AliSDManager.h
CommitLineData
676fb573 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;
14class AliLego;
15class AliModule;
16
17class G4VPhysicalVolume;
18class G4LogicalVolume;
19
20class 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
64inline G4int AliSDManager::GetNofLVWithSD() const
65{ return fNofLVWithSD; }
66
67inline void AliSDManager::SetNofLVWithSD(G4int nofLV)
68{ fNofLVWithSD = nofLV; }
69
70#endif //ALI_SD_MANAGER_H