]>
Commit | Line | Data |
---|---|---|
27703356 | 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 |