]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/macros/AddTaskEmcalJetSpectraMECpA.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskEmcalJetSpectraMECpA.C
CommitLineData
d7afd9ac 1// $Id$
2
3AliAnalysisTaskEmcalJetSpectraMECpA* AddTaskEmcalJetSpectraMECpA(
4 const char *outfilename = "AnalysisOutput.root",
e77cf839 5 const char *nRhosCh = "rhoCh",
6 const char *nRhosChEm = "rhoChEm",
7eafc909 7 const char *nRhosEm = "rhoEm",
8 const Double_t scale = 1.0,
f4cde8da 9 const Double_t radius = 0.2,
d7afd9ac 10 const Double_t minPhi = 1.8,
11 const Double_t maxPhi = 2.74,
12 const Double_t minEta = -0.3,
13 const Double_t maxEta = 0.3,
f4cde8da 14 const char* usedTracks = "PicoTracks",
7eafc909 15 const char* outClusName = "caloClustersCorr",
f4cde8da 16 const Double_t minTrackPt = 0.15,
e8df4140 17 const Double_t minClusterPt = 0.30,
7eafc909 18 const char *CentEst = "V0A",
19 const Int_t type =1
f4cde8da 20 )
d7afd9ac 21{
22 // Get the pointer to the existing analysis manager via the static access method.
23 //==============================================================================
24 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
25 if (!mgr)
26 {
27 ::Error("AddTasEmcalJetSpectraMECpA", "No analysis manager to connect to.");
28 return NULL;
29 }
30
31 // Check the analysis type using the event handlers connected to the analysis manager.
32 //==============================================================================
33 if (!mgr->GetInputEventHandler())
34 {
35 ::Error("AddTaskEmcalJetSpectraMECpA", "This task requires an input event handler");
36 return NULL;
37 }
38
f4cde8da 39 //Run the jet finder and rho tasks first
40
41 // Some constants for the jet finders
42 const Int_t cKT = 0;
43 const Int_t cANTIKT = 1;
44 const Int_t cFULLJETS = 0;
45 const Int_t cCHARGEDJETS = 1;
46 const Int_t cNEUTRALJETS = 2;
7eafc909 47
48 UInt_t typeTPC = AliAnalysisTaskEmcal::kTPC;
49 UInt_t typeEMC = AliAnalysisTaskEmcal::kEMCAL;
50
f4cde8da 51
719a6f97 52 float AreaCut = 0.6*radius*radius*TMath::Pi();
f4cde8da 53
7eafc909 54 TF1 *sfunc=new TF1("sfunc","[0]*x*x+[1]*x+[2]",-1,100);
e77cf839 55 sfunc->SetParameter(0,0.0);
56 sfunc->SetParameter(1,0.0);
7eafc909 57 sfunc->SetParameter(2,scale);
f4cde8da 58
f4cde8da 59
e77cf839 60 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C");
0c5f6f08 61 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskRhoSparse.C");
719a6f97 62
63 //const char *nJets;
64 TString nJets("");
76884488 65 TString nJetsCh("");
719a6f97 66
67 TString scaledname(Form("%s_Scaled", nRhosCh));
0c5f6f08 68 TString newrhoname(Form("%s_All", nRhosCh));
7eafc909 69 //TString scaledname(Form("%s_Scaled", newrhoname));
719a6f97 70
e77cf839 71
719a6f97 72 if(!(usedTracks=="")){
73 cout << "USEDTRACKS EXISTS" << usedTracks <<endl;
74 AliEmcalJetTask* jetFinderTaskChBack = AddTaskEmcalJet(usedTracks,"",cKT,radius,cCHARGEDJETS,minTrackPt, minClusterPt);
f4cde8da 75
0c5f6f08 76 AliEmcalJetTask* jetFinderTaskChBackall = AddTaskEmcalJet(usedTracks,"",cKT,radius,cCHARGEDJETS,minTrackPt, minClusterPt,0.01,"Jets_allpt");
77 jetFinderTaskChBackall->SetMinJetPt(0);
78
79 AliEmcalJetTask* jetFinderTaskChSig = AddTaskEmcalJet(usedTracks,"",cANTIKT,radius,cCHARGEDJETS,minTrackPt, minClusterPt);
80
719a6f97 81 AliEmcalJetTask* jetFinderTaskChEmBack = AddTaskEmcalJet(usedTracks,outClusName,cKT,radius,cFULLJETS,minTrackPt, minClusterPt);
0c5f6f08 82 jetFinderTaskChEmBack->SetMinJetPt(0);
f4cde8da 83
719a6f97 84 AliEmcalJetTask* jetFinderTask = AddTaskEmcalJet(usedTracks,outClusName,cANTIKT,radius, cFULLJETS,minTrackPt,minClusterPt);
f4cde8da 85
7eafc909 86 AliAnalysisTaskRhoSparse *rhochtask = AddTaskRhoSparse(jetFinderTaskChBack->GetName(),jetFinderTaskChSig->GetName(),usedTracks,outClusName,nRhosCh,radius,typeTPC,0.01,0,0,sfunc,0,kTRUE,nRhosCh);
e77cf839 87 rhochtask->SetCentralityEstimator(CentEst);
f4cde8da 88
76884488 89 AliAnalysisTaskRhoSparse *rhochalltask = AddTaskRhoSparse(jetFinderTaskChBackall->GetName(),jetFinderTaskChSig->GetName(),usedTracks,outClusName,newrhoname,radius,0,0.0,0,0,sfunc,0,kTRUE,newrhoname);
0c5f6f08 90 rhochtask->SetCentralityEstimator(CentEst);
91
92
7eafc909 93 AliAnalysisTaskRhoSparse *rhochemtask = AddTaskRhoSparse(jetFinderTaskChEmBack->GetName(),jetFinderTask->GetName(),usedTracks,outClusName,nRhosChEm,radius,typeEMC,0.01,0,0,0,0,kTRUE,nRhosChEm);
e77cf839 94 rhochemtask->SetCentralityEstimator(CentEst);
f4cde8da 95
719a6f97 96 //nJets=jetFinderTask->GetName();
97 nJets+=jetFinderTask->GetName();
76884488 98 nJetsCh+=jetFinderTaskChSig->GetName();
e8df4140 99
100 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskDeltaPt.C");
101
719a6f97 102 TString deltaname(Form("DeltaPt_%s_Scaled", nRhosCh));
103 AliAnalysisTaskDeltaPt* deltapt = AddTaskDeltaPt(usedTracks,outClusName,nJets,"","","","","",scaledname,radius,1,AreaCut,minTrackPt,minClusterPt,AliAnalysisTaskEmcal::kEMCAL,deltaname);
104 deltapt->SetCentralityEstimator(CentEst);
105
76884488 106 TString chdeltaname(Form("DeltaPt_%s", nRhosCh));
107 AliAnalysisTaskDeltaPt* deltaptch = AddTaskDeltaPt(usedTracks,"",nJetsCh,"","","","","",nRhosCh,radius,1,AreaCut,minTrackPt,minClusterPt,AliAnalysisTaskEmcal::kTPC,chdeltaname);
108 deltaptch->SetCentralityEstimator(CentEst);
109
719a6f97 110 TString emcdeltaname(Form("DeltaPt_%s", nRhosChEm));
5b9b303d 111 AliAnalysisTaskDeltaPt* deltaptEMC = AddTaskDeltaPt(usedTracks,outClusName,nJets,"","","","","",nRhosChEm,radius,1,AreaCut,minTrackPt,minClusterPt,AliAnalysisTaskEmcal::kEMCAL,emcdeltaname);
76884488 112 deltaptEMC->SetCentralityEstimator(CentEst);
e8df4140 113
719a6f97 114 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskScale.C");
115
5b9b303d 116
117 Int_t radlabel=(Int_t)floor(radius*100+0.5);
118 Int_t mincluslabel=(Int_t)floor(minClusterPt*1000+0.5);
119 Int_t mintracklabel=(Int_t)floor(minTrackPt*1000+0.5);
120 TString scalename(Form("Scale_R0%d", radlabel));
121
122 AliAnalysisTaskScale* scaletask = AddTaskScale(usedTracks,outClusName,minTrackPt,minClusterPt,scalename);
719a6f97 123 scaletask->SetCentralityEstimator(CentEst);
124 scaletask->SetScaleFunction(sfunc);
719a6f97 125
5b9b303d 126
719a6f97 127 }
5b9b303d 128
719a6f97 129 cout << "Running non charged jet finders..." <<endl;
130 AliEmcalJetTask* jetFinderTaskEm = AddTaskEmcalJet("",outClusName,cANTIKT,radius,cNEUTRALJETS,minTrackPt,minClusterPt);
131
132 AliEmcalJetTask* jetFinderTaskEmBack = AddTaskEmcalJet("",outClusName,cKT,radius,cNEUTRALJETS,minTrackPt, minClusterPt);
133
134 cout << "Running non charged rho task..." <<endl;
135
0c5f6f08 136 AliAnalysisTaskRhoSparse *rhoemtask = AddTaskRhoSparse(jetFinderTaskEmBack->GetName(),jetFinderTaskEm->GetName(),usedTracks,outClusName,nRhosEm,radius,0,0.01,0,0,0,1,kTRUE,nRhosEm);
719a6f97 137 rhoemtask->SetCentralityEstimator(CentEst);
138
719a6f97 139 if(usedTracks=="") nJets +=jetFinderTaskEm->GetName();
140
f4cde8da 141
76884488 142
143
144
d7afd9ac 145 //-------------------------------------------------------
146 // Init the task and do settings
147 //-------------------------------------------------------
148
f4cde8da 149
719a6f97 150 cout << "Ready to run my task..." << nJets <<endl;
7eafc909 151
719a6f97 152 TString name(Form("SpectraMECpA_%s", nJets.Data()));
d7afd9ac 153 AliAnalysisTaskEmcalJetSpectraMECpA *spectratask = new AliAnalysisTaskEmcalJetSpectraMECpA(name);
719a6f97 154 spectratask->SetJetsName(nJets.Data());
e8df4140 155 spectratask->SetCentralityEstimator(CentEst);
7eafc909 156
157 if(type==0){
158 spectratask->SetAnaType(typeTPC);
159 spectratask->SetRhoName(nRhosCh);
160 }else{
161 spectratask->SetAnaType(typeEMC);
162 if(!(usedTracks=="")) spectratask->SetRhoName(scaledname);
163 else spectratask->SetRhoName(nRhosEm);
164 }
d7afd9ac 165 spectratask->SetJetPhiLimits(minPhi,maxPhi);
166 spectratask->SetJetEtaLimits(minEta,maxEta);
f4cde8da 167 spectratask->SetJetAreaCut(AreaCut);
168 spectratask->SetTracksName(usedTracks);
d7afd9ac 169
170 //-------------------------------------------------------
171 // Final settings, pass to manager and set the containers
172 //-------------------------------------------------------
173
7eafc909 174
d7afd9ac 175 mgr->AddTask(spectratask);
176
177 // Create containers for input/output
7eafc909 178 mgr->ConnectInput (spectratask, 0, mgr->GetCommonInputContainer());
d7afd9ac 179 AliAnalysisDataContainer *cospectra = mgr->CreateContainer(name,
180 TList::Class(),
181 AliAnalysisManager::kOutputContainer,
182 outfilename);
183 mgr->ConnectOutput(spectratask,1,cospectra);
184
76884488 185
76884488 186
d7afd9ac 187 return spectratask;
188}