#include <TClonesArray.h>
#include <TChain.h>
#include <TMath.h>
#include <TF1.h>
#include <TF2.h>
#include <TH3.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TH3F.h>
#include <TProfile.h>
#include <TFile.h>
#include <TTree.h>
#include <TKey.h>
#include <TSystem.h>
#include <AliAnalysisTask.h>
#include <AliAnalysisManager.h>
#include <AliLog.h>
#include <AliVEvent.h>
#include <AliVParticle.h>
#include <AliEmcalJet.h>
#include <AliAnalysisTaskJetMatching.h>
#include <AliLocalRhoParameter.h>
class AliAnalysisTaskJetMatching;
using namespace std;
ClassImp(AliAnalysisTaskJetMatching)
AliAnalysisTaskJetMatching::AliAnalysisTaskJetMatching() : AliAnalysisTaskEmcalJet("AliAnalysisTaskJetMatching", kTRUE),
fSourceJets(0), fSourceJetsName(0), fTargetJets(0), fTargetJetsName(0), fMatchedJets(0), fMatchedJetsName(GetName()), fSourceRho(0), fSourceRhoName(0), fTargetRho(0), fTargetRhoName(0), fUseScaledRho(0), fSourceRadius(0.3), fTargetRadius(0.3), fMatchingScheme(kGeoEtaPhi), fUseEmcalBaseJetCuts(kFALSE), fSourceBKG(kNoSourceBKG), fTargetBKG(kNoTargetBKG), fOutputList(0), fHistUnsortedCorrelation(0), fHistMatchedCorrelation(0), fHistSourceJetPt(0), fHistMatchedSourceJetPt(0), fHistTargetJetPt(0), fHistMatchedJetPt(0), fHistSourceMatchedJetPt(0), fHistDetectorResponseProb(0), fHistNoConstSourceJet(0), fHistNoConstTargetJet(0), fHistNoConstMatchJet(0), fProfFracPtMatched(0), fProfFracPtJets(0), fProfFracNoMatched(0), fProfFracNoJets(0), fHistDiJet(0), fHistDiJetLeadingJet(0), fHistDiJetDPhi(0), fHistDiJetDPt(0), fHistAnalysisSummary(0), fProfQAMatched(0), fProfQA(0), fNoMatchedJets(200), fMatchEta(.3), fMatchPhi(.3), fMatchR(.08), fDoDetectorResponse(kFALSE), fMatchConstituents(kTRUE), fMinFracRecoveredConstituents(.5), fMinFracRecoveredConstituentPt(0.5), fGetBijection(kTRUE), fh1Trials(0x0), fh1AvgTrials(0x0), fh1Xsec(0x0), fAvgTrials(0) {
ClearMatchedJetsCache();
}
AliAnalysisTaskJetMatching::AliAnalysisTaskJetMatching(const char* name) : AliAnalysisTaskEmcalJet(name, kTRUE),
fSourceJets(0), fSourceJetsName(0), fTargetJets(0), fTargetJetsName(0), fMatchedJets(0), fMatchedJetsName(GetName()), fSourceRho(0), fSourceRhoName(0), fTargetRho(0), fTargetRhoName(0), fUseScaledRho(0), fSourceRadius(0.3), fTargetRadius(0.3), fMatchingScheme(kGeoEtaPhi), fUseEmcalBaseJetCuts(kFALSE), fSourceBKG(kNoSourceBKG), fTargetBKG(kNoTargetBKG), fOutputList(0), fHistUnsortedCorrelation(0), fHistMatchedCorrelation(0), fHistSourceJetPt(0), fHistMatchedSourceJetPt(0), fHistTargetJetPt(0), fHistMatchedJetPt(0), fHistSourceMatchedJetPt(0), fHistDetectorResponseProb(0), fHistNoConstSourceJet(0), fHistNoConstTargetJet(0), fHistNoConstMatchJet(0), fProfFracPtMatched(0), fProfFracPtJets(0), fProfFracNoMatched(0), fProfFracNoJets(0), fHistDiJet(0), fHistDiJetLeadingJet(0), fHistDiJetDPhi(0), fHistDiJetDPt(0), fHistAnalysisSummary(0), fProfQAMatched(0), fProfQA(0), fNoMatchedJets(200), fMatchEta(.3), fMatchPhi(.3), fMatchR(.08), fDoDetectorResponse(kFALSE), fMatchConstituents(kTRUE), fMinFracRecoveredConstituents(0.5), fMinFracRecoveredConstituentPt(0.5), fGetBijection(kTRUE), fh1Trials(0x0), fh1AvgTrials(0x0), fh1Xsec(0x0), fAvgTrials(0) {
ClearMatchedJetsCache();
DefineInput(0, TChain::Class());
DefineOutput(1, TList::Class());
}
AliAnalysisTaskJetMatching::~AliAnalysisTaskJetMatching()
{
if(fOutputList) delete fOutputList;
}
void AliAnalysisTaskJetMatching::ExecOnce()
{
#ifdef DEBUGTASK
printf("__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
#endif
fSourceJets = dynamic_cast<TClonesArray*>(InputEvent()->FindListObject(fSourceJetsName.Data()));
if(!fSourceJets) AliFatal(Form("%s: Container with name %s not found. Aborting", GetName(), fSourceJetsName.Data()));
fTargetJets = dynamic_cast<TClonesArray*>(InputEvent()->FindListObject(fTargetJetsName.Data()));
if(!fTargetJets) AliFatal(Form("%s: Container with name %s not found. Aborting", GetName(), fSourceJetsName.Data()));
fMatchedJets->Delete();
if (!(InputEvent()->FindListObject(fMatchedJetsName))) InputEvent()->AddObject(fMatchedJets);
else AliFatal(Form("%s: Object with name %s already in event! Aborting", GetName(), fMatchedJetsName.Data()));
FillAnalysisSummaryHistogram();
switch (fSourceBKG) {
case kSourceLocalRho : {
fSourceRho = dynamic_cast<AliLocalRhoParameter*>(InputEvent()->FindListObject(fSourceRhoName));
if(!fSourceRho) AliFatal(Form("%s: Object with name %s requested but not found! Aborting", GetName(), fSourceRhoName.Data()));
} break;
default : break;
}
switch (fTargetBKG) {
case kTargetLocalRho : {
fTargetRho = dynamic_cast<AliLocalRhoParameter*>(InputEvent()->FindListObject(fTargetRhoName));
if(!fTargetRho) AliFatal(Form("%s: Object with name %s requested but not found! Aborting", GetName(), fTargetRhoName.Data()));
} break;
default : break;
}
AliAnalysisTaskEmcalJet::ExecOnce();
if(fDoDetectorResponse) fMatchConstituents = kFALSE;
}
void AliAnalysisTaskJetMatching::UserCreateOutputObjects()
{
#ifdef DEBUGTASK
printf("__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
#endif
fMatchedJets = new TClonesArray("AliEmcalJet");
fMatchedJets->SetName(fMatchedJetsName);
fOutputList = new TList();
fOutputList->SetOwner(kTRUE);
fHistUnsortedCorrelation = BookTH1F("fHistUnsortedCorrelation", "#Delta #varphi unsorted", 50, 0, TMath::Pi());
fHistMatchedCorrelation = BookTH1F("fHistMatchedCorrelation", "#Delta #varphi matched", 50, 0, TMath::Pi());
fHistSourceJetPt = (fDoDetectorResponse) ? BookTH1F("fHistParticleLevelJetPt", "p_{t}^{gen} [GeV/c]", 150, -50, 250) : BookTH1F("fHistSourceJetPt", "p_{t} [GeV/c]", 150, -50, 250);
fHistMatchedSourceJetPt = (fDoDetectorResponse) ? BookTH1F("fHistMatchedParticleLevelJetPt", "p_{t}^{gen} [GeV/c]", 150, -50, 250) : BookTH1F("fHistMatchedSourceJetPt", "p_{t} [GeV/c]", 150, -50, 250);
fHistTargetJetPt = BookTH1F("fHistTargetJetPt", "p_{t} [GeV/c]", 150, -50, 250);
fHistMatchedJetPt = (fDoDetectorResponse) ? BookTH1F("fHistDetectorLevelJet", "p_{t}^{rec}", 150, -50, 250) : BookTH1F("fHistMatchedJetPt", "p_{t} [GeV/c]", 150, -50, 250);
fHistSourceMatchedJetPt = (fDoDetectorResponse) ? BookTH2F("fHistDetectorResponse", "particle level jet p_{t}^{gen} [GeV/c]", "detector level jet p_{t}^{rec} [GeV/c]", 300, -50, 250, 300, -50, 250) : BookTH2F("fHistSourceMatchedJetPt", "source jet p_{t} [GeV/c]", "matched jet p_{t} [GeV/c]", 300, -50, 250, 300, -50, 250);
if(fDoDetectorResponse) {
fHistDetectorResponseProb = BookTH2F("fHistDetectorResponseProb", "(p_{t}^{det} - p_{t}^{part})/p_{t}^{part}", "p_{t}^{part}", 100, -1.5, 1., 20, 0, 200);
fh1Xsec = new TProfile("fh1Xsec","xsec from pyxsec.root",1,0,1);
fh1Xsec->GetXaxis()->SetBinLabel(1,"<#sigma>");
fOutputList->Add(fh1Xsec);
fh1Trials = new TH1F("fh1Trials","trials root file",1,0,1);
fh1Trials->GetXaxis()->SetBinLabel(1,"#sum{ntrials}");
fOutputList->Add(fh1Trials);
fh1AvgTrials = new TH1F("fh1AvgTrials","avg trials root file",1,0,1);
fh1AvgTrials->GetXaxis()->SetBinLabel(1,"#sum{avg ntrials}");
fOutputList->Add(fh1AvgTrials);
}
fHistNoConstSourceJet = BookTH1F("fHistNoConstSourceJet", "number of constituents source jets", 50, 0, 50);
fHistNoConstTargetJet = BookTH1F("fHistNoConstTargetJet", "number of constituents target jets", 50, 0, 50);
fHistNoConstMatchJet = BookTH1F("fHistNoConstMatchJet", "number of constituents matched jets", 50, 0, 50);
if(!fDoDetectorResponse) {
fProfFracPtMatched = new TProfile("fProfFracPtMatched", "recovered target p_{T} / source p_{T}", 15, -50, 250);
fOutputList->Add(fProfFracPtMatched);
fProfFracNoMatched = new TProfile("fProfFracNoMatched", "recovered target constituents / source constituents", 15, -50, 250);
fOutputList->Add(fProfFracNoMatched);
}
fHistAnalysisSummary = BookTH1F("fHistAnalysisSummary", "flag", 51, -0.5, 15.5);
fProfQAMatched = new TProfile("fProfQAMatched", "fProfQAMatched", 3, 0, 3);
fProfQAMatched->GetXaxis()->SetBinLabel(1, "<#delta p_{t} >");
fProfQAMatched->GetXaxis()->SetBinLabel(2, "<#delta #eta>");
fProfQAMatched->GetXaxis()->SetBinLabel(3, "<#delta #varphi>");
fOutputList->Add(fProfQAMatched);
fProfQA = new TProfile("fProfQA", "fProfQA", 3, 0, 3);
fProfQA->GetXaxis()->SetBinLabel(1, "<#delta p_{t} >");
fProfQA->GetXaxis()->SetBinLabel(2, "<#delta #eta>");
fProfQA->GetXaxis()->SetBinLabel(3, "<#delta #varphi>");
fOutputList->Add(fProfQA);
fProfFracPtJets = new TProfile("fProfFracPtJets", "source p_{T} / target p_{T}", 15, -50, 250);
fOutputList->Add(fProfFracPtJets);
fProfFracNoJets = new TProfile("fProfFracNoJets", "source constituents / target constituents", 15, -50, 250);
fOutputList->Add(fProfFracNoJets);
switch (fMatchingScheme) {
case kDiJet : {
fHistDiJet = BookTH3F("fHistDiJet", "matched di-jet #varphi", "matched di-jet #eta", "leading jet p_{T} (GeV/c)", 100, 0., TMath::TwoPi(), 100, -5., 5., 100, 0, 200);
fHistDiJetLeadingJet = BookTH3F("fHistDiJetLeadingJet", "leading jet #varphi", "leadingd jet #eta", "leading jet p_{T} (GeV/c)", 100, 0., TMath::TwoPi(), 100, -5., 5., 100, 0, 200);
fHistDiJetDPhi = BookTH2F("fHistDiJetDPhi", "leading jet #varphi - (matched jet #varphi - #pi)", "leading jet p_{T} (GeV/c)", 100, -1.*TMath::Pi(), TMath::Pi(), 100, 0, 200);
fHistDiJetDPt = BookTH2F("fHistDiJetDPt", "leading jet p_{T} - sub leading jet p_{T} (GeV/c)", "leading jet p_{T} (GeV/c)", 100, -25, 25, 100, 0, 200);
} break;
default : break;
}
fOutputList->Sort();
PostData(1, fOutputList);
}
TH1F* AliAnalysisTaskJetMatching::BookTH1F(const char* name, const char* x, Int_t bins, Double_t min, Double_t max, Bool_t append)
{
#ifdef DEBUGTASK
printf("__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
#endif
if(append && !fOutputList) return 0x0;
TString title(name);
title += Form(";%s;[counts]", x);
TH1F* histogram = new TH1F(name, title.Data(), bins, min, max);
histogram->Sumw2();
if(append) fOutputList->Add(histogram);
return histogram;
}
TH2F* AliAnalysisTaskJetMatching::BookTH2F(const char* name, const char* x, const char*y, Int_t binsx, Double_t minx, Double_t maxx, Int_t binsy, Double_t miny, Double_t maxy, Bool_t append)
{
#ifdef DEBUGTASK
printf("__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
#endif
if(append && !fOutputList) return 0x0;
TString title(name);
title += Form(";%s;%s", x, y);
TH2F* histogram = new TH2F(name, title.Data(), binsx, minx, maxx, binsy, miny, maxy);
histogram->Sumw2();
if(append) fOutputList->Add(histogram);
return histogram;
}
TH3F* AliAnalysisTaskJetMatching::BookTH3F(const char* name, const char* x, const char* y, const char* z, Int_t binsx, Double_t minx, Double_t maxx, Int_t binsy, Double_t miny, Double_t maxy, Int_t binsz, Double_t minz, Double_t maxz, Bool_t append)
{
#ifdef DEBUGTASK
printf("__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
#endif
if(append && !fOutputList) return 0x0;
TString title(name);
title += Form(";%s;%s;%s", x, y, z);
TH3F* histogram = new TH3F(name, title.Data(), binsx, minx, maxx, binsy, miny, maxy, binsz, minz, maxz);
histogram->Sumw2();
if(append) fOutputList->Add(histogram);
return histogram;
}
Bool_t AliAnalysisTaskJetMatching::Notify()
{
#ifdef DEBUGTASK
printf("__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
#endif
Float_t xsection(0), ftrials(1);
fAvgTrials = ftrials;
TTree *tree = AliAnalysisManager::GetAnalysisManager()->GetTree();
if(tree) {
TFile *curfile = tree->GetCurrentFile();
if (!curfile) return kFALSE;
TString file(curfile->GetName());
if(file.Contains("root_archive.zip#")) file.Replace(file.Index("#",1,file.Index("root_archive",12,0,TString::kExact),TString::kExact)+1,file.Index(".root",5,TString::kExact)-file.Index("root_archive",12,0,TString::kExact),"");
else file.ReplaceAll(gSystem->BaseName(file.Data()),"");
TFile *fxsec = TFile::Open(Form("%s%s",file.Data(),"pyxsec.root"));
if(!fxsec) {
fxsec = TFile::Open(Form("%s%s",file.Data(),"pyxsec_hists.root"));
if(fxsec) {
TKey* key = (TKey*)fxsec->GetListOfKeys()->At(0);
if(key) {
TList *list = dynamic_cast<TList*>(key->ReadObj());
if(list) {
xsection = ((TProfile*)list->FindObject("h1Xsec"))->GetBinContent(1);
ftrials = ((TH1F*)list->FindObject("h1Trials"))->GetBinContent(1);
}
}
fxsec->Close();
}
} else {
TTree *xtree = (TTree*)fxsec->Get("Xsection");
if(xtree) {
UInt_t _ftrials = 0;
Double_t _xsection = 0;
xtree->SetBranchAddress("xsection",&_xsection);
xtree->SetBranchAddress("ntrials",&_ftrials);
xtree->GetEntry(0);
ftrials = _ftrials;
xsection = _xsection;
}
fxsec->Close();
}
fh1Xsec->Fill("<#sigma>",xsection);
Float_t nEntries = (Float_t)tree->GetTree()->GetEntries();
if(ftrials >= nEntries && nEntries > 0.) fAvgTrials = ftrials/nEntries;
fh1Trials->Fill("#sum{ntrials}",ftrials);
}
return kTRUE;
}
Bool_t AliAnalysisTaskJetMatching::Run()
{
#ifdef DEBUGTASK
printf("__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
#endif
if(!(InputEvent() && fSourceJets && fTargetJets && IsEventSelected())) return kFALSE;
if(fh1AvgTrials) fh1AvgTrials->Fill("#sum{avg ntrials}", fAvgTrials);
switch (fMatchingScheme) {
case kGeoEtaPhi : {
DoGeometricMatchingEtaPhi();
if(!fMatchedJetContainer[1][0]) return kTRUE;
} break;
case kGeoR : {
DoGeometricMatchingR();
if(!fMatchedJetContainer[1][0]) return kTRUE;
} break;
case kDiJet : {
DoDiJetMatching();
} break;
default : break;
}
if(fGetBijection) GetBijection();
if(fMatchConstituents) DoConstituentMatching();
PostMatchedJets();
FillMatchedJetHistograms();
#ifdef DEBUGTASK
PrintInfo();
#endif
PostData(1, fOutputList);
return kTRUE;
}
void AliAnalysisTaskJetMatching::DoGeometricMatchingEtaPhi()
{
#ifdef DEBUGTASK
printf("__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
#endif
fNoMatchedJets = 0;
Int_t iSource(fSourceJets->GetEntriesFast()), iTarget(fTargetJets->GetEntriesFast());
for(Int_t i(0); i < iSource; i++) {
AliEmcalJet* sourceJet(static_cast<AliEmcalJet*>(fSourceJets->At(i)));
if(!PassesCuts(sourceJet, 0)) continue;
for(Int_t j(0); j < iTarget; j++) {
AliEmcalJet* targetJet(static_cast<AliEmcalJet*>(fTargetJets->At(j)));
if(!PassesCuts(targetJet, 1)) continue;
if (fUseEmcalBaseJetCuts && !AcceptJet(targetJet, 1)) continue;
if((TMath::Abs(sourceJet->Eta() - targetJet->Eta()) < fMatchEta )) {
Double_t sourcePhi(sourceJet->Phi()), targetPhi(targetJet->Phi());
if(TMath::Abs(sourcePhi-targetPhi) > TMath::Abs(sourcePhi-targetPhi+TMath::TwoPi())) sourcePhi+=TMath::TwoPi();
if(TMath::Abs(sourcePhi-targetPhi) > TMath::Abs(sourcePhi-targetPhi-TMath::TwoPi())) sourcePhi-=TMath::TwoPi();
if(TMath::Abs(sourcePhi-targetPhi) < fMatchPhi) {
Bool_t isBestMatch(kTRUE);
if(fGetBijection) {
#ifdef DEBUGTASK
printf(" > Entering first bijection test \n");
#endif
for(Int_t k(i); k < iSource; k++) {
AliEmcalJet* candidateSourceJet(static_cast<AliEmcalJet*>(fSourceJets->At(k)));
if(PassesCuts(candidateSourceJet, 0)) continue;
#ifdef DEBUGTASK
printf("source distance %.2f \t candidate distance %.2f \n", GetR(sourceJet, targetJet),GetR(candidateSourceJet, targetJet));
#endif
if(GetR(sourceJet, targetJet) > GetR(candidateSourceJet, targetJet)) {
isBestMatch = kFALSE;
break;
}
}
#ifdef DEBUGTASK
(isBestMatch) ? printf(" kept source \n ") : printf(" we can do better (rejected source) \n");
#endif
}
if(isBestMatch) {
fMatchedJetContainer[fNoMatchedJets][0] = sourceJet;
fMatchedJetContainer[fNoMatchedJets][1] = targetJet;
fNoMatchedJets++;
}
if(fNoMatchedJets > 199) {
AliError(Form("%s: Found too many matched jets (> 100). Adjust matching criteria !", GetName()));
return;
}
}
}
}
}
}
void AliAnalysisTaskJetMatching::DoGeometricMatchingR()
{
#ifdef DEBUGTASK
printf("__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
#endif
fNoMatchedJets = 0;
Int_t iSource(fSourceJets->GetEntriesFast()), iTarget(fTargetJets->GetEntriesFast());
for(Int_t i(0); i < iSource; i++) {
AliEmcalJet* sourceJet(static_cast<AliEmcalJet*>(fSourceJets->At(i)));
if(!PassesCuts(sourceJet, 0)) continue;
for(Int_t j(0); j < iTarget; j++) {
AliEmcalJet* targetJet(static_cast<AliEmcalJet*>(fTargetJets->At(j)));
if(!PassesCuts(targetJet, 1)) continue;
else if (fUseEmcalBaseJetCuts && !AcceptJet(targetJet, 1)) continue;
if(GetR(sourceJet, targetJet) <= fMatchR) {
Bool_t isBestMatch(kTRUE);
if(fGetBijection) {
#ifdef DEBUGTASK
printf(" > Entering first bijection test \n");
#endif
for(Int_t k(i); k < iSource; k++) {
AliEmcalJet* candidateSourceJet(static_cast<AliEmcalJet*>(fSourceJets->At(k)));
if(!PassesCuts(candidateSourceJet, 0)) continue;
#ifdef DEBUGTASK
printf("source distance %.2f \t candidate distance %.2f \n", GetR(sourceJet, targetJet),GetR(candidateSourceJet, targetJet));
#endif
if(GetR(sourceJet, targetJet) > GetR(candidateSourceJet, targetJet)) {
isBestMatch = kFALSE;
break;
}
}
#ifdef DEBUGTASK
(isBestMatch) ? printf(" kept source \n ") : printf(" we can do better (rejected source) \n");
#endif
}
if(isBestMatch) {
fMatchedJetContainer[fNoMatchedJets][0] = sourceJet;
fMatchedJetContainer[fNoMatchedJets][1] = targetJet;
fNoMatchedJets++;
}
if(fNoMatchedJets > 99) {
AliError(Form("%s: Found too many matched jets (> 100). Adjust matching criteria !", GetName()));
return;
}
}
}
}
}
void AliAnalysisTaskJetMatching::DoDiJetMatching()
{
#ifdef DEBUGTASK
printf("__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
#endif
Int_t leadingJetIndex(-1), subLeadingJetIndex(-1);
AliEmcalJet* leadingJet(GetLeadingJet(fSourceJets, leadingJetIndex));
if(!leadingJet) return;
fHistDiJetLeadingJet->Fill(leadingJet->Phi(), leadingJet->Eta(), leadingJet->Pt());
Double_t sourcePhi(leadingJet->Phi()), targetPhi(-1);
AliEmcalJet* subLeadingJet(GetSubLeadingJet(fSourceJets, leadingJetIndex, subLeadingJetIndex));
if(!subLeadingJet) return;
else {
targetPhi = subLeadingJet->Phi() + TMath::Pi();
if(TMath::Abs(sourcePhi) > TMath::Abs(sourcePhi+TMath::TwoPi())) sourcePhi+=TMath::TwoPi();
if(TMath::Abs(sourcePhi) > TMath::Abs(sourcePhi-TMath::TwoPi())) sourcePhi-=TMath::TwoPi();
if(TMath::Abs(targetPhi) > TMath::Abs(targetPhi+TMath::TwoPi())) targetPhi+=TMath::TwoPi();
if(TMath::Abs(targetPhi) > TMath::Abs(targetPhi-TMath::TwoPi())) targetPhi-=TMath::TwoPi();
if(TMath::Abs(sourcePhi-targetPhi) < fMatchPhi) {
fHistDiJet->Fill(subLeadingJet->Phi(), subLeadingJet->Eta(), leadingJet->Pt());
fHistDiJetDPhi->Fill(sourcePhi-targetPhi, leadingJet->Pt());
fHistDiJetDPt->Fill(leadingJet->Pt() - subLeadingJet->Pt(), leadingJet->Pt());
}
}
}
void AliAnalysisTaskJetMatching::DoConstituentMatching()
{
#ifdef DEBUGTASK
printf("__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
#endif
if(!fTracks) {
AliFatal(Form("%s Fatal error! To do deep matching, supply jet constituents ! \n", GetName()));
return;
}
for(Int_t i(0); i < fNoMatchedJets; i++) {
AliEmcalJet* sourceJet = fMatchedJetContainer[i][0];
AliEmcalJet* targetJet = fMatchedJetContainer[i][1];
if(sourceJet && targetJet) {
Double_t targetPt(0);
Int_t iSJ(sourceJet->GetNumberOfTracks());
Int_t iTJ(targetJet->GetNumberOfTracks());
Int_t overlap(0), alreadyFound(0);
for(Int_t j(0); j < iSJ; j++) {
alreadyFound = 0;
Int_t idSource((Int_t)sourceJet->TrackAt(j));
for(Int_t k(0); k < iTJ; k++) {
if(idSource == targetJet->TrackAt(k) && alreadyFound == 0) {
overlap++;
alreadyFound++;
AliVParticle* vp(static_cast<AliVParticle*>(targetJet->TrackAt(k, fTracks)));
if(vp) targetPt += vp->Pt();
continue;
}
}
}
if((float)overlap/(float)iSJ < fMinFracRecoveredConstituents || targetPt/sourceJet->Pt() < fMinFracRecoveredConstituentPt) {
#ifdef DEBUGTASK
printf(" \n > Purging jet, recovered constituents ratio %i / %i = %.2f < or pt ratio %.2f / %.2f = %.2f < %.2f", overlap, iSJ, (float)overlap/(float)iSJ, targetPt, sourceJet->Pt(), targetPt/sourceJet->Pt(), fMinFracRecoveredConstituentPt);
#endif
fMatchedJetContainer[i][0] = 0x0;
fMatchedJetContainer[i][1] = 0x0;
continue;
}
if(sourceJet->Pt() > 0) {
Double_t sourceRho(0), targetRho(0);
if(fSourceRho) sourceRho = fSourceRho->GetLocalVal(sourceJet->Phi(), fSourceRadius)*sourceJet->Area();
if(fTargetRho) targetRho = fTargetRho->GetLocalVal(targetJet->Phi(), fTargetRadius)*targetJet->Area();
fProfFracPtMatched->Fill(sourceJet->Pt()-sourceRho, (targetPt-targetRho) / (sourceJet->Pt()-sourceRho));
fProfFracPtJets->Fill(sourceJet->Pt()-sourceRho, (targetJet->Pt()-targetRho) / (sourceJet->Pt()-sourceRho));
fProfFracNoMatched->Fill(sourceJet->Pt()-sourceRho, (double)overlap / (double)sourceJet->GetNumberOfTracks());
fProfFracNoJets->Fill(sourceJet->Pt()-sourceRho, (double)targetJet->GetNumberOfTracks() / (double)sourceJet->GetNumberOfTracks());
}
#ifdef DEBUGTASK
if(fDebug > 0) {
printf("\n > Jet A: %i const\t", iSJ);
printf(" > Jet B %i const\t", iTJ);
printf(" -> OVERLAP: %i tracks <- \n", overlap);
}
#endif
}
}
}
void AliAnalysisTaskJetMatching::GetBijection()
{
#ifdef DEBUGTASK
printf("__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
#endif
for(Int_t i(0); i < fNoMatchedJets; i++) {
for(Int_t j(i+1); j < fNoMatchedJets; j++) {
if(fMatchedJetContainer[i][0] == fMatchedJetContainer[j][0]) {
if(!(fMatchedJetContainer[i][0] && fMatchedJetContainer[i][1] && fMatchedJetContainer[j][0] && fMatchedJetContainer[j][1] )) continue;
Double_t rA(GetR(fMatchedJetContainer[i][0], fMatchedJetContainer[i][1]));
Double_t rB(GetR(fMatchedJetContainer[j][0], fMatchedJetContainer[j][1]));
if (rB > rA) {
fMatchedJetContainer[j][0] = 0x0;
fMatchedJetContainer[j][1] = 0x0;
} else {
fMatchedJetContainer[i][0] = fMatchedJetContainer[j][0];
fMatchedJetContainer[i][1] = fMatchedJetContainer[j][1];
fMatchedJetContainer[j][0] = 0x0;
fMatchedJetContainer[j][1] = 0x0;
}
#ifdef DEBUGTASK
printf(" found duplicate jet, chose %.2f over %.2f \n" , (rB > rA) ? rA : rB, (rB > rA) ? rB : rA);
#endif
}
}
}
}
void AliAnalysisTaskJetMatching::PostMatchedJets()
{
#ifdef DEBUGTASK
printf("__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
#endif
fMatchedJets->Delete();
for(Int_t i(0), p(0); i < fNoMatchedJets; i++) {
if(fMatchedJetContainer[i][1]) {
new((*fMatchedJets)[p]) AliEmcalJet(*fMatchedJetContainer[i][1]);
p++;
}
}
}
void AliAnalysisTaskJetMatching::FillAnalysisSummaryHistogram() const
{
#ifdef DEBUGTASK
printf("__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
#endif
fHistAnalysisSummary->GetXaxis()->SetBinLabel(1, "fUseScaledRho");
fHistAnalysisSummary->SetBinContent(1, (int)fUseScaledRho);
fHistAnalysisSummary->GetXaxis()->SetBinLabel(2, "fMatchingScheme");
fHistAnalysisSummary->SetBinContent(2, (int)fMatchingScheme);
fHistAnalysisSummary->GetXaxis()->SetBinLabel(3, "fSourceBKG");
fHistAnalysisSummary->SetBinContent(3, (int)fSourceBKG);
fHistAnalysisSummary->GetXaxis()->SetBinLabel(4, "fTargetBKG");
fHistAnalysisSummary->SetBinContent(4, (int)fTargetBKG);
fHistAnalysisSummary->GetXaxis()->SetBinLabel(5, "fMatchEta");
fHistAnalysisSummary->SetBinContent(5, fMatchEta);
fHistAnalysisSummary->GetXaxis()->SetBinLabel(6, "fMatchPhi");
fHistAnalysisSummary->SetBinContent(6, fMatchPhi);
fHistAnalysisSummary->GetXaxis()->SetBinLabel(7, "fMatchR");
fHistAnalysisSummary->SetBinContent(7, fMatchR);
fHistAnalysisSummary->GetXaxis()->SetBinLabel(8, "iter");
fHistAnalysisSummary->SetBinContent(8, 1.);
}
void AliAnalysisTaskJetMatching::FillMatchedJetHistograms()
{
#ifdef DEBUGTASK
printf("__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
#endif
for(Int_t i(0); i < fSourceJets->GetEntriesFast(); i++) {
AliEmcalJet* source = static_cast<AliEmcalJet*>(fSourceJets->At(i));
if(!source) continue;
else if(fUseEmcalBaseJetCuts && !AcceptJet(source, 0)) continue;
Double_t sourceRho(0), targetRho(0);
if(fSourceRho) sourceRho = fSourceRho->GetLocalVal(source->Phi(), fSourceRadius)*source->Area();
fHistSourceJetPt->Fill(source->Pt()-sourceRho);
fHistNoConstSourceJet->Fill(source->GetNumberOfConstituents());
for(Int_t j(0); j < fTargetJets->GetEntriesFast(); j++) {
AliEmcalJet* target = static_cast<AliEmcalJet*>(fTargetJets->At(j));
if(target) {
if(fUseEmcalBaseJetCuts && !AcceptJet(target, 1)) continue;
if(fTargetRho) targetRho = fTargetRho->GetLocalVal(target->Phi(), fTargetRadius)*target->Area();
fProfQA->Fill(0.5, TMath::Abs((source->Pt()-sourceRho)-(target->Pt()-targetRho)));
fProfQA->Fill(1.5, TMath::Abs(source->Eta()-target->Eta()));
fProfQA->Fill(2.5, TMath::Abs(source->Phi()-target->Phi()));
fHistUnsortedCorrelation->Fill(PhaseShift(source->Phi()-target->Phi(), 2));
if(j==0) {
fHistTargetJetPt->Fill(target->Pt()-targetRho);
fHistNoConstTargetJet->Fill(target->GetNumberOfConstituents());
}
}
}
}
for(Int_t i(0); i < fNoMatchedJets; i++) {
if(fMatchedJetContainer[i][0] && fMatchedJetContainer[i][1]) {
Double_t sourceRho(0), targetRho(0);
if(fSourceRho) sourceRho = fSourceRho->GetLocalVal(fMatchedJetContainer[i][0]->Phi(), fSourceRadius)*fMatchedJetContainer[i][0]->Area();
if(fTargetRho) targetRho = fTargetRho->GetLocalVal(fMatchedJetContainer[i][1]->Phi(), fTargetRadius)*fMatchedJetContainer[i][1]->Area();
fHistMatchedCorrelation->Fill(PhaseShift(fMatchedJetContainer[i][0]->Phi()-fMatchedJetContainer[i][1]->Phi(), 2));
fHistMatchedSourceJetPt->Fill(fMatchedJetContainer[i][0]->Pt()-sourceRho);
fHistMatchedJetPt->Fill(fMatchedJetContainer[i][1]->Pt()-targetRho);
fHistNoConstMatchJet->Fill(fMatchedJetContainer[i][1]->Pt()-targetRho);
fProfQAMatched->Fill(0.5, TMath::Abs((fMatchedJetContainer[i][0]->Pt()-sourceRho)-(fMatchedJetContainer[i][1]->Pt()-targetRho)));
fProfQAMatched->Fill(1.5, TMath::Abs(fMatchedJetContainer[i][0]->Eta()-fMatchedJetContainer[i][1]->Eta()));
fProfQAMatched->Fill(2.5, TMath::Abs(fMatchedJetContainer[i][0]->Phi()-fMatchedJetContainer[i][1]->Phi()));
fHistSourceMatchedJetPt->Fill(fMatchedJetContainer[i][0]->Pt()-sourceRho, fMatchedJetContainer[i][1]->Pt()-targetRho);
if(fDoDetectorResponse) {
fProfFracPtJets->Fill(fMatchedJetContainer[i][0]->Pt()-sourceRho, (fMatchedJetContainer[i][1]->Pt()-targetRho) / (fMatchedJetContainer[i][0]->Pt()-sourceRho));
fProfFracNoJets->Fill(fMatchedJetContainer[i][0]->Pt()-sourceRho, (double)fMatchedJetContainer[i][1]->GetNumberOfTracks() / (double)fMatchedJetContainer[i][0]->GetNumberOfTracks());
fHistDetectorResponseProb->Fill((fMatchedJetContainer[i][1]->Pt()-fMatchedJetContainer[i][0]->Pt())/fMatchedJetContainer[i][0]->Pt(), fMatchedJetContainer[i][0]->Pt());
}
}
}
}
AliEmcalJet* AliAnalysisTaskJetMatching::GetLeadingJet(TClonesArray* source, Int_t &leadingJetIndex, Double_t etaMin, Double_t etaMax)
{
Int_t iJets(source->GetEntriesFast());
Double_t pt(0);
AliEmcalJet* leadingJet(0x0);
for(Int_t i(0); i < iJets; i++) {
AliEmcalJet* jet = static_cast<AliEmcalJet*>(source->At(i));
if(jet->Eta() < etaMin || jet->Eta() > etaMax) continue;
if(jet->Pt() > pt) {
leadingJet = jet;
pt = leadingJet->Pt();
leadingJetIndex = i;
}
}
return leadingJet;
}
AliEmcalJet* AliAnalysisTaskJetMatching::GetSubLeadingJet(TClonesArray* source, Int_t leadingJetIndex, Int_t &subLeadingJetIndex)
{
Int_t iJets(source->GetEntriesFast());
if(leadingJetIndex < 0) GetLeadingJet(source, leadingJetIndex);
AliEmcalJet *leadingJet(0x0), *prevLeadingJet(static_cast<AliEmcalJet*>(source->At(leadingJetIndex)));
if(!prevLeadingJet) return 0x0;
Double_t pt(0), leadingPt(prevLeadingJet->Pt());
for(Int_t i(0); i < iJets; i++) {
if(i == leadingJetIndex) continue;
AliEmcalJet* jet = static_cast<AliEmcalJet*>(source->At(i));
if(jet->Pt() > pt && jet->Pt() <= leadingPt) {
leadingJet = jet;
pt = leadingJet->Pt();
subLeadingJetIndex = i;
}
}
return leadingJet;
}
void AliAnalysisTaskJetMatching::PrintInfo() const
{
printf("\n > No. of source jets from %s \n \t %i \n ", fSourceJetsName.Data(), fSourceJets->GetEntriesFast());
printf(" > No. of target jets from %s \n \t %i \n ", fTargetJetsName.Data(), fTargetJets->GetEntriesFast());
printf(" > No. of matched jets from %s \n \t %i \n ", fMatchedJetsName.Data(), fMatchedJets->GetEntriesFast());
}
void AliAnalysisTaskJetMatching::Terminate(Option_t *)
{
}
AliAnalysisTaskJetMatching.cxx:1 AliAnalysisTaskJetMatching.cxx:2 AliAnalysisTaskJetMatching.cxx:3 AliAnalysisTaskJetMatching.cxx:4 AliAnalysisTaskJetMatching.cxx:5 AliAnalysisTaskJetMatching.cxx:6 AliAnalysisTaskJetMatching.cxx:7 AliAnalysisTaskJetMatching.cxx:8 AliAnalysisTaskJetMatching.cxx:9 AliAnalysisTaskJetMatching.cxx:10 AliAnalysisTaskJetMatching.cxx:11 AliAnalysisTaskJetMatching.cxx:12 AliAnalysisTaskJetMatching.cxx:13 AliAnalysisTaskJetMatching.cxx:14 AliAnalysisTaskJetMatching.cxx:15 AliAnalysisTaskJetMatching.cxx:16 AliAnalysisTaskJetMatching.cxx:17 AliAnalysisTaskJetMatching.cxx:18 AliAnalysisTaskJetMatching.cxx:19 AliAnalysisTaskJetMatching.cxx:20 AliAnalysisTaskJetMatching.cxx:21 AliAnalysisTaskJetMatching.cxx:22 AliAnalysisTaskJetMatching.cxx:23 AliAnalysisTaskJetMatching.cxx:24 AliAnalysisTaskJetMatching.cxx:25 AliAnalysisTaskJetMatching.cxx:26 AliAnalysisTaskJetMatching.cxx:27 AliAnalysisTaskJetMatching.cxx:28 AliAnalysisTaskJetMatching.cxx:29 AliAnalysisTaskJetMatching.cxx:30 AliAnalysisTaskJetMatching.cxx:31 AliAnalysisTaskJetMatching.cxx:32 AliAnalysisTaskJetMatching.cxx:33 AliAnalysisTaskJetMatching.cxx:34 AliAnalysisTaskJetMatching.cxx:35 AliAnalysisTaskJetMatching.cxx:36 AliAnalysisTaskJetMatching.cxx:37 AliAnalysisTaskJetMatching.cxx:38 AliAnalysisTaskJetMatching.cxx:39 AliAnalysisTaskJetMatching.cxx:40 AliAnalysisTaskJetMatching.cxx:41 AliAnalysisTaskJetMatching.cxx:42 AliAnalysisTaskJetMatching.cxx:43 AliAnalysisTaskJetMatching.cxx:44 AliAnalysisTaskJetMatching.cxx:45 AliAnalysisTaskJetMatching.cxx:46 AliAnalysisTaskJetMatching.cxx:47 AliAnalysisTaskJetMatching.cxx:48 AliAnalysisTaskJetMatching.cxx:49 AliAnalysisTaskJetMatching.cxx:50 AliAnalysisTaskJetMatching.cxx:51 AliAnalysisTaskJetMatching.cxx:52 AliAnalysisTaskJetMatching.cxx:53 AliAnalysisTaskJetMatching.cxx:54 AliAnalysisTaskJetMatching.cxx:55 AliAnalysisTaskJetMatching.cxx:56 AliAnalysisTaskJetMatching.cxx:57 AliAnalysisTaskJetMatching.cxx:58 AliAnalysisTaskJetMatching.cxx:59 AliAnalysisTaskJetMatching.cxx:60 AliAnalysisTaskJetMatching.cxx:61 AliAnalysisTaskJetMatching.cxx:62 AliAnalysisTaskJetMatching.cxx:63 AliAnalysisTaskJetMatching.cxx:64 AliAnalysisTaskJetMatching.cxx:65 AliAnalysisTaskJetMatching.cxx:66 AliAnalysisTaskJetMatching.cxx:67 AliAnalysisTaskJetMatching.cxx:68 AliAnalysisTaskJetMatching.cxx:69 AliAnalysisTaskJetMatching.cxx:70 AliAnalysisTaskJetMatching.cxx:71 AliAnalysisTaskJetMatching.cxx:72 AliAnalysisTaskJetMatching.cxx:73 AliAnalysisTaskJetMatching.cxx:74 AliAnalysisTaskJetMatching.cxx:75 AliAnalysisTaskJetMatching.cxx:76 AliAnalysisTaskJetMatching.cxx:77 AliAnalysisTaskJetMatching.cxx:78 AliAnalysisTaskJetMatching.cxx:79 AliAnalysisTaskJetMatching.cxx:80 AliAnalysisTaskJetMatching.cxx:81 AliAnalysisTaskJetMatching.cxx:82 AliAnalysisTaskJetMatching.cxx:83 AliAnalysisTaskJetMatching.cxx:84 AliAnalysisTaskJetMatching.cxx:85 AliAnalysisTaskJetMatching.cxx:86 AliAnalysisTaskJetMatching.cxx:87 AliAnalysisTaskJetMatching.cxx:88 AliAnalysisTaskJetMatching.cxx:89 AliAnalysisTaskJetMatching.cxx:90 AliAnalysisTaskJetMatching.cxx:91 AliAnalysisTaskJetMatching.cxx:92 AliAnalysisTaskJetMatching.cxx:93 AliAnalysisTaskJetMatching.cxx:94 AliAnalysisTaskJetMatching.cxx:95 AliAnalysisTaskJetMatching.cxx:96 AliAnalysisTaskJetMatching.cxx:97 AliAnalysisTaskJetMatching.cxx:98 AliAnalysisTaskJetMatching.cxx:99 AliAnalysisTaskJetMatching.cxx:100 AliAnalysisTaskJetMatching.cxx:101 AliAnalysisTaskJetMatching.cxx:102 AliAnalysisTaskJetMatching.cxx:103 AliAnalysisTaskJetMatching.cxx:104 AliAnalysisTaskJetMatching.cxx:105 AliAnalysisTaskJetMatching.cxx:106 AliAnalysisTaskJetMatching.cxx:107 AliAnalysisTaskJetMatching.cxx:108 AliAnalysisTaskJetMatching.cxx:109 AliAnalysisTaskJetMatching.cxx:110 AliAnalysisTaskJetMatching.cxx:111 AliAnalysisTaskJetMatching.cxx:112 AliAnalysisTaskJetMatching.cxx:113 AliAnalysisTaskJetMatching.cxx:114 AliAnalysisTaskJetMatching.cxx:115 AliAnalysisTaskJetMatching.cxx:116 AliAnalysisTaskJetMatching.cxx:117 AliAnalysisTaskJetMatching.cxx:118 AliAnalysisTaskJetMatching.cxx:119 AliAnalysisTaskJetMatching.cxx:120 AliAnalysisTaskJetMatching.cxx:121 AliAnalysisTaskJetMatching.cxx:122 AliAnalysisTaskJetMatching.cxx:123 AliAnalysisTaskJetMatching.cxx:124 AliAnalysisTaskJetMatching.cxx:125 AliAnalysisTaskJetMatching.cxx:126 AliAnalysisTaskJetMatching.cxx:127 AliAnalysisTaskJetMatching.cxx:128 AliAnalysisTaskJetMatching.cxx:129 AliAnalysisTaskJetMatching.cxx:130 AliAnalysisTaskJetMatching.cxx:131 AliAnalysisTaskJetMatching.cxx:132 AliAnalysisTaskJetMatching.cxx:133 AliAnalysisTaskJetMatching.cxx:134 AliAnalysisTaskJetMatching.cxx:135 AliAnalysisTaskJetMatching.cxx:136 AliAnalysisTaskJetMatching.cxx:137 AliAnalysisTaskJetMatching.cxx:138 AliAnalysisTaskJetMatching.cxx:139 AliAnalysisTaskJetMatching.cxx:140 AliAnalysisTaskJetMatching.cxx:141 AliAnalysisTaskJetMatching.cxx:142 AliAnalysisTaskJetMatching.cxx:143 AliAnalysisTaskJetMatching.cxx:144 AliAnalysisTaskJetMatching.cxx:145 AliAnalysisTaskJetMatching.cxx:146 AliAnalysisTaskJetMatching.cxx:147 AliAnalysisTaskJetMatching.cxx:148 AliAnalysisTaskJetMatching.cxx:149 AliAnalysisTaskJetMatching.cxx:150 AliAnalysisTaskJetMatching.cxx:151 AliAnalysisTaskJetMatching.cxx:152 AliAnalysisTaskJetMatching.cxx:153 AliAnalysisTaskJetMatching.cxx:154 AliAnalysisTaskJetMatching.cxx:155 AliAnalysisTaskJetMatching.cxx:156 AliAnalysisTaskJetMatching.cxx:157 AliAnalysisTaskJetMatching.cxx:158 AliAnalysisTaskJetMatching.cxx:159 AliAnalysisTaskJetMatching.cxx:160 AliAnalysisTaskJetMatching.cxx:161 AliAnalysisTaskJetMatching.cxx:162 AliAnalysisTaskJetMatching.cxx:163 AliAnalysisTaskJetMatching.cxx:164 AliAnalysisTaskJetMatching.cxx:165 AliAnalysisTaskJetMatching.cxx:166 AliAnalysisTaskJetMatching.cxx:167 AliAnalysisTaskJetMatching.cxx:168 AliAnalysisTaskJetMatching.cxx:169 AliAnalysisTaskJetMatching.cxx:170 AliAnalysisTaskJetMatching.cxx:171 AliAnalysisTaskJetMatching.cxx:172 AliAnalysisTaskJetMatching.cxx:173 AliAnalysisTaskJetMatching.cxx:174 AliAnalysisTaskJetMatching.cxx:175 AliAnalysisTaskJetMatching.cxx:176 AliAnalysisTaskJetMatching.cxx:177 AliAnalysisTaskJetMatching.cxx:178 AliAnalysisTaskJetMatching.cxx:179 AliAnalysisTaskJetMatching.cxx:180 AliAnalysisTaskJetMatching.cxx:181 AliAnalysisTaskJetMatching.cxx:182 AliAnalysisTaskJetMatching.cxx:183 AliAnalysisTaskJetMatching.cxx:184 AliAnalysisTaskJetMatching.cxx:185 AliAnalysisTaskJetMatching.cxx:186 AliAnalysisTaskJetMatching.cxx:187 AliAnalysisTaskJetMatching.cxx:188 AliAnalysisTaskJetMatching.cxx:189 AliAnalysisTaskJetMatching.cxx:190 AliAnalysisTaskJetMatching.cxx:191 AliAnalysisTaskJetMatching.cxx:192 AliAnalysisTaskJetMatching.cxx:193 AliAnalysisTaskJetMatching.cxx:194 AliAnalysisTaskJetMatching.cxx:195 AliAnalysisTaskJetMatching.cxx:196 AliAnalysisTaskJetMatching.cxx:197 AliAnalysisTaskJetMatching.cxx:198 AliAnalysisTaskJetMatching.cxx:199 AliAnalysisTaskJetMatching.cxx:200 AliAnalysisTaskJetMatching.cxx:201 AliAnalysisTaskJetMatching.cxx:202 AliAnalysisTaskJetMatching.cxx:203 AliAnalysisTaskJetMatching.cxx:204 AliAnalysisTaskJetMatching.cxx:205 AliAnalysisTaskJetMatching.cxx:206 AliAnalysisTaskJetMatching.cxx:207 AliAnalysisTaskJetMatching.cxx:208 AliAnalysisTaskJetMatching.cxx:209 AliAnalysisTaskJetMatching.cxx:210 AliAnalysisTaskJetMatching.cxx:211 AliAnalysisTaskJetMatching.cxx:212 AliAnalysisTaskJetMatching.cxx:213 AliAnalysisTaskJetMatching.cxx:214 AliAnalysisTaskJetMatching.cxx:215 AliAnalysisTaskJetMatching.cxx:216 AliAnalysisTaskJetMatching.cxx:217 AliAnalysisTaskJetMatching.cxx:218 AliAnalysisTaskJetMatching.cxx:219 AliAnalysisTaskJetMatching.cxx:220 AliAnalysisTaskJetMatching.cxx:221 AliAnalysisTaskJetMatching.cxx:222 AliAnalysisTaskJetMatching.cxx:223 AliAnalysisTaskJetMatching.cxx:224 AliAnalysisTaskJetMatching.cxx:225 AliAnalysisTaskJetMatching.cxx:226 AliAnalysisTaskJetMatching.cxx:227 AliAnalysisTaskJetMatching.cxx:228 AliAnalysisTaskJetMatching.cxx:229 AliAnalysisTaskJetMatching.cxx:230 AliAnalysisTaskJetMatching.cxx:231 AliAnalysisTaskJetMatching.cxx:232 AliAnalysisTaskJetMatching.cxx:233 AliAnalysisTaskJetMatching.cxx:234 AliAnalysisTaskJetMatching.cxx:235 AliAnalysisTaskJetMatching.cxx:236 AliAnalysisTaskJetMatching.cxx:237 AliAnalysisTaskJetMatching.cxx:238 AliAnalysisTaskJetMatching.cxx:239 AliAnalysisTaskJetMatching.cxx:240 AliAnalysisTaskJetMatching.cxx:241 AliAnalysisTaskJetMatching.cxx:242 AliAnalysisTaskJetMatching.cxx:243 AliAnalysisTaskJetMatching.cxx:244 AliAnalysisTaskJetMatching.cxx:245 AliAnalysisTaskJetMatching.cxx:246 AliAnalysisTaskJetMatching.cxx:247 AliAnalysisTaskJetMatching.cxx:248 AliAnalysisTaskJetMatching.cxx:249 AliAnalysisTaskJetMatching.cxx:250 AliAnalysisTaskJetMatching.cxx:251 AliAnalysisTaskJetMatching.cxx:252 AliAnalysisTaskJetMatching.cxx:253 AliAnalysisTaskJetMatching.cxx:254 AliAnalysisTaskJetMatching.cxx:255 AliAnalysisTaskJetMatching.cxx:256 AliAnalysisTaskJetMatching.cxx:257 AliAnalysisTaskJetMatching.cxx:258 AliAnalysisTaskJetMatching.cxx:259 AliAnalysisTaskJetMatching.cxx:260 AliAnalysisTaskJetMatching.cxx:261 AliAnalysisTaskJetMatching.cxx:262 AliAnalysisTaskJetMatching.cxx:263 AliAnalysisTaskJetMatching.cxx:264 AliAnalysisTaskJetMatching.cxx:265 AliAnalysisTaskJetMatching.cxx:266 AliAnalysisTaskJetMatching.cxx:267 AliAnalysisTaskJetMatching.cxx:268 AliAnalysisTaskJetMatching.cxx:269 AliAnalysisTaskJetMatching.cxx:270 AliAnalysisTaskJetMatching.cxx:271 AliAnalysisTaskJetMatching.cxx:272 AliAnalysisTaskJetMatching.cxx:273 AliAnalysisTaskJetMatching.cxx:274 AliAnalysisTaskJetMatching.cxx:275 AliAnalysisTaskJetMatching.cxx:276 AliAnalysisTaskJetMatching.cxx:277 AliAnalysisTaskJetMatching.cxx:278 AliAnalysisTaskJetMatching.cxx:279 AliAnalysisTaskJetMatching.cxx:280 AliAnalysisTaskJetMatching.cxx:281 AliAnalysisTaskJetMatching.cxx:282 AliAnalysisTaskJetMatching.cxx:283 AliAnalysisTaskJetMatching.cxx:284 AliAnalysisTaskJetMatching.cxx:285 AliAnalysisTaskJetMatching.cxx:286 AliAnalysisTaskJetMatching.cxx:287 AliAnalysisTaskJetMatching.cxx:288 AliAnalysisTaskJetMatching.cxx:289 AliAnalysisTaskJetMatching.cxx:290 AliAnalysisTaskJetMatching.cxx:291 AliAnalysisTaskJetMatching.cxx:292 AliAnalysisTaskJetMatching.cxx:293 AliAnalysisTaskJetMatching.cxx:294 AliAnalysisTaskJetMatching.cxx:295 AliAnalysisTaskJetMatching.cxx:296 AliAnalysisTaskJetMatching.cxx:297 AliAnalysisTaskJetMatching.cxx:298 AliAnalysisTaskJetMatching.cxx:299 AliAnalysisTaskJetMatching.cxx:300 AliAnalysisTaskJetMatching.cxx:301 AliAnalysisTaskJetMatching.cxx:302 AliAnalysisTaskJetMatching.cxx:303 AliAnalysisTaskJetMatching.cxx:304 AliAnalysisTaskJetMatching.cxx:305 AliAnalysisTaskJetMatching.cxx:306 AliAnalysisTaskJetMatching.cxx:307 AliAnalysisTaskJetMatching.cxx:308 AliAnalysisTaskJetMatching.cxx:309 AliAnalysisTaskJetMatching.cxx:310 AliAnalysisTaskJetMatching.cxx:311 AliAnalysisTaskJetMatching.cxx:312 AliAnalysisTaskJetMatching.cxx:313 AliAnalysisTaskJetMatching.cxx:314 AliAnalysisTaskJetMatching.cxx:315 AliAnalysisTaskJetMatching.cxx:316 AliAnalysisTaskJetMatching.cxx:317 AliAnalysisTaskJetMatching.cxx:318 AliAnalysisTaskJetMatching.cxx:319 AliAnalysisTaskJetMatching.cxx:320 AliAnalysisTaskJetMatching.cxx:321 AliAnalysisTaskJetMatching.cxx:322 AliAnalysisTaskJetMatching.cxx:323 AliAnalysisTaskJetMatching.cxx:324 AliAnalysisTaskJetMatching.cxx:325 AliAnalysisTaskJetMatching.cxx:326 AliAnalysisTaskJetMatching.cxx:327 AliAnalysisTaskJetMatching.cxx:328 AliAnalysisTaskJetMatching.cxx:329 AliAnalysisTaskJetMatching.cxx:330 AliAnalysisTaskJetMatching.cxx:331 AliAnalysisTaskJetMatching.cxx:332 AliAnalysisTaskJetMatching.cxx:333 AliAnalysisTaskJetMatching.cxx:334 AliAnalysisTaskJetMatching.cxx:335 AliAnalysisTaskJetMatching.cxx:336 AliAnalysisTaskJetMatching.cxx:337 AliAnalysisTaskJetMatching.cxx:338 AliAnalysisTaskJetMatching.cxx:339 AliAnalysisTaskJetMatching.cxx:340 AliAnalysisTaskJetMatching.cxx:341 AliAnalysisTaskJetMatching.cxx:342 AliAnalysisTaskJetMatching.cxx:343 AliAnalysisTaskJetMatching.cxx:344 AliAnalysisTaskJetMatching.cxx:345 AliAnalysisTaskJetMatching.cxx:346 AliAnalysisTaskJetMatching.cxx:347 AliAnalysisTaskJetMatching.cxx:348 AliAnalysisTaskJetMatching.cxx:349 AliAnalysisTaskJetMatching.cxx:350 AliAnalysisTaskJetMatching.cxx:351 AliAnalysisTaskJetMatching.cxx:352 AliAnalysisTaskJetMatching.cxx:353 AliAnalysisTaskJetMatching.cxx:354 AliAnalysisTaskJetMatching.cxx:355 AliAnalysisTaskJetMatching.cxx:356 AliAnalysisTaskJetMatching.cxx:357 AliAnalysisTaskJetMatching.cxx:358 AliAnalysisTaskJetMatching.cxx:359 AliAnalysisTaskJetMatching.cxx:360 AliAnalysisTaskJetMatching.cxx:361 AliAnalysisTaskJetMatching.cxx:362 AliAnalysisTaskJetMatching.cxx:363 AliAnalysisTaskJetMatching.cxx:364 AliAnalysisTaskJetMatching.cxx:365 AliAnalysisTaskJetMatching.cxx:366 AliAnalysisTaskJetMatching.cxx:367 AliAnalysisTaskJetMatching.cxx:368 AliAnalysisTaskJetMatching.cxx:369 AliAnalysisTaskJetMatching.cxx:370 AliAnalysisTaskJetMatching.cxx:371 AliAnalysisTaskJetMatching.cxx:372 AliAnalysisTaskJetMatching.cxx:373 AliAnalysisTaskJetMatching.cxx:374 AliAnalysisTaskJetMatching.cxx:375 AliAnalysisTaskJetMatching.cxx:376 AliAnalysisTaskJetMatching.cxx:377 AliAnalysisTaskJetMatching.cxx:378 AliAnalysisTaskJetMatching.cxx:379 AliAnalysisTaskJetMatching.cxx:380 AliAnalysisTaskJetMatching.cxx:381 AliAnalysisTaskJetMatching.cxx:382 AliAnalysisTaskJetMatching.cxx:383 AliAnalysisTaskJetMatching.cxx:384 AliAnalysisTaskJetMatching.cxx:385 AliAnalysisTaskJetMatching.cxx:386 AliAnalysisTaskJetMatching.cxx:387 AliAnalysisTaskJetMatching.cxx:388 AliAnalysisTaskJetMatching.cxx:389 AliAnalysisTaskJetMatching.cxx:390 AliAnalysisTaskJetMatching.cxx:391 AliAnalysisTaskJetMatching.cxx:392 AliAnalysisTaskJetMatching.cxx:393 AliAnalysisTaskJetMatching.cxx:394 AliAnalysisTaskJetMatching.cxx:395 AliAnalysisTaskJetMatching.cxx:396 AliAnalysisTaskJetMatching.cxx:397 AliAnalysisTaskJetMatching.cxx:398 AliAnalysisTaskJetMatching.cxx:399 AliAnalysisTaskJetMatching.cxx:400 AliAnalysisTaskJetMatching.cxx:401 AliAnalysisTaskJetMatching.cxx:402 AliAnalysisTaskJetMatching.cxx:403 AliAnalysisTaskJetMatching.cxx:404 AliAnalysisTaskJetMatching.cxx:405 AliAnalysisTaskJetMatching.cxx:406 AliAnalysisTaskJetMatching.cxx:407 AliAnalysisTaskJetMatching.cxx:408 AliAnalysisTaskJetMatching.cxx:409 AliAnalysisTaskJetMatching.cxx:410 AliAnalysisTaskJetMatching.cxx:411 AliAnalysisTaskJetMatching.cxx:412 AliAnalysisTaskJetMatching.cxx:413 AliAnalysisTaskJetMatching.cxx:414 AliAnalysisTaskJetMatching.cxx:415 AliAnalysisTaskJetMatching.cxx:416 AliAnalysisTaskJetMatching.cxx:417 AliAnalysisTaskJetMatching.cxx:418 AliAnalysisTaskJetMatching.cxx:419 AliAnalysisTaskJetMatching.cxx:420 AliAnalysisTaskJetMatching.cxx:421 AliAnalysisTaskJetMatching.cxx:422 AliAnalysisTaskJetMatching.cxx:423 AliAnalysisTaskJetMatching.cxx:424 AliAnalysisTaskJetMatching.cxx:425 AliAnalysisTaskJetMatching.cxx:426 AliAnalysisTaskJetMatching.cxx:427 AliAnalysisTaskJetMatching.cxx:428 AliAnalysisTaskJetMatching.cxx:429 AliAnalysisTaskJetMatching.cxx:430 AliAnalysisTaskJetMatching.cxx:431 AliAnalysisTaskJetMatching.cxx:432 AliAnalysisTaskJetMatching.cxx:433 AliAnalysisTaskJetMatching.cxx:434 AliAnalysisTaskJetMatching.cxx:435 AliAnalysisTaskJetMatching.cxx:436 AliAnalysisTaskJetMatching.cxx:437 AliAnalysisTaskJetMatching.cxx:438 AliAnalysisTaskJetMatching.cxx:439 AliAnalysisTaskJetMatching.cxx:440 AliAnalysisTaskJetMatching.cxx:441 AliAnalysisTaskJetMatching.cxx:442 AliAnalysisTaskJetMatching.cxx:443 AliAnalysisTaskJetMatching.cxx:444 AliAnalysisTaskJetMatching.cxx:445 AliAnalysisTaskJetMatching.cxx:446 AliAnalysisTaskJetMatching.cxx:447 AliAnalysisTaskJetMatching.cxx:448 AliAnalysisTaskJetMatching.cxx:449 AliAnalysisTaskJetMatching.cxx:450 AliAnalysisTaskJetMatching.cxx:451 AliAnalysisTaskJetMatching.cxx:452 AliAnalysisTaskJetMatching.cxx:453 AliAnalysisTaskJetMatching.cxx:454 AliAnalysisTaskJetMatching.cxx:455 AliAnalysisTaskJetMatching.cxx:456 AliAnalysisTaskJetMatching.cxx:457 AliAnalysisTaskJetMatching.cxx:458 AliAnalysisTaskJetMatching.cxx:459 AliAnalysisTaskJetMatching.cxx:460 AliAnalysisTaskJetMatching.cxx:461 AliAnalysisTaskJetMatching.cxx:462 AliAnalysisTaskJetMatching.cxx:463 AliAnalysisTaskJetMatching.cxx:464 AliAnalysisTaskJetMatching.cxx:465 AliAnalysisTaskJetMatching.cxx:466 AliAnalysisTaskJetMatching.cxx:467 AliAnalysisTaskJetMatching.cxx:468 AliAnalysisTaskJetMatching.cxx:469 AliAnalysisTaskJetMatching.cxx:470 AliAnalysisTaskJetMatching.cxx:471 AliAnalysisTaskJetMatching.cxx:472 AliAnalysisTaskJetMatching.cxx:473 AliAnalysisTaskJetMatching.cxx:474 AliAnalysisTaskJetMatching.cxx:475 AliAnalysisTaskJetMatching.cxx:476 AliAnalysisTaskJetMatching.cxx:477 AliAnalysisTaskJetMatching.cxx:478 AliAnalysisTaskJetMatching.cxx:479 AliAnalysisTaskJetMatching.cxx:480 AliAnalysisTaskJetMatching.cxx:481 AliAnalysisTaskJetMatching.cxx:482 AliAnalysisTaskJetMatching.cxx:483 AliAnalysisTaskJetMatching.cxx:484 AliAnalysisTaskJetMatching.cxx:485 AliAnalysisTaskJetMatching.cxx:486 AliAnalysisTaskJetMatching.cxx:487 AliAnalysisTaskJetMatching.cxx:488 AliAnalysisTaskJetMatching.cxx:489 AliAnalysisTaskJetMatching.cxx:490 AliAnalysisTaskJetMatching.cxx:491 AliAnalysisTaskJetMatching.cxx:492 AliAnalysisTaskJetMatching.cxx:493 AliAnalysisTaskJetMatching.cxx:494 AliAnalysisTaskJetMatching.cxx:495 AliAnalysisTaskJetMatching.cxx:496 AliAnalysisTaskJetMatching.cxx:497 AliAnalysisTaskJetMatching.cxx:498 AliAnalysisTaskJetMatching.cxx:499 AliAnalysisTaskJetMatching.cxx:500 AliAnalysisTaskJetMatching.cxx:501 AliAnalysisTaskJetMatching.cxx:502 AliAnalysisTaskJetMatching.cxx:503 AliAnalysisTaskJetMatching.cxx:504 AliAnalysisTaskJetMatching.cxx:505 AliAnalysisTaskJetMatching.cxx:506 AliAnalysisTaskJetMatching.cxx:507 AliAnalysisTaskJetMatching.cxx:508 AliAnalysisTaskJetMatching.cxx:509 AliAnalysisTaskJetMatching.cxx:510 AliAnalysisTaskJetMatching.cxx:511 AliAnalysisTaskJetMatching.cxx:512 AliAnalysisTaskJetMatching.cxx:513 AliAnalysisTaskJetMatching.cxx:514 AliAnalysisTaskJetMatching.cxx:515 AliAnalysisTaskJetMatching.cxx:516 AliAnalysisTaskJetMatching.cxx:517 AliAnalysisTaskJetMatching.cxx:518 AliAnalysisTaskJetMatching.cxx:519 AliAnalysisTaskJetMatching.cxx:520 AliAnalysisTaskJetMatching.cxx:521 AliAnalysisTaskJetMatching.cxx:522 AliAnalysisTaskJetMatching.cxx:523 AliAnalysisTaskJetMatching.cxx:524 AliAnalysisTaskJetMatching.cxx:525 AliAnalysisTaskJetMatching.cxx:526 AliAnalysisTaskJetMatching.cxx:527 AliAnalysisTaskJetMatching.cxx:528 AliAnalysisTaskJetMatching.cxx:529 AliAnalysisTaskJetMatching.cxx:530 AliAnalysisTaskJetMatching.cxx:531 AliAnalysisTaskJetMatching.cxx:532 AliAnalysisTaskJetMatching.cxx:533 AliAnalysisTaskJetMatching.cxx:534 AliAnalysisTaskJetMatching.cxx:535 AliAnalysisTaskJetMatching.cxx:536 AliAnalysisTaskJetMatching.cxx:537 AliAnalysisTaskJetMatching.cxx:538 AliAnalysisTaskJetMatching.cxx:539 AliAnalysisTaskJetMatching.cxx:540 AliAnalysisTaskJetMatching.cxx:541 AliAnalysisTaskJetMatching.cxx:542 AliAnalysisTaskJetMatching.cxx:543 AliAnalysisTaskJetMatching.cxx:544 AliAnalysisTaskJetMatching.cxx:545 AliAnalysisTaskJetMatching.cxx:546 AliAnalysisTaskJetMatching.cxx:547 AliAnalysisTaskJetMatching.cxx:548 AliAnalysisTaskJetMatching.cxx:549 AliAnalysisTaskJetMatching.cxx:550 AliAnalysisTaskJetMatching.cxx:551 AliAnalysisTaskJetMatching.cxx:552 AliAnalysisTaskJetMatching.cxx:553 AliAnalysisTaskJetMatching.cxx:554 AliAnalysisTaskJetMatching.cxx:555 AliAnalysisTaskJetMatching.cxx:556 AliAnalysisTaskJetMatching.cxx:557 AliAnalysisTaskJetMatching.cxx:558 AliAnalysisTaskJetMatching.cxx:559 AliAnalysisTaskJetMatching.cxx:560 AliAnalysisTaskJetMatching.cxx:561 AliAnalysisTaskJetMatching.cxx:562 AliAnalysisTaskJetMatching.cxx:563 AliAnalysisTaskJetMatching.cxx:564 AliAnalysisTaskJetMatching.cxx:565 AliAnalysisTaskJetMatching.cxx:566 AliAnalysisTaskJetMatching.cxx:567 AliAnalysisTaskJetMatching.cxx:568 AliAnalysisTaskJetMatching.cxx:569 AliAnalysisTaskJetMatching.cxx:570 AliAnalysisTaskJetMatching.cxx:571 AliAnalysisTaskJetMatching.cxx:572 AliAnalysisTaskJetMatching.cxx:573 AliAnalysisTaskJetMatching.cxx:574 AliAnalysisTaskJetMatching.cxx:575 AliAnalysisTaskJetMatching.cxx:576 AliAnalysisTaskJetMatching.cxx:577 AliAnalysisTaskJetMatching.cxx:578 AliAnalysisTaskJetMatching.cxx:579 AliAnalysisTaskJetMatching.cxx:580 AliAnalysisTaskJetMatching.cxx:581 AliAnalysisTaskJetMatching.cxx:582 AliAnalysisTaskJetMatching.cxx:583 AliAnalysisTaskJetMatching.cxx:584 AliAnalysisTaskJetMatching.cxx:585 AliAnalysisTaskJetMatching.cxx:586 AliAnalysisTaskJetMatching.cxx:587 AliAnalysisTaskJetMatching.cxx:588 AliAnalysisTaskJetMatching.cxx:589 AliAnalysisTaskJetMatching.cxx:590 AliAnalysisTaskJetMatching.cxx:591 AliAnalysisTaskJetMatching.cxx:592 AliAnalysisTaskJetMatching.cxx:593 AliAnalysisTaskJetMatching.cxx:594 AliAnalysisTaskJetMatching.cxx:595 AliAnalysisTaskJetMatching.cxx:596 AliAnalysisTaskJetMatching.cxx:597 AliAnalysisTaskJetMatching.cxx:598 AliAnalysisTaskJetMatching.cxx:599 AliAnalysisTaskJetMatching.cxx:600 AliAnalysisTaskJetMatching.cxx:601 AliAnalysisTaskJetMatching.cxx:602 AliAnalysisTaskJetMatching.cxx:603 AliAnalysisTaskJetMatching.cxx:604 AliAnalysisTaskJetMatching.cxx:605 AliAnalysisTaskJetMatching.cxx:606 AliAnalysisTaskJetMatching.cxx:607 AliAnalysisTaskJetMatching.cxx:608 AliAnalysisTaskJetMatching.cxx:609 AliAnalysisTaskJetMatching.cxx:610 AliAnalysisTaskJetMatching.cxx:611 AliAnalysisTaskJetMatching.cxx:612 AliAnalysisTaskJetMatching.cxx:613 AliAnalysisTaskJetMatching.cxx:614 AliAnalysisTaskJetMatching.cxx:615 AliAnalysisTaskJetMatching.cxx:616 AliAnalysisTaskJetMatching.cxx:617 AliAnalysisTaskJetMatching.cxx:618 AliAnalysisTaskJetMatching.cxx:619 AliAnalysisTaskJetMatching.cxx:620 AliAnalysisTaskJetMatching.cxx:621 AliAnalysisTaskJetMatching.cxx:622 AliAnalysisTaskJetMatching.cxx:623 AliAnalysisTaskJetMatching.cxx:624 AliAnalysisTaskJetMatching.cxx:625 AliAnalysisTaskJetMatching.cxx:626 AliAnalysisTaskJetMatching.cxx:627 AliAnalysisTaskJetMatching.cxx:628 AliAnalysisTaskJetMatching.cxx:629 AliAnalysisTaskJetMatching.cxx:630 AliAnalysisTaskJetMatching.cxx:631 AliAnalysisTaskJetMatching.cxx:632 AliAnalysisTaskJetMatching.cxx:633 AliAnalysisTaskJetMatching.cxx:634 AliAnalysisTaskJetMatching.cxx:635 AliAnalysisTaskJetMatching.cxx:636 AliAnalysisTaskJetMatching.cxx:637 AliAnalysisTaskJetMatching.cxx:638 AliAnalysisTaskJetMatching.cxx:639 AliAnalysisTaskJetMatching.cxx:640 AliAnalysisTaskJetMatching.cxx:641 AliAnalysisTaskJetMatching.cxx:642 AliAnalysisTaskJetMatching.cxx:643 AliAnalysisTaskJetMatching.cxx:644 AliAnalysisTaskJetMatching.cxx:645 AliAnalysisTaskJetMatching.cxx:646 AliAnalysisTaskJetMatching.cxx:647 AliAnalysisTaskJetMatching.cxx:648 AliAnalysisTaskJetMatching.cxx:649 AliAnalysisTaskJetMatching.cxx:650 AliAnalysisTaskJetMatching.cxx:651 AliAnalysisTaskJetMatching.cxx:652 AliAnalysisTaskJetMatching.cxx:653 AliAnalysisTaskJetMatching.cxx:654 AliAnalysisTaskJetMatching.cxx:655 AliAnalysisTaskJetMatching.cxx:656 AliAnalysisTaskJetMatching.cxx:657 AliAnalysisTaskJetMatching.cxx:658 AliAnalysisTaskJetMatching.cxx:659 AliAnalysisTaskJetMatching.cxx:660 AliAnalysisTaskJetMatching.cxx:661 AliAnalysisTaskJetMatching.cxx:662 AliAnalysisTaskJetMatching.cxx:663 AliAnalysisTaskJetMatching.cxx:664 AliAnalysisTaskJetMatching.cxx:665 AliAnalysisTaskJetMatching.cxx:666 AliAnalysisTaskJetMatching.cxx:667 AliAnalysisTaskJetMatching.cxx:668 AliAnalysisTaskJetMatching.cxx:669 AliAnalysisTaskJetMatching.cxx:670 AliAnalysisTaskJetMatching.cxx:671 AliAnalysisTaskJetMatching.cxx:672 AliAnalysisTaskJetMatching.cxx:673 AliAnalysisTaskJetMatching.cxx:674 AliAnalysisTaskJetMatching.cxx:675 AliAnalysisTaskJetMatching.cxx:676 AliAnalysisTaskJetMatching.cxx:677 AliAnalysisTaskJetMatching.cxx:678 AliAnalysisTaskJetMatching.cxx:679 AliAnalysisTaskJetMatching.cxx:680 AliAnalysisTaskJetMatching.cxx:681 AliAnalysisTaskJetMatching.cxx:682 AliAnalysisTaskJetMatching.cxx:683 AliAnalysisTaskJetMatching.cxx:684 AliAnalysisTaskJetMatching.cxx:685 AliAnalysisTaskJetMatching.cxx:686 AliAnalysisTaskJetMatching.cxx:687 AliAnalysisTaskJetMatching.cxx:688 AliAnalysisTaskJetMatching.cxx:689 AliAnalysisTaskJetMatching.cxx:690 AliAnalysisTaskJetMatching.cxx:691 AliAnalysisTaskJetMatching.cxx:692 AliAnalysisTaskJetMatching.cxx:693 AliAnalysisTaskJetMatching.cxx:694 AliAnalysisTaskJetMatching.cxx:695 AliAnalysisTaskJetMatching.cxx:696 AliAnalysisTaskJetMatching.cxx:697 AliAnalysisTaskJetMatching.cxx:698 AliAnalysisTaskJetMatching.cxx:699 AliAnalysisTaskJetMatching.cxx:700 AliAnalysisTaskJetMatching.cxx:701 AliAnalysisTaskJetMatching.cxx:702 AliAnalysisTaskJetMatching.cxx:703 AliAnalysisTaskJetMatching.cxx:704 AliAnalysisTaskJetMatching.cxx:705 AliAnalysisTaskJetMatching.cxx:706 AliAnalysisTaskJetMatching.cxx:707 AliAnalysisTaskJetMatching.cxx:708 AliAnalysisTaskJetMatching.cxx:709 AliAnalysisTaskJetMatching.cxx:710 AliAnalysisTaskJetMatching.cxx:711 AliAnalysisTaskJetMatching.cxx:712 AliAnalysisTaskJetMatching.cxx:713 AliAnalysisTaskJetMatching.cxx:714 AliAnalysisTaskJetMatching.cxx:715 AliAnalysisTaskJetMatching.cxx:716 AliAnalysisTaskJetMatching.cxx:717 AliAnalysisTaskJetMatching.cxx:718 AliAnalysisTaskJetMatching.cxx:719 AliAnalysisTaskJetMatching.cxx:720 AliAnalysisTaskJetMatching.cxx:721 AliAnalysisTaskJetMatching.cxx:722 AliAnalysisTaskJetMatching.cxx:723