ROOT logo
//
// Jet mass analysis task.
//
// Author: M.Verweij

#include <TClonesArray.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TH3F.h>
#include <THnSparse.h>
#include <TList.h>
#include <TProfile.h>

#include "AliVTrack.h"
#include "AliEmcalJet.h"
#include "AliRhoParameter.h"
#include "AliLog.h"
#include "AliEmcalParticle.h"
#include "AliAnalysisManager.h"
#include "AliJetContainer.h"

#include "AliAODEvent.h"

#include "AliAnalysisTaskEmcalJetMass.h"

ClassImp(AliAnalysisTaskEmcalJetMass)

//________________________________________________________________________
AliAnalysisTaskEmcalJetMass::AliAnalysisTaskEmcalJetMass() : 
  AliAnalysisTaskEmcalJet("AliAnalysisTaskEmcalJetMass", kTRUE),
  fContainerBase(0),
  fContainerUnsub(1),
  fMinFractionShared(0),
  fUseUnsubJet(0),
  fJetMassType(kRaw),
  fUseSumw2(0),
  fh3PtJet1VsMassVsLeadPtAllSel(0),
  fh3PtJet1VsMassVsLeadPtTagged(0),
  fh3PtJet1VsMassVsLeadPtTaggedMatch(0),
  fpPtVsMassJet1All(0),
  fpPtVsMassJet1Tagged(0),
  fpPtVsMassJet1TaggedMatch(0),
  fh2MassVsAreaJet1All(0),
  fh2MassVsAreaJet1Tagged(0),
  fh2MassVsAreaJet1TaggedMatch(0),
  fh2MassVsNConstJet1All(0),
  fh2MassVsNConstJet1Tagged(0),
  fh2MassVsNConstJet1TaggedMatch(0),
  fh3PtJet1VsRatVsLeadPtAllSel(0),
  fh3PtJet1VsRatVsLeadPtTagged(0),
  fh3PtJet1VsRatVsLeadPtTaggedMatch(0),
  fpPtVsRatJet1All(0),
  fpPtVsRatJet1Tagged(0),
  fpPtVsRatJet1TaggedMatch(0),
  fh2RatVsAreaJet1All(0),
  fh2RatVsAreaJet1Tagged(0),
  fh2RatVsAreaJet1TaggedMatch(0),
  fh2RatVsNConstJet1All(0),
  fh2RatVsNConstJet1Tagged(0),
  fh2RatVsNConstJet1TaggedMatch(0),
  fh3JetPtVsMassVsEPRelAllSel(0),
  fh3JetPtVsMassVsEPRelTagged(0),
  fh3JetPtVsMassVsEPRelTaggedMatch(0)
{
  // Default constructor.

  fh3PtJet1VsMassVsLeadPtAllSel        = new TH3F*[fNcentBins];
  fh3PtJet1VsMassVsLeadPtTagged        = new TH3F*[fNcentBins];
  fh3PtJet1VsMassVsLeadPtTaggedMatch   = new TH3F*[fNcentBins];
  fpPtVsMassJet1All                    = new TProfile*[fNcentBins];
  fpPtVsMassJet1Tagged                 = new TProfile*[fNcentBins];
  fpPtVsMassJet1TaggedMatch            = new TProfile*[fNcentBins];
  fh2MassVsAreaJet1All                 = new TH2F*[fNcentBins];
  fh2MassVsAreaJet1Tagged              = new TH2F*[fNcentBins];
  fh2MassVsAreaJet1TaggedMatch         = new TH2F*[fNcentBins];
  fh2MassVsNConstJet1All               = new TH2F*[fNcentBins];
  fh2MassVsNConstJet1Tagged            = new TH2F*[fNcentBins];
  fh2MassVsNConstJet1TaggedMatch       = new TH2F*[fNcentBins];

  fh3PtJet1VsRatVsLeadPtAllSel         = new TH3F*[fNcentBins];
  fh3PtJet1VsRatVsLeadPtTagged         = new TH3F*[fNcentBins];
  fh3PtJet1VsRatVsLeadPtTaggedMatch    = new TH3F*[fNcentBins];
  fpPtVsRatJet1All                     = new TProfile*[fNcentBins];
  fpPtVsRatJet1Tagged                  = new TProfile*[fNcentBins];
  fpPtVsRatJet1TaggedMatch             = new TProfile*[fNcentBins];
  fh2RatVsAreaJet1All                  = new TH2F*[fNcentBins];
  fh2RatVsAreaJet1Tagged               = new TH2F*[fNcentBins];
  fh2RatVsAreaJet1TaggedMatch          = new TH2F*[fNcentBins];
  fh2RatVsNConstJet1All                = new TH2F*[fNcentBins];
  fh2RatVsNConstJet1Tagged             = new TH2F*[fNcentBins];
  fh2RatVsNConstJet1TaggedMatch        = new TH2F*[fNcentBins];

  fh3JetPtVsMassVsEPRelAllSel          = new TH3F*[fNcentBins];
  fh3JetPtVsMassVsEPRelTagged          = new TH3F*[fNcentBins];
  fh3JetPtVsMassVsEPRelTaggedMatch     = new TH3F*[fNcentBins];

  for (Int_t i = 0; i < fNcentBins; i++) {
    fh3PtJet1VsMassVsLeadPtAllSel[i]        = 0;
    fh3PtJet1VsMassVsLeadPtTagged[i]        = 0;
    fh3PtJet1VsMassVsLeadPtTaggedMatch[i]   = 0;
    fpPtVsMassJet1All[i]                    = 0;
    fpPtVsMassJet1Tagged[i]                 = 0;
    fpPtVsMassJet1TaggedMatch[i]            = 0;
    fh2MassVsAreaJet1All[i]                 = 0;
    fh2MassVsAreaJet1Tagged[i]              = 0;
    fh2MassVsAreaJet1TaggedMatch[i]         = 0;
    fh2MassVsNConstJet1All[i]               = 0;
    fh2MassVsNConstJet1Tagged[i]            = 0;
    fh2MassVsNConstJet1TaggedMatch[i]       = 0;

    fh3PtJet1VsRatVsLeadPtAllSel[i]         = 0;
    fh3PtJet1VsRatVsLeadPtTagged[i]         = 0;
    fh3PtJet1VsRatVsLeadPtTaggedMatch[i]    = 0;
    fpPtVsRatJet1All[i]                     = 0;
    fpPtVsRatJet1Tagged[i]                  = 0;
    fpPtVsRatJet1TaggedMatch[i]             = 0;
    fh2RatVsAreaJet1All[i]                  = 0;
    fh2RatVsAreaJet1Tagged[i]               = 0;
    fh2RatVsAreaJet1TaggedMatch[i]          = 0;
    fh2RatVsNConstJet1All[i]                = 0;
    fh2RatVsNConstJet1Tagged[i]             = 0;
    fh2RatVsNConstJet1TaggedMatch[i]        = 0;

    fh3JetPtVsMassVsEPRelAllSel[i]          = 0;
    fh3JetPtVsMassVsEPRelTagged[i]          = 0;
    fh3JetPtVsMassVsEPRelTaggedMatch[i]     = 0;
  }

  SetMakeGeneralHistograms(kTRUE);
}

