ROOT logo
#ifndef ALIANALYSISTASKCHARGEDJETSPA_H
#define ALIANALYSISTASKCHARGEDJETSPA_H

//#define DEBUGMODE

class TList;
class TClonesArray;
class TString;
class AliEmcalJet;
class AliRhoParameter;
class AliVParticle;
class AliLog;
class AliAnalysisUtils;
class TRandom3;
class AliESDtrack;

#include "AliESDtrackCuts.h"
#include "THn.h"

const int kMaxMatch=5;
const double kMaxChi2 = 200;

// Class for the hybrid track cuts
class AliESDHybridTrackcuts {
 public:
  AliESDHybridTrackcuts() : fMainCuts(0), fAdditionalCuts(0) {};
  AliESDHybridTrackcuts(const AliESDHybridTrackcuts& pd) : fMainCuts(0), fAdditionalCuts(0) {((AliESDHybridTrackcuts &) pd).Copy(*this);};
  virtual ~AliESDHybridTrackcuts() {delete fAdditionalCuts; delete fMainCuts;};

  virtual void Copy(AliESDHybridTrackcuts &c) const
  {
    AliESDHybridTrackcuts& target = (AliESDHybridTrackcuts &) c;
    target.fAdditionalCuts = fAdditionalCuts;
    target.fMainCuts = fMainCuts;
  };

  // Meta function to accept hybrid tracks
  Int_t AcceptTrack (const AliESDtrack* esdTrack) {
    if (AcceptNormalTrack(esdTrack))
      return 1;
    else if (AcceptAdditionalTrack(esdTrack))
      return 2;
    else
      return 0;
  };

  Bool_t  AcceptNormalTrack (const AliESDtrack* esdTrack) {if(fMainCuts) return fMainCuts->AcceptTrack(esdTrack); else return kFALSE;};
  Bool_t  AcceptAdditionalTrack (const AliESDtrack* esdTrack) {if(fAdditionalCuts) return fAdditionalCuts->AcceptTrack(esdTrack); else return kFALSE;};
  void    SetMainCuts (AliESDtrackCuts* trackCuts) {fMainCuts = trackCuts;};
  void    SetAdditionalCuts (AliESDtrackCuts* trackCuts) {fAdditionalCuts = trackCuts;};
  AliESDtrackCuts* GetAdditionalCuts () {return fAdditionalCuts;};
  AliESDtrackCuts* GetMainCuts () {return fMainCuts;};

  AliESDHybridTrackcuts &operator=(const AliESDHybridTrackcuts &c) {if (this != &c) ((AliESDHybridTrackcuts &) c).Copy(*this); return *this;};
 protected:
  AliESDtrackCuts*  fMainCuts;          // trackcut object for the global tracks
  AliESDtrackCuts*  fAdditionalCuts;    // trackcut object for the complementary tracks

// ClassDef(AliESDHybridTrackcuts, 2); 
};

class AliAnalysisTaskChargedJetsPA : public AliAnalysisTaskSE {
 public:
  // ######### CONTRUCTORS/DESTRUCTORS AND STD FUNCTIONS
  AliAnalysisTaskChargedJetsPA() : AliAnalysisTaskSE(), fOutputLists(), fCurrentOutputList(0), fDoJetAnalysis(1), fAnalyzeJetProfile(0), fAnalyzeTrackcuts(0), fAnalyzeJetConstituents(1), fParticleLevel(0), fUseDefaultVertexCut(1), fUsePileUpCut(1), fSetCentralityToOne(0), fNoExternalBackground(0), fBackgroundForJetProfile(0), fPartialAnalysisNParts(1), fPartialAnalysisIndex(0), fJetArray(0), fTrackArray(0), fBackgroundJetArray(0), fJetArrayName(), fTrackArrayName(), fBackgroundJetArrayName(), fRhoTaskName(), fRandConeRadius(0.4), fRandConeNumber(10), fSignalJetRadius(0.4), fBackgroundJetRadius(0.4), fNumberExcludedJets(-1), fMinEta(-0.9), fMaxEta(0.9), fMinJetEta(-0.5), fMaxJetEta(0.5), fMinTrackPt(0.150), fMinJetPt(5.0), fMinJetArea(0.5), fMinBackgroundJetPt(0.0), fMinNCrossedRows(70), fUsePtDepCrossedRowsCut(0), fNumberOfCentralityBins(20), fCentralityType("V0A"), fMatchTr(), fMatchChi(), fPrimaryVertex(0), fFirstLeadingJet(0), fSecondLeadingJet(0), fFirstLeadingKTJet(0), fSecondLeadingKTJet(0), fNumberSignalJets(0), fNumberSignalJetsAbove5GeV(0), fRandom(0), fHelperClass(0), fInitialized(0), fTaskInstanceCounter(0), fIsDEBUG(0), fIsPA(1), fNoTerminate(1), fEventCounter(0), fTempExcludedRCs(0), fTempAllRCs(1), fTempOverlapCounter(0), fTempMeanExclusionProbability(0), fHybridESDtrackCuts(0), fHybridESDtrackCuts_variedPtDep(0), fHybridESDtrackCuts_variedPtDep2(0)
  {
  // dummy
  }

