]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - AliGeant4/AliModulesComposition.h
cuts on Q out, side, long added
[u/mrichter/AliRoot.git] / AliGeant4 / AliModulesComposition.h
index ca90b8d2a5fa8880767b9d23edf87e556e031a06..45efb7c82ba82a2b9732f84e04bccbd9b052fe5d 100644 (file)
@@ -6,35 +6,29 @@
 // Class AliModulesComposition
 // ---------------------------
 // Detector construction base class for building geometry
-// composed from independent modules with availability of interactive modules
-// setup.
+// composed from modules.
 
 #ifndef ALI_MODULES_COMPOSITION_H
 #define ALI_MODULES_COMPOSITION_H
 
 #include "AliModulesCompositionMessenger.h"
 #include "AliModuleType.h"
+#include "AliVerbose.h"
 
 #include <G4VUserDetectorConstruction.hh>
 #include <globals.hh>
 #include <g4std/vector>
 
-class AliSingleModuleConstruction;
-class AliDetSwitch;
-class AliMoreModulesConstruction;
+class AliModuleConstruction;
 class AliMagneticField;
 
 class G4VPhysicalVolume;
 
-class AliModulesComposition : public G4VUserDetectorConstruction
+class AliModulesComposition : public G4VUserDetectorConstruction,
+                              public AliVerbose
 {
-  typedef G4std::vector<AliDetSwitch*>    DetSwitchVector;
-  typedef DetSwitchVector::iterator       DetSwitchIterator;
-  typedef DetSwitchVector::const_iterator DetSwitchConstIterator;
-
-  typedef G4std::vector<AliSingleModuleConstruction*> SingleModuleVector;
-  typedef SingleModuleVector::iterator                SingleModuleIterator;    
-
+  typedef G4std::vector<AliModuleConstruction*> AliModuleConstructionVector;
+  
   public:
     AliModulesComposition();
     // --> protected
@@ -43,28 +37,13 @@ class AliModulesComposition : public G4VUserDetectorConstruction
 
     // methods
     virtual G4VPhysicalVolume* Construct() = 0;
-    void SwitchDetOn(const G4String& moduleNameVer);
-    void SwitchDetOn(const G4String& moduleName, G4int version);
-    void SwitchDetOnDefault(const G4String& moduleName);
-    void SwitchDetOnPPR(const G4String& moduleName);
-    void SwitchDetOff(const G4String& moduleName);
-    void PrintSwitchedDets() const;
-    void PrintAvailableDets() const;
-    void PrintMaterials() const;
-    void GenerateXMLGeometry() const;
+    virtual void GenerateXMLGeometry() const = 0;
+    virtual void PrintMaterials() const;
 
     // set methods
     void SetMagField(G4double fieldValue);
     void SetReadGeometry(G4bool readGeometry);
     void SetWriteGeometry(G4bool writeGeometry);
-    void SetProcessConfigToModules(G4bool processConfig);
-    
-    // get methods
-    G4String GetSwitchedDetsList() const;
-    G4String GetAvailableDetsList() const;
-    G4String GetAvailableDetsListWithCommas() const;
-    G4String GetDetNamesList() const;
-    G4String GetDetNamesListWithCommas() const;
     
   protected:
     AliModulesComposition(const AliModulesComposition& right);
@@ -73,34 +52,26 @@ class AliModulesComposition : public G4VUserDetectorConstruction
     AliModulesComposition& operator=(const AliModulesComposition& right);
 
     // methods  
-    void AddDetSwitch(AliDetSwitch* detSwitch);
-    void AddSingleModuleConstruction(const G4String& name, G4int version,
-                                     AliModuleType moduleType = kDetector);
-    void AddMoreModuleConstruction(const G4String& name, G4int version,
-                                     AliModuleType moduleType = kDetector);
+    void AddModule(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
+    void SetProcessConfigToModules(G4bool processConfig);
     
   private:    
     // methods
+    void Configure();
+    void CreateG4Geometry();
     void SetReadGeometryToModules(G4bool readGeometry);
     void SetWriteGeometryToModules(G4bool writeGeometry);
 
     // data members
-    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     
+    AliModuleConstructionVector     fModuleConstructionVector; //..
+                                        //vector of AliModuleConstruction
+    AliMagneticField*  fMagneticField;  //magnetic field
+    G4bool             fReadGeometry;   //option applied to all modules
+    G4bool             fWriteGeometry;  //option applied to all modules     
 };
 
 // inline methods