ROOT logo
// *************************************************************************
// * Task for Fragmentation Function Analysis in PWG4 Jet Task Force Train *
// *************************************************************************

#ifndef ALIANALYSISTASKFRAGMENTATIONFUNCTIONN_H
#define ALIANALYSISTASKFRAGMENTATIONFUNCTIONN_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */

class AliESDEvent;
class AliAODEvent;
class AliAODJet;
class AliAODExtension;
class TList;
class TH1F;
class TH2F;
class TH3F;
class TProfile;
class THnSparse; 
class TRandom3;
class TArrayS;
class AliAODTrack;
class AliAODMCParticle;

#include "AliAnalysisTaskSE.h"
#include "TAxis.h"
#include "THnSparse.h"
  
class AliAnalysisTaskFragmentationFunction : public AliAnalysisTaskSE {

 public:
  
  //----------------------------------------
  class AliFragFuncHistos : public TObject
  {
    
    public:
    
    AliFragFuncHistos(const char* name = "FFhistos", 
		      Int_t nJetPt = 0, Float_t jetPtMin = 0, Float_t jetPtMax = 0,
		      Int_t nPt = 0, Float_t ptMin = 0, Float_t ptMax = 0,
		      Int_t nXi = 0, Float_t xiMin = 0, Float_t xiMax = 0,
		      Int_t nZ  = 0, Float_t zMin  = 0, Float_t zMax  = 0);
    
    AliFragFuncHistos(const AliFragFuncHistos& copy);
    AliFragFuncHistos& operator=(const AliFragFuncHistos &o);
    virtual ~AliFragFuncHistos();
    
    virtual void DefineHistos();
    virtual void FillFF(Float_t trackPt, Float_t jetPt,Bool_t incrementJetPt, Float_t norm = 0, Bool_t scaleStrangeness = kFALSE, Float_t scaleFacStrangeness = 1.);

    virtual void AddToOutput(TList* list) const;

  private:

    Int_t   fNBinsJetPt; // FF histos bins
    Float_t fJetPtMin;   // FF histos limits
    Float_t fJetPtMax;   // FF histos limits
    Int_t   fNBinsPt;    // FF histos bins
    Float_t fPtMin;      // FF histos limits
    Float_t fPtMax;      // FF histos limits
    Int_t   fNBinsXi;    // FF histos bins
    Float_t fXiMin;      // FF histos limits
    Float_t fXiMax;      // FF histos limits
    Int_t   fNBinsZ;     // FF histos bins
    Float_t fZMin;       // FF histos limits
    Float_t fZMax;       // FF histos limits
  
    TH2F*   fh2TrackPt;   //! FF: track transverse momentum 
    TH2F*   fh2Xi;        //! FF: xi 
    TH2F*   fh2Z;         //! FF: z  
    TH1F*   fh1JetPt;     //! jet pt 

    TString fNameFF;      // histo names prefix
    
    ClassDef(AliFragFuncHistos, 1);
  };
  
  //----------------------------------------
  class AliFragFuncQAJetHistos : public TObject
  {

  public:
 
    AliFragFuncQAJetHistos(const char* name = "QAJethistos",
		Int_t nPt  = 0, Float_t ptMin  = 0, Float_t ptMax  = 0,
		Int_t nEta = 0, Float_t etaMin = 0, Float_t etaMax = 0,
		Int_t nPhi = 0, Float_t phiMin = 0, Float_t phiMax = 0);
      
    AliFragFuncQAJetHistos(const AliFragFuncQAJetHistos& copy);
    AliFragFuncQAJetHistos& operator=(const AliFragFuncQAJetHistos &o);
    virtual ~AliFragFuncQAJetHistos();
    virtual void DefineHistos();
    virtual void FillJetQA(Float_t eta, Float_t phi, Float_t pt);
    virtual void AddToOutput(TList* list) const;

  private:
    
    Int_t   fNBinsPt;    // jet QA histos bins
    Float_t fPtMin;      // jet QA histos limits
    Float_t fPtMax;      // jet QA histos limits
    Int_t   fNBinsEta;   // jet QA histos bins
    Float_t fEtaMin;     // jet QA histos limits
    Float_t fEtaMax;     // jet QA histos limits
    Int_t   fNBinsPhi;   // jet QA histos bins
    Float_t fPhiMin;     // jet QA histos limits
    Float_t fPhiMax;     // jet QA histos limits
    
    TH2F*   fh2EtaPhi;   //! jet phi vs eta 
    TH1F*   fh1Pt;       //! jet transverse momentum 
    TString fNameQAJ;    // histo names prefix
    
    ClassDef(AliFragFuncQAJetHistos, 1);
  };
  
