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