]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TGeant4/TG4SDManager.h
removed fMessenger (moved to TG4PhysicsManager)
[u/mrichter/AliRoot.git] / TGeant4 / TG4SDManager.h
1 // $Id$
2 // Category: digits+hits
3 //
4 // Author: I. Hrivnacova
5 //
6 // Class TG4SDManager
7 // ------------------
8 // Geant4 implementation of the MonteCarlo interface methods                    
9 // for access to Geant4 geometry related with sensitive detectors.
10
11 #ifndef TG4_SD_MANAGER_H
12 #define TG4_SD_MANAGER_H
13
14 #include <globals.hh>
15
16 #include <Rtypes.h>
17
18 class TG4SDServices;
19 class TG4VSDConstruction;
20
21 class TG4SDManager
22 {
23   public:
24     TG4SDManager(TG4VSDConstruction* sdConstruction);
25     // --> protected
26     // TG4SDManager();
27     // TG4SDManager(const TG4SDManager& right);
28     virtual ~TG4SDManager();
29
30     // static methods
31     static TG4SDManager* Instance();
32
33     // methods
34     void Initialize();
35     
36     // AliMC methods
37     Int_t VolId(const Text_t* volName) const;                
38     const char* VolName(Int_t id) const;
39     Int_t NofVolumes() const; 
40     Int_t VolId2Mate(Int_t volumeId) const;
41
42     // get methods
43     TG4VSDConstruction* GetSDConstruction() const;
44
45   protected:
46     TG4SDManager();
47     TG4SDManager(const TG4SDManager& right);
48
49     // operators
50     TG4SDManager& operator=(const TG4SDManager& right);
51
52     // static data members
53     static TG4SDManager* fgInstance;   //this instance
54     
55     // data members
56     TG4VSDConstruction* fSDConstruction; //sensitive detectors construction
57     TG4SDServices*      fSDServices;     //services related with sensitive
58                                          //detectors
59
60 };
61
62 // inline methods
63
64 inline TG4SDManager* TG4SDManager::Instance() 
65 { return fgInstance; }
66
67 inline TG4VSDConstruction* TG4SDManager::GetSDConstruction() const
68 { return fSDConstruction; }
69
70 #endif //TG4_SD_MANAGER_H
71