  //----------------------------------------
  class AliFragFuncQATrackHistos : public TObject
  {

  public:

    AliFragFuncQATrackHistos(const char* name = "QATrackhistos", 
		  Int_t nPt  = 0, Float_t ptMin  = 0, Float_t ptMax  = 0,
		  Int_t nEta = 0, Float_t etaMin = 0, Float_t etaMax = 0,
		  Int_t nPhi = 0, Float_t phiMin = 0, Float_t phiMax = 0, 
		  Float_t ptThresh = 0);
    
    AliFragFuncQATrackHistos(const AliFragFuncQATrackHistos& copy);
    AliFragFuncQATrackHistos& operator=(const AliFragFuncQATrackHistos &o);
    virtual ~AliFragFuncQATrackHistos();
    virtual void DefineHistos();
    virtual void FillTrackQA(Float_t eta, Float_t phi, Float_t pt, Bool_t weightPt = kFALSE, Float_t norm = 0., Bool_t scaleStrangeness = kFALSE, Float_t scaleFacStrangeness = 1.);
    virtual void AddToOutput(TList* list) const;

  private:
    
    Int_t   fNBinsPt;    // track QA histos bins in pt
    Float_t fPtMin;      // track QA histos limits in pt
    Float_t fPtMax;      // track QA histos limits in pt
    Int_t   fNBinsEta;   // track QA histos bins in eta
    Float_t fEtaMin;     // track QA histos limits in eta
    Float_t fEtaMax;     // track QA histos limits in eta
    Int_t   fNBinsPhi;   // track QA histos bins in phi
    Float_t fPhiMin;     // track QA histos limits in phi
    Float_t fPhiMax;     // track QA histos limits in phi

    Float_t fHighPtThreshold; //  high pt track phi vs eta distribution

    TH2F*   fh2EtaPhi;        //! track phi vs eta 
    TH1F*   fh1Pt;            //! track transverse momentum 
    TH2F*   fh2HighPtEtaPhi;  //! phi vs eta for high pt (>fgHighPtThreshold) tracks
    TH2F*   fh2PhiPt;         //! track phi vs pt

    TString fNameQAT;         // histo names prefix
    
    ClassDef(AliFragFuncQATrackHistos, 2);
  };
  

  AliAnalysisTaskFragmentationFunction(); 
  AliAnalysisTaskFragmentationFunction(const char *name);
  AliAnalysisTaskFragmentationFunction(const  AliAnalysisTaskFragmentationFunction &copy);
  AliAnalysisTaskFragmentationFunction& operator=(const  AliAnalysisTaskFragmentationFunction &o);
  virtual ~AliAnalysisTaskFragmentationFunction();
  
  virtual void   UserCreateOutputObjects();
  virtual void   Init();
  virtual void   LocalInit() {Init();}

  virtual void   UserExec(Option_t *option);
  virtual void   Terminate(Option_t* );
  virtual Bool_t Notify();

  virtual void   SetNonStdFile(char* c){fNonStdFile = c;} 

  virtual void   SetTrackTypeGen(Int_t i){fTrackTypeGen = i;}
  virtual void   SetJetTypeGen(Int_t i){fJetTypeGen = i;}
  virtual void   SetJetTypeRecEff(Int_t i){fJetTypeRecEff = i;}

  virtual void   SetBranchRecBackClusters(const char* c){fBranchRecBckgClusters = c;}
  virtual void   SetBranchGenJets(const char* c){fBranchGenJets = c;}
  virtual void   SetBranchRecJets(const char* c){fBranchRecJets = c;}
  virtual void   SetBranchEmbeddedJets(const char* c){fBranchEmbeddedJets = c;}

  virtual void   SetTrackCuts(Float_t trackPt = 0.15, Float_t trackEtaMin = -0.9, Float_t trackEtaMax = 0.9, 
			      Float_t trackPhiMin = 0., Float_t trackPhiMax = 2*TMath::Pi())
  {fTrackPtCut = trackPt; fTrackEtaMin = trackEtaMin; fTrackEtaMax = trackEtaMax; 
    fTrackPhiMin = trackPhiMin; fTrackPhiMax = trackPhiMax;}

  virtual void   UseExtraTracks()        { fUseExtraTracks =  1;}
  virtual void   UseExtraonlyTracks()    { fUseExtraTracks = -1;}

  virtual void   UseExtraTracksBgr()     { fUseExtraTracksBgr =  1;}
  virtual void   UseExtraonlyTracksBgr() { fUseExtraTracksBgr = -1;}

