+
+//_____________________________________________________________________________
+void AliEMCALv0::AddAlignableVolumes() const
+{
+ //
+ // Create entries for alignable volumes associating the symbolic volume
+ // name with the corresponding volume path. Needs to be synchronized with
+ // eventual changes in the geometry.
+ //
+
+ TString vpstr1 = "ALIC_1/XEN1_1/SMOD_";
+ TString snstr1 = "EMCAL/FullSupermodule";
+ TString volpath, symname;
+
+ //Int_t nSMod = ((AliEMCALGeometry*)GetGeometry())->GetNumberOfSuperModules();
+ //could use this, but what happens if it is > 10?
+
+ for (Int_t smodnum=0; smodnum < 10; smodnum++) {
+ symname = snstr1;
+ symname += (smodnum+1);
+ volpath = vpstr1;
+ volpath += (smodnum+1);
+ if(!gGeoManager->SetAlignableEntry(symname.Data(),volpath.Data()))
+ AliFatal("Unable to set alignable entry!!");
+ }
+
+ TString gn( ((AliEMCALGeometry*)GetGeometry())->GetName() );
+ gn.ToUpper();
+ if(gn.Contains("110DEG")) {
+ TString vpstr2 = "ALIC_1/XEN1_1/SM10_";
+ TString snstr2 = "EMCAL/HalfSupermodule";
+ for (Int_t smodnum=0; smodnum < 2; smodnum++) {
+ symname = snstr2;
+ symname += (smodnum+1);
+ volpath = vpstr2;
+ volpath += (smodnum+1);
+ if(!gGeoManager->SetAlignableEntry(symname.Data(),volpath.Data()))
+ AliFatal("Unable to set alignable entry!!");
+ }
+ }
+
+}
+