  AliAnalysisTaskChargedJetsPA(const char *name, const char* trackArrayName, const char* jetArrayName, const char* backgroundJetArrayName, Bool_t analyzeJetProfile, Bool_t analyzeTrackcuts);
  virtual ~AliAnalysisTaskChargedJetsPA();
  virtual void     UserCreateOutputObjects();
  virtual void     UserExec(Option_t *option);
  virtual Bool_t   UserNotify();
  virtual void     Terminate(Option_t *);

  // ######### SETTERS/GETTERS
  void        SetDoJetAnalysis(Bool_t val) {fDoJetAnalysis = val;}
  void        SetAnalyzeJetProfile(Bool_t val) {fAnalyzeJetProfile = val;}
  void        SetAnalyzeTrackcuts(Bool_t val) {fAnalyzeTrackcuts = val;}
  void        SetAnalyzeJetConstituents(Bool_t val) {fAnalyzeJetConstituents = val;}
  void        SetAnalyzePartialEvents(Int_t nParts, Int_t index) {fPartialAnalysisNParts = nParts; fPartialAnalysisIndex = index;}
  void        SetUseDefaultVertexCut (Bool_t val) {fUseDefaultVertexCut = val;}
  void        SetUsePileUpCut (Bool_t val) {fUsePileUpCut = val;}
  void        SetNoTerminate (Bool_t val) {fNoTerminate = val;}
  void        SetIsPA (Bool_t val) {fIsPA = val;}
  void        SetCentralityToOne (Bool_t val) {fSetCentralityToOne = val;}
  void        SetNoExternalBackground (Bool_t val) {fNoExternalBackground = val;}
  void        SetBackgroundForJetProfile (Bool_t val) {fBackgroundForJetProfile = val;}
  void        SetMinNCrossedRows(Int_t val) {fMinNCrossedRows = val;}
  void        SetUsePtDepCrossedRowsCut(Bool_t val) {fUsePtDepCrossedRowsCut = val;}

  void        SetNumberOfCentralityBins(Int_t val) {fNumberOfCentralityBins = val;} 
  void        SetTrackMinPt(Double_t minPt) {fMinJetPt = minPt;}
  void        SetSignalJetMinPt(Double_t minPt) {fMinJetPt = minPt;}
  void        SetSignalJetMinArea(Double_t minArea) {fMinJetArea = minArea;}
  void        SetBackgroundJetMinPt(Double_t minPt) {fMinBackgroundJetPt = minPt;}
  void        SetRandConeRadius(Double_t radius) {fRandConeRadius = radius;}
  void        SetRandConeNumber(Int_t number) {fRandConeNumber = number;}
  void        SetSignalJetRadius(Double_t radius) {fSignalJetRadius = radius;}
  void        SetBackgroundJetRadius(Double_t radius) {fBackgroundJetRadius = radius;}
  void        SetCentralityType(const char* type) {fCentralityType = type;}
  void        SetExternalRhoTaskName(const char* name) {fRhoTaskName = name;}
  void        SetAcceptanceEta(Double_t minEta, Double_t maxEta) {fMinEta = minEta; fMaxEta = maxEta;}
  void        SetAcceptanceJetEta(Double_t minEta, Double_t maxEta) {fMinJetEta = minEta; fMaxJetEta = maxEta;}
  Int_t       GetInstanceCounter() {return fTaskInstanceCounter;}
  void        SetCurrentOutputList(Int_t i)
  {
    if(i==0)
    {
      fCurrentOutputList = fOutputLists[0];
    }
    else if(i==1)
    {
      if(fAnalyzeJetProfile)
        fCurrentOutputList = fOutputLists[1];
      else
        AliError("Non-existing output list demanded!");
    }
    else if(i==2)
    {
      if(!fAnalyzeJetProfile && fAnalyzeTrackcuts)
        fCurrentOutputList = fOutputLists[1];
      else if(fAnalyzeJetProfile && fAnalyzeTrackcuts)
        fCurrentOutputList = fOutputLists[2];
      else
        AliError("Non-existing output list demanded!");
    }
  }

