]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/totEt/macros/runHadEt.C
Changes to enable trigger efficiency studies
[u/mrichter/AliRoot.git] / PWGLF / 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, Int_t dataset = 20111, Bool_t test = kTRUE, Int_t material = 0, Bool_t altV0Scale = kFALSE, bool runCompiledVersion = kFALSE
8 ) {
9     TStopwatch timer;
10     timer.Start();
11     gSystem->Load("libTree.so");
12     gSystem->Load("libGeom.so");
13     gSystem->Load("libVMC.so");
14     gSystem->Load("libPhysics.so");
15     gSystem->Load("libXMLIO.so");
16
17     gSystem->Load("libSTEERBase.so");
18     gSystem->Load("libESD.so");
19     gSystem->Load("libAOD.so");
20
21     gSystem->Load("libANALYSIS");
22     gSystem->Load("libOADB.so");
23     gSystem->Load("libANALYSISalice");
24     gSystem->Load("libPWGUDbase.so");
25
26     gSystem->AddIncludePath("-I$ALICE_ROOT/include");
27     gSystem->AddIncludePath("-I$ALICE_ROOT/PWGUD/base");
28     if(runCompiledVersion){
29       gSystem->Load("libPWGLFtotEt.so");
30     }
31     else{
32       gROOT->ProcessLine(".L AliAnalysisEtCuts.cxx+g");
33       gROOT->ProcessLine(".L AliAnalysisHadEtCorrections.cxx+g");
34       gROOT->ProcessLine(".L AliAnalysisEtCommon.cxx+g");
35       gROOT->ProcessLine(".L AliAnalysisHadEt.cxx+g");
36       gROOT->ProcessLine(".L AliAnalysisHadEtMonteCarlo.cxx+g");
37       gROOT->ProcessLine(".L AliAnalysisHadEtReconstructed.cxx+g");
38       gROOT->ProcessLine(".L AliAnalysisTaskTransverseEnergy.cxx+g");
39       gROOT->ProcessLine(".L AliAnalysisTaskHadEt.cxx+g");
40     }
41
42   char *kTreeName = "esdTree" ;
43   TChain * chain   = new TChain(kTreeName,"myESDTree") ;
44   if(submit){      
45     gSystem->Load("libNetx.so") ; 
46     gSystem->Load("libgapiUI.so");
47     gSystem->Load("libRAliEn.so"); 
48     TGrid::Connect("alien://") ;
49   }
50   bool PbPb = false;
51   if(dataset ==20100){
52     bool PbPb = true;
53     if(data){
54       chain->Add("/data/LHC10h/pass2_rev15/10000137366041.860/AliESDs.root");//Data Pb+Pb
55       chain->Add("/data/LHC10h/pass2_rev15/10000137366041.870/AliESDs.root");//Data Pb+Pb
56       chain->Add("/data/LHC10h/pass2_rev15/10000137366041.880/AliESDs.root");//Data Pb+Pb
57       chain->Add("/data/LHC10h/pass2_rev15/10000137366041.890/AliESDs.root");//Data Pb+Pb
58       chain->Add("/data/LHC10h/pass2_rev15/10000137366041.900/AliESDs.root");//Data Pb+Pb
59     }
60     else{
61       chain->Add("/data/LHC10h8/137161/999/AliESDs.root");//Hijing Pb+Pb
62       chain->Add("/data/LHC10h8/137161/111/AliESDs.root");//Hijing Pb+Pb
63       chain->Add("/data/LHC10h8/137161/222/AliESDs.root");//Hijing Pb+Pb
64       //chain->Add("/data/LHC11a4_bis/137161/999/AliESDs.root");//Hijing Pb+Pb
65       //chain->Add("/data/LHC10h12/999/AliESDs.root");//Hijing Pb+Pb
66     }
67   } 
68   else{
69     if(data){
70       cout<<"Yes I am analyzing the correct file"<<endl;
71       //chain->Add("/data/LHC10dpass2/10000126403050.70/AliESDs.root");//data
72       //chain->Add("/data/LHC11a/11000146856042.90/AliESDs.root");//data pp 2.76 TeV w/SDD pass 2
73       chain->Add("/data/LHC11a/11000146860043.90/AliESDs.root");//data pp 2.76 TeV w/SDD pass 3
74     }
75     else{
76       //chain->Add("/data/LHC10d15/1821/AliESDs.root");//simulation p+p
77       chain->Add("/data/LHC11b10a/001/AliESDs.root");
78     }
79   }
80
81   // Make the analysis manager
82   AliAnalysisManager *mgr = new AliAnalysisManager("TotEtManager");
83   if(submit){
84
85     gROOT->LoadMacro("CreateAlienHandlerHadEt.C");
86     AliAnalysisGrid *alienHandler = CreateAlienHandlerHadEt(dataset,data,test,material,altV0Scale,runCompiledVersion);//integer dataset, boolean isData, bool submit-in-test-mode, bool use alternatve V0 scaling
87       if (!alienHandler) return;
88       mgr->SetGridHandler(alienHandler);
89   }
90
91   AliVEventHandler* esdH = new AliESDInputHandler;
92   mgr->SetInputEventHandler(esdH);
93   AliMCEventHandler* handler = new AliMCEventHandler;
94   if(!data){
95     handler->SetReadTR(kFALSE);
96     mgr->SetMCtruthEventHandler(handler);
97   }
98
99
100   gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
101   AliPhysicsSelectionTask *physSelTask = AddTaskPhysicsSelection(!data);
102   if(!physSelTask) { Printf("no physSelTask"); return; }
103   AliPhysicsSelection *physSel = physSelTask->GetPhysicsSelection();
104   //physSel->AddCollisionTriggerClass("+CINT1B-ABCE-NOPF-ALL");// #3119 #769");
105
106
107   gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C");
108
109   AliCentralitySelectionTask *centTask;
110   
111   if(PbPb){
112     AliCentralitySelectionTask *centTask = AddTaskCentrality();
113    if(!data){
114      cout<<"Setting up centrality for MC"<<endl;
115      centTask->SetMCInput();
116    }
117    else{
118      cout<<"Setting up centrality for data"<<endl;
119    }
120   }
121
122    if(dataset==20100){//PbPb 2.76 TeV
123      if(data){gSystem->CopyFile("rootFiles/corrections/corrections.LHC11a4_bis.PbPb.ForData.root","corrections.root",kTRUE);}
124      else{gSystem->CopyFile("rootFiles/corrections/corrections.LHC11a4_bis.PbPb.ForSimulations.root","corrections.root",kTRUE);}
125      gSystem->CopyFile("ConfigHadEtMonteCarloPbPb.C","ConfigHadEtMonteCarlo.C",kTRUE);
126      gSystem->CopyFile("ConfigHadEtReconstructedPbPb.C","ConfigHadEtReconstructed.C",kTRUE);
127      //centTask->SetPass(1);
128    }
129    else{
130      if(dataset==2009){//pp 900 GeV
131        gSystem->CopyFile("ConfigHadEtMonteCarlopp900GeV.C","ConfigHadEtMonteCarlo.C",kTRUE);
132        gSystem->CopyFile("ConfigHadEtReconstructedpp900GeV.C","ConfigHadEtReconstructed.C",kTRUE);
133        if(data){gSystem->CopyFile("rootFiles/corrections/corrections.LHC11b1a.pp.ForData.root","corrections.root",kTRUE);}
134        else{gSystem->CopyFile("rootFiles/corrections/corrections.LHC11b1a.pp.ForSimulations.root","corrections.root",kTRUE);}
135      }
136      if(dataset==20111){//pp 2.76 TeV
137        if(altV0Scale)gSystem->CopyFile("ConfigHadEtMonteCarlopp276TeVAlt.C","ConfigHadEtMonteCarlo.C",kTRUE);
138        else{gSystem->CopyFile("ConfigHadEtMonteCarlopp276TeV.C","ConfigHadEtMonteCarlo.C",kTRUE);}
139        gSystem->CopyFile("ConfigHadEtReconstructedpp276TeV.C","ConfigHadEtReconstructed.C",kTRUE);
140        if(data){gSystem->CopyFile("rootFiles/corrections/corrections.LHC11b10a.pp.ForData.root","corrections.root",kTRUE);}
141        else{gSystem->CopyFile("rootFiles/corrections/corrections.LHC11b10a.pp.ForSimulations.root","corrections.root",kTRUE);}
142      }
143      if(dataset==2010){//pp 7 TeV
144        gSystem->CopyFile("ConfigHadEtMonteCarlopp7TeV.C","ConfigHadEtMonteCarlo.C",kTRUE);
145        gSystem->CopyFile("ConfigHadEtReconstructedpp7TeV.C","ConfigHadEtReconstructed.C",kTRUE);
146        if(data){gSystem->CopyFile("rootFiles/corrections/corrections.LHC10e20.pp.ForData.root","corrections.root",kTRUE);}
147        else{gSystem->CopyFile("rootFiles/corrections/corrections.LHC10e20.pp.ForSimulations.root","corrections.root",kTRUE);}
148      }
149    }
150    AliAnalysisTaskHadEt *task2 = new AliAnalysisTaskHadEt("TaskHadEt",!data);//,recoFile,mcFile);
151    if(!data) task2->SetMcData();
152    //Add thing here to select collision type!!
153    //if(dataset!=20100){task2->SelectCollisionCandidates(AliVEvent::kMB ) ;}
154    if(dataset!=20100){task2->SelectCollisionCandidates(AliVEvent::kMB ) ;}
155    mgr->AddTask(task2);
156   AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
157    AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("out2", TList::Class(), AliAnalysisManager::kOutputContainer,"Et.ESD.new.sim.root");
158 //    mgr->ConnectInput(task2,0,cinput1);
159 //    mgr->ConnectOutput(task2,1,coutput2);
160    mgr->ConnectInput(task2,0,cinput1);
161    mgr->ConnectOutput(task2,1,coutput2);
162    
163   mgr->SetDebugLevel(0);
164   
165   if (!mgr->InitAnalysis()) return;
166   mgr->PrintStatus();
167   if(submit){
168     mgr->StartAnalysis("grid");
169   }
170   else{
171     mgr->StartAnalysis("local",chain);
172   }
173
174   timer.Stop();
175   timer.Print();
176 }