**************************************************************************/
// $Id$
-//
-// ----------------------------
+
+//-----------------------------------------------------------------------------
// Class AliMUONGeometryBuilder
// ----------------------------
// Manager class for geometry construction via geometry builders.
// Author: Ivana Hrivnacova, IPN Orsay
+//-----------------------------------------------------------------------------
#include "AliMUONGeometryBuilder.h"
#include "AliMUONVGeometryBuilder.h"
#include "AliMpDEManager.h"
#include "AliModule.h"
+#include "AliSimulation.h"
#include "AliLog.h"
#include "AliRun.h"
// Create geometry + envelopes
//
builder->CreateGeometry();
+ builder->SetVolumes();
if (!fAlign) builder->SetTransformations();
// Place module volumes and envelopes
}
//_____________________________________________________________________________
-void AliMUONGeometryBuilder::SetAlign(AliMUONVGeometryBuilder* builder)
+void AliMUONGeometryBuilder::SetAlignToBuilder(AliMUONVGeometryBuilder* builder) const
{
/// Set align option to all geometry modules associated with the builder
if (geomBuilder->ApplyGlobalTransformation())
geomBuilder->SetReferenceFrame(fGlobalTransformation);
- SetAlign(geomBuilder);
+ SetAlignToBuilder(geomBuilder);
}
//______________________________________________________________________________
// Get the builder
AliMUONVGeometryBuilder* builder
= (AliMUONVGeometryBuilder*)fGeometryBuilders->At(i);
-
- // Create detection elements from built geometry
- builder->CreateDetElements();
- }
+
+ // Update detection elements from built geometry
+ Bool_t create = ! fAlign;
+ builder->UpdateDetElements(create);
+ }
}
//_____________________________________________________________________________
/// 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();
}
}
}
+//________________________________________________________________
+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)
AliMUONVGeometryBuilder* builder
= (AliMUONVGeometryBuilder*)fGeometryBuilders->At(i);
- SetAlign(builder);
+ SetAlignToBuilder(builder);
}
}
AliMUONVGeometryBuilder* builder
= (AliMUONVGeometryBuilder*)fGeometryBuilders->At(i);
- SetAlign(builder);
+ SetAlignToBuilder(builder);
}
}