X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONGeometryBuilder.h;h=07185a9f0d65636127a8e422245e7c176bc7d284;hb=d5e9edb3e14a89408eca2d2f3a4b412d9b565ea7;hp=318ddab97bc13e67fbd1bef4731f1d95c1f5b682;hpb=8618c022735ab62da1eac0b583ba2da0147ab7db;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONGeometryBuilder.h b/MUON/AliMUONGeometryBuilder.h index 318ddab97bc..07185a9f0d6 100644 --- a/MUON/AliMUONGeometryBuilder.h +++ b/MUON/AliMUONGeometryBuilder.h @@ -7,11 +7,13 @@ /// \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 @@ -35,17 +37,25 @@ class AliMUONGeometryBuilder : public TObject const TGeoMatrix& m3, const TGeoMatrix& m4); // methods + // void AddBuilder(AliMUONVGeometryBuilder* geomBuilder); void CreateGeometry(); void CreateMaterials(); + void InitGeometry(); - void WriteTransformations(); - void WriteSVMaps(Bool_t rebuild = true); - void SetGlobalTransformation(const TGeoCombiTrans& transform); + void InitGeometry(const TString& svmapFileName); + + void WriteSVMaps(); + void WriteSVMaps(const TString& fileName, Bool_t rebuild = true); + + // Geometry parametrisation + const AliMUONGeometry* GetGeometry() const; + const AliMUONGeometryTransformer* GetTransformer() const; // 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: AliMUONGeometryBuilder(const AliMUONGeometryBuilder& right); @@ -55,23 +65,52 @@ class AliMUONGeometryBuilder : public TObject // 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 - - 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; }