  virtual void   SetCutFractionPtEmbedded(Float_t cut = 0) { fCutFractionPtEmbedded = cut; }
  virtual void   SetUseEmbeddedJetAxis(Bool_t b = kTRUE)   { fUseEmbeddedJetAxis = b; }
  virtual void   SetUseEmbeddedJetPt(Bool_t  b = kTRUE)    { fUseEmbeddedJetPt   = b; }

  virtual void   UseAODInputJets(Bool_t b) {fUseAODInputJets = b;}  
  virtual void   SetFilterMask(UInt_t i) {fFilterMask = i;}
  virtual void   UsePhysicsSelection(Bool_t b) {fUsePhysicsSelection = b;}
  virtual void   SetEventSelectionMask(UInt_t i){fEvtSelectionMask = i;}
  virtual void   SetEventClass(Int_t i){fEventClass = i;}
  virtual void   SetMaxVertexZ(Float_t z){fMaxVertexZ = z;}
  virtual void   SetJetMinArea(Float_t cut){ fJetMinArea = cut; }

  virtual void   RejectPileupEvents(Bool_t b){fRejectPileup = b;}
  virtual void   SetJetCuts(Float_t jetPt = 5., Float_t jetEtaMin = -0.5, Float_t jetEtaMax = 0.5, 
			    Float_t jetPhiMin = 0., Float_t jetPhiMax = 2*TMath::Pi())
  {fJetPtCut = jetPt; fJetEtaMin = jetEtaMin; fJetEtaMax = jetEtaMax; 
    fJetPhiMin = jetPhiMin; fJetPhiMax = jetPhiMax;}

  virtual void   SetFFRadius(Float_t r = 0.4) { fFFRadius = r; }
  virtual void   SetFFMinLTrackPt(Float_t pt = -1) { fFFMinLTrackPt = pt; }
  virtual void   SetFFMaxTrackPt(Float_t pt = -1) { fFFMaxTrackPt = pt; }
  virtual void   SetFFMinNTracks(Int_t nTracks = 0) { fFFMinnTracks = nTracks; }
  virtual void   SetFFBckgRadius(Float_t r = 0.7) { fFFBckgRadius = r; }
  virtual void   SetBckgMode(Bool_t bg = 1) { fBckgMode = bg; }
  virtual void   SetBckgType(Int_t bg0 = 0, Int_t bg1 = 0,Int_t bg2 = 0, Int_t bg3 = 0, Int_t bg4 = 0) 
  { fBckgType[0] = bg0; fBckgType[1] = bg1; fBckgType[2] = bg2; fBckgType[3] = bg3; fBckgType[4] = bg4; }
  virtual void   SetQAMode(Int_t qa = 3)      {fQAMode = qa;}
  virtual void   SetFFMode(Int_t ff = 1)      {fFFMode = ff;}
  virtual void   SetEffMode(Int_t eff = 1)    {fEffMode = eff;}
  virtual void   SetJSMode(Int_t js = 1)      {fJSMode = js;}

  static  void   SetProperties(TH1* h,const char* x, const char* y);
  static  void   SetProperties(TH1* h,const char* x, const char* y,const char* z);
  static  void   SetProperties(THnSparse* h, Int_t dim, const char** labels);

  void   SetHighPtThreshold(Float_t pt = 5.) { fQATrackHighPtThreshold = pt; }

  void   SetFFHistoBins(Int_t nJetPt = 245, Float_t jetPtMin = 5, Float_t jetPtMax = 250, 
			Int_t nPt = 200, Float_t ptMin = 0., Float_t ptMax = 200., 
			Int_t nXi = 70, Float_t xiMin = 0., Float_t xiMax = 7.,
			Int_t nZ = 22,  Float_t zMin = 0.,  Float_t zMax = 1.1)
  { fFFNBinsJetPt = nJetPt; fFFJetPtMin = jetPtMin; fFFJetPtMax = jetPtMax; 
    fFFNBinsPt = nPt; fFFPtMin = ptMin; fFFPtMax = ptMax;
    fFFNBinsXi = nXi; fFFXiMin = xiMin; fFFXiMax = xiMax;
    fFFNBinsZ  = nZ;  fFFZMin  = zMin;  fFFZMax  = zMax; }

  void  SetQAJetHistoBins(Int_t nPt = 300, Float_t ptMin = 0., Float_t ptMax = 300.,
			  Int_t nEta = 20, Float_t etaMin = -1.0, Float_t etaMax = 1.0,
			  Int_t nPhi = 60, Float_t phiMin = 0., Float_t phiMax = 2*TMath::Pi())
    { fQAJetNBinsPt = nPt; fQAJetPtMin = ptMin; fQAJetPtMax = ptMax;
      fQAJetNBinsEta = nEta; fQAJetEtaMin = etaMin; fQAJetEtaMax = etaMax;
      fQAJetNBinsPhi = nPhi; fQAJetPhiMin = phiMin; fQAJetPhiMax = phiMax; }
  
