1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
17 // task compares jets in two branches,
18 // written for analysis of jet embedding in HI events
20 // newer class: AliAnalysisTaskJetResponseV2
33 #include "AliAnalysisTask.h"
34 #include "AliAnalysisManager.h"
36 #include "AliVEvent.h"
37 #include "AliESDEvent.h"
38 #include "AliESDInputHandler.h"
39 #include "AliCentrality.h"
40 #include "AliAnalysisHelperJetTasks.h"
41 #include "AliInputEventHandler.h"
43 #include "AliAODEvent.h"
44 #include "AliAODJet.h"
46 #include "AliAnalysisTaskJetResponse.h"
48 ClassImp(AliAnalysisTaskJetResponse)
50 AliAnalysisTaskJetResponse::AliAnalysisTaskJetResponse() :
54 fOfflineTrgMask(AliVEvent::kAny),
64 fReactionPlaneBin(-1),
68 fJetPtFractionMin(0.5),
76 fHistEvtSelection(0x0),
79 fHistNInputTracks(0x0),
80 //fHistNInputTracks2(0x0),
81 fHistCentVsTracks(0x0),
82 fHistReactionPlane(0x0),
83 fHistReactionPlaneWrtJets(0x0),
84 fHistPtJet(new TH1F*[fkNbranches]),
85 fHistEtaPhiJet(new TH2F*[fkNbranches]),
86 fHistEtaPhiJetCut(new TH2F*[fkNbranches]),
87 fHistDeltaEtaDeltaPhiJet(new TH2F*[fkEvtClasses]),
88 fHistDeltaEtaDeltaPhiJetCut(new TH2F*[fkEvtClasses]),
89 //fHistDeltaEtaDeltaPhiJetNOMatching(new TH2F*[fkEvtClasses]),
90 fHistDeltaEtaEtaJet(new TH2F*[fkEvtClasses]),
91 fHistDeltaPtEtaJet(new TH2F*[fkEvtClasses]),
92 fHistPtFraction(new TH2F*[fkEvtClasses]),
93 fHistPtResponse(new TH2F*[fkEvtClasses]),
94 fHistPtSmearing(new TH2F*[fkEvtClasses]),
95 fHistDeltaR(new TH2F*[fkEvtClasses]),
96 fHistArea(new TH3F*[fkEvtClasses]),
97 //fHistJetPtArea(new TH2F*[fkEvtClasses]),
98 fHistDeltaArea(new TH2F*[fkEvtClasses]),
99 fHistJetPtDeltaArea(new TH2F*[fkEvtClasses])
101 // default Constructor
103 fJetBranchName[0] = "";
104 fJetBranchName[1] = "";
106 fListJets[0] = new TList;
107 fListJets[1] = new TList;
110 AliAnalysisTaskJetResponse::AliAnalysisTaskJetResponse(const char *name) :
111 AliAnalysisTaskSE(name),
114 fOfflineTrgMask(AliVEvent::kAny),
123 fNInputTracksMax(-1),
124 fReactionPlaneBin(-1),
128 fJetPtFractionMin(0.5),
134 fHistEvtSelection(0x0),
136 fHistCentrality(0x0),
137 fHistNInputTracks(0x0),
138 //fHistNInputTracks2(0x0),
139 fHistCentVsTracks(0x0),
140 fHistReactionPlane(0x0),
141 fHistReactionPlaneWrtJets(0x0),
142 fHistPtJet(new TH1F*[fkNbranches]),
143 fHistEtaPhiJet(new TH2F*[fkNbranches]),
144 fHistEtaPhiJetCut(new TH2F*[fkNbranches]),
145 fHistDeltaEtaDeltaPhiJet(new TH2F*[fkEvtClasses]),
146 fHistDeltaEtaDeltaPhiJetCut(new TH2F*[fkEvtClasses]),
147 //fHistDeltaEtaDeltaPhiJetNOMatching(new TH2F*[fkEvtClasses]),
148 fHistDeltaEtaEtaJet(new TH2F*[fkEvtClasses]),
149 fHistDeltaPtEtaJet(new TH2F*[fkEvtClasses]),
150 fHistPtFraction(new TH2F*[fkEvtClasses]),
151 fHistPtResponse(new TH2F*[fkEvtClasses]),
152 fHistPtSmearing(new TH2F*[fkEvtClasses]),
153 fHistDeltaR(new TH2F*[fkEvtClasses]),
154 fHistArea(new TH3F*[fkEvtClasses]),
155 //fHistJetPtArea(new TH2F*[fkEvtClasses]),
156 fHistDeltaArea(new TH2F*[fkEvtClasses]),
157 fHistJetPtDeltaArea(new TH2F*[fkEvtClasses])
161 fJetBranchName[0] = "";
162 fJetBranchName[1] = "";
164 fListJets[0] = new TList;
165 fListJets[1] = new TList;
167 DefineOutput(1, TList::Class());
170 AliAnalysisTaskJetResponse::~AliAnalysisTaskJetResponse()
176 void AliAnalysisTaskJetResponse::SetBranchNames(const TString &branch1, const TString &branch2)
178 fJetBranchName[0] = branch1;
179 fJetBranchName[1] = branch2;
182 void AliAnalysisTaskJetResponse::Init()
185 // check for jet branches
186 if(!strlen(fJetBranchName[0].Data()) || !strlen(fJetBranchName[1].Data())){
187 AliError("Jet branch name not set.");
192 void AliAnalysisTaskJetResponse::UserCreateOutputObjects()
197 if(!fOutputList) fOutputList = new TList;
198 fOutputList->SetOwner(kTRUE);
200 Bool_t oldStatus = TH1::AddDirectoryStatus();
201 TH1::AddDirectory(kFALSE);
204 fHistEvtSelection = new TH1I("fHistEvtSelection", "event selection", 6, -0.5, 5.5);
205 fHistEvtSelection->GetXaxis()->SetBinLabel(1,"ACCEPTED");
206 fHistEvtSelection->GetXaxis()->SetBinLabel(2,"events IN");
207 fHistEvtSelection->GetXaxis()->SetBinLabel(3,"event selection (rejected)");
208 fHistEvtSelection->GetXaxis()->SetBinLabel(4,"vertex cut (rejected)");
209 fHistEvtSelection->GetXaxis()->SetBinLabel(5,"centrality (rejected)");
210 fHistEvtSelection->GetXaxis()->SetBinLabel(6,"multiplicity (rejected)");
212 fHistEvtClass = new TH1I("fHistEvtClass", "event classes (centrality) ", fkEvtClasses, -0.5, fkEvtClasses-0.5);
213 fHistCentrality = new TH1F("fHistCentrality", "event centrality", 100, 0., 100.);
214 fHistNInputTracks = new TH1F("fHistNInputTracks", "nb. of input tracks", 400, 0., 4000.);
215 //fHistNInputTracks2 = new TH2F("fHistNInputTracks2", "nb. of input tracks;from B0;from Bx", 400, 0., 4000., 400, 0., 4000.);
216 fHistCentVsTracks = new TH2F("fHistCentVsTracks", "centrality vs. nb. of input tracks;centrality;input tracks", 100, 0., 100., 400, 0., 4000.);
217 fHistReactionPlane = new TH1F("fHistReactionPlane", "reaction plane", 30, 0., TMath::Pi());
218 fHistReactionPlaneWrtJets = new TH1F("fHistReactionPlaneWrtJets", "reaction plane wrt jets", 48, -TMath::Pi(), TMath::Pi());
220 for (Int_t iBranch = 0; iBranch < fkNbranches; iBranch++) {
221 fHistPtJet[iBranch] = new TH1F(Form("fHistPtJet%i", iBranch),
222 Form("p_{T} of jets from branch %i;p_{T} (GeV/c);counts", iBranch),
224 fHistPtJet[iBranch]->SetMarkerStyle(kFullCircle);
226 fHistEtaPhiJet[iBranch] = new TH2F(Form("fHistEtaPhiJet%i", iBranch),
227 Form("#eta - #phi of jets from branch %i (before cut);#eta;#phi", iBranch),
228 28, -0.7, 0.7, 100, 0., 2*TMath::Pi());
229 fHistEtaPhiJetCut[iBranch] = new TH2F(Form("fHistEtaPhiJetCut%i", iBranch),
230 Form("#eta - #phi of jets from branch %i (before cut);#eta;#phi", iBranch),
231 28, -0.7, 0.7, 100, 0., 2*TMath::Pi());
235 for (Int_t iEvtClass =0; iEvtClass < fkEvtClasses; iEvtClass++) {
236 fHistDeltaEtaDeltaPhiJet[iEvtClass] = new TH2F(Form("fHistDeltaEtaDeltaPhiJet%i",iEvtClass),
237 "#Delta#eta - #Delta#phi of jet;#Delta#eta;#Delta#phi",
238 101, -1.01, 1.01, 101, -1.01, 1.01);
239 fHistDeltaEtaDeltaPhiJetCut[iEvtClass] = new TH2F(Form("fHistDeltaEtaDeltaPhiJetCut%i",iEvtClass),
240 "#Delta#eta - #Delta#phi of jet;#Delta#eta;#Delta#phi",
241 101, -1.01, 1.01, 101, -1.01, 1.01);
242 //fHistDeltaEtaDeltaPhiJetNOMatching[iEvtClass] = new TH2F("fHistDeltaEtaDeltaPhiJetNOMatching",
243 // "#Delta#eta - #Delta#phi of jets which do not match;#Delta#eta;#Delta#phi",
244 // 100, -2., 2., 100, TMath::Pi(), TMath::Pi());
245 fHistPtResponse[iEvtClass] = new TH2F(Form("pt_response%i",iEvtClass), Form("pt_response%i;p_{T} (GeV/c);p_{T} (GeV/c)",iEvtClass),
246 250, 0., 250., 250, 0., 250.);
247 fHistPtSmearing[iEvtClass] = new TH2F(Form("pt_smearing%i",iEvtClass), Form("pt_smearing%i;#Deltap_{T} (GeV/c);p_{T} (GeV/c)",iEvtClass),
248 161, -80.5, 80.5, 250, 0., 250.);
249 fHistDeltaR[iEvtClass] = new TH2F(Form("hist_DeltaR%i",iEvtClass), "#DeltaR of matched jets;#Deltap_{T};#DeltaR", 161, -80.5,80.5, 85, 0.,3.4);
250 fHistArea[iEvtClass] = new TH3F(Form("hist_Area%i",iEvtClass), "jet area;probe p_{T};#Deltap_{T};jet area", 250, 0., 250., 161, -80.5,80.5, 100, 0.,1.0);
251 //fHistJetPtArea[iEvtClass] = new TH2F(Form("hist_JetPtArea%i",iEvtClass), "jet area vs. probe p_{T};jet p_{T};jet area", 250, 0.,250., 100, 0.,1.0);
252 fHistDeltaArea[iEvtClass] = new TH2F(Form("hist_DeltaArea%i",iEvtClass), "#DeltaArea of matched jets;#Deltap_{T};#Deltaarea", 161, -80.5, 80.5, 32, -.8, .8);
253 fHistJetPtDeltaArea[iEvtClass] = new TH2F(Form("hist_JetPtDeltaArea%i",iEvtClass), "#DeltaArea of matched jets vs. probe jet p_{T};#Deltap_{T};#Deltaarea", 250, 0., 250., 32, -.8, .8);
255 fHistDeltaEtaEtaJet[iEvtClass] = new TH2F(Form("fHistDeltaEtaEtaJet%i", iEvtClass),
256 Form("#eta - #Delta#eta of matched jets from event class %i;#eta;#Delta#eta", iEvtClass),
257 28, -.7, .7, 101, -1.01, 1.01);
258 fHistDeltaPtEtaJet[iEvtClass] = new TH2F(Form("fHistDeltaPtEtaJet%i", iEvtClass),
259 Form("#eta - #Deltap_{T} of matched jets from event class %i;#eta;#Deltap_{T}", iEvtClass),
260 28, -.7, .7, 161, -80.5, 80.5);
261 fHistPtFraction[iEvtClass] = new TH2F(Form("fHistPtFraction%i", iEvtClass),
262 Form("fraction from embedded jet in reconstructed jet;fraction (event class %i);p_{T}^{emb}", iEvtClass),
263 52, 0., 1.04, 250, 0., 250.);
267 fOutputList->Add(fHistEvtSelection);
268 fOutputList->Add(fHistEvtClass);
269 fOutputList->Add(fHistCentrality);
270 fOutputList->Add(fHistNInputTracks);
271 fOutputList->Add(fHistCentVsTracks);
272 fOutputList->Add(fHistReactionPlane);
273 fOutputList->Add(fHistReactionPlaneWrtJets);
276 for (Int_t iBranch = 0; iBranch < fkNbranches; iBranch++) {
277 fOutputList->Add(fHistPtJet[iBranch]);
278 fOutputList->Add(fHistEtaPhiJet[iBranch]);
279 fOutputList->Add(fHistEtaPhiJetCut[iBranch]);
282 for (Int_t iEvtClass =0; iEvtClass < fkEvtClasses; iEvtClass++) {
283 fOutputList->Add(fHistDeltaEtaDeltaPhiJet[iEvtClass]);
284 fOutputList->Add(fHistDeltaEtaDeltaPhiJetCut[iEvtClass]);
285 //fOutputList->Add(fHistDeltaEtaDeltaPhiJetNOMatching[iEvtClass]);
286 fOutputList->Add(fHistDeltaEtaEtaJet[iEvtClass]);
287 fOutputList->Add(fHistDeltaPtEtaJet[iEvtClass]);
288 fOutputList->Add(fHistPtFraction[iEvtClass]);
290 fOutputList->Add(fHistPtResponse[iEvtClass]);
291 fOutputList->Add(fHistPtSmearing[iEvtClass]);
292 fOutputList->Add(fHistDeltaR[iEvtClass]);
293 fOutputList->Add(fHistArea[iEvtClass]);
294 //fOutputList->Add(fHistJetPtArea[iEvtClass]);
295 fOutputList->Add(fHistDeltaArea[iEvtClass]);
296 fOutputList->Add(fHistJetPtDeltaArea[iEvtClass]);
299 // =========== Switch on Sumw2 for all histos ===========
300 for (Int_t i=0; i<fOutputList->GetEntries(); ++i) {
301 TH1 *h1 = dynamic_cast<TH1*>(fOutputList->At(i));
307 TH1::AddDirectory(oldStatus);
309 PostData(1, fOutputList);
312 void AliAnalysisTaskJetResponse::UserExec(Option_t *)
314 // load events, apply event cuts, then compare leading jets
315 if(!strlen(fJetBranchName[0].Data()) || !strlen(fJetBranchName[1].Data())){
316 AliError("Jet branch name not set.");
320 fESD=dynamic_cast<AliESDEvent*>(InputEvent());
322 AliError("ESD not available");
325 fAOD = dynamic_cast<AliAODEvent*>(AODEvent());
327 AliError("AOD not available");
331 // -- event selection --
332 fHistEvtSelection->Fill(1); // number of events before event selection
335 AliInputEventHandler* inputHandler = (AliInputEventHandler*)
336 ((AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler());
337 if(!(inputHandler->IsEventSelected() & fOfflineTrgMask)){
338 if(fDebug) Printf(" Trigger Selection: event REJECTED ... ");
339 fHistEvtSelection->Fill(2);
340 PostData(1, fOutputList);
345 AliAODVertex* primVtx = fAOD->GetPrimaryVertex();
346 Int_t nTracksPrim = primVtx->GetNContributors();
347 if ((nTracksPrim < fMinContribVtx) ||
348 (primVtx->GetZ() < fVtxZMin) ||
349 (primVtx->GetZ() > fVtxZMax) ){
350 if(fDebug) Printf("%s:%d primary vertex z = %f: event REJECTED...",(char*)__FILE__,__LINE__,primVtx->GetZ());
351 fHistEvtSelection->Fill(3);
352 PostData(1, fOutputList);
356 // event class selection (from jet helper task)
357 Int_t eventClass = AliAnalysisHelperJetTasks::EventClass();
358 if(fDebug) Printf("Event class %d", eventClass);
359 if (eventClass < fEvtClassMin || eventClass > fEvtClassMax){
360 fHistEvtSelection->Fill(4);
361 PostData(1, fOutputList);
365 // centrality selection
366 AliCentrality *cent = fESD->GetCentrality();
367 Float_t centValue = cent->GetCentralityPercentile("V0M");
368 if(fDebug) printf("centrality: %f\n", centValue);
369 if (centValue < fCentMin || centValue > fCentMax){
370 fHistEvtSelection->Fill(4);
371 PostData(1, fOutputList);
376 // multiplicity due to input tracks
377 Int_t nInputTracks = 0;
379 TString jbname(fJetBranchName[1]);
380 for(Int_t i=1; i<=3; ++i){
381 if(jbname.Contains(Form("B%d",i))) jbname.ReplaceAll(Form("B%d",i),"B0");
384 if(jbname.Contains("AODextraonly")) jbname.ReplaceAll("AODextraonly","AOD");
385 if(jbname.Contains("AODextra")) jbname.ReplaceAll("AODextra","AOD");
387 if(fDebug) Printf("Multiplicity from jet branch %s", jbname.Data());
388 TClonesArray *tmpAODjets = dynamic_cast<TClonesArray*>(fAOD->FindListObject(jbname.Data()));
391 for (Int_t iJet=0; iJet<tmpAODjets->GetEntriesFast(); iJet++){
392 AliAODJet *jet = dynamic_cast<AliAODJet*>((*tmpAODjets)[iJet]);
394 TRefArray *trackList = jet->GetRefTracks();
395 Int_t nTracks = trackList->GetEntriesFast();
396 nInputTracks += nTracks;
397 if(fDebug) Printf("#jet%d: %d tracks", iJet, nTracks);
400 if(fDebug) Printf("---> input tracks: %d", nInputTracks);
402 if (nInputTracks < fNInputTracksMin || (fNInputTracksMax > -1 && nInputTracks > fNInputTracksMax)){
403 fHistEvtSelection->Fill(5);
404 PostData(1, fOutputList);
408 if(fEvtClassMode==1){ //multiplicity
409 fHistEvtClass->SetTitle("event classes (multiplicity)");
410 eventClass = fkEvtClasses-1 - (Int_t)(nInputTracks/250.);
411 if(eventClass<0) eventClass = 0;
416 fHistEvtSelection->Fill(0); // accepted events
417 fHistEvtClass->Fill(eventClass);
418 fHistCentrality->Fill(centValue);
419 fHistNInputTracks->Fill(nInputTracks);
420 fHistCentVsTracks->Fill(centValue,nInputTracks);
421 Double_t rp = AliAnalysisHelperJetTasks::ReactionPlane(kFALSE);
422 // -- end event selection --
427 TClonesArray *aodJets[2];
428 aodJets[0] = dynamic_cast<TClonesArray*>(fAOD->FindListObject(fJetBranchName[0].Data())); // in general: embedded jet
429 aodJets[1] = dynamic_cast<TClonesArray*>(fAOD->FindListObject(fJetBranchName[1].Data())); // in general: embedded jet + UE
431 for (Int_t iJetType = 0; iJetType < 2; iJetType++) {
432 fListJets[iJetType]->Clear();
433 if (!aodJets[iJetType]) continue;
435 for (Int_t iJet = 0; iJet < aodJets[iJetType]->GetEntriesFast(); iJet++) {
436 AliAODJet *jet = dynamic_cast<AliAODJet*>((*aodJets[iJetType])[iJet]);
437 if (jet) fListJets[iJetType]->Add(jet);
439 fListJets[iJetType]->Sort();
443 static TArrayI aMatchIndex(fListJets[0]->GetEntries());
444 static TArrayF aPtFraction(fListJets[0]->GetEntries());
445 if(aMatchIndex.GetSize()<fListJets[0]->GetEntries()) aMatchIndex.Set(fListJets[0]->GetEntries());
446 if(aPtFraction.GetSize()<fListJets[0]->GetEntries()) aPtFraction.Set(fListJets[0]->GetEntries());
448 // stores matched jets in 'aMatchIndex' and fraction of pT in 'aPtFraction'
449 AliAnalysisHelperJetTasks::GetJetMatching(fListJets[0], TMath::Min((Int_t)fNMatchJets,(Int_t)fListJets[0]->GetEntries()),
450 fListJets[1], TMath::Min((Int_t)fNMatchJets,(Int_t)fListJets[1]->GetEntries()),
451 aMatchIndex, aPtFraction, fDebug);
453 // loop over matched jets
454 Int_t ir = -1; // index of matched reconstruced jet
455 Float_t fraction = 0.;
456 AliAODJet *jet[2] = { 0x0, 0x0 };
457 Float_t jetEta[2] = { 0., 0. };
458 Float_t jetPhi[2] = { 0., 0. };
459 Float_t jetPt[2] = { 0., 0. };
460 Float_t jetArea[2] = { 0., 0. };
462 for(Int_t ig=0; ig<fListJets[0]->GetEntries(); ++ig){
463 ir = aMatchIndex[ig];
465 fraction = aPtFraction[ig];
468 jet[0] = (AliAODJet*)(fListJets[0]->At(ig));
469 jet[1] = (AliAODJet*)(fListJets[1]->At(ir));
470 if(!jet[0] || !jet[1]) continue;
472 for(Int_t i=0; i<fkNbranches; ++i){
473 jetEta[i] = jet[i]->Eta();
474 jetPhi[i] = jet[i]->Phi();
475 jetPt[i] = jet[i]->Pt();
476 jetArea[i] = jet[i]->EffectiveAreaCharged();
480 if(fReactionPlaneBin>=0){
481 Int_t rpBin = AliAnalysisHelperJetTasks::GetPhiBin(TVector2::Phi_mpi_pi(rp-jetPhi[1]), 3);
482 if(rpBin!=fReactionPlaneBin) continue;
484 fHistReactionPlane->Fill(rp);
485 fHistReactionPlaneWrtJets->Fill(TVector2::Phi_mpi_pi(rp-jetPhi[1]));
489 if(eventClass > -1 && eventClass < fkEvtClasses){
490 fHistPtFraction[eventClass] -> Fill(fraction, jetPt[0]);
493 if(fraction<fJetPtFractionMin) continue;
495 // calculate parameters of associated jets
496 Float_t deltaPt = jetPt[1]-jetPt[0];
497 Float_t deltaEta = jetEta[1]-jetEta[0];
498 Float_t deltaPhi = TVector2::Phi_mpi_pi(jetPhi[1]-jetPhi[0]);
499 Float_t deltaR = TMath::Sqrt(deltaEta*deltaEta+deltaPhi*deltaPhi);
500 Float_t deltaArea = jetArea[1]-jetArea[0];
502 // fill histograms before acceptance cut
503 for(Int_t i=0; i<fkNbranches; ++i){
504 fHistEtaPhiJet[i] -> Fill(jetEta[i], jetPhi[i]);
506 if(eventClass > -1 && eventClass < fkEvtClasses){
507 fHistDeltaEtaDeltaPhiJet[eventClass] -> Fill(deltaEta, deltaPhi);
510 // jet acceptance + minimum pT check
511 if(jetEta[0]>fJetEtaMax || jetEta[0]<fJetEtaMin ||
512 jetEta[1]>fJetEtaMax || jetEta[1]<fJetEtaMin){
515 Printf("Jet not in eta acceptance.");
516 Printf("[0]: jet %d eta %.2f", ig, jetEta[0]);
517 Printf("[1]: jet %d eta %.2f", ir, jetEta[1]);
521 if(jetPt[1] < fJetPtMin){
522 if(fDebug) Printf("Jet %d (pT %.1f GeV/c) has less than required pT.", ir, jetPt[1]);
529 for(Int_t i=0; i<fkNbranches; ++i){
530 fHistPtJet[i] -> Fill(jetPt[i]);
531 fHistEtaPhiJetCut[i] -> Fill(jetEta[i], jetPhi[i]);
534 if(eventClass > -1 && eventClass < fkEvtClasses){
535 fHistDeltaEtaDeltaPhiJetCut[eventClass] -> Fill(deltaEta, deltaPhi);
537 fHistPtResponse[eventClass] -> Fill(jetPt[1], jetPt[0]);
538 fHistPtSmearing[eventClass] -> Fill(deltaPt, jetPt[0]);
540 fHistDeltaPtEtaJet[eventClass] -> Fill(jetEta[0], deltaPt);
541 fHistDeltaEtaEtaJet[eventClass] -> Fill(jetEta[0], deltaEta);
543 fHistDeltaR[eventClass] -> Fill(deltaPt, deltaR);
544 fHistArea[eventClass] -> Fill(jetPt[0], deltaPt, jetArea[1]);
545 //fHistJetPtArea[eventClass] -> Fill(jetPt[0], jetArea[1]);
546 fHistDeltaArea[eventClass] -> Fill(deltaPt, deltaArea);
547 fHistJetPtDeltaArea[eventClass] -> Fill(jetPt[0], deltaArea);
552 PostData(1, fOutputList);
555 void AliAnalysisTaskJetResponse::Terminate(const Option_t *)
557 // Draw result to the screen
558 // Called once at the end of the query
560 if (!GetOutputData(1))