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

  TObjArray mappingsArray(6);
  
  TString path = gSystem->Getenv("ALICE_ROOT");
  path += "/TPC/mapping/Patch";
  TString path2;
  for(Int_t i = 0; i < 6; i++) {
    path2 = path;
    path2 += i;
    path2 += ".data";
    AliAltroMapping *mapping = new AliTPCAltroMapping(path2.Data());
    mappingsArray.Add(mapping);
  }

  if( TString(gSystem->Getenv("TOCDB")) != TString("kTRUE") ){
    // save on file
    const char* filename = "TPCAltroMapping.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,"TPCAtroMappings","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("Marian Ivanov");
    md->SetComment("Default ALTRO mapping for TPC");
    md->SetAliRootVersion(gSystem->Getenv("ARVERSION"));
    AliCDBId id("TPC/Calib/Mapping",0,AliCDBRunRange::Infinity());
    storage->Put(&mappingsArray,id,md);

    delete md;
  }

  mappingsArray.Delete();

}

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