  void  SetQATrackHistoBins(Int_t nPt = 200, Float_t ptMin = 0., Float_t ptMax = 200.,
			    Int_t nEta = 20, Float_t etaMin = -1.0, Float_t etaMax = 1.0,
			    Int_t nPhi = 60, Float_t phiMin = 0., Float_t phiMax = 2*TMath::Pi())
  { fQATrackNBinsPt = nPt; fQATrackPtMin = ptMin; fQATrackPtMax = ptMax;
    fQATrackNBinsEta = nEta; fQATrackEtaMin = etaMin; fQATrackEtaMax = etaMax;
    fQATrackNBinsPhi = nPhi; fQATrackPhiMin = phiMin; fQATrackPhiMax = phiMax; }
  

  Float_t  GetJetMinArea()    const { return fJetMinArea; }
  Float_t  GetFFRadius() const { return fFFRadius; }
  Float_t  GetFFMinLTrackPt() const { return fFFMinLTrackPt; }
  Float_t  GetFFMaxTrackPt() const { return fFFMaxTrackPt; }
  Float_t  GetFFMinNTracks() const { return fFFMinnTracks; }
  Float_t  GetFFBckgRadius() const { return fFFBckgRadius; }
  void	   GetJetTracksTrackrefs(TList* l, const AliAODJet* j, Double_t minPtL, Double_t maxPt, Bool_t& isBadPt);
  void	   GetJetTracksPointing(TList* in, TList* out, const AliAODJet* j, Double_t r, Double_t& sumPt, Double_t minPtL, Double_t maxPt, Bool_t& isBadPt);  
  void     GetTracksOutOfNJets(Int_t nCases, TList* in, TList* out, TList* jets, Double_t& pt);
  void     GetTracksOutOfNJetsStat(Int_t nCases, TList* in, TList* out, TList* jets, Double_t& pt, Double_t &normFactor);
  void     GetTracksTiltedwrpJetAxis(Float_t alpha, TList* inputlist, TList* outputlist, const AliAODJet* jet, Double_t radius, Double_t& sumPt);
  void     GetTracksTiltedwrpJetAxisWindow(Float_t alpha, TList* inputlist, TList* outputlist, const AliAODJet* jet, Double_t radius, Double_t& sumPt, Double_t &normFactor);

  void     AssociateGenRec(TList* tracksAODMCCharged,TList* tracksRec, TArrayI& indexAODTr,TArrayI& indexMCTr,TArrayS& isRefGen,TH2F* fh2PtRecVsGen);

  void     FillSingleTrackHistosRecGen(AliFragFuncQATrackHistos* trackQAGen, AliFragFuncQATrackHistos* trackQARec, TList* tracksGen, 
				       const TArrayI& indexAODTr, const TArrayS& isRefGen, Bool_t scaleStrangeness = kFALSE);


  void     FillJetTrackHistosRec(AliFragFuncHistos* histRec,  AliAODJet* jet, 
				 TList* jetTrackList, const TList* tracksGen, const TList* tracksRec, const TArrayI& indexAODTr,
				 const TArrayS& isRefGen, TList* jetTrackListTR = 0, Bool_t scaleStrangeness = kFALSE,
				 Bool_t fillJS = kFALSE, TProfile* hProNtracksLeadingJet = 0, TProfile** hProDelRPtSum = 0, TProfile* hProDelR80pcPt = 0);


  Float_t  CalcJetArea(const Float_t etaJet, Float_t rc) const;
  void     GetClusterTracksOutOf1Jet(AliAODJet* jet, TList* outputlist, Double_t &normFactor);
  void     GetClusterTracksMedian(TList* outputlist, Double_t &normFactor);

  void     FillBckgHistos(Int_t type, TList* inputtracklist, TList* inputjetlist, AliAODJet* jet, 
			  AliFragFuncHistos* ffbckghistocuts,AliFragFuncQATrackHistos* qabckghistos,TH1F* fh1Mult = 0); 
 
  Double_t GetMCStrangenessFactor(Double_t pt);
  Double_t GetMCStrangenessFactorCMS(AliAODMCParticle* daughter);

  void FillJetShape(AliAODJet* jet, TList* list,  TProfile* hProNtracksLeadingJet, TProfile** hProDelRPtSum, TProfile* hProDelR80pcPt=0, Double_t dPhiUE=0, Double_t normUE = 0, Bool_t scaleStrangeness = kFALSE);


