]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - AliGeant4/AliModulesComposition.h
updated commands description
[u/mrichter/AliRoot.git] / AliGeant4 / AliModulesComposition.h
index f23c11afea6412126d4622707da135c9211e2e59..3867890785c5c19339a609a6b01e95d3c8f6e2d7 100644 (file)
@@ -1,6 +1,10 @@
 // $Id$
 // Category: geometry
 //
+// Author: I. Hrivnacova
+//
+// Class AliModulesComposition
+// ---------------------------
 // Detector construction base class for building geometry
 // composed from independent modules with availability of interactive modules
 // setup.
 #ifndef ALI_MODULES_COMPOSITION_H
 #define ALI_MODULES_COMPOSITION_H
 
-#include "AliSingleModuleConstruction.h"
-#include "AliDetSwitch.h"
+#include "AliModulesCompositionMessenger.h"
 #include "AliModuleType.h"
 
 #include <G4VUserDetectorConstruction.hh>
 #include <globals.hh>
+#include <g4std/vector>
 
-#include <g4rw/tpordvec.h>
-
-class AliModulesCompositionMessenger;
+class AliSingleModuleConstruction;
+class AliDetSwitch;
 class AliMoreModulesConstruction;
 class AliMagneticField;
 
@@ -25,9 +28,12 @@ class G4VPhysicalVolume;
 
 class AliModulesComposition : public G4VUserDetectorConstruction
 {
-  typedef G4RWTPtrOrderedVector<AliDetSwitch>  AliDetSwitchRWVector;
-  typedef G4RWTPtrOrderedVector<AliSingleModuleConstruction>
-                                AliSingleModuleConstructionRWVector; 
+  typedef G4std::vector<AliDetSwitch*>    DetSwitchVector;
+  typedef DetSwitchVector::iterator       DetSwitchIterator;
+  typedef DetSwitchVector::const_iterator DetSwitchConstIterator;
+
+  typedef G4std::vector<AliSingleModuleConstruction*> SingleModuleVector;
+  typedef SingleModuleVector::iterator                SingleModuleIterator;    
 
   public:
     AliModulesComposition();
@@ -37,10 +43,10 @@ class AliModulesComposition : public G4VUserDetectorConstruction
 
     // methods
     virtual G4VPhysicalVolume* Construct() = 0;
-    void SwitchDetOn(G4String moduleNameVer);
-    void SwitchDetOn(G4String moduleName, G4int version);
-    void SwitchDetOnDefault(G4String moduleName);
-    void SwitchDetOff(G4String moduleName);
+    void SwitchDetOn(const G4String& moduleNameVer);
+    void SwitchDetOn(const G4String& moduleName, G4int version);
+    void SwitchDetOnDefault(const G4String& moduleName);
+    void SwitchDetOff(const G4String& moduleName);
     void PrintSwitchedDets() const;
     void PrintAvailableDets() const;
     void PrintMaterials() const;
@@ -48,20 +54,16 @@ class AliModulesComposition : public G4VUserDetectorConstruction
 
     // set methods
     void SetMagField(G4double fieldValue);
-    void SetAllLVSensitive(G4bool allLVSensitive);
-    void SetForceAllLVSensitive(G4bool allLVSensitive);
     void SetReadGeometry(G4bool readGeometry);
     void SetWriteGeometry(G4bool writeGeometry);
     void SetProcessConfigToModules(G4bool processConfig);
     
     // get methods
-    const G4RWTPtrOrderedVector<AliDetSwitch>& GetDetSwitchVector() const;
     G4String GetSwitchedDetsList() const;
     G4String GetAvailableDetsList() const;
     G4String GetAvailableDetsListWithCommas() const;
     G4String GetDetNamesList() const;
     G4String GetDetNamesListWithCommas() const;
-    //G4ThreeVector GetMagField() const;
     
   protected:
     AliModulesComposition(const AliModulesComposition& right);
@@ -71,45 +73,37 @@ class AliModulesComposition : public G4VUserDetectorConstruction
 
     // methods  
     void AddDetSwitch(AliDetSwitch* detSwitch);
-    void AddSingleModuleConstruction(G4String moduleName, G4int version,
+    void AddSingleModuleConstruction(const G4String& name, G4int version,
                                      AliModuleType moduleType = kDetector);
-    void AddMoreModuleConstruction(G4String moduleName, G4int version,
+    void AddMoreModuleConstruction(const G4String& name, G4int version,
                                      AliModuleType moduleType = kDetector);
     void ConstructModules();
 
+    // get methods
+    AliDetSwitch* GetDetSwitch(const G4String& moduleName) const;
+
+    // data members
+    DetSwitchVector  fDetSwitchVector; //vector of AliDetSwitch
+    
   private:    
     // methods
     void SetReadGeometryToModules(G4bool readGeometry);
     void SetWriteGeometryToModules(G4bool writeGeometry);
-    void SetAllLVSensitiveToModules(G4bool allSensitive);
 
     // data members
-    AliDetSwitchRWVector                fDetSwitchVector;          //..         
-                                          //vector of AliDetSwitch
-    AliSingleModuleConstructionRWVector fModuleConstructionVector; //..
-                                         //vector of 
-                                         //AliSingleModuleConstruction 
-    AliMoreModulesConstruction*         fMoreModulesConstruction;  //..
-                                          //AliMoreModulesConstruction
-
-    AliMagneticField*                fMagneticField;  //magnetic field
-    AliModulesCompositionMessenger*  fMessenger;      //messenger
-    G4bool  fAllLVSensitive;      //option applied to all modules   
-                                  //(overriden by modules specific setting)
-    G4bool  fForceAllLVSensitive; //option applied to all modules 
-                                  //(overrides modules specific setting)
+    SingleModuleVector           fModuleConstructionVector; //vector of 
+                                         //single module constructions 
+    AliMoreModulesConstruction*  fMoreModulesConstruction;  //..
+                                          //dependent modules construction
+
+    AliMagneticField*               fMagneticField;  //magnetic field
+    AliModulesCompositionMessenger  fMessenger;      //messenger
     G4bool  fReadGeometry;        //option applied to all modules
-    G4bool  fWriteGeometry;       //option applied to all modules  
+    G4bool  fWriteGeometry;       //option applied to all modules     
 };
 
 // inline methods
 
-inline void AliModulesComposition::SetAllLVSensitive(G4bool allLVSensitive)
-{ fAllLVSensitive = allLVSensitive; }
-
-inline void AliModulesComposition::SetForceAllLVSensitive(G4bool forceAllLVSensitive)
-{ fForceAllLVSensitive = forceAllLVSensitive; }
-
 inline void AliModulesComposition::SetReadGeometry(G4bool readGeometry)
 { fReadGeometry = readGeometry; }