]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STRUCT/AliFRAMEv2.cxx
ZDC scalers (Chiara)
[u/mrichter/AliRoot.git] / STRUCT / AliFRAMEv2.cxx
index acb185741d6bf43e9e0603673bec318690afca33..7a51b4a7f00126fb4390c75d046de26366201aa4 100644 (file)
 //  Author: A.Morsch
 //------------------------------------------------------------------------
 
-#include <TSystem.h>
-#include <TVirtualMC.h>
-#include <TString.h>
-#include <TGeoManager.h>
 #include <TGeoBBox.h>
+#include <TGeoCompositeShape.h>
+#include <TGeoGlobalMagField.h>
+#include <TGeoManager.h>
 #include <TGeoMatrix.h>
 #include <TGeoPgon.h>
-#include <TGeoCompositeShape.h>
+#include <TString.h>
+#include <TSystem.h>
+#include <TVirtualMC.h>
+
 #include "AliFRAMEv2.h"
 #include "AliMagF.h"
 #include "AliRun.h"
@@ -172,6 +174,7 @@ void AliFRAMEv2::CreateGeometry()
   trB77B->RegisterYourself();
   TGeoCompositeShape* shB77 = new TGeoCompositeShape("shB77", "shB77A+shB77B:trB77A+shB77B:trB77B");
   TGeoVolume* voB77 = new TGeoVolume("B077", shB77, gGeoManager->GetMedium("FRAME_Air"));
+  voB77->SetName("B077"); // just to avoid a warning
   gMC->Gspos("B077", 1, "ALIC", 0., 0., 0., 0, "ONLY");
 //
 // Reference plane #1 for TRD
@@ -1240,7 +1243,27 @@ void AliFRAMEv2::CreateGeometry()
 
 }
 
+//___________________________________________
+void AliFRAMEv2::AddAlignableVolumes() const
+{
+  // Add the 18 spaceframe sectors as alignable volumes
+  TString basesymname("FRAME/Sector");
+  TString basevolpath("ALIC_1/B077_1/BSEGMO");
+  TString symname;
+  TString volpath;
+  
+  for(Int_t sec=0; sec<18; sec++)
+  {
+      symname = basesymname;
+      symname += sec;
+      volpath = basevolpath;
+      volpath += sec;
+      volpath += "_1";
+      if(!gGeoManager->SetAlignableEntry(symname.Data(),volpath.Data()))
+       AliFatal(Form("Alignable entry %s not created. Volume path %s not valid",
+             symname.Data(),volpath.Data()));
+  }
+}
 
 //___________________________________________
 void AliFRAMEv2::CreateMaterials()
@@ -1253,8 +1276,8 @@ void AliFRAMEv2::CreateMaterials()
   tmaxfd = -20.;      // Maximum angle due to field deflection 
   deemax = -.3;       // Maximum fractional energy loss, DLS 
   stmin  = -.8;
-  Int_t   isxfld = gAlice->Field()->Integ();
-  Float_t sxmgmx = gAlice->Field()->Max();
+  Int_t   isxfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ();
+  Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max();
 
 
   Float_t asteel[4] = { 55.847,51.9961,58.6934,28.0855 };
@@ -1334,7 +1357,7 @@ void AliFRAMEv2::StepManager()
 
   
 
-void AliFRAMEv2::MakeHeatScreen(char* name, Float_t dyP, Int_t rot1, Int_t rot2)
+void AliFRAMEv2::MakeHeatScreen(const char* name, Float_t dyP, Int_t rot1, Int_t rot2)
 {
     // Heat screen panel
     //
@@ -1414,7 +1437,7 @@ void AliFRAMEv2::MakeHeatScreen(char* name, Float_t dyP, Int_t rot1, Int_t rot2)
 
 
 
-void AliFRAMEv2::WebFrame(char* name, Float_t dHz, Float_t theta0, Float_t phi0)
+void AliFRAMEv2::WebFrame(const char* name, Float_t dHz, Float_t theta0, Float_t phi0)
 {
     //
     // Create a web frame element