  // Consts
  enum {kTrackUndef=0, kTrackAOD, kTrackAODQualityCuts, kTrackAODCuts, 
	kTrackAODExtra, kTrackAODExtraonly, kTrackAODExtraCuts, kTrackAODExtraonlyCuts, 
	kTrackKineAll, kTrackKineCharged, kTrackKineChargedAcceptance, 
	kTrackAODMCAll, kTrackAODMCCharged, kTrackAODMCChargedAcceptance, kTrackAODMCChargedSecS, kTrackAODMCChargedSecNS, kTrackAOCMCChargedPrimAcceptance};
  enum {kJetsUndef=0, kJetsRec, kJetsRecAcceptance, kJetsGen, kJetsGenAcceptance, kJetsKine, kJetsKineAcceptance,kJetsEmbedded};
  enum {kBckgNone=0, kBckgPerp, kBckgOutLJ, kBckgOut2J, kBckgClusters, kBckgClustersOutLeading, kBckgOut3J, kBckgOutAJ, kBckgOutLJStat, 
	kBckgOut2JStat, kBckgOut3JStat, kBckgOutAJStat,  kBckgASide, kBckgASideWindow, kBckgPerpWindow, kBckgPerp2, kBckgPerp2Area};

 
 protected:
  
  Int_t   GetListOfTracks(TList* list, Int_t type);
  Int_t	  GetListOfJets(TList* list, Int_t type);
  Int_t   GetListOfBckgJets(TList *list, Int_t type);

  AliESDEvent* fESD;      // ESD event
  AliAODEvent* fAOD;      // AOD event
  AliAODEvent* fAODJets;  // AOD event with jet branch (case we have AOD both in input and output)
  AliAODExtension  *fAODExtension; //! where we take the jets from can be input or output AOD
  TString       fNonStdFile; // name of delta aod file to catch the extension
 
 
  TString fBranchRecJets;         // branch name for reconstructed jets
  TString fBranchRecBckgClusters; // branch name for reconstructed background clusters 
  TString fBranchGenJets;         // branch name for generated jets
  TString fBranchEmbeddedJets;    // branch name for embedded jets

  Int_t   fTrackTypeGen;        // type of generated tracks
  Int_t   fJetTypeGen;          // type of generated jets

  Int_t   fJetTypeRecEff;       // type of jets used for filling reconstruction efficiency histos

  Bool_t  fUseAODInputJets;     // take jets from in/output - only relevant if AOD event both in input AND output and we want to use output
  UInt_t  fFilterMask;	        // filter bit for selected tracks
  Bool_t  fUsePhysicsSelection; // switch for event selection
  UInt_t  fEvtSelectionMask;    // trigger class selection
  Int_t   fEventClass;          // centrality class selection
  Float_t fMaxVertexZ;          // maximum abs(z) position of primiary vertex [cm]
  Bool_t  fRejectPileup;        // SPD pileup rejection

  // track cuts
  Float_t fTrackPtCut;    // track transverse momentum cut
  Float_t fTrackEtaMin;   // track eta cut
  Float_t fTrackEtaMax;   // track eta cut
  Float_t fTrackPhiMin;   // track phi cut
  Float_t fTrackPhiMax;   // track phi cut
  
  Int_t   fUseExtraTracks;         // +/- 1: embedded extra/extra only tracks, default: 0 (ignore extra tracks)
  Int_t   fUseExtraTracksBgr;      // +/- 1: background: use embedded extra/extra only tracks, default: 0 (ignore extra tracks)
  Float_t fCutFractionPtEmbedded;  // cut on ratio of embedded pt found in jet
  Bool_t  fUseEmbeddedJetAxis;     // use axis of embedded jet for FF
  Bool_t  fUseEmbeddedJetPt;       // use axis of embedded jet for FF

  // jet cuts
  Float_t fJetPtCut;      // jet transverse momentum cut
  Float_t fJetEtaMin;     // jet eta cut
  Float_t fJetEtaMax;     // jet eta cut
  Float_t fJetPhiMin;     // jet phi cut
  Float_t fJetPhiMax;     // jet phi cut
  Float_t fJetMinArea;    // jet area cut

  Float_t fFFRadius;        // if radius > 0 construct FF from tracks within cone around jet axis, otherwise use trackRefs  
  Float_t fFFMinLTrackPt;   // reject jets with leading track with pt smaller than this value
  Float_t fFFMaxTrackPt;    // reject jets containing any track with pt larger than this value
  Int_t   fFFMinnTracks;    // reject jets with less tracks than this value
  Float_t fFFBckgRadius;    // compute background outside cone of this radius around jet axes
  Bool_t  fBckgMode;        // Set background subtraction mode
  Int_t   fBckgType[5];     // Set background subtraction mode
  Int_t   fQAMode;          // QA mode: 0x00=0 none, 0x01=1 track qa, 0x10=2 track qa, 0x11=3 both
  Int_t   fFFMode;          // fragmentation function mode
  Int_t   fEffMode;         // efficiency mode
  Int_t   fJSMode;          // jet shape mode