 private:

  // ######### MAIN CALCULATION FUNCTIONS
  void        InitializeTrackcuts();
  void        GetLeadingJets();
  Double_t    GetCorrectedJetPt(AliEmcalJet* jet, Double_t background);
  Double_t    GetDeltaPt(Double_t rho, Double_t overlappingJetExclusionProbability = 0);

  void        GetKTBackgroundDensityAll(Int_t numberExcludeLeadingJets, Double_t& rhoPbPb, Double_t& rhoPbPbWithGhosts, Double_t& rhoCMS, Double_t& rhoImprovedCMS, Double_t& rhoMean, Double_t& rhoTrackLike);
  void        GetTRBackgroundDensity(Int_t numberExcludeLeadingJets, Double_t& rhoNoExclusion, Double_t& rhoConeExclusion02, Double_t& rhoConeExclusion04, Double_t& rhoConeExclusion06, Double_t& rhoConeExclusion08, Double_t& rhoExactExclusion);
  void        GetPPBackgroundDensity(Double_t& background);

  Double_t    GetConePt(Double_t eta, Double_t phi, Double_t radius);
  Double_t    GetCorrectedConePt(Double_t eta, Double_t phi, Double_t radius, Double_t background);
  Int_t       GetConeConstituentCount(Double_t eta, Double_t phi, Double_t radius);
  Double_t    GetExternalRho();
  void        CreateJetProfilePlots(Double_t bgrd);
  void        CreateCutHistograms();
  void        CreateITSTPCMatchingHistograms();
  void        GetPerpendicularCone(Double_t vecPhi, Double_t vecTheta, Double_t& conePt);

  // ######### CHECK FUNCTIONS
  Bool_t      IsTrackInAcceptance(AliVParticle* track);
  Bool_t      IsTrackInCone(AliVTrack* track, Double_t eta, Double_t phi, Double_t radius);
  Bool_t      IsTrackInJet(AliEmcalJet* jet, Int_t trackIndex);
  Bool_t      IsJetOverlapping(AliEmcalJet* jet1, AliEmcalJet* jet2);

  Bool_t      IsEventInAcceptance(AliVEvent* event);
  Bool_t      IsBackgroundJetInAcceptance(AliEmcalJet* jet);
  Bool_t      IsSignalJetInAcceptance(AliEmcalJet* jet, Bool_t usePtCut = kFALSE);
  
  // ######### HELPER FUNCTIONS
  Double_t    EtaToTheta(Double_t arg);
  Double_t    ThetaToEta(Double_t arg);
  Double_t    GetDeltaPhi(Double_t phi1, Double_t phi2);
  Double_t    MCGetOverlapCircleRectancle(Double_t cPosX, Double_t cPosY, Double_t cRadius, Double_t rPosXmin, Double_t rPosXmax, Double_t rPosYmin, Double_t rPosYmax);
  Double_t    MCGetOverlapMultipleCirclesRectancle(Int_t numCircles, std::vector<Double_t> cPosX, std::vector<Double_t> cPosY, Double_t cRadius, Double_t rPosXmin, Double_t rPosXmax, Double_t rPosYmin, Double_t rPosYmax);
  void        Match(AliESDtrack* tr0, AliESDtrack* tr1, Int_t& nmatch, Bool_t excludeMom = kFALSE, Double_t rotate=0);

  // ######### HISTOGRAM FUNCTIONS
  void        FillHistogram(const char * key, Double_t x);
  void        FillHistogram(const char * key, Double_t x, Double_t y);
  void        FillHistogram(const char * key, Double_t x, Double_t y, Double_t add);
  void        FillCutHistogram(const char * key, Double_t cut, Double_t pT, Double_t eta, Double_t phi, Int_t isAdditionalTrack);

  const char* GetHistoName(const char* name)
  {
    if (fParticleLevel)    
      return Form("%s_MC", name);
    return Form("%s", name);
  }
  template <class T> T* AddHistogram1D(const char* name = "CustomHistogram", const char* title = "NO_TITLE", const char* options = "", Int_t xBins = 100, Double_t xMin = 0.0, Double_t xMax = 20.0, const char* xTitle = "x axis", const char* yTitle = "y axis");
  template <class T> T* AddHistogram2D(const char* name = "CustomHistogram", const char* title = "NO_TITLE", const char* options = "", Int_t xBins = 100, Double_t xMin = 0.0, Double_t xMax = 20.0, Int_t yBins = 100, Double_t yMin = 0.0, Double_t yMax = 20.0, const char* xTitle = "x axis", const char* yTitle = "y axis", const char* zTitle = "z axis");
  THnF* AddCutHistogram(const char* name, const char* title, const char* cutName, Int_t nBins, Double_t xMin, Double_t xMax);
  void  BinLogAxis(const THn *h, Int_t axisNumber);

