X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONGeometryBuilder.cxx;h=7fbd5aabb9bd4e2e53ded290090f064a2e47b0e8;hb=e95d49427b8bf389628e6b4ccfa42a4aa1cb7167;hp=c17062c7effc9a11adfc404015bb3e0423941454;hpb=b96f7067073d736140204422008b9b40580c7f12;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONGeometryBuilder.cxx b/MUON/AliMUONGeometryBuilder.cxx index c17062c7eff..7fbd5aabb9b 100644 --- a/MUON/AliMUONGeometryBuilder.cxx +++ b/MUON/AliMUONGeometryBuilder.cxx @@ -36,6 +36,7 @@ #include "AliMpDEManager.h" #include "AliModule.h" +#include "AliSimulation.h" #include "AliLog.h" #include "AliRun.h" @@ -43,18 +44,39 @@ #include #include -// static data members - -const TString AliMUONGeometryBuilder::fgkDefaultVolPathsFileName = "volpath.dat"; -const TString AliMUONGeometryBuilder::fgkDefaultTransformFileName = "transform.dat"; -const TString AliMUONGeometryBuilder::fgkDefaultSVMapFileName = "svmap.dat"; -const TString AliMUONGeometryBuilder::fgkOutFileNameExtension = ".out"; - +using std::endl; /// \cond CLASSIMP ClassImp(AliMUONGeometryBuilder) /// \endcond +// // static functions +// + +//______________________________________________________________________________ +const TString& AliMUONGeometryBuilder::GetDefaultTransformFileName() +{ + ///< default transformations file name + static const TString kDefaultTransformFileName = "transform.dat"; + return kDefaultTransformFileName; +} + +//______________________________________________________________________________ +const TString& AliMUONGeometryBuilder::GetDefaultSVMapFileName() +{ + ///< default svmaps file name + static const TString kDefaultSVMapFileName = "svmap.dat"; + return kDefaultSVMapFileName; +} + +//______________________________________________________________________________ +const TString& AliMUONGeometryBuilder::GetOutFileNameExtension() +{ + ///< default output file name extension + static const TString kOutFileNameExtension = ".out"; + return kOutFileNameExtension; +} + //______________________________________________________________________________ TGeoHMatrix AliMUONGeometryBuilder::Multiply(const TGeoMatrix& m1, @@ -112,13 +134,17 @@ TGeoHMatrix AliMUONGeometryBuilder::Multiply(const TGeoMatrix& m1, return m1 * m2 * m3 * m4; } +// +// ctors, dtor +// + //______________________________________________________________________________ AliMUONGeometryBuilder::AliMUONGeometryBuilder(AliModule* module) : TObject(), fModule(module), fAlign(false), - fTransformFileName(fgkDefaultTransformFileName), - fSVMapFileName(fgkDefaultSVMapFileName), + fTransformFileName(GetDefaultTransformFileName()), + fSVMapFileName(GetDefaultSVMapFileName()), fGlobalTransformation(), fGeometryBuilders(0), fGeometry(0) @@ -491,7 +517,7 @@ void AliMUONGeometryBuilder::CreateGeometryWithoutTGeo() } //_____________________________________________________________________________ -void AliMUONGeometryBuilder::SetAlign(AliMUONVGeometryBuilder* builder) +void AliMUONGeometryBuilder::SetAlignToBuilder(AliMUONVGeometryBuilder* builder) const { /// Set align option to all geometry modules associated with the builder @@ -522,7 +548,7 @@ void AliMUONGeometryBuilder::AddBuilder(AliMUONVGeometryBuilder* geomBuilder) if (geomBuilder->ApplyGlobalTransformation()) geomBuilder->SetReferenceFrame(fGlobalTransformation); - SetAlign(geomBuilder); + SetAlignToBuilder(geomBuilder); } //______________________________________________________________________________ @@ -571,7 +597,7 @@ void AliMUONGeometryBuilder::InitGeometry(const TString& svmapFileName) /// Initialize geometry // Load alignement data from geometry if geometry is read from Root file - if ( gAlice->IsRootGeometry() ) { + if ( AliSimulation::Instance()->IsGeometryFromFile() ) { fAlign = true; fGeometry->GetTransformer()->LoadGeometryData(); } @@ -592,6 +618,15 @@ void AliMUONGeometryBuilder::InitGeometry(const TString& svmapFileName) } } +//________________________________________________________________ +void AliMUONGeometryBuilder::UpdateInternalGeometry() +{ +/// Update geometry after applying mis-alignment: +/// reload transformations in geometry builder. + + fGeometry->GetTransformer()->LoadTransformations(); +} + //______________________________________________________________________________ void AliMUONGeometryBuilder::WriteSVMaps(const TString& fileName, Bool_t rebuild, Bool_t writeEnvelopes) @@ -625,7 +660,7 @@ void AliMUONGeometryBuilder::SetAlign(Bool_t align) AliMUONVGeometryBuilder* builder = (AliMUONVGeometryBuilder*)fGeometryBuilders->At(i); - SetAlign(builder); + SetAlignToBuilder(builder); } } @@ -642,6 +677,6 @@ void AliMUONGeometryBuilder::SetAlign(const TString& fileName, Bool_t align) AliMUONVGeometryBuilder* builder = (AliMUONVGeometryBuilder*)fGeometryBuilders->At(i); - SetAlign(builder); + SetAlignToBuilder(builder); } }