filePath += fileName;
// Load root geometry
- TGeoManager* tgeoManager = TGeoManager::Import(fileName);
+ TGeoManager* tgeoManager = gGeoManager;
+ if (!tgeoManager)
+ tgeoManager = TGeoManager::Import(fileName);
// Retrieve matrices
LoadTransforms(tgeoManager);
-
+
return true;
}
//_____________________________________________________________________________
void AliMUONGeometryTransformer::AddAlignableVolumes() const
{
-/// Set symbolic names to alignable objects to TGeo
+/// Set symbolic names and matrices to alignable objects to TGeo
if ( ! gGeoManager ) {
AliWarning("TGeoManager not defined.");
= (AliMUONGeometryModuleTransformer*)fModuleTransformers->At(i);
// Set module symbolic name
- gGeoManager->SetAlignableEntry(GetModuleSymName(module->GetModuleId()),
- module->GetVolumePath());
+ TGeoPNEntry* pnEntry
+ = gGeoManager->SetAlignableEntry(GetModuleSymName(module->GetModuleId()),
+ module->GetVolumePath());
+ // Set module matrix
+ pnEntry->SetMatrix(new TGeoHMatrix(*module->GetTransformation()));
+ // the matrix will be deleted via TGeoManager
+
//cout << "Module sym name: " << GetModuleSymName(module->GetModuleId())
// << " volPath: " << module->GetVolumePath() << endl;
= (AliMUONGeometryDetElement*)detElements->GetObject(j);
// Set detection element symbolic name
- gGeoManager->SetAlignableEntry(GetDESymName(detElement->GetId()),
- detElement->GetVolumePath());
+ TGeoPNEntry* pnEntry
+ = gGeoManager->SetAlignableEntry(GetDESymName(detElement->GetId()),
+ detElement->GetVolumePath());
+ // Set detection element matrix
+ pnEntry->SetMatrix(new TGeoHMatrix(*detElement->GetGlobalTransformation()));
+ // the matrix will be deleted via TGeoManager
+
//cout << "DE name: " << GetDESymName(detElement->GetId())
// << " volPath: " << detElement->GetVolumePath() << endl;
}
return array;
}
+//_____________________________________________________________________________
+void AliMUONGeometryTransformer::ClearMisAlignmentData()
+{
+/// Clear the array of misalignment data
+
+ if ( ! fMisAlignArray ) return;
+
+ fMisAlignArray->Delete();
+}
+
//_____________________________________________________________________________
void AliMUONGeometryTransformer::Global2Local(Int_t detElemId,
Float_t xg, Float_t yg, Float_t zg,