#include "AliGeomManager.h"
#include "AliLog.h"
#include "AliAlignObj.h"
-#include "AliAlignObjAngles.h"
+#include "AliAlignObjParams.h"
#include "AliCDBManager.h"
#include "AliCDBStorage.h"
#include "AliCDBEntry.h"
//_____________________________________________________________________________
void AliGeomManager::LoadGeometry(const char *geomFileName)
{
-// initialization
+ // initialization
+ // Load geometry either from a file
+ // or from the corresponding CDB entry
fgGeometry = NULL;
if (geomFileName && (!gSystem->AccessPathName(geomFileName))) { // gemotry.root exists
InitOrigMatricesLUT();
}
+//_____________________________________________________________________________
+void AliGeomManager::SetGeometry(TGeoManager *geom)
+{
+ // Load already active geometry
+ if (!geom) AliFatalClass("Pointer to the active geometry is 0x0!");
+
+ fgGeometry = geom;
+
+ InitSymNamesLUT();
+ InitPNEntriesLUT();
+ InitOrigMatricesLUT();
+}
+
//_____________________________________________________________________________
AliGeomManager::AliGeomManager():
TObject()
fgAlignObjs[iLayer-kFirstLayer] = new AliAlignObj*[LayerSize(iLayer)];
for (Int_t iModule = 0; iModule < LayerSize(iLayer); iModule++) {
UShort_t volid = LayerToVolUID(iLayer,iModule);
- fgAlignObjs[iLayer-kFirstLayer][iModule] = new AliAlignObjAngles("",volid,0,0,0,0,0,0,kTRUE);
+ fgAlignObjs[iLayer-kFirstLayer][iModule] = new AliAlignObjParams("",volid,0,0,0,0,0,0,kTRUE);
const char *symname = SymName(volid);
if (!GetFromGeometry(symname, *fgAlignObjs[iLayer-kFirstLayer][iModule]))
AliErrorClass(Form("Failed to extract the alignment object for the volume (ID=%d and path=%s) !",volid,symname));
TString strSDD = "ITS/SDD";
TString strSSD = "ITS/SSD";
TString strStave = "/Stave";
+ TString strHalfStave = "/HalfStave";
TString strLadder = "/Ladder";
TString strSector = "/Sector";
TString strSensor = "/Sensor";
TString strEntryName1;
TString strEntryName2;
-
+ TString strEntryName3;
/********************* SPD layer1 ***********************/
{
modnum = 0;
-
- for(Int_t c1 = 1; c1<=10; c1++){
+
+ for(Int_t cSect = 0; cSect<10; cSect++){
strEntryName1 = strSPD;
strEntryName1 += 0;
strEntryName1 += strSector;
- strEntryName1 += (c1-1);
- for(Int_t c2 =1; c2<=2; c2++){
+ strEntryName1 += cSect;
+
+ for(Int_t cStave =0; cStave<2; cStave++){
strEntryName2 = strEntryName1;
strEntryName2 += strStave;
- strEntryName2 += (c2-1);
- for(Int_t c3 =1; c3<=4; c3++){
- symname = strEntryName2;
- symname += strLadder;
- symname += (c3-1);
- fgSymName[kSPD1-kFirstLayer][modnum] = symname.Data();
- modnum++;
+ strEntryName2 += cStave;
+
+ for (Int_t cHS=0; cHS<2; cHS++) {
+ strEntryName3 = strEntryName2;
+ strEntryName3 += strHalfStave;
+ strEntryName3 += cHS;
+
+ for(Int_t cLad =0; cLad<2; cLad++){
+ symname = strEntryName3;
+ symname += strLadder;
+ symname += cLad+cHS*2;
+ fgSymName[kSPD1-kFirstLayer][modnum] = symname.Data();
+ modnum++;
+ }
}
}
}
{
modnum = 0;
- for(Int_t c1 = 1; c1<=10; c1++){
+ for(Int_t cSect = 0; cSect<10; cSect++){
strEntryName1 = strSPD;
strEntryName1 += 1;
strEntryName1 += strSector;
- strEntryName1 += (c1-1);
- for(Int_t c2 =1; c2<=4; c2++){
+ strEntryName1 += cSect;
+
+ for(Int_t cStave =0; cStave<4; cStave++){
strEntryName2 = strEntryName1;
strEntryName2 += strStave;
- strEntryName2 += (c2-1);
- for(Int_t c3 =1; c3<=4; c3++){
- symname = strEntryName2;
- symname += strLadder;
- symname += (c3-1);
- fgSymName[kSPD2-kFirstLayer][modnum] = symname.Data();
- modnum++;
+ strEntryName2 += cStave;
+
+ for (Int_t cHS=0; cHS<2; cHS++) {
+ strEntryName3 = strEntryName2;
+ strEntryName3 += strHalfStave;
+ strEntryName3 += cHS;
+
+ for(Int_t cLad =0; cLad<2; cLad++){
+ symname = strEntryName3;
+ symname += strLadder;
+ symname += cLad+cHS*2;
+ fgSymName[kSPD2-kFirstLayer][modnum] = symname.Data();
+ modnum++;
+ }
}
}
}
}
+// /********************* SPD layer1 ***********************/
+// {
+// modnum = 0;
+
+// for(Int_t c1 = 1; c1<=10; c1++){
+// strEntryName1 = strSPD;
+// strEntryName1 += 0;
+// strEntryName1 += strSector;
+// strEntryName1 += (c1-1);
+// for(Int_t c2 =1; c2<=2; c2++){
+// strEntryName2 = strEntryName1;
+// strEntryName2 += strStave;
+// strEntryName2 += (c2-1);
+// for(Int_t c3 =1; c3<=4; c3++){
+// symname = strEntryName2;
+// symname += strLadder;
+// symname += (c3-1);
+// fgSymName[kSPD1-kFirstLayer][modnum] = symname.Data();
+// modnum++;
+// }
+// }
+// }
+// }
+
+// /********************* SPD layer2 ***********************/
+// {
+// modnum = 0;
+
+// for(Int_t c1 = 1; c1<=10; c1++){
+// strEntryName1 = strSPD;
+// strEntryName1 += 1;
+// strEntryName1 += strSector;
+// strEntryName1 += (c1-1);
+// for(Int_t c2 =1; c2<=4; c2++){
+// strEntryName2 = strEntryName1;
+// strEntryName2 += strStave;
+// strEntryName2 += (c2-1);
+// for(Int_t c3 =1; c3<=4; c3++){
+// symname = strEntryName2;
+// symname += strLadder;
+// symname += (c3-1);
+// fgSymName[kSPD2-kFirstLayer][modnum] = symname.Data();
+// modnum++;
+// }
+// }
+// }
+// }
+
+
+
+
+
+
+
+
+
/********************* SDD layer1 ***********************/
{
modnum=0;