ROOT logo
void MakeEMCALAltroMapping(){
  // Create TObjArray of EMCAL altro mapping objects and
  // store it in the CDB
  //
  const char* macroname = "MakeEMCALAltroMapping.C";

  TObjArray mappingsArray(6);
  
  TString path = gSystem->Getenv("ALICE_ROOT");
  path += "/EMCAL/mapping/RCU";
  TString path2;
  TString side[] = {"A","C"};//+ and - pseudarapidity supermodules
  for(Int_t j = 0; j < 2; j++){
    for(Int_t i = 0; i < 2; i++) {
      path2 = path;
      path2 += i;
      path2 +=side[j]; 
      path2 += ".data";
      printf("File: %s\n",path2.Data());
      AliAltroMapping *mapping = new AliCaloAltroMapping(path2.Data());
      mappingsArray.Add(mapping);
    }
  }
  
  if( TString(gSystem->Getenv("TOCDB")) != TString("kTRUE") ){
    // save on file
    const char* filename = "EMCALAltroMapping.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,"EMCALAtroMappings","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("Jennifer Klay");
    md->SetComment("Default ALTRO mapping for EMCAL");
    md->SetAliRootVersion(gSystem->Getenv("ARVERSION"));
    AliCDBId id("EMCAL/Calib/Mapping",0,AliCDBRunRange::Infinity());
    storage->Put(&mappingsArray,id,md);

    delete md;
  }

  mappingsArray.Delete();

}

 MakeEMCALAltroMapping.C:1
 MakeEMCALAltroMapping.C:2
 MakeEMCALAltroMapping.C:3
 MakeEMCALAltroMapping.C:4
 MakeEMCALAltroMapping.C:5
 MakeEMCALAltroMapping.C:6
 MakeEMCALAltroMapping.C:7
 MakeEMCALAltroMapping.C:8
 MakeEMCALAltroMapping.C:9
 MakeEMCALAltroMapping.C:10
 MakeEMCALAltroMapping.C:11
 MakeEMCALAltroMapping.C:12
 MakeEMCALAltroMapping.C:13
 MakeEMCALAltroMapping.C:14
 MakeEMCALAltroMapping.C:15
 MakeEMCALAltroMapping.C:16
 MakeEMCALAltroMapping.C:17
 MakeEMCALAltroMapping.C:18
 MakeEMCALAltroMapping.C:19
 MakeEMCALAltroMapping.C:20
 MakeEMCALAltroMapping.C:21
 MakeEMCALAltroMapping.C:22
 MakeEMCALAltroMapping.C:23
 MakeEMCALAltroMapping.C:24
 MakeEMCALAltroMapping.C:25
 MakeEMCALAltroMapping.C:26
 MakeEMCALAltroMapping.C:27
 MakeEMCALAltroMapping.C:28
 MakeEMCALAltroMapping.C:29
 MakeEMCALAltroMapping.C:30
 MakeEMCALAltroMapping.C:31
 MakeEMCALAltroMapping.C:32
 MakeEMCALAltroMapping.C:33
 MakeEMCALAltroMapping.C:34
 MakeEMCALAltroMapping.C:35
 MakeEMCALAltroMapping.C:36
 MakeEMCALAltroMapping.C:37
 MakeEMCALAltroMapping.C:38
 MakeEMCALAltroMapping.C:39
 MakeEMCALAltroMapping.C:40
 MakeEMCALAltroMapping.C:41
 MakeEMCALAltroMapping.C:42
 MakeEMCALAltroMapping.C:43
 MakeEMCALAltroMapping.C:44
 MakeEMCALAltroMapping.C:45
 MakeEMCALAltroMapping.C:46
 MakeEMCALAltroMapping.C:47
 MakeEMCALAltroMapping.C:48
 MakeEMCALAltroMapping.C:49
 MakeEMCALAltroMapping.C:50
 MakeEMCALAltroMapping.C:51
 MakeEMCALAltroMapping.C:52
 MakeEMCALAltroMapping.C:53
 MakeEMCALAltroMapping.C:54
 MakeEMCALAltroMapping.C:55
 MakeEMCALAltroMapping.C:56
 MakeEMCALAltroMapping.C:57
 MakeEMCALAltroMapping.C:58
 MakeEMCALAltroMapping.C:59
 MakeEMCALAltroMapping.C:60
 MakeEMCALAltroMapping.C:61
 MakeEMCALAltroMapping.C:62
 MakeEMCALAltroMapping.C:63
 MakeEMCALAltroMapping.C:64
 MakeEMCALAltroMapping.C:65
 MakeEMCALAltroMapping.C:66