#include "ARVersion.h"
void MakeAllDETsZeroMisAlignment(Char_t* CDBstorage = "local://$HOME/ZeroMisAlignment", Bool_t partialGeom=kFALSE){
// Make zero 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
//
const char* macroname="MakeAllDETsZeroMisAlignment.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/MakeSTRUCTZeroMisAlignment.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+="ZeroMisAlignment.C";
gSystem->Exec(exec_det_macro.Data());
}
return;
}
MakeAllDETsZeroMisAlignment.C:1 MakeAllDETsZeroMisAlignment.C:2 MakeAllDETsZeroMisAlignment.C:3 MakeAllDETsZeroMisAlignment.C:4 MakeAllDETsZeroMisAlignment.C:5 MakeAllDETsZeroMisAlignment.C:6 MakeAllDETsZeroMisAlignment.C:7 MakeAllDETsZeroMisAlignment.C:8 MakeAllDETsZeroMisAlignment.C:9 MakeAllDETsZeroMisAlignment.C:10 MakeAllDETsZeroMisAlignment.C:11 MakeAllDETsZeroMisAlignment.C:12 MakeAllDETsZeroMisAlignment.C:13 MakeAllDETsZeroMisAlignment.C:14 MakeAllDETsZeroMisAlignment.C:15 MakeAllDETsZeroMisAlignment.C:16 MakeAllDETsZeroMisAlignment.C:17 MakeAllDETsZeroMisAlignment.C:18 MakeAllDETsZeroMisAlignment.C:19 MakeAllDETsZeroMisAlignment.C:20 MakeAllDETsZeroMisAlignment.C:21 MakeAllDETsZeroMisAlignment.C:22 MakeAllDETsZeroMisAlignment.C:23 MakeAllDETsZeroMisAlignment.C:24 MakeAllDETsZeroMisAlignment.C:25 MakeAllDETsZeroMisAlignment.C:26 MakeAllDETsZeroMisAlignment.C:27 MakeAllDETsZeroMisAlignment.C:28 MakeAllDETsZeroMisAlignment.C:29 MakeAllDETsZeroMisAlignment.C:30 MakeAllDETsZeroMisAlignment.C:31 MakeAllDETsZeroMisAlignment.C:32 MakeAllDETsZeroMisAlignment.C:33 MakeAllDETsZeroMisAlignment.C:34 MakeAllDETsZeroMisAlignment.C:35 MakeAllDETsZeroMisAlignment.C:36 MakeAllDETsZeroMisAlignment.C:37 MakeAllDETsZeroMisAlignment.C:38 MakeAllDETsZeroMisAlignment.C:39 MakeAllDETsZeroMisAlignment.C:40 MakeAllDETsZeroMisAlignment.C:41 MakeAllDETsZeroMisAlignment.C:42 MakeAllDETsZeroMisAlignment.C:43 MakeAllDETsZeroMisAlignment.C:44 MakeAllDETsZeroMisAlignment.C:45 MakeAllDETsZeroMisAlignment.C:46 MakeAllDETsZeroMisAlignment.C:47 MakeAllDETsZeroMisAlignment.C:48 MakeAllDETsZeroMisAlignment.C:49 MakeAllDETsZeroMisAlignment.C:50 MakeAllDETsZeroMisAlignment.C:51 MakeAllDETsZeroMisAlignment.C:52 MakeAllDETsZeroMisAlignment.C:53 MakeAllDETsZeroMisAlignment.C:54 MakeAllDETsZeroMisAlignment.C:55 MakeAllDETsZeroMisAlignment.C:56 MakeAllDETsZeroMisAlignment.C:57 MakeAllDETsZeroMisAlignment.C:58 MakeAllDETsZeroMisAlignment.C:59 MakeAllDETsZeroMisAlignment.C:60 MakeAllDETsZeroMisAlignment.C:61 MakeAllDETsZeroMisAlignment.C:62 MakeAllDETsZeroMisAlignment.C:63 MakeAllDETsZeroMisAlignment.C:64 MakeAllDETsZeroMisAlignment.C:65 MakeAllDETsZeroMisAlignment.C:66 MakeAllDETsZeroMisAlignment.C:67 MakeAllDETsZeroMisAlignment.C:68 MakeAllDETsZeroMisAlignment.C:69 MakeAllDETsZeroMisAlignment.C:70 MakeAllDETsZeroMisAlignment.C:71 MakeAllDETsZeroMisAlignment.C:72 MakeAllDETsZeroMisAlignment.C:73 MakeAllDETsZeroMisAlignment.C:74 MakeAllDETsZeroMisAlignment.C:75 MakeAllDETsZeroMisAlignment.C:76 MakeAllDETsZeroMisAlignment.C:77 MakeAllDETsZeroMisAlignment.C:78