//________________________________________________________________________
AliAnalysisTaskEmcalJetMass::AliAnalysisTaskEmcalJetMass(const char *name) : 
  AliAnalysisTaskEmcalJet(name, kTRUE),  
  fContainerBase(0),
  fContainerUnsub(1),
  fMinFractionShared(0),
  fUseUnsubJet(0),
  fJetMassType(kRaw),
  fUseSumw2(0),
  fh3PtJet1VsMassVsLeadPtAllSel(0),
  fh3PtJet1VsMassVsLeadPtTagged(0),
  fh3PtJet1VsMassVsLeadPtTaggedMatch(0),
  fpPtVsMassJet1All(0),
  fpPtVsMassJet1Tagged(0),
  fpPtVsMassJet1TaggedMatch(0),
  fh2MassVsAreaJet1All(0),
  fh2MassVsAreaJet1Tagged(0),
  fh2MassVsAreaJet1TaggedMatch(0),
  fh2MassVsNConstJet1All(0),
  fh2MassVsNConstJet1Tagged(0),
  fh2MassVsNConstJet1TaggedMatch(0),
  fh3PtJet1VsRatVsLeadPtAllSel(0),
  fh3PtJet1VsRatVsLeadPtTagged(0),
  fh3PtJet1VsRatVsLeadPtTaggedMatch(0),
  fpPtVsRatJet1All(0),
  fpPtVsRatJet1Tagged(0),
  fpPtVsRatJet1TaggedMatch(0),
  fh2RatVsAreaJet1All(0),
  fh2RatVsAreaJet1Tagged(0),
  fh2RatVsAreaJet1TaggedMatch(0),
  fh2RatVsNConstJet1All(0),
  fh2RatVsNConstJet1Tagged(0),
  fh2RatVsNConstJet1TaggedMatch(0),
  fh3JetPtVsMassVsEPRelAllSel(0),
  fh3JetPtVsMassVsEPRelTagged(0),
  fh3JetPtVsMassVsEPRelTaggedMatch(0)
{
  // Standard constructor.

  fh3PtJet1VsMassVsLeadPtAllSel        = new TH3F*[fNcentBins];
  fh3PtJet1VsMassVsLeadPtTagged        = new TH3F*[fNcentBins];
  fh3PtJet1VsMassVsLeadPtTaggedMatch   = new TH3F*[fNcentBins];
  fpPtVsMassJet1All                    = new TProfile*[fNcentBins];
  fpPtVsMassJet1Tagged                 = new TProfile*[fNcentBins];
  fpPtVsMassJet1TaggedMatch            = new TProfile*[fNcentBins];
  fh2MassVsAreaJet1All                 = new TH2F*[fNcentBins];
  fh2MassVsAreaJet1Tagged              = new TH2F*[fNcentBins];
  fh2MassVsAreaJet1TaggedMatch         = new TH2F*[fNcentBins];
  fh2MassVsNConstJet1All               = new TH2F*[fNcentBins];
  fh2MassVsNConstJet1Tagged            = new TH2F*[fNcentBins];
  fh2MassVsNConstJet1TaggedMatch       = new TH2F*[fNcentBins];

  fh3PtJet1VsRatVsLeadPtAllSel         = new TH3F*[fNcentBins];
  fh3PtJet1VsRatVsLeadPtTagged         = new TH3F*[fNcentBins];
  fh3PtJet1VsRatVsLeadPtTaggedMatch    = new TH3F*[fNcentBins];
  fpPtVsRatJet1All                     = new TProfile*[fNcentBins];
  fpPtVsRatJet1Tagged                  = new TProfile*[fNcentBins];
  fpPtVsRatJet1TaggedMatch             = new TProfile*[fNcentBins];
  fh2RatVsAreaJet1All                  = new TH2F*[fNcentBins];
  fh2RatVsAreaJet1Tagged               = new TH2F*[fNcentBins];
  fh2RatVsAreaJet1TaggedMatch          = new TH2F*[fNcentBins];
  fh2RatVsNConstJet1All                = new TH2F*[fNcentBins];
  fh2RatVsNConstJet1Tagged             = new TH2F*[fNcentBins];
  fh2RatVsNConstJet1TaggedMatch        = new TH2F*[fNcentBins];

  fh3JetPtVsMassVsEPRelAllSel          = new TH3F*[fNcentBins];
  fh3JetPtVsMassVsEPRelTagged          = new TH3F*[fNcentBins];
  fh3JetPtVsMassVsEPRelTaggedMatch     = new TH3F*[fNcentBins];

  for (Int_t i = 0; i < fNcentBins; i++) {
    fh3PtJet1VsMassVsLeadPtAllSel[i]        = 0;
    fh3PtJet1VsMassVsLeadPtTagged[i]        = 0;
    fh3PtJet1VsMassVsLeadPtTaggedMatch[i]   = 0;
    fpPtVsMassJet1All[i]                    = 0;
    fpPtVsMassJet1Tagged[i]                 = 0;
    fpPtVsMassJet1TaggedMatch[i]            = 0;
    fh2MassVsAreaJet1All[i]                 = 0;
    fh2MassVsAreaJet1Tagged[i]              = 0;
    fh2MassVsAreaJet1TaggedMatch[i]         = 0;
    fh2MassVsNConstJet1All[i]               = 0;
    fh2MassVsNConstJet1Tagged[i]            = 0;
    fh2MassVsNConstJet1TaggedMatch[i]       = 0;

    fh3PtJet1VsRatVsLeadPtAllSel[i]         = 0;
    fh3PtJet1VsRatVsLeadPtTagged[i]         = 0;
    fh3PtJet1VsRatVsLeadPtTaggedMatch[i]    = 0;
    fpPtVsRatJet1All[i]                     = 0;
    fpPtVsRatJet1Tagged[i]                  = 0;
    fpPtVsRatJet1TaggedMatch[i]             = 0;
    fh2RatVsAreaJet1All[i]                  = 0;
    fh2RatVsAreaJet1Tagged[i]               = 0;
    fh2RatVsAreaJet1TaggedMatch[i]          = 0;
    fh2RatVsNConstJet1All[i]                = 0;
    fh2RatVsNConstJet1Tagged[i]             = 0;
    fh2RatVsNConstJet1TaggedMatch[i]        = 0;

    fh3JetPtVsMassVsEPRelAllSel[i]          = 0;
    fh3JetPtVsMassVsEPRelTagged[i]          = 0;
    fh3JetPtVsMassVsEPRelTaggedMatch[i]     = 0;
  }

  SetMakeGeneralHistograms(kTRUE);
}

//________________________________________________________________________
AliAnalysisTaskEmcalJetMass::~AliAnalysisTaskEmcalJetMass()
{
  // Destructor.
}

