ROOT logo
#if !defined(__CINT__) || defined(__MAKECINT__)
#include "TFile.h"
#include "TString.h"
#include "TProfile.h"
#include "TList.h"
#include "TSystem.h"

#include "AliOADBContainer.h"
#include "AliAnalysisManager.h"
#endif

void FillVZEROEPOADBFull(const char* filename = "AOD083.txt", Bool_t mbOnly = kFALSE)
{
  gSystem->Load("libCore.so");  
  gSystem->Load("libTree.so");
  gSystem->Load("libGeom.so");
  gSystem->Load("libVMC.so");
  gSystem->Load("libPhysics.so");
  gSystem->Load("libMinuit");
  gSystem->Load("libSTEERBase");
  gSystem->Load("libESD");
  gSystem->Load("libAOD");
  gSystem->Load("libANALYSIS");
  gSystem->Load("libANALYSISalice");   
  gSystem->Load("libOADB");

  AliOADBContainer * oadbCont = new AliOADBContainer("vzeroEP");

  {
    TList *defaultList = new TList;
    defaultList->SetName("Default");
    TProfile *profHisto = NULL;
    TFile fInputDefault("minbias/VZERO.EPFlatenning.PS.LHC11h_AOD083_000170162.root");
    TList *inputList = (TList*)fInputDefault.Get("coutput");
    for(Int_t i = 0; i < 11; ++i) {
      profHisto = (TProfile*)inputList->FindObject(Form("fX2_%d",i))->Clone(Form("fX2_%d",i));
      profHisto->SetDirectory(0);
      defaultList->Add(profHisto);
      profHisto = (TProfile*)inputList->FindObject(Form("fY2_%d",i))->Clone(Form("fY2_%d",i));
      profHisto->SetDirectory(0);
      defaultList->Add(profHisto);
      profHisto = (TProfile*)inputList->FindObject(Form("fX2Y2_%d",i))->Clone(Form("fX2Y2_%d",i));
      profHisto->SetDirectory(0);
      defaultList->Add(profHisto);
      profHisto = (TProfile*)inputList->FindObject(Form("fCos8Psi_%d",i))->Clone(Form("fCos8Psi_%d",i));
      profHisto->SetDirectory(0);
      defaultList->Add(profHisto);
    }
    fInputDefault.Close();
    oadbCont->AddDefaultObject(defaultList);
    printf("Run 170162 filled\n");
  }

  {
    TList *list1 = new TList;
    TProfile *profHisto = NULL;
    TFile fInput1("minbias/VZERO.EPFlatenning.PS.LHC11h_AOD083_000169683.root");
    TList *inputList = (TList*)fInput1.Get("coutput");
    for(Int_t i = 0; i < 11; ++i) {
      profHisto = (TProfile*)inputList->FindObject(Form("fX2_%d",i))->Clone(Form("fX2_%d",i));
      profHisto->SetDirectory(0);
      list1->Add(profHisto);
      profHisto = (TProfile*)inputList->FindObject(Form("fY2_%d",i))->Clone(Form("fY2_%d",i));
      profHisto->SetDirectory(0);
      list1->Add(profHisto);
      profHisto = (TProfile*)inputList->FindObject(Form("fX2Y2_%d",i))->Clone(Form("fX2Y2_%d",i));
      profHisto->SetDirectory(0);
      list1->Add(profHisto);
      profHisto = (TProfile*)inputList->FindObject(Form("fCos8Psi_%d",i))->Clone(Form("fCos8Psi_%d",i));
      profHisto->SetDirectory(0);
      list1->Add(profHisto);
    }
    oadbCont->AppendObject(list1, 169683, 169683);
    printf("Run 169683 filled\n");
  }

  // loop of over all other runs
  Int_t runList[500];
  ifstream *fruns = new ifstream (filename);
  if (!*fruns) return;
  TString strLine;
  Int_t count = 0;
  while (strLine.ReadLine(*fruns)) {
    runList[count++] = strLine.Atoi();
  }
  delete fruns;

  for(Int_t irun = 0; irun < count; ++irun) {
    TList *list2 = new TList;
    TProfile *profHisto = NULL;
    TFile fInput2(Form("csemi/VZERO.EPFlatenning.PS.LHC11h_AOD083_000%d.root",runList[irun]));
    TList *inputList = (TList*)fInput2.Get("coutput");
    TFile fInput3(Form("cpbi2/VZERO.EPFlatenning.PS.LHC11h_AOD083_000%d.root",runList[irun]));
    TList *inputListBis = (TList*)fInput3.Get("coutput");
    for(Int_t i = 0; i < 11; ++i) {
      profHisto = (TProfile*)inputList->FindObject(Form("fX2_%d",i))->Clone(Form("fX2_%d",i));
      profHisto->SetDirectory(0);
      Int_t ibin = profHisto->FindBin(62.5);
      profHisto->SetBinContent(ibin,0);
      profHisto->SetBinError(ibin,0);
      profHisto->SetBinEntries(ibin,0);
      if (mbOnly) {
	profHisto = (TProfile*)inputListBis->FindObject(Form("fX2_%d",i))->Clone(Form("fX2_%d",i));
	profHisto->SetDirectory(0);
      }
      else
	profHisto->Add((TProfile*)inputListBis->FindObject(Form("fX2_%d",i)));
      list2->Add(profHisto);

      profHisto = (TProfile*)inputList->FindObject(Form("fY2_%d",i))->Clone(Form("fY2_%d",i));
      profHisto->SetDirectory(0);
      profHisto->SetBinContent(ibin,0);
      profHisto->SetBinError(ibin,0);
      profHisto->SetBinEntries(ibin,0);
      if (mbOnly) {
	profHisto = (TProfile*)inputListBis->FindObject(Form("fY2_%d",i))->Clone(Form("fY2_%d",i));
	profHisto->SetDirectory(0);
      }
      else
	profHisto->Add((TProfile*)inputListBis->FindObject(Form("fY2_%d",i)));
      list2->Add(profHisto);

      profHisto = (TProfile*)inputList->FindObject(Form("fX2Y2_%d",i))->Clone(Form("fX2Y2_%d",i));
      profHisto->SetDirectory(0);
      profHisto->SetBinContent(ibin,0);
      profHisto->SetBinError(ibin,0);
      profHisto->SetBinEntries(ibin,0);
      if (mbOnly) {
	profHisto = (TProfile*)inputListBis->FindObject(Form("fX2Y2_%d",i))->Clone(Form("fX2Y2_%d",i));
	profHisto->SetDirectory(0);
      }
      else
	profHisto->Add((TProfile*)inputListBis->FindObject(Form("fX2Y2_%d",i)));
      list2->Add(profHisto);

      profHisto = (TProfile*)inputList->FindObject(Form("fCos8Psi_%d",i))->Clone(Form("fCos8Psi_%d",i));
      profHisto->SetDirectory(0);
      profHisto->SetBinContent(ibin,0);
      profHisto->SetBinError(ibin,0);
      profHisto->SetBinEntries(ibin,0);
      if (mbOnly) {
	profHisto = (TProfile*)inputListBis->FindObject(Form("fCos8Psi_%d",i))->Clone(Form("fCos8Psi_%d",i));
	profHisto->SetDirectory(0);
      }
      else
	profHisto->Add((TProfile*)inputListBis->FindObject(Form("fCos8Psi_%d",i)));
      list2->Add(profHisto);
    }
    oadbCont->AppendObject(list2, runList[irun], runList[irun]);
    printf("Run %d filled\n",runList[irun]);
  }

  TString oadbFileName = Form("%s/COMMON/EVENTPLANE/data/vzero.root", AliAnalysisManager::GetOADBPath());
  oadbCont->WriteToFile(oadbFileName.Data());
}
 FillVZEROEPOADBFull.C:1
 FillVZEROEPOADBFull.C:2
 FillVZEROEPOADBFull.C:3
 FillVZEROEPOADBFull.C:4
 FillVZEROEPOADBFull.C:5
 FillVZEROEPOADBFull.C:6
 FillVZEROEPOADBFull.C:7
 FillVZEROEPOADBFull.C:8
 FillVZEROEPOADBFull.C:9
 FillVZEROEPOADBFull.C:10
 FillVZEROEPOADBFull.C:11
 FillVZEROEPOADBFull.C:12
 FillVZEROEPOADBFull.C:13
 FillVZEROEPOADBFull.C:14
 FillVZEROEPOADBFull.C:15
 FillVZEROEPOADBFull.C:16
 FillVZEROEPOADBFull.C:17
 FillVZEROEPOADBFull.C:18
 FillVZEROEPOADBFull.C:19
 FillVZEROEPOADBFull.C:20
 FillVZEROEPOADBFull.C:21
 FillVZEROEPOADBFull.C:22
 FillVZEROEPOADBFull.C:23
 FillVZEROEPOADBFull.C:24
 FillVZEROEPOADBFull.C:25
 FillVZEROEPOADBFull.C:26
 FillVZEROEPOADBFull.C:27
 FillVZEROEPOADBFull.C:28
 FillVZEROEPOADBFull.C:29
 FillVZEROEPOADBFull.C:30
 FillVZEROEPOADBFull.C:31
 FillVZEROEPOADBFull.C:32
 FillVZEROEPOADBFull.C:33
 FillVZEROEPOADBFull.C:34
 FillVZEROEPOADBFull.C:35
 FillVZEROEPOADBFull.C:36
 FillVZEROEPOADBFull.C:37
 FillVZEROEPOADBFull.C:38
 FillVZEROEPOADBFull.C:39
 FillVZEROEPOADBFull.C:40
 FillVZEROEPOADBFull.C:41
 FillVZEROEPOADBFull.C:42
 FillVZEROEPOADBFull.C:43
 FillVZEROEPOADBFull.C:44
 FillVZEROEPOADBFull.C:45
 FillVZEROEPOADBFull.C:46
 FillVZEROEPOADBFull.C:47
 FillVZEROEPOADBFull.C:48
 FillVZEROEPOADBFull.C:49
 FillVZEROEPOADBFull.C:50
 FillVZEROEPOADBFull.C:51
 FillVZEROEPOADBFull.C:52
 FillVZEROEPOADBFull.C:53
 FillVZEROEPOADBFull.C:54
 FillVZEROEPOADBFull.C:55
 FillVZEROEPOADBFull.C:56
 FillVZEROEPOADBFull.C:57
 FillVZEROEPOADBFull.C:58
 FillVZEROEPOADBFull.C:59
 FillVZEROEPOADBFull.C:60
 FillVZEROEPOADBFull.C:61
 FillVZEROEPOADBFull.C:62
 FillVZEROEPOADBFull.C:63
 FillVZEROEPOADBFull.C:64
 FillVZEROEPOADBFull.C:65
 FillVZEROEPOADBFull.C:66
 FillVZEROEPOADBFull.C:67
 FillVZEROEPOADBFull.C:68
 FillVZEROEPOADBFull.C:69
 FillVZEROEPOADBFull.C:70
 FillVZEROEPOADBFull.C:71
 FillVZEROEPOADBFull.C:72
 FillVZEROEPOADBFull.C:73
 FillVZEROEPOADBFull.C:74
 FillVZEROEPOADBFull.C:75
 FillVZEROEPOADBFull.C:76
 FillVZEROEPOADBFull.C:77
 FillVZEROEPOADBFull.C:78
 FillVZEROEPOADBFull.C:79
 FillVZEROEPOADBFull.C:80
 FillVZEROEPOADBFull.C:81
 FillVZEROEPOADBFull.C:82
 FillVZEROEPOADBFull.C:83
 FillVZEROEPOADBFull.C:84
 FillVZEROEPOADBFull.C:85
 FillVZEROEPOADBFull.C:86
 FillVZEROEPOADBFull.C:87
 FillVZEROEPOADBFull.C:88
 FillVZEROEPOADBFull.C:89
 FillVZEROEPOADBFull.C:90
 FillVZEROEPOADBFull.C:91
 FillVZEROEPOADBFull.C:92
 FillVZEROEPOADBFull.C:93
 FillVZEROEPOADBFull.C:94
 FillVZEROEPOADBFull.C:95
 FillVZEROEPOADBFull.C:96
 FillVZEROEPOADBFull.C:97
 FillVZEROEPOADBFull.C:98
 FillVZEROEPOADBFull.C:99
 FillVZEROEPOADBFull.C:100
 FillVZEROEPOADBFull.C:101
 FillVZEROEPOADBFull.C:102
 FillVZEROEPOADBFull.C:103
 FillVZEROEPOADBFull.C:104
 FillVZEROEPOADBFull.C:105
 FillVZEROEPOADBFull.C:106
 FillVZEROEPOADBFull.C:107
 FillVZEROEPOADBFull.C:108
 FillVZEROEPOADBFull.C:109
 FillVZEROEPOADBFull.C:110
 FillVZEROEPOADBFull.C:111
 FillVZEROEPOADBFull.C:112
 FillVZEROEPOADBFull.C:113
 FillVZEROEPOADBFull.C:114
 FillVZEROEPOADBFull.C:115
 FillVZEROEPOADBFull.C:116
 FillVZEROEPOADBFull.C:117
 FillVZEROEPOADBFull.C:118
 FillVZEROEPOADBFull.C:119
 FillVZEROEPOADBFull.C:120
 FillVZEROEPOADBFull.C:121
 FillVZEROEPOADBFull.C:122
 FillVZEROEPOADBFull.C:123
 FillVZEROEPOADBFull.C:124
 FillVZEROEPOADBFull.C:125
 FillVZEROEPOADBFull.C:126
 FillVZEROEPOADBFull.C:127
 FillVZEROEPOADBFull.C:128
 FillVZEROEPOADBFull.C:129
 FillVZEROEPOADBFull.C:130
 FillVZEROEPOADBFull.C:131
 FillVZEROEPOADBFull.C:132
 FillVZEROEPOADBFull.C:133
 FillVZEROEPOADBFull.C:134
 FillVZEROEPOADBFull.C:135
 FillVZEROEPOADBFull.C:136
 FillVZEROEPOADBFull.C:137
 FillVZEROEPOADBFull.C:138
 FillVZEROEPOADBFull.C:139
 FillVZEROEPOADBFull.C:140
 FillVZEROEPOADBFull.C:141
 FillVZEROEPOADBFull.C:142
 FillVZEROEPOADBFull.C:143
 FillVZEROEPOADBFull.C:144
 FillVZEROEPOADBFull.C:145
 FillVZEROEPOADBFull.C:146
 FillVZEROEPOADBFull.C:147
 FillVZEROEPOADBFull.C:148
 FillVZEROEPOADBFull.C:149
 FillVZEROEPOADBFull.C:150
 FillVZEROEPOADBFull.C:151
 FillVZEROEPOADBFull.C:152
 FillVZEROEPOADBFull.C:153
 FillVZEROEPOADBFull.C:154
 FillVZEROEPOADBFull.C:155
 FillVZEROEPOADBFull.C:156