]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/FEMTOSCOPY/macros/Train/QAEffContTask/runBatch.C
Additional task for QA, Efficiency and Contamination corrections. The same AOD cuts...
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / macros / Train / QAEffContTask / runBatch.C
1 void runBatch(int Nevents=20000000, const char* outfilename="AnalysisResults.root",  bool batchmode=kTRUE, const char* collectionfile="collection.xml") {
2   TStopwatch timer;
3   timer.Start();
4
5   printf("*** Connect to AliEn ***\n");
6   TGrid::Connect("alien://");
7
8   gSystem->Load("libTree.so");
9   gSystem->Load("libGeom.so");
10   gSystem->Load("libVMC.so");
11   gSystem->Load("libPhysics.so");
12   //____________________________________________________//
13   //_____________Setting up required packages___________//
14   //____________________________________________________//
15   gSystem->Load("libSTEERBase.so");
16   gSystem->Load("libESD.so");
17   gSystem->Load("libAOD.so");
18   gSystem->Load("libANALYSIS.so");
19   gSystem->Load("libANALYSISalice.so");
20   gROOT->ProcessLine(".include $ALICE_ROOT/include");
21   //ANALYSIS PART
22   // gROOT->LoadMacro("AliAnalysisCheck.cxx+g");
23
24 gROOT->LoadMacro("AliAnalysisTaskParticleEfficiency.cxx+g");
25
26   //gROOT->LoadMacro("$ALICE_ROOT/PWG0/CreateESDChain.C");
27   
28
29
30   TChain *chain = new TChain("aodTree");
31
32   const char *collectionfile="wn.xml";
33   ifstream *istr = new ifstream(collectionfile);
34
35   char fname[2000];
36   char pname[2000];
37   while (!istr->eof()) {
38     fname[0] = '\0';
39     (*istr) >> fname;
40     if (strlen(fname) > 10) {
41       sprintf(pname, "alien://%s", fname);
42       chain->Add(pname);
43     }
44     }
45
46
47   //chain->Add("../../data/AOD/PbPb/AOD95/AliAOD.root");
48   //chain->Add("/opt/alice/workdir/TestConfig/data/Pythia/AOD/1/AliAOD.root");
49   //chain->Add("/opt/alice/workdir/TestConfig/data/AOD/PbPb/PbPb.LHC10h/AOD86/1/AliAOD.root");
50    //chain->Add("/opt/alice/workdir/TestConfig/data/AOD/PbPb/PbPb.LHC10h/AOD86/2/AliAOD.root");
51    // chain->Add("/opt/alice/workdir/TestConfig/data/AOD/PbPb/PbPb.LHC10h/AOD86/3/AliAOD.root");
52    //chain->Add("/opt/alice/workdir/TestConfig/data/AOD/PbPb/PbPb.LHC10h/AOD86/4/AliAOD.root");
53   // chain->Add("../../data/AOD/PbPb/New.PbPb.2012.01/AliAOD.root");
54   //chain->Add("../../data/AOD/PbPb/New.PbPb.2012.01.2/AliAOD.root");
55 // else {
56  
57
58 //   chain = CreateChainFromCollection(collectionfile, "esdTree");
59     //  }
60
61    
62   //____________________________________________//
63   // Make the analysis manager
64   AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
65
66   AliAODInputHandler* aodH = new AliAODInputHandler;
67   mgr->SetInputEventHandler(aodH);
68   //____________________________________________//
69   // 1st Pt task
70
71
72   //AddTaskPIDResponse
73   gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C");
74   Bool_t isMC=kTRUE; Bool_t tuneOnData = kTRUE; // kTRUE in case of MC
75   AddTaskPIDResponse(isMC,kTRUE,tuneOnData); 
76
77   //gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDqa.C");
78   //AddTaskPIDqa();
79
80   AliAnalysisTaskParticleEfficiency *myTask = new AliAnalysisTaskParticleEfficiency("MyTask");
81   if(!myTask) exit(-1);
82   mgr->AddTask(myTask);
83
84   // Create containers for input/output
85   AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
86   AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("MyList", TList::Class(),AliAnalysisManager::kOutputContainer,outfilename);
87  
88   //____________________________________________//
89   mgr->ConnectInput(myTask,0,cinput);   
90   mgr->ConnectOutput(myTask,1,coutput2);        
91
92   if (!mgr->InitAnalysis()) return;
93   mgr->PrintStatus();
94   mgr->StartAnalysis("local",chain, Nevents);
95
96   timer.Stop();
97   timer.Print();
98 }
99
100 //______________________________________________________________________________
101 TChain *CreateChainFromCollection(const char* xmlfile, const char *treeName="esdTree")
102 {
103 // Create a chain from an alien collection.
104    TAlienCollection * myCollection  = TAlienCollection::Open(xmlfile);
105
106    if (!myCollection) {
107       ::Error("CreateChainSingle", "Cannot create an AliEn collection from %s", xmlfile) ;
108       return NULL ;
109   }
110
111   TChain* chain = new TChain(treeName);
112   myCollection->Reset() ;
113   while ( myCollection->Next() ) chain->Add(myCollection->GetTURL("")) ;
114   chain->ls();
115   return chain;
116 }