//________________________________________________________________________
void AliAnalysisTaskEmcalJetMass::UserCreateOutputObjects()
{
  // Create user output.

  AliAnalysisTaskEmcalJet::UserCreateOutputObjects();

  Bool_t oldStatus = TH1::AddDirectoryStatus();
  TH1::AddDirectory(kFALSE);

  const Int_t nBinsPt  = 200;
  const Double_t minPt = -50.;
  const Double_t maxPt = 150.;

  const Int_t nBinsM  = 100;
  const Double_t minM = -20.;
  const Double_t maxM = 80.;

  const Int_t nBinsR  = 100;
  const Double_t minR = -0.2;
  const Double_t maxR = 0.8;

  const Int_t nBinsArea = 50;
  const Double_t minArea = 0.;
  const Double_t maxArea = 1.;

  const Int_t nBinsNConst = 200;
  const Double_t minNConst = 0.;
  const Double_t maxNConst = 200.;

  TString histName = "";
  TString histTitle = "";
  for (Int_t i = 0; i < fNcentBins; i++) {
    histName = TString::Format("fh3PtJet1VsMassVsLeadPtAllSel_%d",i);
    histTitle = TString::Format("%s;#it{p}_{T,jet1};#it{M}_{jet1};#it{p}_{T,lead trk}",histName.Data());
    fh3PtJet1VsMassVsLeadPtAllSel[i] = new TH3F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,nBinsM,minM,maxM,20,0.,20.);
    fOutput->Add(fh3PtJet1VsMassVsLeadPtAllSel[i]);

    histName = TString::Format("fh3PtJet1VsMassVsLeadPtTagged_%d",i);
    histTitle = TString::Format("%s;#it{p}_{T,jet1};#it{M}_{jet1};#it{p}_{T,lead trk}",histName.Data());
    fh3PtJet1VsMassVsLeadPtTagged[i] =  new TH3F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,nBinsM,minM,maxM,20,0.,20.);
    fOutput->Add(fh3PtJet1VsMassVsLeadPtTagged[i]);

    histName = TString::Format("fh3PtJet1VsMassVsLeadPtTaggedMatch_%d",i);
    histTitle = TString::Format("%s;#it{p}_{T,jet1};#it{M}_{jet1};#it{p}_{T,lead trk}",histName.Data());
    fh3PtJet1VsMassVsLeadPtTaggedMatch[i] =  new TH3F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,nBinsM,minM,maxM,20,0.,20.);
    fOutput->Add(fh3PtJet1VsMassVsLeadPtTaggedMatch[i]);

    histName = TString::Format("fpPtVsMassJet1All_%d",i);
    histTitle = TString::Format("%s;#it{p}_{T,jet1};Avg #it{M}_{jet1}",histName.Data());
    fpPtVsMassJet1All[i] = new TProfile(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt);
    fOutput->Add(fpPtVsMassJet1All[i]);

    histName = TString::Format("fpPtVsMassJet1Tagged_%d",i);
    histTitle = TString::Format("%s;#it{p}_{T,jet1};Avg #it{M}_{jet1}",histName.Data());
    fpPtVsMassJet1Tagged[i] = new TProfile(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt);
    fOutput->Add(fpPtVsMassJet1Tagged[i]);

    histName = TString::Format("fpPtVsMassJet1TaggedMatch_%d",i);
    histTitle = TString::Format("%s;#it{p}_{T,jet1};Avg #it{M}_{jet1}",histName.Data());
    fpPtVsMassJet1TaggedMatch[i] = new TProfile(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt);
    fOutput->Add(fpPtVsMassJet1TaggedMatch[i]);

    histName = TString::Format("fh2MassVsAreaJet1All_%d",i);
    histTitle = TString::Format("%s;#it{M}_{jet1};#it{A}",histName.Data());
    fh2MassVsAreaJet1All[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsM,minM,maxM,nBinsArea,minArea,maxArea);
    fOutput->Add(fh2MassVsAreaJet1All[i]);

    histName = TString::Format("fh2MassVsAreaJet1Tagged_%d",i);
    histTitle = TString::Format("%s;#it{M}_{jet1};#it{A}",histName.Data());
    fh2MassVsAreaJet1Tagged[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsM,minM,maxM,nBinsArea,minArea,maxArea);
    fOutput->Add(fh2MassVsAreaJet1Tagged[i]);

    histName = TString::Format("fh2MassVsAreaJet1TaggedMatch_%d",i);
    histTitle = TString::Format("%s;#it{M}_{jet1};#it{A}",histName.Data());
    fh2MassVsAreaJet1TaggedMatch[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsM,minM,maxM,nBinsArea,minArea,maxArea);
    fOutput->Add(fh2MassVsAreaJet1TaggedMatch[i]);

    histName = TString::Format("fh2MassVsNConstJet1All_%d",i);
    histTitle = TString::Format("%s;#it{M}_{jet1};#it{N}_{constituents}",histName.Data());
    fh2MassVsNConstJet1All[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsM,minM,maxM,nBinsNConst,minNConst,maxNConst);
    fOutput->Add(fh2MassVsNConstJet1All[i]);

    histName = TString::Format("fh2MassVsNConstJet1Tagged_%d",i);
    histTitle = TString::Format("%s;#it{M}_{jet1};#it{N}_{constituents}",histName.Data());
    fh2MassVsNConstJet1Tagged[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsM,minM,maxM,nBinsNConst,minNConst,maxNConst);
    fOutput->Add(fh2MassVsNConstJet1Tagged[i]);

    histName = TString::Format("fh2MassVsNConstJet1TaggedMatch_%d",i);
    histTitle = TString::Format("%s;#it{M}_{jet1};#it{N}_{constituents}",histName.Data());
    fh2MassVsNConstJet1TaggedMatch[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsM,minM,maxM,nBinsNConst,minNConst,maxNConst);
    fOutput->Add(fh2MassVsNConstJet1TaggedMatch[i]);

    //
    histName = TString::Format("fh3PtJet1VsRatVsLeadPtAllSel_%d",i);
    histTitle = TString::Format("%s;#it{p}_{T,jet1};#it{M}_{jet1}/#it{p}_{T,jet1};#it{p}_{T,lead trk}",histName.Data());
    fh3PtJet1VsRatVsLeadPtAllSel[i] = new TH3F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,nBinsR,minR,maxR,20,0.,20.);
    fOutput->Add(fh3PtJet1VsRatVsLeadPtAllSel[i]);

    histName = TString::Format("fh3PtJet1VsRatVsLeadPtTagged_%d",i);
    histTitle = TString::Format("%s;#it{p}_{T,jet1};#it{M}_{jet1}/#it{p}_{T,jet1};#it{p}_{T,lead trk}",histName.Data());
    fh3PtJet1VsRatVsLeadPtTagged[i] =  new TH3F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,nBinsR,minR,maxR,20,0.,20.);
    fOutput->Add(fh3PtJet1VsRatVsLeadPtTagged[i]);

    histName = TString::Format("fh3PtJet1VsRatVsLeadPtTaggedMatch_%d",i);
    histTitle = TString::Format("%s;#it{p}_{T,jet1};#it{M}_{jet1}/#it{p}_{T,jet1};#it{p}_{T,lead trk}",histName.Data());
    fh3PtJet1VsRatVsLeadPtTaggedMatch[i] =  new TH3F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,nBinsR,minR,maxR,20,0.,20.);
    fOutput->Add(fh3PtJet1VsRatVsLeadPtTaggedMatch[i]);

    histName = TString::Format("fpPtVsRatJet1All_%d",i);
    histTitle = TString::Format("%s;#it{p}_{T,jet1};Avg #it{M}_{jet1}/#it{p}_{T,jet1}",histName.Data());
    fpPtVsRatJet1All[i] = new TProfile(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt);
    fOutput->Add(fpPtVsRatJet1All[i]);

    histName = TString::Format("fpPtVsRatJet1Tagged_%d",i);
    histTitle = TString::Format("%s;#it{p}_{T,jet1};Avg #it{M}_{jet1}/#it{p}_{T,jet1}",histName.Data());
    fpPtVsRatJet1Tagged[i] = new TProfile(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt);
    fOutput->Add(fpPtVsRatJet1Tagged[i]);

    histName = TString::Format("fpPtVsRatJet1TaggedMatch_%d",i);
    histTitle = TString::Format("%s;#it{p}_{T,jet1};Avg #it{M}_{jet1}/#it{p}_{T,jet1}",histName.Data());
    fpPtVsRatJet1TaggedMatch[i] = new TProfile(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt);
    fOutput->Add(fpPtVsRatJet1TaggedMatch[i]);

    histName = TString::Format("fh2RatVsAreaJet1All_%d",i);
    histTitle = TString::Format("%s;#it{M}_{jet1}/#it{p}_{T,jet1};#it{A}",histName.Data());
    fh2RatVsAreaJet1All[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsR,minR,maxR,nBinsArea,minArea,maxArea);
    fOutput->Add(fh2RatVsAreaJet1All[i]);

    histName = TString::Format("fh2RatVsAreaJet1Tagged_%d",i);
    histTitle = TString::Format("%s;#it{M}_{jet1}/#it{p}_{T,jet1};#it{A}",histName.Data());
    fh2RatVsAreaJet1Tagged[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsR,minR,maxR,nBinsArea,minArea,maxArea);
    fOutput->Add(fh2RatVsAreaJet1Tagged[i]);

    histName = TString::Format("fh2RatVsAreaJet1TaggedMatch_%d",i);
    histTitle = TString::Format("%s;#it{M}_{jet1}/#it{p}_{T,jet1};#it{A}",histName.Data());
    fh2RatVsAreaJet1TaggedMatch[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsR,minR,maxR,nBinsArea,minArea,maxArea);
    fOutput->Add(fh2RatVsAreaJet1TaggedMatch[i]);

    histName = TString::Format("fh2RatVsNConstJet1All_%d",i);
    histTitle = TString::Format("%s;#it{M}_{jet1}/#it{p}_{T,jet1};#it{N}_{constituents}",histName.Data());
    fh2RatVsNConstJet1All[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsR,minR,maxR,nBinsNConst,minNConst,maxNConst);
    fOutput->Add(fh2RatVsNConstJet1All[i]);

    histName = TString::Format("fh2RatVsNConstJet1Tagged_%d",i);
    histTitle = TString::Format("%s;#it{M}_{jet1}/#it{p}_{T,jet1};#it{N}_{constituents}",histName.Data());
    fh2RatVsNConstJet1Tagged[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsR,minR,maxR,nBinsNConst,minNConst,maxNConst);
    fOutput->Add(fh2RatVsNConstJet1Tagged[i]);

    histName = TString::Format("fh2RatVsNConstJet1TaggedMatch_%d",i);
    histTitle = TString::Format("%s;#it{M}_{jet1}/#it{p}_{T,jet1};#it{N}_{constituents}",histName.Data());
    fh2RatVsNConstJet1TaggedMatch[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsR,minR,maxR,nBinsNConst,minNConst,maxNConst);
    fOutput->Add(fh2RatVsNConstJet1TaggedMatch[i]);

    histName = TString::Format("fh3JetPtVsMassVsEPRelAllSel_%d",i);
    histTitle = TString::Format("%s;#it{p}_{T,jet1};#it{M}_{jet1};#varphi_{jet}-#Psi",histName.Data());
    fh3JetPtVsMassVsEPRelAllSel[i] = new TH3F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,nBinsM,minM,maxM,100,0.,TMath::Pi());
    fOutput->Add(fh3JetPtVsMassVsEPRelAllSel[i]);

    histName = TString::Format("fh3JetPtVsMassVsEPRelTagged_%d",i);
    histTitle = TString::Format("%s;#it{p}_{T,jet1};#it{M}_{jet1};#varphi_{jet}-#Psi",histName.Data());
    fh3JetPtVsMassVsEPRelTagged[i] =  new TH3F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,nBinsM,minM,maxM,100,0.,TMath::Pi());
    fOutput->Add(fh3JetPtVsMassVsEPRelTagged[i]);

    histName = TString::Format("fh3JetPtVsMassVsEPRelTaggedMatch_%d",i);
    histTitle = TString::Format("%s;#it{p}_{T,jet1};#it{M}_{jet1};#varphi_{jet}-#Psi",histName.Data());
    fh3JetPtVsMassVsEPRelTaggedMatch[i] =  new TH3F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,nBinsM,minM,maxM,100,0.,TMath::Pi());
    fOutput->Add(fh3JetPtVsMassVsEPRelTaggedMatch[i]);
  }

  if(fUseSumw2) {
    // =========== Switch on Sumw2 for all histos ===========
    for (Int_t i=0; i<fOutput->GetEntries(); ++i) {
      TH1 *h1 = dynamic_cast<TH1*>(fOutput->At(i));
      if (h1){
	h1->Sumw2();
	continue;
      }
      THnSparse *hn = dynamic_cast<THnSparse*>(fOutput->At(i));
      if(hn)hn->Sumw2();
    }
  }

  TH1::AddDirectory(oldStatus);

  PostData(1, fOutput); // Post data for ALL output slots > 0 here.
}

