]>
Commit | Line | Data |
---|---|---|
d7afd9ac | 1 | // $Id$ |
2 | ||
3 | AliAnalysisTaskEmcalJetSpectraMECpA* AddTaskEmcalJetSpectraMECpA( | |
4 | const char *outfilename = "AnalysisOutput.root", | |
d7afd9ac | 5 | UInt_t type = AliAnalysisTaskEmcal::kTPC, |
e77cf839 | 6 | const char *nRhosCh = "rhoCh", |
7 | const char *nRhosChEm = "rhoChEm", | |
719a6f97 | 8 | const char *nRhosEm = "rhoEm", |
9e64e697 | 9 | TF1 *sfunc = 0, |
f4cde8da | 10 | const Double_t radius = 0.2, |
d7afd9ac | 11 | const Double_t minPhi = 1.8, |
12 | const Double_t maxPhi = 2.74, | |
13 | const Double_t minEta = -0.3, | |
14 | const Double_t maxEta = 0.3, | |
f4cde8da | 15 | const char* usedTracks = "PicoTracks", |
16 | const char* outClusName = "CaloClustersCorr", | |
17 | const Double_t minTrackPt = 0.15, | |
e8df4140 | 18 | const Double_t minClusterPt = 0.30, |
19 | const char *CentEst = "V0A" | |
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; | |
f4cde8da | 47 | |
719a6f97 | 48 | float AreaCut = 0.6*radius*radius*TMath::Pi(); |
f4cde8da | 49 | |
e77cf839 | 50 | sfunc=new TF1("sfunc","[0]*x*x+[1]*x+[2]",-1,100); |
51 | sfunc->SetParameter(0,0.0); | |
52 | sfunc->SetParameter(1,0.0); | |
53 | sfunc->SetParameter(2,1.5); | |
f4cde8da | 54 | |
f4cde8da | 55 | |
e77cf839 | 56 | gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C"); |
0c5f6f08 | 57 | gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskRhoSparse.C"); |
719a6f97 | 58 | |
59 | //const char *nJets; | |
60 | TString nJets(""); | |
76884488 | 61 | TString nJetsCh(""); |
719a6f97 | 62 | |
63 | TString scaledname(Form("%s_Scaled", nRhosCh)); | |
0c5f6f08 | 64 | TString newrhoname(Form("%s_All", nRhosCh)); |
719a6f97 | 65 | |
e77cf839 | 66 | |
719a6f97 | 67 | if(!(usedTracks=="")){ |
68 | cout << "USEDTRACKS EXISTS" << usedTracks <<endl; | |
69 | AliEmcalJetTask* jetFinderTaskChBack = AddTaskEmcalJet(usedTracks,"",cKT,radius,cCHARGEDJETS,minTrackPt, minClusterPt); | |
f4cde8da | 70 | |
0c5f6f08 | 71 | AliEmcalJetTask* jetFinderTaskChBackall = AddTaskEmcalJet(usedTracks,"",cKT,radius,cCHARGEDJETS,minTrackPt, minClusterPt,0.01,"Jets_allpt"); |
72 | jetFinderTaskChBackall->SetMinJetPt(0); | |
73 | ||
74 | AliEmcalJetTask* jetFinderTaskChSig = AddTaskEmcalJet(usedTracks,"",cANTIKT,radius,cCHARGEDJETS,minTrackPt, minClusterPt); | |
75 | ||
719a6f97 | 76 | AliEmcalJetTask* jetFinderTaskChEmBack = AddTaskEmcalJet(usedTracks,outClusName,cKT,radius,cFULLJETS,minTrackPt, minClusterPt); |
0c5f6f08 | 77 | jetFinderTaskChEmBack->SetMinJetPt(0); |
f4cde8da | 78 | |
719a6f97 | 79 | AliEmcalJetTask* jetFinderTask = AddTaskEmcalJet(usedTracks,outClusName,cANTIKT,radius, cFULLJETS,minTrackPt,minClusterPt); |
f4cde8da | 80 | |
76884488 | 81 | AliAnalysisTaskRhoSparse *rhochtask = AddTaskRhoSparse(jetFinderTaskChBack->GetName(),jetFinderTaskChSig->GetName(),usedTracks,outClusName,nRhosCh,radius,0,0.01,0,0,sfunc,0,kTRUE,nRhosCh); |
e77cf839 | 82 | rhochtask->SetCentralityEstimator(CentEst); |
f4cde8da | 83 | |
76884488 | 84 | AliAnalysisTaskRhoSparse *rhochalltask = AddTaskRhoSparse(jetFinderTaskChBackall->GetName(),jetFinderTaskChSig->GetName(),usedTracks,outClusName,newrhoname,radius,0,0.0,0,0,sfunc,0,kTRUE,newrhoname); |
0c5f6f08 | 85 | rhochtask->SetCentralityEstimator(CentEst); |
86 | ||
87 | ||
76884488 | 88 | AliAnalysisTaskRhoSparse *rhochemtask = AddTaskRhoSparse(jetFinderTaskChEmBack->GetName(),jetFinderTask->GetName(),usedTracks,outClusName,nRhosChEm,radius,0,0.01,0,0,0,0,kTRUE,nRhosChEm); |
e77cf839 | 89 | rhochemtask->SetCentralityEstimator(CentEst); |
f4cde8da | 90 | |
719a6f97 | 91 | //nJets=jetFinderTask->GetName(); |
92 | nJets+=jetFinderTask->GetName(); | |
76884488 | 93 | nJetsCh+=jetFinderTaskChSig->GetName(); |
e8df4140 | 94 | |
95 | gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskDeltaPt.C"); | |
96 | ||
719a6f97 | 97 | TString deltaname(Form("DeltaPt_%s_Scaled", nRhosCh)); |
98 | AliAnalysisTaskDeltaPt* deltapt = AddTaskDeltaPt(usedTracks,outClusName,nJets,"","","","","",scaledname,radius,1,AreaCut,minTrackPt,minClusterPt,AliAnalysisTaskEmcal::kEMCAL,deltaname); | |
99 | deltapt->SetCentralityEstimator(CentEst); | |
100 | ||
76884488 | 101 | TString chdeltaname(Form("DeltaPt_%s", nRhosCh)); |
102 | AliAnalysisTaskDeltaPt* deltaptch = AddTaskDeltaPt(usedTracks,"",nJetsCh,"","","","","",nRhosCh,radius,1,AreaCut,minTrackPt,minClusterPt,AliAnalysisTaskEmcal::kTPC,chdeltaname); | |
103 | deltaptch->SetCentralityEstimator(CentEst); | |
104 | ||
719a6f97 | 105 | TString emcdeltaname(Form("DeltaPt_%s", nRhosChEm)); |
5b9b303d | 106 | AliAnalysisTaskDeltaPt* deltaptEMC = AddTaskDeltaPt(usedTracks,outClusName,nJets,"","","","","",nRhosChEm,radius,1,AreaCut,minTrackPt,minClusterPt,AliAnalysisTaskEmcal::kEMCAL,emcdeltaname); |
76884488 | 107 | deltaptEMC->SetCentralityEstimator(CentEst); |
e8df4140 | 108 | |
719a6f97 | 109 | gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskScale.C"); |
110 | ||
5b9b303d | 111 | |
112 | Int_t radlabel=(Int_t)floor(radius*100+0.5); | |
113 | Int_t mincluslabel=(Int_t)floor(minClusterPt*1000+0.5); | |
114 | Int_t mintracklabel=(Int_t)floor(minTrackPt*1000+0.5); | |
115 | TString scalename(Form("Scale_R0%d", radlabel)); | |
116 | ||
117 | AliAnalysisTaskScale* scaletask = AddTaskScale(usedTracks,outClusName,minTrackPt,minClusterPt,scalename); | |
719a6f97 | 118 | scaletask->SetCentralityEstimator(CentEst); |
119 | scaletask->SetScaleFunction(sfunc); | |
719a6f97 | 120 | |
5b9b303d | 121 | |
719a6f97 | 122 | } |
5b9b303d | 123 | |
719a6f97 | 124 | cout << "Running non charged jet finders..." <<endl; |
125 | AliEmcalJetTask* jetFinderTaskEm = AddTaskEmcalJet("",outClusName,cANTIKT,radius,cNEUTRALJETS,minTrackPt,minClusterPt); | |
126 | ||
127 | AliEmcalJetTask* jetFinderTaskEmBack = AddTaskEmcalJet("",outClusName,cKT,radius,cNEUTRALJETS,minTrackPt, minClusterPt); | |
128 | ||
129 | cout << "Running non charged rho task..." <<endl; | |
130 | ||
0c5f6f08 | 131 | AliAnalysisTaskRhoSparse *rhoemtask = AddTaskRhoSparse(jetFinderTaskEmBack->GetName(),jetFinderTaskEm->GetName(),usedTracks,outClusName,nRhosEm,radius,0,0.01,0,0,0,1,kTRUE,nRhosEm); |
719a6f97 | 132 | rhoemtask->SetCentralityEstimator(CentEst); |
133 | ||
719a6f97 | 134 | if(usedTracks=="") nJets +=jetFinderTaskEm->GetName(); |
135 | ||
f4cde8da | 136 | |
76884488 | 137 | |
138 | ||
139 | ||
d7afd9ac | 140 | //------------------------------------------------------- |
141 | // Init the task and do settings | |
142 | //------------------------------------------------------- | |
143 | ||
f4cde8da | 144 | |
719a6f97 | 145 | cout << "Ready to run my task..." << nJets <<endl; |
f4cde8da | 146 | |
719a6f97 | 147 | TString name(Form("SpectraMECpA_%s", nJets.Data())); |
d7afd9ac | 148 | AliAnalysisTaskEmcalJetSpectraMECpA *spectratask = new AliAnalysisTaskEmcalJetSpectraMECpA(name); |
719a6f97 | 149 | spectratask->SetJetsName(nJets.Data()); |
e8df4140 | 150 | spectratask->SetCentralityEstimator(CentEst); |
d7afd9ac | 151 | spectratask->SetAnaType(type); |
76884488 | 152 | if(!(usedTracks=="")) spectratask->SetRhoName(scaledname); |
719a6f97 | 153 | else spectratask->SetRhoName(nRhosEm); |
d7afd9ac | 154 | spectratask->SetJetPhiLimits(minPhi,maxPhi); |
155 | spectratask->SetJetEtaLimits(minEta,maxEta); | |
f4cde8da | 156 | spectratask->SetJetAreaCut(AreaCut); |
157 | spectratask->SetTracksName(usedTracks); | |
d7afd9ac | 158 | |
159 | //------------------------------------------------------- | |
160 | // Final settings, pass to manager and set the containers | |
161 | //------------------------------------------------------- | |
162 | ||
163 | mgr->AddTask(spectratask); | |
164 | ||
165 | // Create containers for input/output | |
166 | mgr->ConnectInput (spectratask, 0, mgr->GetCommonInputContainer() ); | |
167 | AliAnalysisDataContainer *cospectra = mgr->CreateContainer(name, | |
168 | TList::Class(), | |
169 | AliAnalysisManager::kOutputContainer, | |
170 | outfilename); | |
171 | mgr->ConnectOutput(spectratask,1,cospectra); | |
172 | ||
76884488 | 173 | cout << "Ready to run my task..." << nJetsCh <<endl; |
174 | ||
175 | /// | |
176 | if(!(usedTracks=="")){ | |
177 | ||
178 | TString namech(Form("SpectraMECpA_%s", nJetsCh.Data())); | |
179 | AliAnalysisTaskEmcalJetSpectraMECpA *spectrataskch = new AliAnalysisTaskEmcalJetSpectraMECpA(namech); | |
180 | spectrataskch->SetJetsName(nJetsCh.Data()); | |
181 | spectrataskch->SetCentralityEstimator(CentEst); | |
182 | spectrataskch->SetAnaType(type); | |
183 | spectrataskch->SetRhoName(nRhosCh); | |
184 | spectrataskch->SetJetPhiLimits(minPhi,maxPhi); | |
185 | spectrataskch->SetJetEtaLimits(minEta,maxEta); | |
186 | spectrataskch->SetJetAreaCut(AreaCut); | |
187 | spectrataskch->SetTracksName(usedTracks); | |
188 | ||
189 | //------------------------------------------------------- | |
190 | // Final settings, pass to manager and set the containers | |
191 | //------------------------------------------------------- | |
192 | ||
193 | mgr->AddTask(spectrataskch); | |
194 | ||
195 | // Create containers for input/output | |
196 | mgr->ConnectInput (spectrataskch, 0, mgr->GetCommonInputContainer() ); | |
197 | AliAnalysisDataContainer *cospectrach = mgr->CreateContainer(namech, | |
198 | TList::Class(), | |
199 | AliAnalysisManager::kOutputContainer, | |
200 | outfilename); | |
201 | mgr->ConnectOutput(spectrataskch,1,cospectrach); | |
202 | ||
203 | if(type<1) return spectrataskch; | |
204 | ||
205 | } | |
206 | ||
d7afd9ac | 207 | return spectratask; |
208 | } |