X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;ds=sidebyside;f=MUON%2FAliMUONGeometryBuilder.h;h=a55311ad8b45976232236422e9dba8643a996033;hb=6c8aa51815fa8e319cc3e540c5a7b7f9b43b934e;hp=4408e2a100573e5b550d9191d88d1477856c02be;hpb=9a6c488e7f7765bddc2ece8cbfdd14da44fc4227;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONGeometryBuilder.h b/MUON/AliMUONGeometryBuilder.h index 4408e2a1005..a55311ad8b4 100644 --- a/MUON/AliMUONGeometryBuilder.h +++ b/MUON/AliMUONGeometryBuilder.h @@ -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 #include -#include "AliMUONGeometry.h" - class TObjArray; class AliModule; @@ -37,14 +37,18 @@ 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 UpdateInternalGeometry(); + + void WriteSVMaps(); + void WriteSVMaps(const TString& fileName, + Bool_t rebuild = true, Bool_t writeEnvelopes = true); // Geometry parametrisation const AliMUONGeometry* GetGeometry() const; @@ -52,42 +56,64 @@ 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: + // static methods + static const TString& GetDefaultTransformFileName(); + static const TString& GetDefaultSVMapFileName(); + static const TString& GetOutFileNameExtension(); + // 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); - void SetAlign(AliMUONVGeometryBuilder* builder); + const char* only, Bool_t makeAssembly = false) const; + void CreateGeometryWithTGeo(); + void CreateGeometryWithoutTGeo(); + void SetAlignToBuilder(AliMUONVGeometryBuilder* builder) const; // 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 + GetOutFileNameExtension()); } + +/// 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; }