X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PHOS%2FMakePHOSResMisAlignment.C;h=16ecbdf24e8599e53ccac50205d6b9391ea16702;hb=8169bb13d931cec41a805e0286a0844d15ae10df;hp=01aad316f93cbceb51b8487de27a854a0d76fd8e;hpb=1895a097f0a10aa676c803ff663b1c31836edddf;p=u%2Fmrichter%2FAliRoot.git diff --git a/PHOS/MakePHOSResMisAlignment.C b/PHOS/MakePHOSResMisAlignment.C index 01aad316f93..16ecbdf24e8 100644 --- a/PHOS/MakePHOSResMisAlignment.C +++ b/PHOS/MakePHOSResMisAlignment.C @@ -1,48 +1,70 @@ void MakePHOSResMisAlignment(){ // Create TClonesArray of residual misalignment objects for PHOS // - TClonesArray *array = new TClonesArray("AliAlignObjAngles",11); + const AliPHOSGeometry *phosGeom = AliPHOSGeometry::GetInstance("IHEP", "IHEP"); + if (!phosGeom) { + Error("MakePHOSFullMisAlignment", "Cannot obtain AliPHOSGeometry singleton\n"); + return; + } + + AliPHOSEMCAGeometry *emca = phosGeom->GetEMCAGeometry(); + TClonesArray *array = new TClonesArray("AliAlignObjAngles", 16 + phosGeom->GetNModules() * + emca->GetNStripX() * emca->GetNStripZ()); TClonesArray &alobj = *array; - AliAlignObjAngles a; - Double_t dpsi=0., dtheta=0., dphi=0.; Double_t displacement = 0.2; - Int_t iIndex=0; // let all modules have index=0 in a layer with no LUT AliAlignObj::ELayerID iLayer = AliAlignObj::kInvalidLayer; UShort_t volid = AliAlignObj::LayerToVolUID(iLayer,iIndex); - + + Int_t i=0 ; // Alignment for 5 PHOS modules - new(alobj[0]) AliAlignObjAngles("/ALIC_1/PHOS_1", + new(alobj[i++]) AliAlignObjAngles("PHOS/Module1", volid, -0.20, -0.1, +0.0, dpsi, dtheta, 0.2, kTRUE); - new(alobj[1]) AliAlignObjAngles("/ALIC_1/PHOS_2", + new(alobj[i++]) AliAlignObjAngles("PHOS/Module2", volid, -0.10, +0.0, -0.2, dpsi, dtheta, 0.2, kTRUE); - new(alobj[2]) AliAlignObjAngles("/ALIC_1/PHOS_3", + new(alobj[i++]) AliAlignObjAngles("PHOS/Module3", volid, 0.05, -0.1, 0.2, dpsi, dtheta, 0.0, kTRUE); - new(alobj[3]) AliAlignObjAngles("/ALIC_1/PHOS_4", + new(alobj[i++]) AliAlignObjAngles("PHOS/Module4", volid, +0.10, -0.0, -0.1, dpsi, dtheta, 0.1, kTRUE); - new(alobj[4]) AliAlignObjAngles("/ALIC_1/PHOS_5", + new(alobj[i++]) AliAlignObjAngles("PHOS/Module5", volid, +0.20, -0.1, 0.1, dpsi, dtheta, 0.2, kTRUE); + + Double_t dx=0., dy=0., dz=0. ; + // Alignment of CPV modules + new(alobj[i++]) AliAlignObjAngles("PHOS/Module1/CPV", + volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE); + new(alobj[i++]) AliAlignObjAngles("PHOS/Module2/CPV", + volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE); + new(alobj[i++]) AliAlignObjAngles("PHOS/Module3/CPV", + volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE); + new(alobj[i++]) AliAlignObjAngles("PHOS/Module4/CPV", + volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE); + new(alobj[i++]) AliAlignObjAngles("PHOS/Module5/CPV", + volid, dx, dy, dz, dpsi, dtheta, dphi, kTRUE); + // Alignment for PHOS cradle - new(alobj[5]) AliAlignObjAngles("/ALIC_1/PCRA_0", + new(alobj[i++]) AliAlignObjAngles("PHOS/Cradle0", volid, 0., 0., -displacement, dpsi, dtheta, dphi, kTRUE); - new(alobj[6]) AliAlignObjAngles("/ALIC_1/PCRA_1", + new(alobj[i++]) AliAlignObjAngles("PHOS/Cradle1", volid, 0., 0., +displacement, dpsi, dtheta, dphi, kTRUE); // Alignment for cradle wheels - new(alobj[7]) AliAlignObjAngles("/ALIC_1/PWHE_0", + new(alobj[i++]) AliAlignObjAngles("PHOS/Wheel0", volid, 0., 0., -displacement, dpsi, dtheta, dphi, kTRUE); - new(alobj[8]) AliAlignObjAngles("/ALIC_1/PWHE_1", + new(alobj[i++]) AliAlignObjAngles("PHOS/Wheel1", volid, 0., 0., -displacement, dpsi, dtheta, dphi, kTRUE); - new(alobj[9]) AliAlignObjAngles("/ALIC_1/PWHE_2", + new(alobj[i++]) AliAlignObjAngles("PHOS/Wheel2", volid, 0., 0., +displacement, dpsi, dtheta, dphi, kTRUE); - new(alobj[10]) AliAlignObjAngles("/ALIC_1/PWHE_3", + new(alobj[i++]) AliAlignObjAngles("PHOS/Wheel3", volid, 0., 0., +displacement, dpsi, dtheta, dphi, kTRUE); + AliPHOSSurvey geodesicData("phos_mod3_survey.txt"); + geodesicData.CreateAliAlignObjAngles(alobj); - if(!gSystem->Getenv("$TOCDB")){ + if(!gSystem->Getenv("TOCDB")){ // save on file TFile f("PHOSresidualMisalignment.root","RECREATE"); if(!f) cerr<<"cannot open file for output\n"; @@ -51,13 +73,13 @@ void MakePHOSResMisAlignment(){ f.Close(); }else{ // save in CDB storage - const char* Storage = gSystem->Getenv("$STORAGE"); + const char* Storage = gSystem->Getenv("STORAGE"); AliCDBManager *CDB = AliCDBManager::Instance(); AliCDBStorage* storage = CDB->GetStorage(Storage); AliCDBMetaData *md= new AliCDBMetaData(); md->SetResponsible("Yuri Kharlov"); md->SetComment("Alignment objects for slightly misaligned geometry (residual misalignment"); - md->SetAliRootVersion(gSystem->Getenv("$ARVERSION")); + md->SetAliRootVersion(gSystem->Getenv("ARVERSION")); AliCDBId id("PHOS/Align/Data",0,9999999); storage->Put(array,id, md); }