  // ######### STANDARD FUNCTIONS
  void      Calculate(AliVEvent* event);
  void      ExecOnce();
  void      Init ();

  std::vector<TList*> fOutputLists;           //! Output lists
  TList*              fCurrentOutputList;     //! Currently selected list where the histograms will be saved to
  // ########## USAGE TRIGGERS 
  Bool_t              fDoJetAnalysis;         // trigger if jets/tracks etc. should be analyzed
  Bool_t              fAnalyzeJetProfile;     // trigger if jet profile should be analyzed
  Bool_t              fAnalyzeTrackcuts;      // trigger if trackcuts should be analyzed
  Bool_t              fAnalyzeJetConstituents;// trigger if constituents should be analyzed
  Bool_t              fParticleLevel;         // trigger if data is kinematics only (for naming reasons)
  Bool_t              fUseDefaultVertexCut;   // trigger if automatic vertex cut from helper class should be done
  Bool_t              fUsePileUpCut;          // trigger if pileup cut should be done
  Bool_t              fSetCentralityToOne;    // trigger if centrality val. should be set to one for every event (failsafe)
  Bool_t              fNoExternalBackground;  // External background is set to 0 (e.g. for PP)
  Int_t               fBackgroundForJetProfile; // Which background will be subtracted for the profile calculation (0=External,1=Improved CMS,2=CMS,3=PP,4=TR,5=None)
  Int_t               fPartialAnalysisNParts; // take only every Nth event
  Int_t               fPartialAnalysisIndex;  // using e.g. only every 5th event, this specifies which one
  

  // ########## SOURCE INFORMATION
  TClonesArray*       fJetArray;              //! object containing the jets
  TClonesArray*       fTrackArray;            //! object containing the tracks
  TClonesArray*       fBackgroundJetArray;    //! object containing background jets
  TString             fJetArrayName;          // name of object containing the jets
  TString             fTrackArrayName;        // name of object containing the tracks
  TString             fBackgroundJetArrayName;// name of object containing event wise bckgrds
  TString             fRhoTaskName;           // name of rho task for this analysis
  // ########## JET/DIJET/RC PROPERTIES
  Double_t            fRandConeRadius;        // Radius for the random cones
  Int_t               fRandConeNumber;        // Number of random cones thrown per event
  Double_t            fSignalJetRadius;       // Radius for the signal jets
  Double_t            fBackgroundJetRadius;   // Radius for the KT background jets
  Int_t               fNumberExcludedJets;    // Number of jets to be excluded from backgrounds
  // ########## CUTS 
  Double_t            fMinEta;                // min eta of tracks
  Double_t            fMaxEta;                // max eta of tracks
  Double_t            fMinJetEta;             // min eta of jets
  Double_t            fMaxJetEta;             // max eta of jets
  Double_t            fMinTrackPt;            // Min track pt to be accepted
  Double_t            fMinJetPt;              // Min jet pt to be accepted
  Double_t            fMinJetArea;            // Min jet area to be accepted
  Double_t            fMinBackgroundJetPt;    // Min jet pt to be accepted as background jet
  Int_t               fMinNCrossedRows;       // Min number of crossed TPC rows for trackcut analysis
  Bool_t              fUsePtDepCrossedRowsCut;// Trigger if linear pT dep. for crossed rows cut should be applied
  Int_t               fNumberOfCentralityBins;// Number of centrality bins used for histograms
  TString             fCentralityType;        // Used centrality estimate (V0A, V0C, V0M, ...)

  AliESDtrack*        fMatchTr[kMaxMatch];    //! Helper variables track matching
  Double_t            fMatchChi[kMaxMatch];   //! Helper variables track matching