  Float_t fAvgTrials;       // average number of trials per event
  
  TList* fTracksRecCuts;           //! reconstructed tracks after cuts
  TList* fTracksGen;               //! generated tracks 
  TList* fTracksAODMCCharged;      //! AOD MC tracks 
  TList* fTracksAODMCChargedSecNS; //! AOD MC tracks - secondaries (non-strangeness) 
  TList* fTracksAODMCChargedSecS;  //! AOD MC tracks - secondaries (from strangeness)
  TList* fTracksRecQualityCuts;    //! reconstructed tracks after quality cuts, no acceptance/pt cut

  
  TList* fJetsRec;        //! jets from reconstructed tracks
  TList* fJetsRecCuts;    //! jets from reonstructed tracks after jet cuts 
  TList* fJetsGen;        //! jets from generated tracks
  TList* fJetsRecEff;     //! jets used for reconstruction efficiency histos 
  TList* fJetsEmbedded;   //! jets used for embedding

  TList* fBckgJetsRec;      //! jets from reconstructed tracks
  TList* fBckgJetsRecCuts;  //! jets from reonstructed tracks after jet cuts
  TList* fBckgJetsGen;      //! jets from generated tracks
 
  
  AliFragFuncQATrackHistos* fQATrackHistosRecCuts;  //! track QA: reconstructed tracks after cuts
  AliFragFuncQATrackHistos* fQATrackHistosGen;      //! track QA: generated tracks
  
  AliFragFuncQAJetHistos*  fQAJetHistosRec;             //! jet QA: jets from reconstructed tracks
  AliFragFuncQAJetHistos*  fQAJetHistosRecCuts;         //! jet QA: jets from reconstructed tracks after jet cuts 
  AliFragFuncQAJetHistos*  fQAJetHistosRecCutsLeading;  //! jet QA: leading jet from reconstructed tracks after jet cuts 
  AliFragFuncQAJetHistos*  fQAJetHistosGen;             //! jet QA: jets from generated tracks  
  AliFragFuncQAJetHistos*  fQAJetHistosGenLeading;      //! jet QA: leading jet from generated tracks  
  AliFragFuncQAJetHistos*  fQAJetHistosRecEffLeading;   //! jet QA: leading jet used for reconstruction efficiency histos  
  

  AliFragFuncHistos*  fFFHistosRecCuts;         //! FF reconstructed tracks after cuts (leading jet) 
  AliFragFuncHistos*  fFFHistosRecCutsInc;      //! inclusive FF (all jets) 
  AliFragFuncHistos*  fFFHistosRecLeadingTrack; //! FF reconstructed tracks after cuts: leading track pt / jet pt (all jets)

  AliFragFuncHistos*  fFFHistosGen;             //! FF generated tracks after cuts 
  AliFragFuncHistos*  fFFHistosGenInc;          //! inclusive FF (all jets) 
  AliFragFuncHistos*  fFFHistosGenLeadingTrack; //! FF reconstructed tracks after cuts: leading track pt / jet pt (all jets)

  Float_t  fQATrackHighPtThreshold;       // track QA high transverse momentum threshold
  
  // histogram bins  

  Int_t   fFFNBinsJetPt;    // FF histos bins
  Float_t fFFJetPtMin;      // FF histos limits
  Float_t fFFJetPtMax;      // FF histos limits

  Int_t   fFFNBinsPt;       // FF histos bins
  Float_t fFFPtMin;         // FF histos limits
  Float_t fFFPtMax;         // FF histos limits

  Int_t   fFFNBinsXi;       // FF histos bins
  Float_t fFFXiMin;         // FF histos limits
  Float_t fFFXiMax;         // FF histos limits

  Int_t   fFFNBinsZ;        // FF histos bins
  Float_t fFFZMin;          // FF histos limits
  Float_t fFFZMax;          // FF histos limits

  Int_t   fQAJetNBinsPt;    // jet QA histos bins
  Float_t fQAJetPtMin;      // jet QA histos limits
  Float_t fQAJetPtMax;      // jet QA histos limits
  
  Int_t   fQAJetNBinsEta;   // jet QA histos bins
  Float_t fQAJetEtaMin;     // jet QA histos limits
  Float_t fQAJetEtaMax;     // jet QA histos limits
  
