]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TGeant4/TG4ProcessMCMap.h
Updated SDigitizer
[u/mrichter/AliRoot.git] / TGeant4 / TG4ProcessMCMap.h
1 // $Id$
2 // Category: physics
3 //
4 // Author: I. Hrivnacova
5 //
6 // Class TG4ProcessMCMap
7 // ---------------------
8 // Singleton map container for associated pairs
9 // of G4 process name and AliMCProcess code.
10
11 #ifndef TG4_PROCESS_MC_MAP_H
12 #define TG4_PROCESS_MC_MAP_H
13
14 #include <g4std/map>
15 #include <globals.hh>
16
17 #include <Rtypes.h>
18 #include "AliMCProcess.h"
19
20 class G4VProcess;
21
22 class TG4ProcessMCMap
23 {
24   typedef G4std::map<G4String, AliMCProcess, G4std::less<G4String> >  Map;
25   typedef Map::iterator        MapIterator;
26   typedef Map::const_iterator  MapConstIterator;
27
28   public:
29     TG4ProcessMCMap();
30     // --> protected
31     // TG4ProcessMCMap(const TG4ProcessMCMap& right);
32     virtual ~TG4ProcessMCMap();
33
34     // static access method
35     static TG4ProcessMCMap* Instance();
36
37     // methods
38     G4bool Add(G4VProcess* process,  AliMCProcess second);  
39     G4bool Add(G4String processName, AliMCProcess second);  
40     void PrintAll() const;
41     void Clear();
42
43     // get methods
44     AliMCProcess GetMCProcess(const G4VProcess* process);
45     AliMCProcess GetMCProcess(const G4String& processName);
46     G4String     GetMCProcessName(const G4VProcess* process);
47     G4String     GetMCProcessName(const G4String& processName);
48
49   protected:
50     TG4ProcessMCMap(const TG4ProcessMCMap& right);
51
52     // operators
53     TG4ProcessMCMap& operator=(const TG4ProcessMCMap& right);
54   
55   private:
56     // methods
57     G4bool IsDefined(const G4String& processName);
58
59     // static data members
60     static TG4ProcessMCMap*  fgInstance; //this instance
61
62     // data members
63     Map  fMap; //map container
64 };
65
66 // inline methods
67
68 inline TG4ProcessMCMap* TG4ProcessMCMap::Instance() 
69 { return fgInstance; }
70
71 #endif //TG4_PROCESS_MC_MAP_H