]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONGeometryTransformer.cxx
- Removed not implemented methods AddData(), GetGlobalTriggerPattern
[u/mrichter/AliRoot.git] / MUON / AliMUONGeometryTransformer.cxx
index 429458e63337811c007f14ff3ebdade1868758a1..9665ec067b4540315f13a8c2327269d544b7cc16 100644 (file)
@@ -478,11 +478,13 @@ AliMUONGeometryTransformer::ReadTransformations2(const TString& fileName)
   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;
 }
 
@@ -868,7 +870,7 @@ void  AliMUONGeometryTransformer::AddMisAlignDetElement(Int_t detElemId,
 //_____________________________________________________________________________
 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.");
@@ -881,8 +883,13 @@ void AliMUONGeometryTransformer::AddAlignableVolumes() const
       = (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;
 
@@ -894,8 +901,13 @@ void AliMUONGeometryTransformer::AddAlignableVolumes() const
         = (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;
     }  
@@ -954,6 +966,16 @@ TClonesArray* AliMUONGeometryTransformer::CreateZeroAlignmentData() const
   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,