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 UpdateMessenger();
36 void SwitchDetOn(const G4String& moduleNameVer);
37 void SwitchDetOn(const G4String& moduleName, G4int version);
38 void SwitchDetOnDefault(const G4String& moduleName);
39 void SwitchDetOff(const G4String& moduleName);
40 void PrintSwitchedDets() const;
41 void PrintAvailableDets() const;
44 G4int GetSize() const;
45 AliDetSwitch* GetDetSwitch(G4int i) const;
46 AliDetSwitch* GetDetSwitch(const G4String& moduleName) const;
47 G4String GetSwitchedDetsList() const;
48 G4String GetAvailableDetsList() const;
49 G4String GetAvailableDetsListWithCommas() const;
50 G4String GetDetNamesList() const;
51 G4String GetDetNamesListWithCommas() const;
54 AliDetSwitchVector(const AliDetSwitchVector& right);
57 AliDetSwitchVector& operator=(const AliDetSwitchVector& right);
61 AliDetSwitchVectorMessenger fMessenger; //messenger
62 DetSwitchVector fDetSwitchVector; //vector of AliDetSwitch
67 inline void AliDetSwitchVector::UpdateMessenger()
68 { fMessenger.Update(); }
70 inline G4int AliDetSwitchVector::GetSize() const
71 { return fDetSwitchVector.size(); }
73 inline AliDetSwitch* AliDetSwitchVector::GetDetSwitch(G4int i) const
74 { return fDetSwitchVector[i]; }
76 #endif //ALI_DET_SWITCH_VECTOR_H