void MakeVZEROFullMisAlignment(){
// Create TClonesArray of full misalignment objects for VZERO
//
const char* macroname = "MakeVZEROFullMisAlignment.C";
TClonesArray *array = new TClonesArray("AliAlignObjParams",10);
TClonesArray &alobj = *array;
// Activate CDB storage and load geometry from CDB
AliCDBManager* cdb = AliCDBManager::Instance();
if(!cdb->IsDefaultStorageSet()) cdb->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
cdb->SetRun(0);
AliCDBStorage* storage;
if( TString(gSystem->Getenv("TOCDB")) == TString("kTRUE") ){
TString Storage = gSystem->Getenv("STORAGE");
if(!Storage.BeginsWith("local://") && !Storage.BeginsWith("alien://")) {
Error(macroname,"STORAGE variable set to %s is not valid. Exiting\n",Storage.Data());
return;
}
storage = cdb->GetStorage(Storage.Data());
if(!storage){
Error(macroname,"Unable to open storage %s\n",Storage.Data());
return;
}
AliCDBPath path("GRP","Geometry","Data");
AliCDBEntry *entry = storage->Get(path.GetPath(),cdb->GetRun());
if(!entry) Fatal(macroname,"Could not get the specified CDB entry!");
entry->SetOwner(0);
TGeoManager* geom = (TGeoManager*) entry->GetObject();
AliGeomManager::SetGeometry(geom);
}else{
AliGeomManager::LoadGeometry(); //load geom from default CDB storage
}
Double_t dx, dy, dz, dpsi, dtheta, dphi;
TRandom *rnd = new TRandom(4321);
Double_t sigmatr = 0.1; // max shift in cm
Double_t sigmarot = 0.5; // max rot in degrees
const char *V0right="VZERO/V0C";
const char *V0left="VZERO/V0A";
Int_t iIndex=0; //let all modules have index=0 in a layer with no LUT
AliGeomManager::ELayerID iLayer = AliGeomManager::kInvalidLayer;
UShort_t volid = AliGeomManager::LayerToVolUID(iLayer,iIndex);
dx = rnd->Gaus(0.,sigmatr);
dy = rnd->Gaus(0.,sigmatr);
dz = rnd->Gaus(0.,sigmatr);
dpsi = rnd->Gaus(0.,sigmarot);
dtheta = rnd->Gaus(0.,sigmarot);
dphi = rnd->Gaus(0.,sigmarot);
new(alobj[0]) AliAlignObjParams(V0right, volid, dx, dy, dz, dpsi, dtheta,
dphi, kFALSE);
AliAlignObjParams* itsalobj = (AliAlignObjParams*) alobj.UncheckedAt(0);
itsalobj->ApplyToGeometry();
dx = rnd->Gaus(0.,sigmatr);
dy = rnd->Gaus(0.,sigmatr);
dz = rnd->Gaus(0.,sigmatr);
dpsi = rnd->Gaus(0.,sigmarot);
dtheta = rnd->Gaus(0.,sigmarot);
dphi = rnd->Gaus(0.,sigmarot);
new(alobj[1]) AliAlignObjParams(V0left, volid, dx, dy, dz, dpsi, dtheta,
dphi,kFALSE);
AliAlignObjParams* itsalobj = (AliAlignObjParams*) alobj.UncheckedAt(1);
itsalobj->ApplyToGeometry();
if(TString(gSystem->Getenv("TOCDB")) != TString("kTRUE") ){
// save on file
const char* filename = "VZEROfullMisalignment.root";
TFile f(filename,"RECREATE");
if(!f){
Error(macroname,"cannot open file for output\n");
return;
}
Info(macroname,"Saving alignment objects to the file %s", filename);
f.cd();
f.WriteObject(array,"VZEROAlignObjs","kSingleKey");
f.Close();
}else{
// save in CDB storage
AliCDBMetaData* md = new AliCDBMetaData();
md->SetResponsible("Brigitte Cheynis");
md->SetComment("Alignment objects for V0 full misalignment");
md->SetAliRootVersion(gSystem->Getenv("ARVERSION"));
AliCDBId id("VZERO/Align/Data",0,AliCDBRunRange::Infinity());
storage->Put(array,id,md);
}
array->Print();
array->Delete();
}
MakeVZEROFullMisAlignment.C:1 MakeVZEROFullMisAlignment.C:2 MakeVZEROFullMisAlignment.C:3 MakeVZEROFullMisAlignment.C:4 MakeVZEROFullMisAlignment.C:5 MakeVZEROFullMisAlignment.C:6 MakeVZEROFullMisAlignment.C:7 MakeVZEROFullMisAlignment.C:8 MakeVZEROFullMisAlignment.C:9 MakeVZEROFullMisAlignment.C:10 MakeVZEROFullMisAlignment.C:11 MakeVZEROFullMisAlignment.C:12 MakeVZEROFullMisAlignment.C:13 MakeVZEROFullMisAlignment.C:14 MakeVZEROFullMisAlignment.C:15 MakeVZEROFullMisAlignment.C:16 MakeVZEROFullMisAlignment.C:17 MakeVZEROFullMisAlignment.C:18 MakeVZEROFullMisAlignment.C:19 MakeVZEROFullMisAlignment.C:20 MakeVZEROFullMisAlignment.C:21 MakeVZEROFullMisAlignment.C:22 MakeVZEROFullMisAlignment.C:23 MakeVZEROFullMisAlignment.C:24 MakeVZEROFullMisAlignment.C:25 MakeVZEROFullMisAlignment.C:26 MakeVZEROFullMisAlignment.C:27 MakeVZEROFullMisAlignment.C:28 MakeVZEROFullMisAlignment.C:29 MakeVZEROFullMisAlignment.C:30 MakeVZEROFullMisAlignment.C:31 MakeVZEROFullMisAlignment.C:32 MakeVZEROFullMisAlignment.C:33 MakeVZEROFullMisAlignment.C:34 MakeVZEROFullMisAlignment.C:35 MakeVZEROFullMisAlignment.C:36 MakeVZEROFullMisAlignment.C:37 MakeVZEROFullMisAlignment.C:38 MakeVZEROFullMisAlignment.C:39 MakeVZEROFullMisAlignment.C:40 MakeVZEROFullMisAlignment.C:41 MakeVZEROFullMisAlignment.C:42 MakeVZEROFullMisAlignment.C:43 MakeVZEROFullMisAlignment.C:44 MakeVZEROFullMisAlignment.C:45 MakeVZEROFullMisAlignment.C:46 MakeVZEROFullMisAlignment.C:47 MakeVZEROFullMisAlignment.C:48 MakeVZEROFullMisAlignment.C:49 MakeVZEROFullMisAlignment.C:50 MakeVZEROFullMisAlignment.C:51 MakeVZEROFullMisAlignment.C:52 MakeVZEROFullMisAlignment.C:53 MakeVZEROFullMisAlignment.C:54 MakeVZEROFullMisAlignment.C:55 MakeVZEROFullMisAlignment.C:56 MakeVZEROFullMisAlignment.C:57 MakeVZEROFullMisAlignment.C:58 MakeVZEROFullMisAlignment.C:59 MakeVZEROFullMisAlignment.C:60 MakeVZEROFullMisAlignment.C:61 MakeVZEROFullMisAlignment.C:62 MakeVZEROFullMisAlignment.C:63 MakeVZEROFullMisAlignment.C:64 MakeVZEROFullMisAlignment.C:65 MakeVZEROFullMisAlignment.C:66 MakeVZEROFullMisAlignment.C:67 MakeVZEROFullMisAlignment.C:68 MakeVZEROFullMisAlignment.C:69 MakeVZEROFullMisAlignment.C:70 MakeVZEROFullMisAlignment.C:71 MakeVZEROFullMisAlignment.C:72 MakeVZEROFullMisAlignment.C:73 MakeVZEROFullMisAlignment.C:74 MakeVZEROFullMisAlignment.C:75 MakeVZEROFullMisAlignment.C:76 MakeVZEROFullMisAlignment.C:77 MakeVZEROFullMisAlignment.C:78 MakeVZEROFullMisAlignment.C:79 MakeVZEROFullMisAlignment.C:80 MakeVZEROFullMisAlignment.C:81 MakeVZEROFullMisAlignment.C:82 MakeVZEROFullMisAlignment.C:83 MakeVZEROFullMisAlignment.C:84 MakeVZEROFullMisAlignment.C:85 MakeVZEROFullMisAlignment.C:86 MakeVZEROFullMisAlignment.C:87 MakeVZEROFullMisAlignment.C:88 MakeVZEROFullMisAlignment.C:89 MakeVZEROFullMisAlignment.C:90 MakeVZEROFullMisAlignment.C:91 MakeVZEROFullMisAlignment.C:92 MakeVZEROFullMisAlignment.C:93 MakeVZEROFullMisAlignment.C:94 MakeVZEROFullMisAlignment.C:95 MakeVZEROFullMisAlignment.C:96 MakeVZEROFullMisAlignment.C:97 MakeVZEROFullMisAlignment.C:98