void MakePHOSAltroMapping(){
// Create TObjArray of PHOS altro mapping objects.
// Set the environment variables in order to store it in the OCDB:
// export TOCDB=kTRUE
// export STORAGE=local://$ALICE_ROOT/OCDB
// Then the newly created root file $ALICE_ROOT/OCDB/PHOS/Calib/Mapping
// should be committed to SVN and submitted to AliEn production manager
//
// Yuri Kharlov. 10 September 2009
// $Id$
const char* macroname = "MakePHOSAltroMapping.C";
TObjArray mappingsArray(20);
nModules = 5;
nRCU = 4;
TString path = gSystem->Getenv("ALICE_ROOT");
path += "/PHOS/mapping/";
TString path1, path2;
for(Int_t m = 0; m < nModules; m++) {
path1 = path;
path1 += "Mod";
path1 += m;
path1 += "RCU";
for(Int_t i = 0; i < nRCU; i++) {
path2 = path1;
path2 += i;
path2 += ".data";
Info(macroname,"Mapping file: %s",path2.Data());
AliAltroMapping *mapping = new AliCaloAltroMapping(path2.Data());
mappingsArray.Add(mapping);
}
}
if( TString(gSystem->Getenv("TOCDB")) != TString("kTRUE") ){
// save on file
const char* filename = "PHOSAltroMapping.root";
TFile f(filename,"RECREATE");
if(!f){
Error(macroname,"cannot open file for output\n");
return;
}
Info(macroname,"Saving altro mapping objects to the file %s", filename);
f.cd();
f.WriteObject(&mappingsArray,"PHOSAtroMappings","kSingleKey");
f.Close();
}else{
// save in CDB storage
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;
}
Info(macroname,"Saving altro mapping objects in CDB storage %s",
Storage.Data());
AliCDBManager* cdb = AliCDBManager::Instance();
AliCDBStorage* storage = cdb->GetStorage(Storage.Data());
if(!storage){
Error(macroname,"Unable to open storage %s\n",Storage.Data());
return;
}
AliCDBMetaData* md = new AliCDBMetaData();
md->SetResponsible("Yuri Kharlov");
md->SetComment("Default ALTRO mapping for PHOS: 20 mapping objects, one per modules per RCU");
md->SetAliRootVersion(gSystem->Getenv("ARVERSION"));
AliCDBId id("PHOS/Calib/Mapping",0,AliCDBRunRange::Infinity());
storage->Put(&mappingsArray,id,md);
delete md;
}
mappingsArray.Delete();
}
MakePHOSAltroMapping.C:10 MakePHOSAltroMapping.C:11 MakePHOSAltroMapping.C:12 MakePHOSAltroMapping.C:13 MakePHOSAltroMapping.C:14 MakePHOSAltroMapping.C:15 MakePHOSAltroMapping.C:16 MakePHOSAltroMapping.C:17 MakePHOSAltroMapping.C:18 MakePHOSAltroMapping.C:19 MakePHOSAltroMapping.C:20 MakePHOSAltroMapping.C:21 MakePHOSAltroMapping.C:22 MakePHOSAltroMapping.C:23 MakePHOSAltroMapping.C:24 MakePHOSAltroMapping.C:25 MakePHOSAltroMapping.C:26 MakePHOSAltroMapping.C:27 MakePHOSAltroMapping.C:28 MakePHOSAltroMapping.C:29 MakePHOSAltroMapping.C:30 MakePHOSAltroMapping.C:31 MakePHOSAltroMapping.C:32 MakePHOSAltroMapping.C:33 MakePHOSAltroMapping.C:34 MakePHOSAltroMapping.C:35 MakePHOSAltroMapping.C:36 MakePHOSAltroMapping.C:37 MakePHOSAltroMapping.C:38 MakePHOSAltroMapping.C:39 MakePHOSAltroMapping.C:40 MakePHOSAltroMapping.C:41 MakePHOSAltroMapping.C:42 MakePHOSAltroMapping.C:43 MakePHOSAltroMapping.C:44 MakePHOSAltroMapping.C:45 MakePHOSAltroMapping.C:46 MakePHOSAltroMapping.C:47 MakePHOSAltroMapping.C:48 MakePHOSAltroMapping.C:49 MakePHOSAltroMapping.C:50 MakePHOSAltroMapping.C:51 MakePHOSAltroMapping.C:52 MakePHOSAltroMapping.C:53 MakePHOSAltroMapping.C:54 MakePHOSAltroMapping.C:55 MakePHOSAltroMapping.C:56 MakePHOSAltroMapping.C:57 MakePHOSAltroMapping.C:58 MakePHOSAltroMapping.C:59 MakePHOSAltroMapping.C:60 MakePHOSAltroMapping.C:61 MakePHOSAltroMapping.C:62 MakePHOSAltroMapping.C:63 MakePHOSAltroMapping.C:64 MakePHOSAltroMapping.C:65 MakePHOSAltroMapping.C:66 MakePHOSAltroMapping.C:67 MakePHOSAltroMapping.C:68 MakePHOSAltroMapping.C:69 MakePHOSAltroMapping.C:70 MakePHOSAltroMapping.C:71 MakePHOSAltroMapping.C:72 MakePHOSAltroMapping.C:73 MakePHOSAltroMapping.C:74 MakePHOSAltroMapping.C:75 MakePHOSAltroMapping.C:76 MakePHOSAltroMapping.C:77