  // ########## EVENT PROPERTIES
  const AliVVertex*   fPrimaryVertex;         //! Vertex found per event
  AliEmcalJet*        fFirstLeadingJet;       //! leading jet in event
  AliEmcalJet*        fSecondLeadingJet;      //! next to leading jet in event
  AliEmcalJet*        fFirstLeadingKTJet;     //! leading kT jet in event
  AliEmcalJet*        fSecondLeadingKTJet;    //! next to leading kT jet in event
  Int_t               fNumberSignalJets;      // Number of signal jets in event
  Int_t               fNumberSignalJetsAbove5GeV; // Number of signal jets in event > 5GeV
  // ########## GENERAL VARS
  TRandom3*           fRandom;                //! A random number
  AliAnalysisUtils*   fHelperClass;           //! Vertex selection helper
  Bool_t              fInitialized;           // trigger if tracks/jets are loaded
  Int_t               fTaskInstanceCounter;   // for naming reasons
  Bool_t              fIsDEBUG;               // Debug trigger
  Bool_t              fIsPA;                  // pPb trigger
  Bool_t              fNoTerminate;           // don't use terminate routines
  ULong_t             fEventCounter;          // Internal event counter
  // ########### HELPER VARS
  Int_t               fTempExcludedRCs;       // used for delta pt signal exclusion
  Int_t               fTempAllRCs;            // used for delta pt signal exclusion
  Int_t               fTempOverlapCounter;    // used for delta pt signal exclusion
  Double_t            fTempMeanExclusionProbability;   // used for delta pt signal exclusion

  AliESDHybridTrackcuts* fHybridESDtrackCuts; //! these trackcuts are applied
  AliESDHybridTrackcuts* fHybridESDtrackCuts_variedPtDep; //! these trackcuts are applied
  AliESDHybridTrackcuts* fHybridESDtrackCuts_variedPtDep2; //! these trackcuts are applied

  AliAnalysisTaskChargedJetsPA(const AliAnalysisTaskChargedJetsPA&);
  AliAnalysisTaskChargedJetsPA& operator=(const AliAnalysisTaskChargedJetsPA&);