//________________________________________________________________________
Bool_t AliAnalysisTaskEmcalJetMass::Run()
{
  // Run analysis code here, if needed. It will be executed before FillHistograms().

  return kTRUE;
}

//________________________________________________________________________
Bool_t AliAnalysisTaskEmcalJetMass::FillHistograms()
{
  // Fill histograms.

  AliEmcalJet* jet1 = NULL;
  AliJetContainer *jetCont = GetJetContainer(fContainerBase);
  if(jetCont) {
    jetCont->ResetCurrentID();
    while((jet1 = jetCont->GetNextAcceptJet())) {

      Double_t ptJet1 = jet1->Pt() - GetRhoVal(fContainerBase)*jet1->Area();
      Double_t maxTrackPt = jet1->MaxTrackPt();
      Double_t mJet1 = GetJetMass(jet1);
      Double_t rat = -1.;
      if(ptJet1<0. || ptJet1>0.) rat = mJet1/ptJet1;
      Double_t ep = jet1->Phi() - fEPV0;
      while (ep < 0) ep += TMath::Pi();
      while (ep >= TMath::Pi()) ep -= TMath::Pi();

      Double_t fraction = -1.;
      AliEmcalJet *jetUS = NULL;
      if(fUseUnsubJet) {
	AliJetContainer *jetContUS = GetJetContainer(fContainerUnsub);
	Int_t ifound = 0;
	Int_t ilab = -1;
	for(Int_t i = 0; i<jetContUS->GetNJets(); i++) {
	  jetUS = jetContUS->GetJet(i);
	  if(jetUS->GetLabel()==jet1->GetLabel()) {
	    ifound++;
	    if(ifound==1) ilab = i;
	  }
	}
	if(ifound>1) AliDebug(2,Form("Found %d partners",ifound));
	if(ilab>-1) {
	  jetUS = jetContUS->GetJet(ilab);
	  fraction = jetContUS->GetFractionSharedPt(jetUS);
	  maxTrackPt = jetUS->MaxTrackPt();
	}
      } else
	fraction = jetCont->GetFractionSharedPt(jet1);

      fh3PtJet1VsMassVsLeadPtAllSel[fCentBin]->Fill(ptJet1,mJet1,maxTrackPt);
      fpPtVsMassJet1All[fCentBin]->Fill(ptJet1,mJet1);
      fh2MassVsAreaJet1All[fCentBin]->Fill(mJet1,jet1->Area());
      fh2MassVsNConstJet1All[fCentBin]->Fill(mJet1,jet1->GetNumberOfConstituents());
      fh3JetPtVsMassVsEPRelAllSel[fCentBin]->Fill(ptJet1,mJet1,ep);

      fh3PtJet1VsRatVsLeadPtAllSel[fCentBin]->Fill(ptJet1,rat,maxTrackPt);
      fpPtVsRatJet1All[fCentBin]->Fill(ptJet1,rat);
      fh2RatVsAreaJet1All[fCentBin]->Fill(rat,jet1->Area());
      fh2RatVsNConstJet1All[fCentBin]->Fill(rat,jet1->GetNumberOfConstituents());
      
      if(jet1->GetTagStatus()<1 || !jet1->GetTaggedJet())
	continue;

      fh3PtJet1VsMassVsLeadPtTagged[fCentBin]->Fill(ptJet1,mJet1,maxTrackPt);
      fpPtVsMassJet1Tagged[fCentBin]->Fill(ptJet1,mJet1);
      fh2MassVsAreaJet1Tagged[fCentBin]->Fill(mJet1,jet1->Area());
      fh2MassVsNConstJet1Tagged[fCentBin]->Fill(mJet1,jet1->GetNumberOfConstituents());
      fh3JetPtVsMassVsEPRelTagged[fCentBin]->Fill(ptJet1,mJet1,ep);

      fh3PtJet1VsRatVsLeadPtTagged[fCentBin]->Fill(ptJet1,rat,maxTrackPt);
      fpPtVsRatJet1Tagged[fCentBin]->Fill(ptJet1,rat);
      fh2RatVsAreaJet1Tagged[fCentBin]->Fill(rat,jet1->Area());
      fh2RatVsNConstJet1Tagged[fCentBin]->Fill(rat,jet1->GetNumberOfConstituents());

      //matching
      if(fMinFractionShared>0. && fraction>fMinFractionShared) {
	AliEmcalJet *jetM = NULL;
	if(fUseUnsubJet) {
	  if(jetUS) jetM = jetUS->ClosestJet();
	}
	else jetM = jet1->ClosestJet();
	if(jetM) maxTrackPt = jetM->MaxTrackPt();
	else     maxTrackPt = -1.;
	fh3PtJet1VsMassVsLeadPtTaggedMatch[fCentBin]->Fill(ptJet1,mJet1,maxTrackPt);
	fpPtVsMassJet1TaggedMatch[fCentBin]->Fill(ptJet1,mJet1);
	fh2MassVsAreaJet1TaggedMatch[fCentBin]->Fill(mJet1,jet1->Area());
	fh2MassVsNConstJet1TaggedMatch[fCentBin]->Fill(mJet1,jet1->GetNumberOfConstituents());
	fh3JetPtVsMassVsEPRelTaggedMatch[fCentBin]->Fill(ptJet1,mJet1,ep);

	fh3PtJet1VsRatVsLeadPtTaggedMatch[fCentBin]->Fill(ptJet1,rat,maxTrackPt);
	fpPtVsRatJet1TaggedMatch[fCentBin]->Fill(ptJet1,rat);
	fh2RatVsAreaJet1TaggedMatch[fCentBin]->Fill(rat,jet1->Area());
	fh2RatVsNConstJet1TaggedMatch[fCentBin]->Fill(rat,jet1->GetNumberOfConstituents());
      }
    }
  }
  return kTRUE;
}

//________________________________________________________________________
Double_t AliAnalysisTaskEmcalJetMass::GetJetMass(AliEmcalJet *jet) {
  //calc subtracted jet mass
  if(fJetMassType==kRaw)
    return jet->M();
  else if(fJetMassType==kDeriv)
    return jet->GetSecondOrderSubtracted();
  
  return 0;
}

//________________________________________________________________________
Bool_t AliAnalysisTaskEmcalJetMass::RetrieveEventObjects() {
  //
  // retrieve event objects
  //
  if (!AliAnalysisTaskEmcalJet::RetrieveEventObjects())
    return kFALSE;

  return kTRUE;
}

