]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/totEt/macros/runHadEt.C
48a960bd24fdcb0ab0907f1b3330a45a74360290
[u/mrichter/AliRoot.git] / PWG4 / totEt / macros / runHadEt.C
1 //Create by Christine Nattrass, Rebecca Scott, Irakli Martashvili
2 //University of Tennessee at Knoxville
3
4 //by default this runs locally
5 //With the argument true this submits jobs to the grid
6 //As written this requires an xml script tag.xml in the ~/et directory on the grid to submit jobs
7 void runHadEt(bool submit = false, bool data = false, bool PbPb = false) {
8     TStopwatch timer;
9     timer.Start();
10     gSystem->Load("libTree.so");
11     gSystem->Load("libGeom.so");
12     gSystem->Load("libVMC.so");
13     gSystem->Load("libXMLIO.so");
14
15     gSystem->Load("libSTEERBase.so");
16     gSystem->Load("libESD.so");
17     gSystem->Load("libAOD.so");
18
19     gSystem->Load("libANALYSIS");
20     gSystem->Load("libANALYSISalice");
21
22     gSystem->AddIncludePath("-I$ALICE_ROOT/include");
23    gROOT->ProcessLine(".L AliAnalysisEtCuts.cxx+g");
24    gROOT->ProcessLine(".L AliAnalysisHadEtCorrections.cxx+g");
25    gROOT->ProcessLine(".L AliAnalysisEtCommon.cxx+g");
26    gROOT->ProcessLine(".L AliAnalysisHadEt.cxx+g");
27    gROOT->ProcessLine(".L AliAnalysisHadEtMonteCarlo.cxx+g");
28    gROOT->ProcessLine(".L AliAnalysisHadEtReconstructed.cxx+g");
29    gROOT->ProcessLine(".L AliAnalysisEtSelectionContainer.cxx+g");
30    gROOT->ProcessLine(".L AliAnalysisEtSelectionHandler.cxx+g");
31    gROOT->ProcessLine(".L AliAnalysisTaskTransverseEnergy.cxx+g");
32    gROOT->ProcessLine(".L AliAnalysisTaskHadEt.cxx+g");
33
34
35   char *kTreeName = "esdTree" ;
36   TChain * chain   = new TChain(kTreeName,"myESDTree") ;
37   if(submit){      
38     gSystem->Load("libNetx.so") ; 
39     gSystem->Load("libgapiUI.so");
40     gSystem->Load("libRAliEn.so"); 
41     TGrid::Connect("alien://") ;
42   }
43   //chain->Add("/data/LHC10h12/999/AliESDs.root");//Hijing Pb+Pb
44   chain->Add("/data/LHC10d15/1821/AliESDs.root");//simulation p+p
45   //chain->Add("/data/LHC10dpass2/10000126403050.70/AliESDs.root");//data
46
47   // Make the analysis manager
48   AliAnalysisManager *mgr = new AliAnalysisManager("TotEtManager");
49   if(submit){
50     if(PbPb){
51       gROOT->LoadMacro("CreateAlienHandlerHadEtSimPbPb.C");
52       AliAnalysisGrid *alienHandler = CreateAlienHandlerHadEtSimPbPb();  
53     }
54     else{
55       gROOT->LoadMacro("CreateAlienHandlerHadEtSim.C");
56       AliAnalysisGrid *alienHandler = CreateAlienHandlerHadEtSim();  
57     }
58     if (!alienHandler) return;
59     mgr->SetGridHandler(alienHandler);
60   }
61
62   AliVEventHandler* esdH = new AliESDInputHandler;
63   mgr->SetInputEventHandler(esdH);
64   AliMCEventHandler* handler = new AliMCEventHandler;
65   if(!data){
66     handler->SetReadTR(kFALSE);
67     mgr->SetMCtruthEventHandler(handler);
68   }
69
70   bool isMc = true;
71   if(data) isMC = false;
72   gROOT->ProcessLine(".L $ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
73   gROOT->ProcessLine(".L $ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C");
74
75   
76   AliPhysicsSelectionTask *physSelTask = AddTaskPhysicsSelection(isMc);
77   if(PbPb){
78    AliCentralitySelectionTask *centTask = AddTaskCentrality();
79    mgr->AddTask(centTask);
80   }
81
82   if(data){
83     AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("out1", TList::Class(), AliAnalysisManager::kOutputContainer,"event_stat.root");
84     mgr->ConnectInput(physSelTask,0,cinput1);
85     mgr->ConnectOutput(physSelTask,1,coutput1);
86   }
87
88
89     AliAnalysisTaskHadEt *task2 = new AliAnalysisTaskHadEt("TaskHadEt");
90     mgr->AddTask(task2);
91   AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
92   AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("out2", TList::Class(), AliAnalysisManager::kOutputContainer,"Et.ESD.new.sim.root");
93   mgr->ConnectInput(task2,0,cinput1);
94   mgr->ConnectOutput(task2,1,coutput2);
95   
96   mgr->SetDebugLevel(0);
97   
98   if (!mgr->InitAnalysis()) return;
99   mgr->PrintStatus();
100   if(submit){
101     mgr->StartAnalysis("grid");
102   }
103   else{
104     mgr->StartAnalysis("local",chain);
105   }
106
107   timer.Stop();
108   timer.Print();
109 }