  ClassDef(AliAnalysisTaskChargedJetsPA, 3); // Charged jet analysis for pA

};
#endif
 AliAnalysisTaskChargedJetsPA.h:1
 AliAnalysisTaskChargedJetsPA.h:2
 AliAnalysisTaskChargedJetsPA.h:3
 AliAnalysisTaskChargedJetsPA.h:4
 AliAnalysisTaskChargedJetsPA.h:5
 AliAnalysisTaskChargedJetsPA.h:6
 AliAnalysisTaskChargedJetsPA.h:7
 AliAnalysisTaskChargedJetsPA.h:8
 AliAnalysisTaskChargedJetsPA.h:9
 AliAnalysisTaskChargedJetsPA.h:10
 AliAnalysisTaskChargedJetsPA.h:11
 AliAnalysisTaskChargedJetsPA.h:12
 AliAnalysisTaskChargedJetsPA.h:13
 AliAnalysisTaskChargedJetsPA.h:14
 AliAnalysisTaskChargedJetsPA.h:15
 AliAnalysisTaskChargedJetsPA.h:16
 AliAnalysisTaskChargedJetsPA.h:17
 AliAnalysisTaskChargedJetsPA.h:18
 AliAnalysisTaskChargedJetsPA.h:19
 AliAnalysisTaskChargedJetsPA.h:20
 AliAnalysisTaskChargedJetsPA.h:21
 AliAnalysisTaskChargedJetsPA.h:22
 AliAnalysisTaskChargedJetsPA.h:23
 AliAnalysisTaskChargedJetsPA.h:24
 AliAnalysisTaskChargedJetsPA.h:25
 AliAnalysisTaskChargedJetsPA.h:26
 AliAnalysisTaskChargedJetsPA.h:27
 AliAnalysisTaskChargedJetsPA.h:28
 AliAnalysisTaskChargedJetsPA.h:29
 AliAnalysisTaskChargedJetsPA.h:30
 AliAnalysisTaskChargedJetsPA.h:31
 AliAnalysisTaskChargedJetsPA.h:32
 AliAnalysisTaskChargedJetsPA.h:33
 AliAnalysisTaskChargedJetsPA.h:34
 AliAnalysisTaskChargedJetsPA.h:35
 AliAnalysisTaskChargedJetsPA.h:36
 AliAnalysisTaskChargedJetsPA.h:37
 AliAnalysisTaskChargedJetsPA.h:38
 AliAnalysisTaskChargedJetsPA.h:39
 AliAnalysisTaskChargedJetsPA.h:40
 AliAnalysisTaskChargedJetsPA.h:41
 AliAnalysisTaskChargedJetsPA.h:42
 AliAnalysisTaskChargedJetsPA.h:43
 AliAnalysisTaskChargedJetsPA.h:44
 AliAnalysisTaskChargedJetsPA.h:45
 AliAnalysisTaskChargedJetsPA.h:46
 AliAnalysisTaskChargedJetsPA.h:47
 AliAnalysisTaskChargedJetsPA.h:48
 AliAnalysisTaskChargedJetsPA.h:49
 AliAnalysisTaskChargedJetsPA.h:50
 AliAnalysisTaskChargedJetsPA.h:51
 AliAnalysisTaskChargedJetsPA.h:52
 AliAnalysisTaskChargedJetsPA.h:53
 AliAnalysisTaskChargedJetsPA.h:54
 AliAnalysisTaskChargedJetsPA.h:55
 AliAnalysisTaskChargedJetsPA.h:56
 AliAnalysisTaskChargedJetsPA.h:57
 AliAnalysisTaskChargedJetsPA.h:58
 AliAnalysisTaskChargedJetsPA.h:59
 AliAnalysisTaskChargedJetsPA.h:60
 AliAnalysisTaskChargedJetsPA.h:61
 AliAnalysisTaskChargedJetsPA.h:62
 AliAnalysisTaskChargedJetsPA.h:63
 AliAnalysisTaskChargedJetsPA.h:64
 AliAnalysisTaskChargedJetsPA.h:65
 AliAnalysisTaskChargedJetsPA.h:66
 AliAnalysisTaskChargedJetsPA.h:67
 AliAnalysisTaskChargedJetsPA.h:68
 AliAnalysisTaskChargedJetsPA.h:69
 AliAnalysisTaskChargedJetsPA.h:70
 AliAnalysisTaskChargedJetsPA.h:71
 AliAnalysisTaskChargedJetsPA.h:72
 AliAnalysisTaskChargedJetsPA.h:73
 AliAnalysisTaskChargedJetsPA.h:74
 AliAnalysisTaskChargedJetsPA.h:75
 AliAnalysisTaskChargedJetsPA.h:76
 AliAnalysisTaskChargedJetsPA.h:77
 AliAnalysisTaskChargedJetsPA.h:78
 AliAnalysisTaskChargedJetsPA.h:79
 AliAnalysisTaskChargedJetsPA.h:80
 AliAnalysisTaskChargedJetsPA.h:81
 AliAnalysisTaskChargedJetsPA.h:82
 AliAnalysisTaskChargedJetsPA.h:83
 AliAnalysisTaskChargedJetsPA.h:84
 AliAnalysisTaskChargedJetsPA.h:85
 AliAnalysisTaskChargedJetsPA.h:86
 AliAnalysisTaskChargedJetsPA.h:87
 AliAnalysisTaskChargedJetsPA.h:88
 AliAnalysisTaskChargedJetsPA.h:89
 AliAnalysisTaskChargedJetsPA.h:90
 AliAnalysisTaskChargedJetsPA.h:91
 AliAnalysisTaskChargedJetsPA.h:92
 AliAnalysisTaskChargedJetsPA.h:93
 AliAnalysisTaskChargedJetsPA.h:94
 AliAnalysisTaskChargedJetsPA.h:95
 AliAnalysisTaskChargedJetsPA.h:96
 AliAnalysisTaskChargedJetsPA.h:97
 AliAnalysisTaskChargedJetsPA.h:98
 AliAnalysisTaskChargedJetsPA.h:99
 AliAnalysisTaskChargedJetsPA.h:100
 AliAnalysisTaskChargedJetsPA.h:101
 AliAnalysisTaskChargedJetsPA.h:102
 AliAnalysisTaskChargedJetsPA.h:103
 AliAnalysisTaskChargedJetsPA.h:104
 AliAnalysisTaskChargedJetsPA.h:105
 AliAnalysisTaskChargedJetsPA.h:106
 AliAnalysisTaskChargedJetsPA.h:107
 AliAnalysisTaskChargedJetsPA.h:108
 AliAnalysisTaskChargedJetsPA.h:109
 AliAnalysisTaskChargedJetsPA.h:110
 AliAnalysisTaskChargedJetsPA.h:111
 AliAnalysisTaskChargedJetsPA.h:112
 AliAnalysisTaskChargedJetsPA.h:113
 AliAnalysisTaskChargedJetsPA.h:114
 AliAnalysisTaskChargedJetsPA.h:115
 AliAnalysisTaskChargedJetsPA.h:116
 AliAnalysisTaskChargedJetsPA.h:117
 AliAnalysisTaskChargedJetsPA.h:118
 AliAnalysisTaskChargedJetsPA.h:119
 AliAnalysisTaskChargedJetsPA.h:120
 AliAnalysisTaskChargedJetsPA.h:121
 AliAnalysisTaskChargedJetsPA.h:122
 AliAnalysisTaskChargedJetsPA.h:123
 AliAnalysisTaskChargedJetsPA.h:124
 AliAnalysisTaskChargedJetsPA.h:125
 AliAnalysisTaskChargedJetsPA.h:126
 AliAnalysisTaskChargedJetsPA.h:127
 AliAnalysisTaskChargedJetsPA.h:128
 AliAnalysisTaskChargedJetsPA.h:129
 AliAnalysisTaskChargedJetsPA.h:130
 AliAnalysisTaskChargedJetsPA.h:131
 AliAnalysisTaskChargedJetsPA.h:132
 AliAnalysisTaskChargedJetsPA.h:133
 AliAnalysisTaskChargedJetsPA.h:134
 AliAnalysisTaskChargedJetsPA.h:135
 AliAnalysisTaskChargedJetsPA.h:136
 AliAnalysisTaskChargedJetsPA.h:137
 AliAnalysisTaskChargedJetsPA.h:138
 AliAnalysisTaskChargedJetsPA.h:139
 AliAnalysisTaskChargedJetsPA.h:140
 AliAnalysisTaskChargedJetsPA.h:141
 AliAnalysisTaskChargedJetsPA.h:142
 AliAnalysisTaskChargedJetsPA.h:143
 AliAnalysisTaskChargedJetsPA.h:144
 AliAnalysisTaskChargedJetsPA.h:145
 AliAnalysisTaskChargedJetsPA.h:146
 AliAnalysisTaskChargedJetsPA.h:147
 AliAnalysisTaskChargedJetsPA.h:148
 AliAnalysisTaskChargedJetsPA.h:149
 AliAnalysisTaskChargedJetsPA.h:150
 AliAnalysisTaskChargedJetsPA.h:151
 AliAnalysisTaskChargedJetsPA.h:152
 AliAnalysisTaskChargedJetsPA.h:153
 AliAnalysisTaskChargedJetsPA.h:154
 AliAnalysisTaskChargedJetsPA.h:155
 AliAnalysisTaskChargedJetsPA.h:156
 AliAnalysisTaskChargedJetsPA.h:157
 AliAnalysisTaskChargedJetsPA.h:158
 AliAnalysisTaskChargedJetsPA.h:159
 AliAnalysisTaskChargedJetsPA.h:160
 AliAnalysisTaskChargedJetsPA.h:161
 AliAnalysisTaskChargedJetsPA.h:162
 AliAnalysisTaskChargedJetsPA.h:163
 AliAnalysisTaskChargedJetsPA.h:164
 AliAnalysisTaskChargedJetsPA.h:165
 AliAnalysisTaskChargedJetsPA.h:166
 AliAnalysisTaskChargedJetsPA.h:167
 AliAnalysisTaskChargedJetsPA.h:168
 AliAnalysisTaskChargedJetsPA.h:169
 AliAnalysisTaskChargedJetsPA.h:170
 AliAnalysisTaskChargedJetsPA.h:171
 AliAnalysisTaskChargedJetsPA.h:172
 AliAnalysisTaskChargedJetsPA.h:173
 AliAnalysisTaskChargedJetsPA.h:174
 AliAnalysisTaskChargedJetsPA.h:175
 AliAnalysisTaskChargedJetsPA.h:176
 AliAnalysisTaskChargedJetsPA.h:177
 AliAnalysisTaskChargedJetsPA.h:178
 AliAnalysisTaskChargedJetsPA.h:179
 AliAnalysisTaskChargedJetsPA.h:180
 AliAnalysisTaskChargedJetsPA.h:181
 AliAnalysisTaskChargedJetsPA.h:182
 AliAnalysisTaskChargedJetsPA.h:183
 AliAnalysisTaskChargedJetsPA.h:184
 AliAnalysisTaskChargedJetsPA.h:185
 AliAnalysisTaskChargedJetsPA.h:186
 AliAnalysisTaskChargedJetsPA.h:187
 AliAnalysisTaskChargedJetsPA.h:188
 AliAnalysisTaskChargedJetsPA.h:189
 AliAnalysisTaskChargedJetsPA.h:190
 AliAnalysisTaskChargedJetsPA.h:191
 AliAnalysisTaskChargedJetsPA.h:192
 AliAnalysisTaskChargedJetsPA.h:193
 AliAnalysisTaskChargedJetsPA.h:194
 AliAnalysisTaskChargedJetsPA.h:195
 AliAnalysisTaskChargedJetsPA.h:196
 AliAnalysisTaskChargedJetsPA.h:197
 AliAnalysisTaskChargedJetsPA.h:198
 AliAnalysisTaskChargedJetsPA.h:199
 AliAnalysisTaskChargedJetsPA.h:200
 AliAnalysisTaskChargedJetsPA.h:201
 AliAnalysisTaskChargedJetsPA.h:202
 AliAnalysisTaskChargedJetsPA.h:203
 AliAnalysisTaskChargedJetsPA.h:204
 AliAnalysisTaskChargedJetsPA.h:205
 AliAnalysisTaskChargedJetsPA.h:206
 AliAnalysisTaskChargedJetsPA.h:207
 AliAnalysisTaskChargedJetsPA.h:208
 AliAnalysisTaskChargedJetsPA.h:209
 AliAnalysisTaskChargedJetsPA.h:210
 AliAnalysisTaskChargedJetsPA.h:211
 AliAnalysisTaskChargedJetsPA.h:212
 AliAnalysisTaskChargedJetsPA.h:213
 AliAnalysisTaskChargedJetsPA.h:214
 AliAnalysisTaskChargedJetsPA.h:215
 AliAnalysisTaskChargedJetsPA.h:216
 AliAnalysisTaskChargedJetsPA.h:217
 AliAnalysisTaskChargedJetsPA.h:218
 AliAnalysisTaskChargedJetsPA.h:219
 AliAnalysisTaskChargedJetsPA.h:220
 AliAnalysisTaskChargedJetsPA.h:221
 AliAnalysisTaskChargedJetsPA.h:222
 AliAnalysisTaskChargedJetsPA.h:223
 AliAnalysisTaskChargedJetsPA.h:224
 AliAnalysisTaskChargedJetsPA.h:225
 AliAnalysisTaskChargedJetsPA.h:226
 AliAnalysisTaskChargedJetsPA.h:227
 AliAnalysisTaskChargedJetsPA.h:228
 AliAnalysisTaskChargedJetsPA.h:229
 AliAnalysisTaskChargedJetsPA.h:230
 AliAnalysisTaskChargedJetsPA.h:231
 AliAnalysisTaskChargedJetsPA.h:232
 AliAnalysisTaskChargedJetsPA.h:233
 AliAnalysisTaskChargedJetsPA.h:234
 AliAnalysisTaskChargedJetsPA.h:235
 AliAnalysisTaskChargedJetsPA.h:236
 AliAnalysisTaskChargedJetsPA.h:237
 AliAnalysisTaskChargedJetsPA.h:238
 AliAnalysisTaskChargedJetsPA.h:239
 AliAnalysisTaskChargedJetsPA.h:240
 AliAnalysisTaskChargedJetsPA.h:241
 AliAnalysisTaskChargedJetsPA.h:242
 AliAnalysisTaskChargedJetsPA.h:243
 AliAnalysisTaskChargedJetsPA.h:244
 AliAnalysisTaskChargedJetsPA.h:245
 AliAnalysisTaskChargedJetsPA.h:246
 AliAnalysisTaskChargedJetsPA.h:247
 AliAnalysisTaskChargedJetsPA.h:248
 AliAnalysisTaskChargedJetsPA.h:249
 AliAnalysisTaskChargedJetsPA.h:250
 AliAnalysisTaskChargedJetsPA.h:251
 AliAnalysisTaskChargedJetsPA.h:252
 AliAnalysisTaskChargedJetsPA.h:253
 AliAnalysisTaskChargedJetsPA.h:254
 AliAnalysisTaskChargedJetsPA.h:255
 AliAnalysisTaskChargedJetsPA.h:256
 AliAnalysisTaskChargedJetsPA.h:257
 AliAnalysisTaskChargedJetsPA.h:258
 AliAnalysisTaskChargedJetsPA.h:259
 AliAnalysisTaskChargedJetsPA.h:260
 AliAnalysisTaskChargedJetsPA.h:261
 AliAnalysisTaskChargedJetsPA.h:262
 AliAnalysisTaskChargedJetsPA.h:263
 AliAnalysisTaskChargedJetsPA.h:264
 AliAnalysisTaskChargedJetsPA.h:265
 AliAnalysisTaskChargedJetsPA.h:266
 AliAnalysisTaskChargedJetsPA.h:267
 AliAnalysisTaskChargedJetsPA.h:268
 AliAnalysisTaskChargedJetsPA.h:269
 AliAnalysisTaskChargedJetsPA.h:270
 AliAnalysisTaskChargedJetsPA.h:271
 AliAnalysisTaskChargedJetsPA.h:272
 AliAnalysisTaskChargedJetsPA.h:273
 AliAnalysisTaskChargedJetsPA.h:274