//_______________________________________________________________________
void AliAnalysisTaskEmcalJetMass::Terminate(Option_t *) 
{
  // Called once at the end of the analysis.
}

 AliAnalysisTaskEmcalJetMass.cxx:1
 AliAnalysisTaskEmcalJetMass.cxx:2
 AliAnalysisTaskEmcalJetMass.cxx:3
 AliAnalysisTaskEmcalJetMass.cxx:4
 AliAnalysisTaskEmcalJetMass.cxx:5
 AliAnalysisTaskEmcalJetMass.cxx:6
 AliAnalysisTaskEmcalJetMass.cxx:7
 AliAnalysisTaskEmcalJetMass.cxx:8
 AliAnalysisTaskEmcalJetMass.cxx:9
 AliAnalysisTaskEmcalJetMass.cxx:10
 AliAnalysisTaskEmcalJetMass.cxx:11
 AliAnalysisTaskEmcalJetMass.cxx:12
 AliAnalysisTaskEmcalJetMass.cxx:13
 AliAnalysisTaskEmcalJetMass.cxx:14
 AliAnalysisTaskEmcalJetMass.cxx:15
 AliAnalysisTaskEmcalJetMass.cxx:16
 AliAnalysisTaskEmcalJetMass.cxx:17
 AliAnalysisTaskEmcalJetMass.cxx:18
 AliAnalysisTaskEmcalJetMass.cxx:19
 AliAnalysisTaskEmcalJetMass.cxx:20
 AliAnalysisTaskEmcalJetMass.cxx:21
 AliAnalysisTaskEmcalJetMass.cxx:22
 AliAnalysisTaskEmcalJetMass.cxx:23
 AliAnalysisTaskEmcalJetMass.cxx:24
 AliAnalysisTaskEmcalJetMass.cxx:25
 AliAnalysisTaskEmcalJetMass.cxx:26
 AliAnalysisTaskEmcalJetMass.cxx:27
 AliAnalysisTaskEmcalJetMass.cxx:28
 AliAnalysisTaskEmcalJetMass.cxx:29
 AliAnalysisTaskEmcalJetMass.cxx:30
 AliAnalysisTaskEmcalJetMass.cxx:31
 AliAnalysisTaskEmcalJetMass.cxx:32
 AliAnalysisTaskEmcalJetMass.cxx:33
 AliAnalysisTaskEmcalJetMass.cxx:34
 AliAnalysisTaskEmcalJetMass.cxx:35
 AliAnalysisTaskEmcalJetMass.cxx:36
 AliAnalysisTaskEmcalJetMass.cxx:37
 AliAnalysisTaskEmcalJetMass.cxx:38
 AliAnalysisTaskEmcalJetMass.cxx:39
 AliAnalysisTaskEmcalJetMass.cxx:40
 AliAnalysisTaskEmcalJetMass.cxx:41
 AliAnalysisTaskEmcalJetMass.cxx:42
 AliAnalysisTaskEmcalJetMass.cxx:43
 AliAnalysisTaskEmcalJetMass.cxx:44
 AliAnalysisTaskEmcalJetMass.cxx:45
 AliAnalysisTaskEmcalJetMass.cxx:46
 AliAnalysisTaskEmcalJetMass.cxx:47
 AliAnalysisTaskEmcalJetMass.cxx:48
 AliAnalysisTaskEmcalJetMass.cxx:49
 AliAnalysisTaskEmcalJetMass.cxx:50
 AliAnalysisTaskEmcalJetMass.cxx:51
 AliAnalysisTaskEmcalJetMass.cxx:52
 AliAnalysisTaskEmcalJetMass.cxx:53
 AliAnalysisTaskEmcalJetMass.cxx:54
 AliAnalysisTaskEmcalJetMass.cxx:55
 AliAnalysisTaskEmcalJetMass.cxx:56
 AliAnalysisTaskEmcalJetMass.cxx:57
 AliAnalysisTaskEmcalJetMass.cxx:58
 AliAnalysisTaskEmcalJetMass.cxx:59
 AliAnalysisTaskEmcalJetMass.cxx:60
 AliAnalysisTaskEmcalJetMass.cxx:61
 AliAnalysisTaskEmcalJetMass.cxx:62
 AliAnalysisTaskEmcalJetMass.cxx:63
 AliAnalysisTaskEmcalJetMass.cxx:64
 AliAnalysisTaskEmcalJetMass.cxx:65
 AliAnalysisTaskEmcalJetMass.cxx:66
 AliAnalysisTaskEmcalJetMass.cxx:67
 AliAnalysisTaskEmcalJetMass.cxx:68
 AliAnalysisTaskEmcalJetMass.cxx:69
 AliAnalysisTaskEmcalJetMass.cxx:70
 AliAnalysisTaskEmcalJetMass.cxx:71
 AliAnalysisTaskEmcalJetMass.cxx:72
 AliAnalysisTaskEmcalJetMass.cxx:73
 AliAnalysisTaskEmcalJetMass.cxx:74
 AliAnalysisTaskEmcalJetMass.cxx:75
 AliAnalysisTaskEmcalJetMass.cxx:76
 AliAnalysisTaskEmcalJetMass.cxx:77
 AliAnalysisTaskEmcalJetMass.cxx:78
 AliAnalysisTaskEmcalJetMass.cxx:79
 AliAnalysisTaskEmcalJetMass.cxx:80
 AliAnalysisTaskEmcalJetMass.cxx:81
 AliAnalysisTaskEmcalJetMass.cxx:82
 AliAnalysisTaskEmcalJetMass.cxx:83
 AliAnalysisTaskEmcalJetMass.cxx:84
 AliAnalysisTaskEmcalJetMass.cxx:85
 AliAnalysisTaskEmcalJetMass.cxx:86
 AliAnalysisTaskEmcalJetMass.cxx:87
 AliAnalysisTaskEmcalJetMass.cxx:88
 AliAnalysisTaskEmcalJetMass.cxx:89
 AliAnalysisTaskEmcalJetMass.cxx:90
 AliAnalysisTaskEmcalJetMass.cxx:91
 AliAnalysisTaskEmcalJetMass.cxx:92
 AliAnalysisTaskEmcalJetMass.cxx:93
 AliAnalysisTaskEmcalJetMass.cxx:94
 AliAnalysisTaskEmcalJetMass.cxx:95
 AliAnalysisTaskEmcalJetMass.cxx:96
 AliAnalysisTaskEmcalJetMass.cxx:97
 AliAnalysisTaskEmcalJetMass.cxx:98
 AliAnalysisTaskEmcalJetMass.cxx:99
 AliAnalysisTaskEmcalJetMass.cxx:100
 AliAnalysisTaskEmcalJetMass.cxx:101
 AliAnalysisTaskEmcalJetMass.cxx:102
 AliAnalysisTaskEmcalJetMass.cxx:103
 AliAnalysisTaskEmcalJetMass.cxx:104
 AliAnalysisTaskEmcalJetMass.cxx:105
 AliAnalysisTaskEmcalJetMass.cxx:106
 AliAnalysisTaskEmcalJetMass.cxx:107
 AliAnalysisTaskEmcalJetMass.cxx:108
 AliAnalysisTaskEmcalJetMass.cxx:109
 AliAnalysisTaskEmcalJetMass.cxx:110
 AliAnalysisTaskEmcalJetMass.cxx:111
 AliAnalysisTaskEmcalJetMass.cxx:112
 AliAnalysisTaskEmcalJetMass.cxx:113
 AliAnalysisTaskEmcalJetMass.cxx:114
 AliAnalysisTaskEmcalJetMass.cxx:115
 AliAnalysisTaskEmcalJetMass.cxx:116
 AliAnalysisTaskEmcalJetMass.cxx:117
 AliAnalysisTaskEmcalJetMass.cxx:118
 AliAnalysisTaskEmcalJetMass.cxx:119
 AliAnalysisTaskEmcalJetMass.cxx:120
 AliAnalysisTaskEmcalJetMass.cxx:121
 AliAnalysisTaskEmcalJetMass.cxx:122
 AliAnalysisTaskEmcalJetMass.cxx:123
 AliAnalysisTaskEmcalJetMass.cxx:124
 AliAnalysisTaskEmcalJetMass.cxx:125
 AliAnalysisTaskEmcalJetMass.cxx:126
 AliAnalysisTaskEmcalJetMass.cxx:127
 AliAnalysisTaskEmcalJetMass.cxx:128
 AliAnalysisTaskEmcalJetMass.cxx:129
 AliAnalysisTaskEmcalJetMass.cxx:130
 AliAnalysisTaskEmcalJetMass.cxx:131
 AliAnalysisTaskEmcalJetMass.cxx:132
 AliAnalysisTaskEmcalJetMass.cxx:133
 AliAnalysisTaskEmcalJetMass.cxx:134
 AliAnalysisTaskEmcalJetMass.cxx:135
 AliAnalysisTaskEmcalJetMass.cxx:136
 AliAnalysisTaskEmcalJetMass.cxx:137
 AliAnalysisTaskEmcalJetMass.cxx:138
 AliAnalysisTaskEmcalJetMass.cxx:139
 AliAnalysisTaskEmcalJetMass.cxx:140
 AliAnalysisTaskEmcalJetMass.cxx:141
 AliAnalysisTaskEmcalJetMass.cxx:142
 AliAnalysisTaskEmcalJetMass.cxx:143
 AliAnalysisTaskEmcalJetMass.cxx:144
 AliAnalysisTaskEmcalJetMass.cxx:145
 AliAnalysisTaskEmcalJetMass.cxx:146
 AliAnalysisTaskEmcalJetMass.cxx:147
 AliAnalysisTaskEmcalJetMass.cxx:148
 AliAnalysisTaskEmcalJetMass.cxx:149
 AliAnalysisTaskEmcalJetMass.cxx:150
 AliAnalysisTaskEmcalJetMass.cxx:151
 AliAnalysisTaskEmcalJetMass.cxx:152
 AliAnalysisTaskEmcalJetMass.cxx:153
 AliAnalysisTaskEmcalJetMass.cxx:154
 AliAnalysisTaskEmcalJetMass.cxx:155
 AliAnalysisTaskEmcalJetMass.cxx:156
 AliAnalysisTaskEmcalJetMass.cxx:157
 AliAnalysisTaskEmcalJetMass.cxx:158
 AliAnalysisTaskEmcalJetMass.cxx:159
 AliAnalysisTaskEmcalJetMass.cxx:160
 AliAnalysisTaskEmcalJetMass.cxx:161
 AliAnalysisTaskEmcalJetMass.cxx:162
 AliAnalysisTaskEmcalJetMass.cxx:163
 AliAnalysisTaskEmcalJetMass.cxx:164
 AliAnalysisTaskEmcalJetMass.cxx:165
 AliAnalysisTaskEmcalJetMass.cxx:166
 AliAnalysisTaskEmcalJetMass.cxx:167
 AliAnalysisTaskEmcalJetMass.cxx:168
 AliAnalysisTaskEmcalJetMass.cxx:169
 AliAnalysisTaskEmcalJetMass.cxx:170
 AliAnalysisTaskEmcalJetMass.cxx:171
 AliAnalysisTaskEmcalJetMass.cxx:172
 AliAnalysisTaskEmcalJetMass.cxx:173
 AliAnalysisTaskEmcalJetMass.cxx:174
 AliAnalysisTaskEmcalJetMass.cxx:175
 AliAnalysisTaskEmcalJetMass.cxx:176
 AliAnalysisTaskEmcalJetMass.cxx:177
 AliAnalysisTaskEmcalJetMass.cxx:178
 AliAnalysisTaskEmcalJetMass.cxx:179
 AliAnalysisTaskEmcalJetMass.cxx:180
 AliAnalysisTaskEmcalJetMass.cxx:181
 AliAnalysisTaskEmcalJetMass.cxx:182
 AliAnalysisTaskEmcalJetMass.cxx:183
 AliAnalysisTaskEmcalJetMass.cxx:184
 AliAnalysisTaskEmcalJetMass.cxx:185
 AliAnalysisTaskEmcalJetMass.cxx:186
 AliAnalysisTaskEmcalJetMass.cxx:187
 AliAnalysisTaskEmcalJetMass.cxx:188
 AliAnalysisTaskEmcalJetMass.cxx:189
 AliAnalysisTaskEmcalJetMass.cxx:190
 AliAnalysisTaskEmcalJetMass.cxx:191
 AliAnalysisTaskEmcalJetMass.cxx:192
 AliAnalysisTaskEmcalJetMass.cxx:193
 AliAnalysisTaskEmcalJetMass.cxx:194
 AliAnalysisTaskEmcalJetMass.cxx:195
 AliAnalysisTaskEmcalJetMass.cxx:196
 AliAnalysisTaskEmcalJetMass.cxx:197
 AliAnalysisTaskEmcalJetMass.cxx:198
 AliAnalysisTaskEmcalJetMass.cxx:199
 AliAnalysisTaskEmcalJetMass.cxx:200
 AliAnalysisTaskEmcalJetMass.cxx:201
 AliAnalysisTaskEmcalJetMass.cxx:202
 AliAnalysisTaskEmcalJetMass.cxx:203
 AliAnalysisTaskEmcalJetMass.cxx:204
 AliAnalysisTaskEmcalJetMass.cxx:205
 AliAnalysisTaskEmcalJetMass.cxx:206
 AliAnalysisTaskEmcalJetMass.cxx:207
 AliAnalysisTaskEmcalJetMass.cxx:208
 AliAnalysisTaskEmcalJetMass.cxx:209
 AliAnalysisTaskEmcalJetMass.cxx:210
 AliAnalysisTaskEmcalJetMass.cxx:211
 AliAnalysisTaskEmcalJetMass.cxx:212
 AliAnalysisTaskEmcalJetMass.cxx:213
 AliAnalysisTaskEmcalJetMass.cxx:214
 AliAnalysisTaskEmcalJetMass.cxx:215
 AliAnalysisTaskEmcalJetMass.cxx:216
 AliAnalysisTaskEmcalJetMass.cxx:217
 AliAnalysisTaskEmcalJetMass.cxx:218
 AliAnalysisTaskEmcalJetMass.cxx:219
 AliAnalysisTaskEmcalJetMass.cxx:220
 AliAnalysisTaskEmcalJetMass.cxx:221
 AliAnalysisTaskEmcalJetMass.cxx:222
 AliAnalysisTaskEmcalJetMass.cxx:223
 AliAnalysisTaskEmcalJetMass.cxx:224
 AliAnalysisTaskEmcalJetMass.cxx:225
 AliAnalysisTaskEmcalJetMass.cxx:226
 AliAnalysisTaskEmcalJetMass.cxx:227
 AliAnalysisTaskEmcalJetMass.cxx:228
 AliAnalysisTaskEmcalJetMass.cxx:229
 AliAnalysisTaskEmcalJetMass.cxx:230
 AliAnalysisTaskEmcalJetMass.cxx:231
 AliAnalysisTaskEmcalJetMass.cxx:232
 AliAnalysisTaskEmcalJetMass.cxx:233
 AliAnalysisTaskEmcalJetMass.cxx:234
 AliAnalysisTaskEmcalJetMass.cxx:235
 AliAnalysisTaskEmcalJetMass.cxx:236
 AliAnalysisTaskEmcalJetMass.cxx:237
 AliAnalysisTaskEmcalJetMass.cxx:238
 AliAnalysisTaskEmcalJetMass.cxx:239
 AliAnalysisTaskEmcalJetMass.cxx:240
 AliAnalysisTaskEmcalJetMass.cxx:241
 AliAnalysisTaskEmcalJetMass.cxx:242
 AliAnalysisTaskEmcalJetMass.cxx:243
 AliAnalysisTaskEmcalJetMass.cxx:244
 AliAnalysisTaskEmcalJetMass.cxx:245
 AliAnalysisTaskEmcalJetMass.cxx:246
 AliAnalysisTaskEmcalJetMass.cxx:247
 AliAnalysisTaskEmcalJetMass.cxx:248
 AliAnalysisTaskEmcalJetMass.cxx:249
 AliAnalysisTaskEmcalJetMass.cxx:250
 AliAnalysisTaskEmcalJetMass.cxx:251
 AliAnalysisTaskEmcalJetMass.cxx:252
 AliAnalysisTaskEmcalJetMass.cxx:253
 AliAnalysisTaskEmcalJetMass.cxx:254
 AliAnalysisTaskEmcalJetMass.cxx:255
 AliAnalysisTaskEmcalJetMass.cxx:256
 AliAnalysisTaskEmcalJetMass.cxx:257
 AliAnalysisTaskEmcalJetMass.cxx:258
 AliAnalysisTaskEmcalJetMass.cxx:259
 AliAnalysisTaskEmcalJetMass.cxx:260
 AliAnalysisTaskEmcalJetMass.cxx:261
 AliAnalysisTaskEmcalJetMass.cxx:262
 AliAnalysisTaskEmcalJetMass.cxx:263
 AliAnalysisTaskEmcalJetMass.cxx:264
 AliAnalysisTaskEmcalJetMass.cxx:265
 AliAnalysisTaskEmcalJetMass.cxx:266
 AliAnalysisTaskEmcalJetMass.cxx:267
 AliAnalysisTaskEmcalJetMass.cxx:268
 AliAnalysisTaskEmcalJetMass.cxx:269
 AliAnalysisTaskEmcalJetMass.cxx:270
 AliAnalysisTaskEmcalJetMass.cxx:271
 AliAnalysisTaskEmcalJetMass.cxx:272
 AliAnalysisTaskEmcalJetMass.cxx:273
 AliAnalysisTaskEmcalJetMass.cxx:274
 AliAnalysisTaskEmcalJetMass.cxx:275
 AliAnalysisTaskEmcalJetMass.cxx:276
 AliAnalysisTaskEmcalJetMass.cxx:277
 AliAnalysisTaskEmcalJetMass.cxx:278
 AliAnalysisTaskEmcalJetMass.cxx:279
 AliAnalysisTaskEmcalJetMass.cxx:280
 AliAnalysisTaskEmcalJetMass.cxx:281
 AliAnalysisTaskEmcalJetMass.cxx:282
 AliAnalysisTaskEmcalJetMass.cxx:283
 AliAnalysisTaskEmcalJetMass.cxx:284
 AliAnalysisTaskEmcalJetMass.cxx:285
 AliAnalysisTaskEmcalJetMass.cxx:286
 AliAnalysisTaskEmcalJetMass.cxx:287
 AliAnalysisTaskEmcalJetMass.cxx:288
 AliAnalysisTaskEmcalJetMass.cxx:289
 AliAnalysisTaskEmcalJetMass.cxx:290
 AliAnalysisTaskEmcalJetMass.cxx:291
 AliAnalysisTaskEmcalJetMass.cxx:292
 AliAnalysisTaskEmcalJetMass.cxx:293
 AliAnalysisTaskEmcalJetMass.cxx:294
 AliAnalysisTaskEmcalJetMass.cxx:295
 AliAnalysisTaskEmcalJetMass.cxx:296
 AliAnalysisTaskEmcalJetMass.cxx:297
 AliAnalysisTaskEmcalJetMass.cxx:298
 AliAnalysisTaskEmcalJetMass.cxx:299
 AliAnalysisTaskEmcalJetMass.cxx:300
 AliAnalysisTaskEmcalJetMass.cxx:301
 AliAnalysisTaskEmcalJetMass.cxx:302
 AliAnalysisTaskEmcalJetMass.cxx:303
 AliAnalysisTaskEmcalJetMass.cxx:304
 AliAnalysisTaskEmcalJetMass.cxx:305
 AliAnalysisTaskEmcalJetMass.cxx:306
 AliAnalysisTaskEmcalJetMass.cxx:307
 AliAnalysisTaskEmcalJetMass.cxx:308
 AliAnalysisTaskEmcalJetMass.cxx:309
 AliAnalysisTaskEmcalJetMass.cxx:310
 AliAnalysisTaskEmcalJetMass.cxx:311
 AliAnalysisTaskEmcalJetMass.cxx:312
 AliAnalysisTaskEmcalJetMass.cxx:313
 AliAnalysisTaskEmcalJetMass.cxx:314
 AliAnalysisTaskEmcalJetMass.cxx:315
 AliAnalysisTaskEmcalJetMass.cxx:316
 AliAnalysisTaskEmcalJetMass.cxx:317
 AliAnalysisTaskEmcalJetMass.cxx:318
 AliAnalysisTaskEmcalJetMass.cxx:319
 AliAnalysisTaskEmcalJetMass.cxx:320
 AliAnalysisTaskEmcalJetMass.cxx:321
 AliAnalysisTaskEmcalJetMass.cxx:322
 AliAnalysisTaskEmcalJetMass.cxx:323
 AliAnalysisTaskEmcalJetMass.cxx:324
 AliAnalysisTaskEmcalJetMass.cxx:325
 AliAnalysisTaskEmcalJetMass.cxx:326
 AliAnalysisTaskEmcalJetMass.cxx:327
 AliAnalysisTaskEmcalJetMass.cxx:328
 AliAnalysisTaskEmcalJetMass.cxx:329
 AliAnalysisTaskEmcalJetMass.cxx:330
 AliAnalysisTaskEmcalJetMass.cxx:331
 AliAnalysisTaskEmcalJetMass.cxx:332
 AliAnalysisTaskEmcalJetMass.cxx:333
 AliAnalysisTaskEmcalJetMass.cxx:334
 AliAnalysisTaskEmcalJetMass.cxx:335
 AliAnalysisTaskEmcalJetMass.cxx:336
 AliAnalysisTaskEmcalJetMass.cxx:337
 AliAnalysisTaskEmcalJetMass.cxx:338
 AliAnalysisTaskEmcalJetMass.cxx:339
 AliAnalysisTaskEmcalJetMass.cxx:340
 AliAnalysisTaskEmcalJetMass.cxx:341
 AliAnalysisTaskEmcalJetMass.cxx:342
 AliAnalysisTaskEmcalJetMass.cxx:343
 AliAnalysisTaskEmcalJetMass.cxx:344
 AliAnalysisTaskEmcalJetMass.cxx:345
 AliAnalysisTaskEmcalJetMass.cxx:346
 AliAnalysisTaskEmcalJetMass.cxx:347
 AliAnalysisTaskEmcalJetMass.cxx:348
 AliAnalysisTaskEmcalJetMass.cxx:349
 AliAnalysisTaskEmcalJetMass.cxx:350
 AliAnalysisTaskEmcalJetMass.cxx:351
 AliAnalysisTaskEmcalJetMass.cxx:352
 AliAnalysisTaskEmcalJetMass.cxx:353
 AliAnalysisTaskEmcalJetMass.cxx:354
 AliAnalysisTaskEmcalJetMass.cxx:355
 AliAnalysisTaskEmcalJetMass.cxx:356
 AliAnalysisTaskEmcalJetMass.cxx:357
 AliAnalysisTaskEmcalJetMass.cxx:358
 AliAnalysisTaskEmcalJetMass.cxx:359
 AliAnalysisTaskEmcalJetMass.cxx:360
 AliAnalysisTaskEmcalJetMass.cxx:361
 AliAnalysisTaskEmcalJetMass.cxx:362
 AliAnalysisTaskEmcalJetMass.cxx:363
 AliAnalysisTaskEmcalJetMass.cxx:364
 AliAnalysisTaskEmcalJetMass.cxx:365
 AliAnalysisTaskEmcalJetMass.cxx:366
 AliAnalysisTaskEmcalJetMass.cxx:367
 AliAnalysisTaskEmcalJetMass.cxx:368
 AliAnalysisTaskEmcalJetMass.cxx:369
 AliAnalysisTaskEmcalJetMass.cxx:370
 AliAnalysisTaskEmcalJetMass.cxx:371
 AliAnalysisTaskEmcalJetMass.cxx:372
 AliAnalysisTaskEmcalJetMass.cxx:373
 AliAnalysisTaskEmcalJetMass.cxx:374
 AliAnalysisTaskEmcalJetMass.cxx:375
 AliAnalysisTaskEmcalJetMass.cxx:376
 AliAnalysisTaskEmcalJetMass.cxx:377
 AliAnalysisTaskEmcalJetMass.cxx:378
 AliAnalysisTaskEmcalJetMass.cxx:379
 AliAnalysisTaskEmcalJetMass.cxx:380
 AliAnalysisTaskEmcalJetMass.cxx:381
 AliAnalysisTaskEmcalJetMass.cxx:382
 AliAnalysisTaskEmcalJetMass.cxx:383
 AliAnalysisTaskEmcalJetMass.cxx:384
 AliAnalysisTaskEmcalJetMass.cxx:385
 AliAnalysisTaskEmcalJetMass.cxx:386
 AliAnalysisTaskEmcalJetMass.cxx:387
 AliAnalysisTaskEmcalJetMass.cxx:388
 AliAnalysisTaskEmcalJetMass.cxx:389
 AliAnalysisTaskEmcalJetMass.cxx:390
 AliAnalysisTaskEmcalJetMass.cxx:391
 AliAnalysisTaskEmcalJetMass.cxx:392
 AliAnalysisTaskEmcalJetMass.cxx:393
 AliAnalysisTaskEmcalJetMass.cxx:394
 AliAnalysisTaskEmcalJetMass.cxx:395
 AliAnalysisTaskEmcalJetMass.cxx:396
 AliAnalysisTaskEmcalJetMass.cxx:397
 AliAnalysisTaskEmcalJetMass.cxx:398
 AliAnalysisTaskEmcalJetMass.cxx:399
 AliAnalysisTaskEmcalJetMass.cxx:400
 AliAnalysisTaskEmcalJetMass.cxx:401
 AliAnalysisTaskEmcalJetMass.cxx:402
 AliAnalysisTaskEmcalJetMass.cxx:403
 AliAnalysisTaskEmcalJetMass.cxx:404
 AliAnalysisTaskEmcalJetMass.cxx:405
 AliAnalysisTaskEmcalJetMass.cxx:406
 AliAnalysisTaskEmcalJetMass.cxx:407
 AliAnalysisTaskEmcalJetMass.cxx:408
 AliAnalysisTaskEmcalJetMass.cxx:409
 AliAnalysisTaskEmcalJetMass.cxx:410
 AliAnalysisTaskEmcalJetMass.cxx:411
 AliAnalysisTaskEmcalJetMass.cxx:412
 AliAnalysisTaskEmcalJetMass.cxx:413
 AliAnalysisTaskEmcalJetMass.cxx:414
 AliAnalysisTaskEmcalJetMass.cxx:415
 AliAnalysisTaskEmcalJetMass.cxx:416
 AliAnalysisTaskEmcalJetMass.cxx:417
 AliAnalysisTaskEmcalJetMass.cxx:418
 AliAnalysisTaskEmcalJetMass.cxx:419
 AliAnalysisTaskEmcalJetMass.cxx:420
 AliAnalysisTaskEmcalJetMass.cxx:421
 AliAnalysisTaskEmcalJetMass.cxx:422
 AliAnalysisTaskEmcalJetMass.cxx:423
 AliAnalysisTaskEmcalJetMass.cxx:424
 AliAnalysisTaskEmcalJetMass.cxx:425
 AliAnalysisTaskEmcalJetMass.cxx:426
 AliAnalysisTaskEmcalJetMass.cxx:427
 AliAnalysisTaskEmcalJetMass.cxx:428
 AliAnalysisTaskEmcalJetMass.cxx:429
 AliAnalysisTaskEmcalJetMass.cxx:430
 AliAnalysisTaskEmcalJetMass.cxx:431
 AliAnalysisTaskEmcalJetMass.cxx:432
 AliAnalysisTaskEmcalJetMass.cxx:433
 AliAnalysisTaskEmcalJetMass.cxx:434
 AliAnalysisTaskEmcalJetMass.cxx:435
 AliAnalysisTaskEmcalJetMass.cxx:436
 AliAnalysisTaskEmcalJetMass.cxx:437
 AliAnalysisTaskEmcalJetMass.cxx:438
 AliAnalysisTaskEmcalJetMass.cxx:439
 AliAnalysisTaskEmcalJetMass.cxx:440
 AliAnalysisTaskEmcalJetMass.cxx:441
 AliAnalysisTaskEmcalJetMass.cxx:442
 AliAnalysisTaskEmcalJetMass.cxx:443
 AliAnalysisTaskEmcalJetMass.cxx:444
 AliAnalysisTaskEmcalJetMass.cxx:445
 AliAnalysisTaskEmcalJetMass.cxx:446
 AliAnalysisTaskEmcalJetMass.cxx:447
 AliAnalysisTaskEmcalJetMass.cxx:448
 AliAnalysisTaskEmcalJetMass.cxx:449
 AliAnalysisTaskEmcalJetMass.cxx:450
 AliAnalysisTaskEmcalJetMass.cxx:451
 AliAnalysisTaskEmcalJetMass.cxx:452
 AliAnalysisTaskEmcalJetMass.cxx:453
 AliAnalysisTaskEmcalJetMass.cxx:454
 AliAnalysisTaskEmcalJetMass.cxx:455
 AliAnalysisTaskEmcalJetMass.cxx:456
 AliAnalysisTaskEmcalJetMass.cxx:457
 AliAnalysisTaskEmcalJetMass.cxx:458
 AliAnalysisTaskEmcalJetMass.cxx:459
 AliAnalysisTaskEmcalJetMass.cxx:460
 AliAnalysisTaskEmcalJetMass.cxx:461
 AliAnalysisTaskEmcalJetMass.cxx:462
 AliAnalysisTaskEmcalJetMass.cxx:463
 AliAnalysisTaskEmcalJetMass.cxx:464
 AliAnalysisTaskEmcalJetMass.cxx:465
 AliAnalysisTaskEmcalJetMass.cxx:466
 AliAnalysisTaskEmcalJetMass.cxx:467
 AliAnalysisTaskEmcalJetMass.cxx:468
 AliAnalysisTaskEmcalJetMass.cxx:469
 AliAnalysisTaskEmcalJetMass.cxx:470
 AliAnalysisTaskEmcalJetMass.cxx:471
 AliAnalysisTaskEmcalJetMass.cxx:472
 AliAnalysisTaskEmcalJetMass.cxx:473
 AliAnalysisTaskEmcalJetMass.cxx:474
 AliAnalysisTaskEmcalJetMass.cxx:475
 AliAnalysisTaskEmcalJetMass.cxx:476
 AliAnalysisTaskEmcalJetMass.cxx:477
 AliAnalysisTaskEmcalJetMass.cxx:478
 AliAnalysisTaskEmcalJetMass.cxx:479
 AliAnalysisTaskEmcalJetMass.cxx:480
 AliAnalysisTaskEmcalJetMass.cxx:481
 AliAnalysisTaskEmcalJetMass.cxx:482
 AliAnalysisTaskEmcalJetMass.cxx:483
 AliAnalysisTaskEmcalJetMass.cxx:484
 AliAnalysisTaskEmcalJetMass.cxx:485
 AliAnalysisTaskEmcalJetMass.cxx:486
 AliAnalysisTaskEmcalJetMass.cxx:487
 AliAnalysisTaskEmcalJetMass.cxx:488
 AliAnalysisTaskEmcalJetMass.cxx:489
 AliAnalysisTaskEmcalJetMass.cxx:490
 AliAnalysisTaskEmcalJetMass.cxx:491
 AliAnalysisTaskEmcalJetMass.cxx:492
 AliAnalysisTaskEmcalJetMass.cxx:493
 AliAnalysisTaskEmcalJetMass.cxx:494
 AliAnalysisTaskEmcalJetMass.cxx:495
 AliAnalysisTaskEmcalJetMass.cxx:496
 AliAnalysisTaskEmcalJetMass.cxx:497
 AliAnalysisTaskEmcalJetMass.cxx:498
 AliAnalysisTaskEmcalJetMass.cxx:499
 AliAnalysisTaskEmcalJetMass.cxx:500
 AliAnalysisTaskEmcalJetMass.cxx:501
 AliAnalysisTaskEmcalJetMass.cxx:502
 AliAnalysisTaskEmcalJetMass.cxx:503
 AliAnalysisTaskEmcalJetMass.cxx:504
 AliAnalysisTaskEmcalJetMass.cxx:505
 AliAnalysisTaskEmcalJetMass.cxx:506
 AliAnalysisTaskEmcalJetMass.cxx:507
 AliAnalysisTaskEmcalJetMass.cxx:508
 AliAnalysisTaskEmcalJetMass.cxx:509
 AliAnalysisTaskEmcalJetMass.cxx:510
 AliAnalysisTaskEmcalJetMass.cxx:511
 AliAnalysisTaskEmcalJetMass.cxx:512
 AliAnalysisTaskEmcalJetMass.cxx:513
 AliAnalysisTaskEmcalJetMass.cxx:514
 AliAnalysisTaskEmcalJetMass.cxx:515
 AliAnalysisTaskEmcalJetMass.cxx:516
 AliAnalysisTaskEmcalJetMass.cxx:517
 AliAnalysisTaskEmcalJetMass.cxx:518
 AliAnalysisTaskEmcalJetMass.cxx:519
 AliAnalysisTaskEmcalJetMass.cxx:520
 AliAnalysisTaskEmcalJetMass.cxx:521
 AliAnalysisTaskEmcalJetMass.cxx:522
 AliAnalysisTaskEmcalJetMass.cxx:523
 AliAnalysisTaskEmcalJetMass.cxx:524
 AliAnalysisTaskEmcalJetMass.cxx:525
 AliAnalysisTaskEmcalJetMass.cxx:526
 AliAnalysisTaskEmcalJetMass.cxx:527
 AliAnalysisTaskEmcalJetMass.cxx:528
 AliAnalysisTaskEmcalJetMass.cxx:529
 AliAnalysisTaskEmcalJetMass.cxx:530
 AliAnalysisTaskEmcalJetMass.cxx:531
 AliAnalysisTaskEmcalJetMass.cxx:532
 AliAnalysisTaskEmcalJetMass.cxx:533
 AliAnalysisTaskEmcalJetMass.cxx:534
 AliAnalysisTaskEmcalJetMass.cxx:535
 AliAnalysisTaskEmcalJetMass.cxx:536
 AliAnalysisTaskEmcalJetMass.cxx:537
 AliAnalysisTaskEmcalJetMass.cxx:538
 AliAnalysisTaskEmcalJetMass.cxx:539
 AliAnalysisTaskEmcalJetMass.cxx:540
 AliAnalysisTaskEmcalJetMass.cxx:541
 AliAnalysisTaskEmcalJetMass.cxx:542
 AliAnalysisTaskEmcalJetMass.cxx:543
 AliAnalysisTaskEmcalJetMass.cxx:544
 AliAnalysisTaskEmcalJetMass.cxx:545
 AliAnalysisTaskEmcalJetMass.cxx:546
 AliAnalysisTaskEmcalJetMass.cxx:547
 AliAnalysisTaskEmcalJetMass.cxx:548
 AliAnalysisTaskEmcalJetMass.cxx:549
 AliAnalysisTaskEmcalJetMass.cxx:550
 AliAnalysisTaskEmcalJetMass.cxx:551
 AliAnalysisTaskEmcalJetMass.cxx:552
 AliAnalysisTaskEmcalJetMass.cxx:553
 AliAnalysisTaskEmcalJetMass.cxx:554
 AliAnalysisTaskEmcalJetMass.cxx:555
 AliAnalysisTaskEmcalJetMass.cxx:556
 AliAnalysisTaskEmcalJetMass.cxx:557