]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONGeometryBuilder.h
New class AliESDEvent, backward compatibility with the old AliESD (Christian)
[u/mrichter/AliRoot.git] / MUON / AliMUONGeometryBuilder.h
index 4408e2a100573e5b550d9191d88d1477856c02be..a6b8a8c8f3280b01d07fd73dc62914bc273cb0db 100644 (file)
@@ -7,16 +7,16 @@
 /// \class AliMUONGeometryBuilder
 /// \brief Manager class for geometry construction via geometry builders.
 ///
-/// Author: Ivana Hrivnacova, IPN Orsay
+/// \author Ivana Hrivnacova, IPN Orsay
 
 #ifndef ALI_MUON_GEOMETRY_BUILDER_H
 #define ALI_MUON_GEOMETRY_BUILDER_H
 
+#include "AliMUONGeometry.h"
+
 #include <TObject.h>
 #include <TGeoMatrix.h>
 
-#include "AliMUONGeometry.h"
-
 class TObjArray;
 
 class AliModule;
@@ -37,14 +37,17 @@ class AliMUONGeometryBuilder : public TObject
                                 const TGeoMatrix& m3, const TGeoMatrix& m4); 
 
     // methods
+    //
     void  AddBuilder(AliMUONVGeometryBuilder* geomBuilder);
     void  CreateGeometry();
     void  CreateMaterials();
-    void  InitGeometry(const TString& svmapFileName = "svmap.dat");
-    void  ReadTransformations(const TString& fileName = "transform.dat");
-    void  WriteTransformations(const TString& fileName = "transform.dat.out");
-    void  WriteSVMaps(Bool_t rebuild = true, 
-                      const TString& fileName = "svmap.dat.out");
+
+    void  InitGeometry();
+    void  InitGeometry(const TString& svmapFileName);
+
+    void  WriteSVMaps();
+    void  WriteSVMaps(const TString& fileName, 
+                      Bool_t rebuild = true, Bool_t writeEnvelopes = true);
     
     // Geometry parametrisation
     const AliMUONGeometry*            GetGeometry() const;
@@ -52,42 +55,65 @@ class AliMUONGeometryBuilder : public TObject
 
     // Alignement
     virtual Bool_t  GetAlign() const;
-    virtual void    SetAlign(Bool_t align);
+    virtual void    SetAlign(Bool_t align = true);
+    virtual void    SetAlign(const TString& fileName, Bool_t align = true);
  
   protected:
+    /// Not implemented
     AliMUONGeometryBuilder(const AliMUONGeometryBuilder& right);
+    /// Not implemented
     AliMUONGeometryBuilder&  operator = (const AliMUONGeometryBuilder& right);
  
   private:
     // method
     void PlaceVolume(const TString& name, const TString& mName, Int_t copyNo, 
              const TGeoHMatrix& matrix, Int_t npar, Double_t* param,
-            const char* only) const;
-    void FillGlobalTransformations(AliMUONVGeometryBuilder* builder);
+            const char* only, Bool_t makeAssembly = false) const;
+    void CreateGeometryWithTGeo();
+    void CreateGeometryWithoutTGeo();
     void SetAlign(AliMUONVGeometryBuilder* builder);        
 
+    // static data members
+    static const TString  fgkDefaultVolPathsFileName;  ///< default volume paths file name                                        
+    static const TString  fgkDefaultTransformFileName; ///< default transformations file name                                     
+    static const TString  fgkDefaultSVMapFileName;     ///< default svmaps file name                                      
+    static const TString  fgkOutFileNameExtension;     ///< default output file name extension                                    
+
     // data members
-    AliModule*       fModule;              // the AliRoot module
-    Bool_t           fAlign;               // option to read transformations 
-                                           // from a file
-    TGeoCombiTrans   fGlobalTransformation;// global transformation 
-                                           // applied to the whole geometry 
-    TObjArray*       fGeometryBuilders;    // list of Geometry Builders
-    AliMUONGeometry* fGeometry;            // geometry parametrisation
-
-  ClassDef(AliMUONGeometryBuilder,4)  // Geometry builder
+    AliModule*       fModule;              ///< the AliRoot module
+    Bool_t           fAlign;               ///< \brief option to read transformations 
+                                           /// from a file
+    TString          fTransformFileName;   ///< transformations file name                                         
+    TString          fSVMapFileName;       ///< svmaps file name                                          
+    TGeoCombiTrans   fGlobalTransformation;///< \brief global transformation 
+                                           /// applied to the whole geometry 
+    TObjArray*       fGeometryBuilders;    ///< list of Geometry Builders
+    AliMUONGeometry* fGeometry;            ///< geometry parametrisation
+
+  ClassDef(AliMUONGeometryBuilder,6)  // Geometry builder
 };
 
 // inline functions
 
+/// Initialize geometry
+inline void  AliMUONGeometryBuilder::InitGeometry()
+{ InitGeometry(fSVMapFileName); }
+
+/// Write sensitive volume maps
+inline void  AliMUONGeometryBuilder::WriteSVMaps()
+{ WriteSVMaps(fSVMapFileName + fgkOutFileNameExtension); }
+
+/// Return geometry parametrisation
 inline 
 const AliMUONGeometry* AliMUONGeometryBuilder::GetGeometry() const
 { return fGeometry; }
 
+/// Return geometry transformer
 inline 
 const AliMUONGeometryTransformer* AliMUONGeometryBuilder::GetTransformer() const
 { return fGeometry->GetTransformer(); }
 
+/// Return option for reading transformations from a file
 inline Bool_t  AliMUONGeometryBuilder::GetAlign() const
 { return fAlign; }