#include "ARVersion.h"
void MakeAllDETsResMisAlignment(Char_t* CDBstorage = "local://$HOME/ResidualMisAlignment", Bool_t partialGeom=kFALSE){
// Make residual misalignment objects for all detectors
// Pass different "CDBstorage" argument if needed (e.g. to fill
// conditions' data base on alien) or set it to null string to have
// the objects saved locally on file
// This macro defines the default name and place for the detector-macros
// in charge of producing the residual misalignment objects as
// $ALICE_ROOT/DET/MakeDETResidualMisAlignment.C
//
const char* macroname="MakeAllDETsResMisAlignment.C";
TString strStorage(CDBstorage);
if(strStorage.IsNull()){
gSystem->Setenv("TOCDB","kFALSE");
}else{
gSystem->Setenv("TOCDB","kTRUE");
gSystem->Setenv("STORAGE",strStorage.Data());
gSystem->Setenv("ARVERSION",ALIROOT_BRANCH);
}
if(partialGeom){
gSystem->Setenv("REALSETUP","kTRUE");
}else{
gSystem->Setenv("REALSETUP","kFALSE");
}
// Load geometry from CDB updating it if we are producing the
// alignment objects for the CDB
AliCDBManager* cdb = AliCDBManager::Instance();
if(!cdb->IsDefaultStorageSet()) cdb->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
cdb->SetRun(0);
if(strStorage.IsNull()){ //if we produce the objects into a file
AliGeomManager::LoadGeometry(); //load geom from default CDB storage
}else{ // if we produce the objects in a CDB storage
// update geometry in it
Info(macroname,"Updating geometry in CDB storage %s",strStorage.Data());
gROOT->ProcessLine(".L $ALICE_ROOT/GRP/UpdateCDBIdealGeom.C");
if(partialGeom){
UpdateCDBIdealGeom(strStorage.Data(),"$ALICE_ROOT/macros/Config_PDC06.C");
}else{
UpdateCDBIdealGeom(strStorage.Data(),"$ALICE_ROOT/macros/Config.C");
}
// load the same geometry from given CDB storage
AliCDBPath path("GRP","Geometry","Data");
AliCDBStorage* storage = cdb->GetStorage(strStorage.Data());
AliCDBEntry *entry = storage->Get(path.GetPath(),cdb->GetRun());
if(!entry) Fatal(macroname,"Couldn't load geometry data from CDB!");
entry->SetOwner(0);
TGeoManager* geom = (TGeoManager*) entry->GetObject();
if (!geom) Fatal(macroname,"Couldn't find TGeoManager in the specified CDB entry!");
AliGeomManager::SetGeometry(geom);
}
// run macro for non-sensitive modules
// (presently generates only FRAME alignment objects)
gSystem->Exec("aliroot -b -q $ALICE_ROOT/GRP/MakeSTRUCTResMisAlignment.C");
// run macros for sensitive modules
TString sModules="ACORDE,EMCAL,FMD,HMPID,ITS,MUON,PMD,PHOS,T0,TRD,TPC,TOF,VZERO,ZDC";
TObjArray *detArray = sModules.Tokenize(',');
TIter iter(detArray);
TObjString *ostr;
TString exec_det_macro;
while((ostr = (TObjString*) iter.Next())){
TString str(ostr->String());
exec_det_macro="aliroot -b -q $ALICE_ROOT/";
exec_det_macro+=str;
exec_det_macro+="/Make";
exec_det_macro+=str;
exec_det_macro+="ResMisAlignment.C";
gSystem->Exec(exec_det_macro.Data());
}
return;
}
MakeAllDETsResMisAlignment.C:1 MakeAllDETsResMisAlignment.C:2 MakeAllDETsResMisAlignment.C:3 MakeAllDETsResMisAlignment.C:4 MakeAllDETsResMisAlignment.C:5 MakeAllDETsResMisAlignment.C:6 MakeAllDETsResMisAlignment.C:7 MakeAllDETsResMisAlignment.C:8 MakeAllDETsResMisAlignment.C:9 MakeAllDETsResMisAlignment.C:10 MakeAllDETsResMisAlignment.C:11 MakeAllDETsResMisAlignment.C:12 MakeAllDETsResMisAlignment.C:13 MakeAllDETsResMisAlignment.C:14 MakeAllDETsResMisAlignment.C:15 MakeAllDETsResMisAlignment.C:16 MakeAllDETsResMisAlignment.C:17 MakeAllDETsResMisAlignment.C:18 MakeAllDETsResMisAlignment.C:19 MakeAllDETsResMisAlignment.C:20 MakeAllDETsResMisAlignment.C:21 MakeAllDETsResMisAlignment.C:22 MakeAllDETsResMisAlignment.C:23 MakeAllDETsResMisAlignment.C:24 MakeAllDETsResMisAlignment.C:25 MakeAllDETsResMisAlignment.C:26 MakeAllDETsResMisAlignment.C:27 MakeAllDETsResMisAlignment.C:28 MakeAllDETsResMisAlignment.C:29 MakeAllDETsResMisAlignment.C:30 MakeAllDETsResMisAlignment.C:31 MakeAllDETsResMisAlignment.C:32 MakeAllDETsResMisAlignment.C:33 MakeAllDETsResMisAlignment.C:34 MakeAllDETsResMisAlignment.C:35 MakeAllDETsResMisAlignment.C:36 MakeAllDETsResMisAlignment.C:37 MakeAllDETsResMisAlignment.C:38 MakeAllDETsResMisAlignment.C:39 MakeAllDETsResMisAlignment.C:40 MakeAllDETsResMisAlignment.C:41 MakeAllDETsResMisAlignment.C:42 MakeAllDETsResMisAlignment.C:43 MakeAllDETsResMisAlignment.C:44 MakeAllDETsResMisAlignment.C:45 MakeAllDETsResMisAlignment.C:46 MakeAllDETsResMisAlignment.C:47 MakeAllDETsResMisAlignment.C:48 MakeAllDETsResMisAlignment.C:49 MakeAllDETsResMisAlignment.C:50 MakeAllDETsResMisAlignment.C:51 MakeAllDETsResMisAlignment.C:52 MakeAllDETsResMisAlignment.C:53 MakeAllDETsResMisAlignment.C:54 MakeAllDETsResMisAlignment.C:55 MakeAllDETsResMisAlignment.C:56 MakeAllDETsResMisAlignment.C:57 MakeAllDETsResMisAlignment.C:58 MakeAllDETsResMisAlignment.C:59 MakeAllDETsResMisAlignment.C:60 MakeAllDETsResMisAlignment.C:61 MakeAllDETsResMisAlignment.C:62 MakeAllDETsResMisAlignment.C:63 MakeAllDETsResMisAlignment.C:64 MakeAllDETsResMisAlignment.C:65 MakeAllDETsResMisAlignment.C:66 MakeAllDETsResMisAlignment.C:67 MakeAllDETsResMisAlignment.C:68 MakeAllDETsResMisAlignment.C:69 MakeAllDETsResMisAlignment.C:70 MakeAllDETsResMisAlignment.C:71 MakeAllDETsResMisAlignment.C:72 MakeAllDETsResMisAlignment.C:73 MakeAllDETsResMisAlignment.C:74 MakeAllDETsResMisAlignment.C:75 MakeAllDETsResMisAlignment.C:76 MakeAllDETsResMisAlignment.C:77 MakeAllDETsResMisAlignment.C:78 MakeAllDETsResMisAlignment.C:79 MakeAllDETsResMisAlignment.C:80 MakeAllDETsResMisAlignment.C:81