  Int_t   fQAJetNBinsPhi;   // jet QA histos bins
  Float_t fQAJetPhiMin;     // jet QA histos limits
  Float_t fQAJetPhiMax;     // jet QA histos limits
  
  Int_t   fQATrackNBinsPt;  // track QA histos bins
  Float_t fQATrackPtMin;    // track QA histos limits
  Float_t fQATrackPtMax;    // track QA histos limits
  
  Int_t   fQATrackNBinsEta; // track QA histos bins
  Float_t fQATrackEtaMin;   // track QA histos limits
  Float_t fQATrackEtaMax;   // track QA histos limits
  
  Int_t   fQATrackNBinsPhi; // track QA histos bins
  Float_t fQATrackPhiMin;   // track QA histos limits
  Float_t fQATrackPhiMax;   // track QA histos limits
  
  // Histograms
  TList	*fCommonHistList;         // List of common histos
  
  TH1F  *fh1EvtSelection;         //! event cuts 
  TH1F	*fh1VertexNContributors;  //! NContributors to prim vertex
  TH1F	*fh1VertexZ;              //! prim vertex z distribution
  TH1F	*fh1EvtMult;              //! number of reconstructed tracks after cuts 
  TH1F	*fh1EvtCent;              //! centrality percentile 

  TProfile* fh1Xsec;              //! pythia cross section and trials
  TH1F*     fh1Trials;            //! sum of trials
  TH1F*     fh1PtHard;            //! pt hard of the event
  TH1F*     fh1PtHardTrials;      //! pt hard of the event

  TH1F  *fh1nRecJetsCuts;         //! number of jets from reconstructed tracks per event 
  TH1F  *fh1nGenJets;             //! number of jets from generated tracks per event
  TH1F  *fh1nRecEffJets;          //! number of jets for reconstruction eff per event
  TH1F  *fh1nEmbeddedJets;        //! number of embedded jets per event

  TH1F  *fh1nRecBckgJetsCuts;     //! number of jets from reconstructed tracks per event
  TH1F  *fh1nGenBckgJets;         //! number of jets from generated tracks per event
  TH2F  *fh2PtRecVsGenPrim;       //! association rec/gen MC: rec vs gen pt, primaries 
  TH2F  *fh2PtRecVsGenSec;        //! association rec/gen MC: rec vs gen pt, secondaries 

  // tracking efficiency / secondaries
  
  AliFragFuncQATrackHistos* fQATrackHistosRecEffGen;      //! tracking efficiency: generated primaries 
  AliFragFuncQATrackHistos* fQATrackHistosRecEffRec;      //! tracking efficiency: reconstructed primaries
  AliFragFuncQATrackHistos* fQATrackHistosSecRecNS;       //! reconstructed secondaries (non-strangeness)
  AliFragFuncQATrackHistos* fQATrackHistosSecRecS;        //! reconstructed secondaries (strange mothers)
  AliFragFuncQATrackHistos* fQATrackHistosSecRecSsc;      //! reconstructed secondaries (strange mothers) - scale factor

  AliFragFuncHistos*  fFFHistosRecEffRec;                 //! tracking efficiency: FF reconstructed primaries
  AliFragFuncHistos*  fFFHistosSecRecNS;                  //! secondary contamination: FF reconstructed secondaries (non-strangeness)
  AliFragFuncHistos*  fFFHistosSecRecS;                   //! secondary contamination: FF reconstructed secondaries (strange mothers)
  AliFragFuncHistos*  fFFHistosSecRecSsc;                 //! secondary contamination: FF reconstructed secondaries (strange mothers) - scale factor


  // Background
  TH1F  *fh1BckgMult0; //! background multiplicity
  TH1F  *fh1BckgMult1; //! background multiplicity
  TH1F  *fh1BckgMult2; //! background multiplicity
  TH1F  *fh1BckgMult3; //! background multiplicity
  TH1F  *fh1BckgMult4; //! background multiplicity

  // embedding
  TH1F* fh1FractionPtEmbedded;         //! ratio embedded pt in rec jet to embedded jet pt 
  TH1F* fh1IndexEmbedded;              //! index embedded jet matching to leading rec jet 
  TH2F*	fh2DeltaPtVsJetPtEmbedded;     //! delta pt rec - embedded jet
  TH2F*	fh2DeltaPtVsRecJetPtEmbedded;  //! delta pt rec - embedded jet
  TH1F* fh1DeltaREmbedded;             //! delta R  rec - embedded jet


