]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - AliGeant4/AliModulesComposition.h
Changed Print() to take into account the case where merging was used (AliRunDigitizer)
[u/mrichter/AliRoot.git] / AliGeant4 / AliModulesComposition.h
index d5650e250c0c8915f083c479e69837de323c48ba..45efb7c82ba82a2b9732f84e04bccbd9b052fe5d 100644 (file)
@@ -1,34 +1,34 @@
 // $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.
+// composed from modules.
 
 #ifndef ALI_MODULES_COMPOSITION_H
 #define ALI_MODULES_COMPOSITION_H
 
-#include "AliSingleModuleConstruction.h"
-#include "AliDetSwitch.h"
+#include "AliModulesCompositionMessenger.h"
 #include "AliModuleType.h"
+#include "AliVerbose.h"
 
 #include <G4VUserDetectorConstruction.hh>
 #include <globals.hh>
+#include <g4std/vector>
 
-#include <g4rw/tpordvec.h>
-
-class AliModulesCompositionMessenger;
-class AliMoreModulesConstruction;
+class AliModuleConstruction;
 class AliMagneticField;
 
 class G4VPhysicalVolume;
 
-class AliModulesComposition : public G4VUserDetectorConstruction
+class AliModulesComposition : public G4VUserDetectorConstruction,
+                              public AliVerbose
 {
-  typedef G4RWTPtrOrderedVector<AliDetSwitch>  AliDetSwitchRWVector;
-  typedef G4RWTPtrOrderedVector<AliSingleModuleConstruction>
-                                AliSingleModuleConstructionRWVector; 
-
+  typedef G4std::vector<AliModuleConstruction*> AliModuleConstructionVector;
+  
   public:
     AliModulesComposition();
     // --> protected
@@ -37,30 +37,13 @@ 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 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 SetAllLVSensitive(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);
@@ -69,40 +52,30 @@ class AliModulesComposition : public G4VUserDetectorConstruction
     AliModulesComposition& operator=(const AliModulesComposition& right);
 
     // methods  
-    void AddDetSwitch(AliDetSwitch* detSwitch);
-    void AddSingleModuleConstruction(G4String moduleName, G4int version,
-                                     AliModuleType moduleType = kDetector);
-    void AddMoreModuleConstruction(G4String moduleName, G4int version,
-                                     AliModuleType moduleType = kDetector);
+    void AddModule(const G4String& name, 
+                   G4int version,
+                   AliModuleType moduleType = kDetector);
     void ConstructModules();
-
+    void SetProcessConfigToModules(G4bool processConfig);
+    
   private:    
     // methods
+    void Configure();
+    void CreateG4Geometry();
     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
-    G4bool  fReadGeometry;   //option applied to all modules
-    G4bool  fWriteGeometry;  //option applied to all modules  
+    AliModulesCompositionMessenger  fMessenger;      //messenger
+    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
 
-inline void AliModulesComposition::SetAllLVSensitive(G4bool allLVSensitive)
-{ fAllLVSensitive = allLVSensitive; }
-
 inline void AliModulesComposition::SetReadGeometry(G4bool readGeometry)
 { fReadGeometry = readGeometry; }