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