4 // Author: I. Hrivnacova
6 // Class TG4ProcessControlMap
7 // --------------------------
8 // Singleton map container for associated pairs
9 // G4 process name and TG4G3Control.
11 #ifndef TG4_PROCESS_CONTROL_MAP_H
12 #define TG4_PROCESS_CONTROL_MAP_H
17 #include "TG4G3Control.h"
21 class TG4ProcessControlMap
23 typedef G4std::map<G4String, TG4G3Control, G4std::less<G4String> > Map;
24 typedef Map::iterator MapIterator;
25 typedef Map::const_iterator MapConstIterator;
28 TG4ProcessControlMap();
30 // TG4ProcessControlMap(const TG4ProcessControlMap& right);
31 virtual ~TG4ProcessControlMap();
33 // static access method
34 static TG4ProcessControlMap* Instance();
37 G4bool Add(G4VProcess* process, TG4G3Control second);
38 G4bool Add(G4String processName, TG4G3Control second);
39 void PrintAll() const;
43 TG4G3Control GetControl(const G4VProcess* process);
44 TG4G3Control GetControl(const G4String& processName);
45 const G4String& GetControlName(const G4VProcess* process);
46 const G4String& GetControlName(const G4String& processName);
49 TG4ProcessControlMap(const TG4ProcessControlMap& right);
52 TG4ProcessControlMap& operator=(const TG4ProcessControlMap& right);
56 G4bool IsDefined(const G4String& processName);
58 // static data members
59 static TG4ProcessControlMap* fgInstance; //this instance
62 Map fMap; //map container
67 inline TG4ProcessControlMap* TG4ProcessControlMap::Instance()
68 { return fgInstance; }
70 #endif //TG4_PROCESS_CONTROL_MAP_H