4 // Author: I. Hrivnacova
6 // Class AliDetSwitchVector
7 // ---------------------------
8 // The class contains a vector of detector switches
9 // and provides methods for their interactive setting.
11 #ifndef ALI_DET_SWITCH_VECTOR_H
12 #define ALI_DET_SWITCH_VECTOR_H
14 #include "AliDetSwitchVectorMessenger.h"
17 #include <g4std/vector>
21 class AliDetSwitchVector
23 typedef G4std::vector<AliDetSwitch*> DetSwitchVector;
24 typedef DetSwitchVector::iterator DetSwitchIterator;
25 typedef DetSwitchVector::const_iterator DetSwitchConstIterator;
30 // AliDetSwitchVector(const AliDetSwitchVector& right);
31 virtual ~AliDetSwitchVector();
34 void Add(AliDetSwitch* detSwitch);
35 void SwitchDetOn(const G4String& moduleNameVer);
36 void SwitchDetOn(const G4String& moduleName, G4int version);
37 void SwitchDetOnDefault(const G4String& moduleName);
38 void SwitchDetOff(const G4String& moduleName);
39 void PrintSwitchedDets() const;
40 void PrintAvailableDets() const;
43 G4int GetSize() const;
44 AliDetSwitch* GetDetSwitch(G4int i) const;
45 AliDetSwitch* GetDetSwitch(const G4String& moduleName) const;
46 G4String GetSwitchedDetsList() const;
47 G4String GetAvailableDetsList() const;
48 G4String GetAvailableDetsListWithCommas() const;
49 G4String GetDetNamesList() const;
50 G4String GetDetNamesListWithCommas() const;
53 AliDetSwitchVector(const AliDetSwitchVector& right);
56 AliDetSwitchVector& operator=(const AliDetSwitchVector& right);
60 AliDetSwitchVectorMessenger fMessenger; //messenger
61 DetSwitchVector fDetSwitchVector; //vector of AliDetSwitch
66 inline G4int AliDetSwitchVector::GetSize() const
67 { return fDetSwitchVector.size(); }
69 inline AliDetSwitch* AliDetSwitchVector::GetDetSwitch(G4int i) const
70 { return fDetSwitchVector[i]; }
72 #endif //ALI_DET_SWITCH_VECTOR_H