]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONVGeometryBuilder.h
Coverity fix for uninitialized variables and check for returned null value
[u/mrichter/AliRoot.git] / MUON / AliMUONVGeometryBuilder.h
index 4b1de52632943c550fd1089dd1f1ddfc8a3d8430..c2a21a6c4ce0bceed6fc94dcb1a0fd53f60a53b6 100644 (file)
@@ -10,8 +10,8 @@
 ///
 /// \author Ivana Hrivnacova, IPN Orsay
 
-#ifndef ALI_MUON_V_GEOMETRY_BUILDER_H
-#define ALI_MUON_V_GEOMETRY_BUILDER_H
+#ifndef ALI_MUONV_GEOMETRY_BUILDER_H
+#define ALI_MUONV_GEOMETRY_BUILDER_H
 
 #include <fstream>
 
@@ -25,25 +25,19 @@ class TGeoCombiTrans;
 
 class AliMUONGeometryModule;
 class AliMUONGeometryEnvelopeStore;
-class AliMUONGeometryStore;
 class AliMUONStringIntMap;
 
 class AliMUONVGeometryBuilder : public TObject
 {
   public:
-    AliMUONVGeometryBuilder(Int_t geometryModuleId1,
-                            Int_t geometryModuleId2 = -1,
-                            Int_t geometryModuleId3 = -1,
-                            Int_t geometryModuleId4 = -1,
-                            Int_t geometryModuleId5 = -1,
-                            Int_t geometryModuleId6 = -1);
+    AliMUONVGeometryBuilder(Int_t firstModuleId, Int_t nofModules);
     AliMUONVGeometryBuilder();
     virtual ~AliMUONVGeometryBuilder();
   
     // methods
     void  SetReferenceFrame(const TGeoCombiTrans& referenceFrame);
     void  RebuildSVMaps(Bool_t withEnvelopes = true) const;
-    void  CreateDetElements() const;
+    void  UpdateDetElements(Bool_t create) const;
 
                   /// Function to be overriden in a concrete chamber/station
                  /// geometry builder class.
@@ -61,6 +55,12 @@ class AliMUONVGeometryBuilder : public TObject
                  /// usind the provided transformation.
     virtual void CreateGeometry() = 0;
 
+                  /// Function to be overriden in a concrete chamber/station
+                 /// geometry class. \n
+                 /// The volume name for each geometry module, its virtuality
+                  /// and eventually the mother volume name should be defined
+    virtual void SetVolumes() = 0;
+
                   /// Function to be overriden in a concrete chamber/station
                  /// geometry class. \n
                  /// The transformation of each chamber(s) wrt ALICE
@@ -87,13 +87,11 @@ class AliMUONVGeometryBuilder : public TObject
                  // via moduleId
 
   protected:
-    AliMUONVGeometryBuilder(const AliMUONVGeometryBuilder& rhs);
-    AliMUONVGeometryBuilder& operator = (const AliMUONVGeometryBuilder& rhs);
-
     // methods
     AliMUONGeometryModule*         GetGeometry(Int_t moduleId) const;
     AliMUONGeometryEnvelopeStore*  GetEnvelopes(Int_t moduleId) const;
     AliMUONStringIntMap*           GetSVMap(Int_t moduleId) const;
+    Int_t                          GetModuleId(const TString& envName) const;
     
     // set module transformation
     void SetTranslation(Int_t moduleId, 
@@ -109,6 +107,12 @@ class AliMUONVGeometryBuilder : public TObject
     
   private:
     //methods
+    
+    /// Not implemented
+    AliMUONVGeometryBuilder(const AliMUONVGeometryBuilder& rhs);
+    /// Not implemented
+    AliMUONVGeometryBuilder& operator = (const AliMUONVGeometryBuilder& rhs);
+
     TGeoHMatrix ConvertTransform(const TGeoHMatrix& transform) const;
     TGeoHMatrix ConvertDETransform(const TGeoHMatrix& transform) const;
     TString     ComposePath(const TString& volName, Int_t copyNo) const; 
@@ -135,4 +139,4 @@ inline Int_t  AliMUONVGeometryBuilder::NofGeometries() const
 inline AliMUONGeometryModule* AliMUONVGeometryBuilder::Geometry(Int_t i) const
 { return (AliMUONGeometryModule*)fGeometryModules->At(i); }
 
-#endif //ALI_MUON_V_GEOMETRY_BUILDER_H
+#endif //ALI_MUONV_GEOMETRY_BUILDER_H