4 // Author: I. Hrivnacova
6 // Class TG4ProcessMCMap
7 // ---------------------
8 // Singleton map container for associated pairs
9 // of G4 process name and AliMCProcess code.
11 #ifndef TG4_PROCESS_MC_MAP_H
12 #define TG4_PROCESS_MC_MAP_H
18 #include "AliMCProcess.h"
24 typedef G4std::map<G4String, AliMCProcess, G4std::less<G4String> > Map;
25 typedef Map::iterator MapIterator;
26 typedef Map::const_iterator MapConstIterator;
31 // TG4ProcessMCMap(const TG4ProcessMCMap& right);
32 virtual ~TG4ProcessMCMap();
34 // static access method
35 static TG4ProcessMCMap* Instance();
38 G4bool Add(G4VProcess* process, AliMCProcess second);
39 G4bool Add(G4String processName, AliMCProcess second);
40 void PrintAll() const;
44 AliMCProcess GetMCProcess(const G4VProcess* process);
45 AliMCProcess GetMCProcess(const G4String& processName);
46 G4String GetMCProcessName(const G4VProcess* process);
47 G4String GetMCProcessName(const G4String& processName);
50 TG4ProcessMCMap(const TG4ProcessMCMap& right);
53 TG4ProcessMCMap& operator=(const TG4ProcessMCMap& right);
57 G4bool IsDefined(const G4String& processName);
59 // static data members
60 static TG4ProcessMCMap* fgInstance; //this instance
63 Map fMap; //map container
68 inline TG4ProcessMCMap* TG4ProcessMCMap::Instance()
69 { return fgInstance; }
71 #endif //TG4_PROCESS_MC_MAP_H