  AliFragFuncQATrackHistos* fQABckgHisto0RecCuts;  //! track QA: reconstructed tracks after cuts
  AliFragFuncQATrackHistos* fQABckgHisto0Gen;      //! track QA: generated tracks
  AliFragFuncQATrackHistos* fQABckgHisto1RecCuts;  //! track QA: reconstructed tracks after cuts
  AliFragFuncQATrackHistos* fQABckgHisto1Gen;      //! track QA: generated tracks
  AliFragFuncQATrackHistos* fQABckgHisto2RecCuts;  //! track QA: reconstructed tracks after cuts
  AliFragFuncQATrackHistos* fQABckgHisto2Gen;      //! track QA: generated tracks
  AliFragFuncQATrackHistos* fQABckgHisto3RecCuts;  //! track QA: reconstructed tracks after cuts
  AliFragFuncQATrackHistos* fQABckgHisto3Gen;      //! track QA: generated tracks
  AliFragFuncQATrackHistos* fQABckgHisto4RecCuts;  //! track QA: reconstructed tracks after cuts
  AliFragFuncQATrackHistos* fQABckgHisto4Gen;      //! track QA: generated tracks
  
  AliFragFuncHistos*  fFFBckgHisto0RecCuts;       //! Bckg (outside leading jet or 2 jets or more) FF reconstructed tracks after cuts 
  AliFragFuncHistos*  fFFBckgHisto0Gen;           //! Bckg (outside leading jet or 2 jets or more) FF generated tracks after cuts 
  AliFragFuncHistos*  fFFBckgHisto1RecCuts;       //! Bckg (outside leading jet or 2 jets or more) FF reconstructed tracks after cuts 
  AliFragFuncHistos*  fFFBckgHisto1Gen;           //! Bckg (outside leading jet or 2 jets or more) FF generated tracks after cuts 
  AliFragFuncHistos*  fFFBckgHisto2RecCuts;       //! Bckg (outside leading jet or 2 jets or more) FF reconstructed tracks after cuts 
  AliFragFuncHistos*  fFFBckgHisto2Gen;           //! Bckg (outside leading jet or 2 jets or more) FF generated tracks after cuts 
  AliFragFuncHistos*  fFFBckgHisto3RecCuts;       //! Bckg (outside leading jet or 3 jets or more) FF reconstructed tracks after cuts 
  AliFragFuncHistos*  fFFBckgHisto3Gen;           //! Bckg (outside leading jet or 3 jets or more) FF generated tracks after cuts 
  AliFragFuncHistos*  fFFBckgHisto4RecCuts;       //! Bckg (outside leading jet or 4 jets or more) FF reconstructed tracks after cuts 
  AliFragFuncHistos*  fFFBckgHisto4Gen;           //! Bckg (outside leading jet or 4 jets or more) FF generated tracks after cuts 

  AliFragFuncHistos*  fFFBckgHisto0RecEffRec;     //! Bckg (outside leading jet or 2 jets or more) FF reconstructed primaries after cuts 
  AliFragFuncHistos*  fFFBckgHisto0SecRecNS;      //! secondary contamination: FF reconstructed secondaries (non-strangeness)
  AliFragFuncHistos*  fFFBckgHisto0SecRecS;       //! secondary contamination: FF reconstructed secondaries (strange mothers)
  AliFragFuncHistos*  fFFBckgHisto0SecRecSsc;     //! secondary contamination: FF reconstructed secondaries (strange mothers) - scale factor

  TProfile* fProNtracksLeadingJet;          //! jet shape 
  TProfile* fProDelR80pcPt;                 //! jet shape 
  TProfile* fProDelRPtSum[5];               //! jet shape 

  TProfile* fProNtracksLeadingJetGen;       //! jet shape 
  TProfile* fProDelR80pcPtGen;              //! jet shape 
  TProfile* fProDelRPtSumGen[5];            //! jet shape 

  TProfile* fProNtracksLeadingJetBgrPerp2;  //! jet shape 
  TProfile* fProDelRPtSumBgrPerp2[5];       //! jet shape 

  TProfile* fProNtracksLeadingJetRecPrim;   //! jet shape 
  TProfile* fProDelR80pcPtRecPrim;          //! jet shape 
  TProfile* fProDelRPtSumRecPrim[5];        //! jet shape 

  TProfile* fProNtracksLeadingJetRecSecNS;  //! jet shape 
  TProfile* fProDelRPtSumRecSecNS[5];       //! jet shape 

  TProfile* fProNtracksLeadingJetRecSecS;   //! jet shape 
  TProfile* fProDelRPtSumRecSecS[5];        //! jet shape 

  TProfile* fProNtracksLeadingJetRecSecSsc; //! jet shape 
  TProfile* fProDelRPtSumRecSecSsc[5];      //! jet shape 
  

  TRandom3*                   fRandom;          // TRandom3 for background estimation 

  ClassDef(AliAnalysisTaskFragmentationFunction, 12);
};

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