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