#include <iostream>
#include "TSystem.h"
#include "TFileMerger.h"
#include "TGrid.h"
#include "TAlienCollection.h"
#include "TFile.h"
#include "TH1F.h"
#include "TList.h"
#include "TH1I.h"
#include "TMath.h"
#include "TGraphErrors.h"
#include "AliAnalysisTaskdNdetaMC.h"
#include "TROOT.h"
using namespace std;
void MergeCollectionFromGrid(const char * incollection = "test.xml", const char * outputfile= "dndeta_merged.root")
{
// for running with root only
gSystem->Load("libTree.so");
gSystem->Load("libGeom.so");
gSystem->Load("libVMC.so");
gSystem->Load("libSTEERBase.so");
gSystem->Load("libESD.so");
gSystem->Load("libAOD.so");
// load analysis framework
gSystem->Load("libANALYSIS");
gSystem->Load("libANALYSISalice");
// load dndeta task
gROOT->LoadMacro("AliAnalysisTaskdNdetaMC.cxx+");
TFileMerger * fileMerger = new TFileMerger(0); // dont merge local files
TGrid::Connect("alien://");
TGridCollection * coll = TAlienCollection::Open (incollection);
Int_t ifile=0;
while(coll->Next()){
fileMerger->AddFile(TString("alien://")+coll->GetLFN());
ifile++;
// if(ifile>2) break;
}
fileMerger->OutputFile("tmp.root");
fileMerger->Merge();
// Reopen the merged file, normalize histos and save them back.
// SOME DUPLICATED CODE... SOME CLEAN UP WOULD BE GOOD
AliAnalysisTaskdNdetaMC * localTask = new AliAnalysisTaskdNdetaMC("merger", "tmp.root");
localTask->Finalize();
TFile * fout = new TFile (outputfile, "recreate");
localTask->GetList()->Write();
fout->Close();
}
MergeCollectionFromGrid.C:1 MergeCollectionFromGrid.C:2 MergeCollectionFromGrid.C:3 MergeCollectionFromGrid.C:4 MergeCollectionFromGrid.C:5 MergeCollectionFromGrid.C:6 MergeCollectionFromGrid.C:7 MergeCollectionFromGrid.C:8 MergeCollectionFromGrid.C:9 MergeCollectionFromGrid.C:10 MergeCollectionFromGrid.C:11 MergeCollectionFromGrid.C:12 MergeCollectionFromGrid.C:13 MergeCollectionFromGrid.C:14 MergeCollectionFromGrid.C:15 MergeCollectionFromGrid.C:16 MergeCollectionFromGrid.C:17 MergeCollectionFromGrid.C:18 MergeCollectionFromGrid.C:19 MergeCollectionFromGrid.C:20 MergeCollectionFromGrid.C:21 MergeCollectionFromGrid.C:22 MergeCollectionFromGrid.C:23 MergeCollectionFromGrid.C:24 MergeCollectionFromGrid.C:25 MergeCollectionFromGrid.C:26 MergeCollectionFromGrid.C:27 MergeCollectionFromGrid.C:28 MergeCollectionFromGrid.C:29 MergeCollectionFromGrid.C:30 MergeCollectionFromGrid.C:31 MergeCollectionFromGrid.C:32 MergeCollectionFromGrid.C:33 MergeCollectionFromGrid.C:34 MergeCollectionFromGrid.C:35 MergeCollectionFromGrid.C:36 MergeCollectionFromGrid.C:37 MergeCollectionFromGrid.C:38 MergeCollectionFromGrid.C:39 MergeCollectionFromGrid.C:40 MergeCollectionFromGrid.C:41 MergeCollectionFromGrid.C:42 MergeCollectionFromGrid.C:43 MergeCollectionFromGrid.C:44 MergeCollectionFromGrid.C:45 MergeCollectionFromGrid.C:46 MergeCollectionFromGrid.C:47 MergeCollectionFromGrid.C:48 MergeCollectionFromGrid.C:49 MergeCollectionFromGrid.C:50 MergeCollectionFromGrid.C:51 MergeCollectionFromGrid.C:52 MergeCollectionFromGrid.C:53 MergeCollectionFromGrid.C:54 MergeCollectionFromGrid.C:55 MergeCollectionFromGrid.C:56 MergeCollectionFromGrid.C:57 MergeCollectionFromGrid.C:58 MergeCollectionFromGrid.C:59