]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG4/JetTasks/AliAnalysisTaskFragmentationFunction.h
correct histogram titles
[u/mrichter/AliRoot.git] / PWG4 / JetTasks / AliAnalysisTaskFragmentationFunction.h
index 4c9e329b0f6108a7057884f0f32181b805daaf9a..36fe00198235dc839b678c7dd40b1d0e71f2ee91 100644 (file)
@@ -1,6 +1,6 @@
-/*************************************************************************
- * Task for Fragmentation Function Analysis in PWG4 Jet Task Force Train *
- *************************************************************************/
+/*************************************************************************
+// * Task for Fragmentation Function Analysis in PWG4 Jet Task Force Train *
+// *************************************************************************
 
 #ifndef ALIANALYSISTASKFRAGMENTATIONFUNCTION_H
 #define ALIANALYSISTASKFRAGMENTATIONFUNCTION_H
 
 class AliESDEvent;
 class AliAODEvent;
+class AliAODExtension;
 class TList;
 class TH1F;
 class TH2F;
+class TH3F;
+class TProfile;
+class THnSparse; 
+class TRandom3;
+class TArrayS;
 
-#include "THnSparse.h"
 #include "AliAnalysisTaskSE.h"
 
 class AliAnalysisTaskFragmentationFunction : public AliAnalysisTaskSE {
@@ -39,7 +44,7 @@ class AliAnalysisTaskFragmentationFunction : public AliAnalysisTaskSE {
     virtual ~AliFragFuncHistos();
     
     virtual void DefineHistos();
-    virtual void FillFF(Float_t trackPt, Float_t jetPt,Bool_t incrementJetPt);
+    virtual void FillFF(Float_t trackPt, Float_t jetPt,Bool_t incrementJetPt, Float_t norm = 0);
     virtual void AddToOutput(TList* list) const;
 
   private:
@@ -62,7 +67,7 @@ class AliAnalysisTaskFragmentationFunction : public AliAnalysisTaskSE {
     TH2F*   fh2Z;         //! FF: z  
     TH1F*   fh1JetPt;     //! jet pt 
 
-    TString fName      // histo names prefix
+    TString fNameFF;      // histo names prefix
     
     ClassDef(AliFragFuncHistos, 1);
   };
@@ -99,7 +104,7 @@ class AliAnalysisTaskFragmentationFunction : public AliAnalysisTaskSE {
     
     TH2F*   fh2EtaPhi;   //! jet phi vs eta 
     TH1F*   fh1Pt;       //! jet transverse momentum 
-    TString fName;       // histo names prefix
+    TString fNameQAJ;    // histo names prefix
     
     ClassDef(AliFragFuncQAJetHistos, 1);
   };
@@ -120,7 +125,7 @@ class AliAnalysisTaskFragmentationFunction : public AliAnalysisTaskSE {
     AliFragFuncQATrackHistos& operator=(const AliFragFuncQATrackHistos &o);
     virtual ~AliFragFuncQATrackHistos();
     virtual void DefineHistos();
-    virtual void FillTrackQA(Float_t eta, Float_t phi, Float_t pt);
+    virtual void FillTrackQA(Float_t eta, Float_t phi, Float_t pt, Bool_t weightPt = kFALSE, Float_t norm = 0.);
     virtual void AddToOutput(TList* list) const;
 
   private:
@@ -140,10 +145,11 @@ class AliAnalysisTaskFragmentationFunction : public AliAnalysisTaskSE {
     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 fName;            // histo names prefix
+    TString fNameQAT;         // histo names prefix
     
-    ClassDef(AliFragFuncQATrackHistos, 1);
+    ClassDef(AliFragFuncQATrackHistos, 2);
   };
   
   //----------------------------------------
@@ -164,7 +170,7 @@ class AliAnalysisTaskFragmentationFunction : public AliAnalysisTaskSE {
     virtual ~AliFragFuncIntraJetHistos();
     
     virtual void DefineHistos();
-    virtual void FillIntraJet(TLorentzVector* trackV, TLorentzVector* jetV);
+    virtual void FillIntraJet(const TLorentzVector* trackV, const TLorentzVector* jetV, Float_t norm = 0);
     virtual void AddToOutput(TList* list) const;
 
   private:
@@ -188,15 +194,14 @@ class AliAnalysisTaskFragmentationFunction : public AliAnalysisTaskSE {
     Float_t fCosThetaMin;   // IntraJet histos limits in cos(theta)
     Float_t fCosThetaMax;   // IntraJet histos limits in cos(theta)
   
-    TH2F*  fh2Theta;         //! IntraJet: theta distribution
-    TH2F*  fh2CosTheta;      //! IntraJet: cos(theta) distribution
-    TH2F*  fh2Jt;            //! IntraJet: jt distribution
-    TH2F*  fh2PtvsZ;         //! IntraJet: pt vs z distribution
+    TH2F*   fh2CosTheta;    //! IntraJet: cos(theta) distribution
+    TH2F*   fh2PtZ;       //! IntraJet: pt vs z distribution
 
-    THnSparseF* fhnIntraJet; //! IntraJet
-    Int_t fnDim;             // HnSparseF dimensions 
+    TH3F*   fh3ThetaZ;      //! IntraJet: theta, z, jet pt
+    TH3F*   fh3JtTheta;     //! IntraJet: jt, theta, jet pt
+    TH3F*   fh3JtZ;         //! IntraJet: jt, z, jet pt
 
-    TString fName;           // histo names prefix
+    TString fNameIJ;         // histo names prefix
     
     ClassDef(AliFragFuncIntraJetHistos, 1);
   };
@@ -223,7 +228,7 @@ class AliAnalysisTaskFragmentationFunction : public AliAnalysisTaskSE {
     
     private:
 
-    Int_t   fKindSlices;
+    Int_t   fKindSlices;      // DJ kind of slices
     Int_t   fNBinsJetInvMass; // FF histos bins
     Float_t fJetInvMassMin;   // FF histos limits
     Float_t fJetInvMassMax;   // FF histos limits
@@ -256,7 +261,7 @@ class AliAnalysisTaskFragmentationFunction : public AliAnalysisTaskSE {
     TH2F*   fh2Pt2;         //! FF dijet : z of jet 2 
     TH2F*   fh2Pt;          //! FF dijet : z of jet 1 and 2 
 
-    TString fName;          // histo names prefix
+    TString fNameDJ;        // histo names prefix
     
     ClassDef(AliFragFuncDiJetHistos, 1);
   };
@@ -270,18 +275,19 @@ class AliAnalysisTaskFragmentationFunction : public AliAnalysisTaskSE {
             Int_t nJetPt = 0,   Float_t jetPtMin = 0, Float_t jetPtMax = 0,
             Int_t nDeltaPhi = 0, Float_t deltaPhiMin = 0, Float_t deltaPhiMax = 0,
             Int_t nDeltaEta = 0, Float_t deltaEtaMin = 0, Float_t deltaEtaMax = 0,
-            Int_t nDeltaPt  = 0, Float_t deltaPtMin  = 0, Float_t deltaPtMax  = 0);
+            Int_t nDeltaPt  = 0, Float_t deltaPtMin  = 0, Float_t deltaPtMax  = 0,
+            Int_t nInBal    = 0, Float_t inBalMin  = 0, Float_t inBalMax  = 0);
     AliFragFuncQADiJetHistos(const AliFragFuncQADiJetHistos& copy);
     AliFragFuncQADiJetHistos& operator=(const AliFragFuncQADiJetHistos &o);
     virtual ~AliFragFuncQADiJetHistos();
     
     virtual void DefineQADiJetHistos();
-    virtual void FillDiJetQA(Double_t invMass, Double_t deltaPhi, Double_t deltaEta, Double_t deltaPt, Double_t jetBin);
+    virtual void FillDiJetQA(Double_t invMass, Double_t deltaPhi, Double_t deltaEta, Double_t deltaPt, Double_t inBal, Double_t jetBin);
     virtual void AddToOutput(TList* list) const;
     
     private:
     
-    Int_t   fKindSlices;
+    Int_t   fKindSlices;       // DJ kind of slices
     Int_t   fNBinsJetInvMass;  // FF histos bins in jet invariant mass
     Float_t fJetInvMassMin;    // FF histos limits in jet invariant mass
     Float_t fJetInvMassMax;    // FF histos limits in jet invariant mass
@@ -297,13 +303,17 @@ class AliAnalysisTaskFragmentationFunction : public AliAnalysisTaskSE {
     Int_t   fNBinsDeltaPt;     // FF histos bins in jet delta pt
     Float_t fDeltaPtMin;       // FF histos limits in jet delta pt
     Float_t fDeltaPtMax;       // FF histos limits in jet delta pt
+    Int_t   fNBinsInBal;       // FF histos bins in jet delta pt
+    Float_t fInBalMin;         // FF histos limits in pt inbalance
+    Float_t fInBalMax;         // FF histos limits in pt inbalance
 
     TH2F*   fh2InvMass;        // FF dijet invariant mass histos
     TH2F*   fh2DeltaPhi;       // FF dijet delta phi histos
     TH2F*   fh2DeltaEta;       // FF dijet delta eta histos
     TH2F*   fh2DeltaPt;        // FF dijet delta pt histos
+    TH2F*   fh2InBal;        // FF dijet delta pt histos
 
-    TString fName;             // histo names prefix
+    TString fNameQADJ;         // histo names prefix
     
     ClassDef(AliFragFuncQADiJetHistos, 1);
   };
@@ -319,18 +329,39 @@ class AliAnalysisTaskFragmentationFunction : public AliAnalysisTaskSE {
   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   SetBranchRecBackJets(const char* c){fBranchRecBackJets = c;}
+  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   SetEventClass(Int_t i){fEventClass = i;}
+  virtual void   SetMaxVertexZ(Float_t z){fMaxVertexZ = z;}
   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; 
@@ -339,19 +370,32 @@ class AliAnalysisTaskFragmentationFunction : public AliAnalysisTaskSE {
                              Float_t cdfCut = 0.5, Float_t ptFractionCut = 0.6)
   {fDiJetCut = cutType; fDiJetDeltaPhiCut = deltaPhiCut;  
     fDiJetCDFCut = cdfCut; fDiJetPtFractionCut = ptFractionCut;}
-  virtual void   SetKindSlices(Int_t slice) {fDiJetKindBins = slice;}
+  virtual void   SetKindSlices(Int_t slice = 1) {fDiJetKindBins = slice;}
 
   virtual void   SetFFRadius(Float_t r = 0.4) { fFFRadius = r; }
+  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 = 1,Int_t bg2 = 2, Int_t bg3 = 3, Int_t bg4 = 4) 
+  { fBckgType[0] = bg0; fBckgType[1] = bg1; fBckgType[2] = bg2; fBckgType[3] = bg3; fBckgType[4] = bg4; }
+  virtual void   SetIJMode(Int_t ij = 1)      {fIJMode = ij;}
+  virtual void   SetQAMode(Int_t qa = 3)      {fQAMode = qa;}
+  virtual void   SetFFMode(Int_t ff = 1)      {fFFMode = ff;}
+  virtual void   SetDJMode(Int_t dj = 1)      {fDJMode = dj;}
+  virtual void   SetEffMode(Int_t eff = 1)    {fEffMode = eff;}
+  virtual void   SetPhiCorrMode(Int_t pc = 1) {fPhiCorrMode = pc;}
+  virtual void   SetBckgSubMethod(Int_t bg = 0) {fBckgSubMethod = bg;}
+
+  virtual void   UseRecEffRecJetPtBins(Bool_t useRec = kFALSE)  { fUseRecEffRecJetPtBins = useRec; }
+  virtual void   UseResponseRecJetPtBins(Bool_t useRec = kTRUE) { fUseResponseRecJetPtBins = useRec; }
 
   static  void   SetProperties(TH1* h,const char* x, const char* y);
-  static  void   SetProperties(TH2* h,const char* x, const char* y,const char* z);
-  static  void   SetProperties(THnSparse* h, Int_t dim, const char** labels);
+  static  void   SetProperties(TH1* h,const char* x, const char* y,const char* z);
+  static  void   SetProperties(THnSparse* h,const Int_t dim, const char** labels);
 
   void   SetHighPtThreshold(Float_t pt = 5.) { fQATrackHighPtThreshold = pt; }
 
-
-  void   SetFFHistoBins(Int_t nJetPt = 55, Float_t jetPtMin = 5, Float_t jetPtMax = 60, 
-                       Int_t nPt = 70, Float_t ptMin = 0., Float_t ptMax = 70., 
+  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; 
@@ -359,90 +403,132 @@ class AliAnalysisTaskFragmentationFunction : public AliAnalysisTaskSE {
     fFFNBinsXi = nXi; fFFXiMin = xiMin; fFFXiMax = xiMax;
     fFFNBinsZ  = nZ;  fFFZMin  = zMin;  fFFZMax  = zMax; }
   
-  void  SetQAJetHistoBins(Int_t nPt = 200, Float_t ptMin = 0., Float_t ptMax = 200.,
+  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 = 70, Float_t ptMin = 0., Float_t ptMax = 70.,
+  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; }
   
-  void   SetIJHistoBins(Int_t nJetPt = 55, Float_t jetPtMin = 5, Float_t jetPtMax = 60, 
-                       Int_t nPt = 70, Float_t ptMin = 0., Float_t ptMax = 70., 
-                       Int_t nZ = 22,  Float_t zMin = 0.,  Float_t zMax = 1.1,
-                       Int_t nCosTheta = 100,  Float_t costhetaMin = 0.,  Float_t costhetaMax = 1.,
-                       Int_t nTheta = 200,  Float_t thetaMin = -0.5,  Float_t thetaMax = 1.5,
-                       Int_t nJt = 25,  Float_t jtMin = 0.,  Float_t jtMax = 5.)
-  { fIJNBinsJetPt = nJetPt; fIJJetPtMin = jetPtMin; fIJJetPtMax = jetPtMax; 
-    fIJNBinsPt = nPt; fIJPtMin = ptMin; fIJPtMax = ptMax;
-    fIJNBinsZ = nZ; fIJZMin = zMin; fIJZMax = zMax;
-    fIJNBinsCosTheta  = nCosTheta;  fIJCosThetaMin  = costhetaMin;  fIJCosThetaMax  = costhetaMax;
-    fIJNBinsTheta  = nTheta;  fIJThetaMin  = thetaMin;  fIJThetaMax  = thetaMax;
-    fIJNBinsJt  = nJt;  fIJJtMin  = jtMin;  fIJJtMax  = jtMax; }
-
-  void SetDiJetHistoBins(Int_t nJetInvMass = 55, Float_t jetInvMassMin = 5, Float_t jetInvMassMax = 60, 
-                        Int_t nJetPt = 55, Float_t jetPtMin = 5, Float_t jetPtMax = 60, 
-                        Int_t nPt = 70, Float_t ptMin = 0., Float_t ptMax = 70., 
-                        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)
+  void  SetPhiCorrHistoBins(Int_t nPt = 200, Float_t ptMin = 0., Float_t ptMax = 200.,
+                                Int_t nEta = 1, Float_t etaMin = -0.9, Float_t etaMax = 0.9,
+                                Int_t nPhi = 64, Float_t phiMin = -3.2, Float_t phiMax = 3.2)
+  { fPhiCorrNBinsPt = nPt; fPhiCorrPtMin = ptMin; fPhiCorrPtMax = ptMax;
+    fPhiCorrNBinsEta = nEta; fPhiCorrEtaMin = etaMin; fPhiCorrEtaMax = etaMax;
+    fPhiCorrNBinsPhi = nPhi; fPhiCorrPhiMin = phiMin; fPhiCorrPhiMax = phiMax; }
+
+  void   SetIJHistoBins(Int_t nJetPt = 23, Float_t jetPtMin = 5, Float_t jetPtMax = 120, Int_t nPt = 120, Float_t ptMin = 0., Float_t ptMax = 120., 
+                       Int_t nZ = 22,  Float_t zMin = 0.,  Float_t zMax = 1.1, Int_t nCosTheta = 100,  Float_t costhetaMin = 0.,  Float_t costhetaMax = 1.,
+                       Int_t nTheta = 200,  Float_t thetaMin = -0.5,  Float_t thetaMax = 1.5, Int_t nJt = 25,  Float_t jtMin = 0.,  Float_t jtMax = 5.)
+  { fIJNBinsJetPt = nJetPt; fIJJetPtMin = jetPtMin; fIJJetPtMax = jetPtMax; fIJNBinsPt = nPt; fIJPtMin = ptMin; fIJPtMax = ptMax;
+    fIJNBinsZ = nZ; fIJZMin = zMin; fIJZMax = zMax;fIJNBinsCosTheta  = nCosTheta;  fIJCosThetaMin  = costhetaMin;  fIJCosThetaMax  = costhetaMax;
+    fIJNBinsTheta  = nTheta;  fIJThetaMin  = thetaMin;  fIJThetaMax  = thetaMax; fIJNBinsJt  = nJt;  fIJJtMin  = jtMin;  fIJJtMax  = jtMax; }
+
+  void SetDiJetHistoBins(Int_t nJetInvMass = 245, Float_t jetInvMassMin = 5, Float_t jetInvMassMax = 250, 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)
   {
-    fDiJetNBinsJetInvMass = nJetInvMass; fDiJetJetInvMassMin = jetInvMassMin; fDiJetJetInvMassMax = jetInvMassMax;
-    fDiJetNBinsJetPt = nJetPt; fDiJetJetPtMin = jetPtMin; fDiJetJetPtMax = jetPtMax;
-    fDiJetNBinsPt = nPt; fDiJetPtMin = ptMin; fDiJetPtMax = ptMax;
-    fDiJetNBinsXi = nXi; fDiJetXiMin = xiMin; fDiJetXiMax = xiMax;
-    fDiJetNBinsZ = nZ; fDiJetZMin = zMin; fDiJetZMax = zMax;
+    fDiJetNBinsJetInvMass = nJetInvMass; fDiJetJetInvMassMin = jetInvMassMin; fDiJetJetInvMassMax = jetInvMassMax; fDiJetNBinsJetPt = nJetPt; fDiJetJetPtMin = jetPtMin; 
+    fDiJetJetPtMax = jetPtMax; fDiJetNBinsPt = nPt; fDiJetPtMin = ptMin; fDiJetPtMax = ptMax; fDiJetNBinsXi = nXi; fDiJetXiMin = xiMin; 
+    fDiJetXiMax = xiMax; fDiJetNBinsZ = nZ; fDiJetZMin = zMin; fDiJetZMax = zMax;
   }
 
-  void SetQADiJetHistoBins(Int_t nInvMass = 55, Float_t invMassMin = 5., Float_t invMassMax = 60.,
-                          Int_t nJetPt = 55, Float_t jetPtMin = 5, Float_t jetPtMax = 60, 
-                          Int_t nDeltaPhi = 100, Float_t deltaPhiMin = 0., Float_t deltaPhiMax = TMath::Pi(),
-                          Int_t nDeltaEta = 22, Float_t deltaEtaMin = 0., Float_t deltaEtaMax = 1.1,
-                          Int_t nDeltaPt = 100, Float_t deltaPtMin = 0., Float_t deltaPtMax = 100.)
+  void SetQADiJetHistoBins(Int_t nInvMass = 245, Float_t invMassMin = 5., Float_t invMassMax = 250., Int_t nJetPt = 245, Float_t jetPtMin = 5, Float_t jetPtMax = 250, 
+                          Int_t nDeltaPhi = 100, Float_t deltaPhiMin = 0., Float_t deltaPhiMax = TMath::Pi(), Int_t nDeltaEta = 22, Float_t deltaEtaMin = 0., 
+                          Float_t deltaEtaMax = 1.1, Int_t nDeltaPt = 100, Float_t deltaPtMin = 0., Float_t deltaPtMax = 100.,
+                          Int_t nInBal = 22, Float_t inBalMin = -1.1, Float_t inBalMax = 1.1)
   {
-    fQADiJetNBinsInvMass = nInvMass; fQADiJetInvMassMin = invMassMin; fQADiJetInvMassMax = invMassMax;
-    fQADiJetNBinsJetPt = nJetPt; fQADiJetJetPtMin = jetPtMin; fQADiJetJetPtMax = jetPtMax;
-    fQADiJetNBinsDeltaPhi = nDeltaPhi; fQADiJetDeltaPhiMin = deltaPhiMin; fQADiJetDeltaPhiMax = deltaPhiMax;
-    fQADiJetNBinsDeltaEta = nDeltaEta; fQADiJetDeltaEtaMin = deltaEtaMin; fQADiJetDeltaEtaMax = deltaEtaMax;
-    fQADiJetNBinsDeltaPt = nDeltaPt; fQADiJetDeltaPtMin = deltaPtMin; fQADiJetDeltaPtMax = deltaPtMax;
-
+    fQADiJetNBinsInvMass = nInvMass; fQADiJetInvMassMin = invMassMin; fQADiJetInvMassMax = invMassMax; fQADiJetNBinsJetPt = nJetPt; fQADiJetJetPtMin = jetPtMin; 
+    fQADiJetJetPtMax = jetPtMax; fQADiJetNBinsDeltaPhi = nDeltaPhi; fQADiJetDeltaPhiMin = deltaPhiMin; fQADiJetDeltaPhiMax = deltaPhiMax; fQADiJetNBinsDeltaEta = nDeltaEta; 
+    fQADiJetDeltaEtaMin = deltaEtaMin; fQADiJetDeltaEtaMax = deltaEtaMax; fQADiJetNBinsDeltaPt = nDeltaPt; fQADiJetDeltaPtMin = deltaPtMin; fQADiJetDeltaPtMax = deltaPtMax;
+    fQADiJetNBinsInBal = nInBal; fQADiJetInBalMin = inBalMin; fQADiJetInBalMax = inBalMax;
   }
 
   Float_t  GetFFRadius() const { return fFFRadius; }
-  void    GetJetTracksTrackrefs(TList* l, AliAODJet* j);
-  void    GetJetTracksPointing(TList* in, TList* out, AliAODJet* j, const Double_t r, Double_t& pt);  
+  Float_t  GetFFBckgRadius() const { return fFFBckgRadius; }
+  void    GetJetTracksTrackrefs(TList* l, const AliAODJet* j);
+  void    GetJetTracksPointing(TList* in, TList* out, const AliAODJet* j, const Double_t r, Double_t& pt);  
+  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, AliAODJet* jet, Double_t radius, Double_t& sumPt);
+  void     GetTracksTiltedwrpJetAxisWindow(Float_t alpha, TList* inputlist, TList* outputlist, AliAODJet* jet, Double_t radius, Double_t& sumPt, Double_t &normFactor);
+
   Double_t GetDiJetBin(Double_t invMass, Double_t leadingJetPt, Double_t eMean, Int_t kindSlices); // function to find which bin fill
-  Double_t InvMass(AliAODJet* jet1, AliAODJet* jet2);
+  Double_t InvMass(const AliAODJet* jet1, const AliAODJet* jet2);
 
+  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);
+  void     FillJetTrackHistosRecGen(TObject* histGen,TObject* histRec,Double_t jetPtGen,Double_t jetPtRec, TList* jetTrackList, const TList* tracksGen,
+                                   const TArrayI& indexAODTr,const TArrayS& isRefGen, const Bool_t useRecJetPt);
+
+  void     FillTwoTrackHistosRecGen(TList* tracksGen, /*TList* tracksRec, const TArrayI& indexAODTr, */ const TArrayS& isRefGen);
+
+  void     FillSingleTrackResponse(THnSparse* hnResponse, TList* tracksGen, TList* tracksRec, const TArrayI& indexAODTr, const TArrayS& isGenPrim);
+  void     FillJetTrackResponse(THnSparse* hnResponsePt, THnSparse* hnResponseZ, THnSparse* hnResponseXi, 
+                               Double_t jetPtGen, Double_t jetPtRec, TList* jetTrackList,
+                               const TList* tracksGen, TList* tracksRec, const TArrayI& indexAODTr, const TArrayS& isGenPrim,const Bool_t useRecJetPt);
+
+
+  Float_t  CalcJetArea(const Float_t etaJet, const 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, 
+                         Float_t leadTrackPt, TLorentzVector* leadTrackV, AliFragFuncHistos* ffbckghistocuts,
+                         AliFragFuncHistos* ffbckghistoleading,AliFragFuncIntraJetHistos* ijbckghistocuts, 
+                         AliFragFuncIntraJetHistos* ijbckghistoleading,AliFragFuncQATrackHistos* qabckghistos);    
+  AliAODJet* GetAODBckgSubJet(AliAODJet* jet, Int_t method);
 
- private:
-    
   // Consts
-  
-  enum {kTrackUndef=0, kTrackAOD, kTrackAODCuts, kTrackKineAll, kTrackKineCharged, kTrackKineChargedAcceptance, kTrackAODMCAll, kTrackAODMCCharged, kTrackAODMCChargedAcceptance};
-  enum {kJetsUndef=0, kJetsRec, kJetsRecAcceptance, kJetsGen, kJetsGenAcceptance, kJetsKine, kJetsKineAcceptance};
-  
+  enum {kTrackUndef=0, kTrackAOD, kTrackAODQualityCuts, kTrackAODCuts, 
+       kTrackAODExtra, kTrackAODExtraonly, kTrackAODExtraCuts, kTrackAODExtraonlyCuts, 
+       kTrackKineAll, kTrackKineCharged, kTrackKineChargedAcceptance, 
+       kTrackAODMCAll, kTrackAODMCCharged, kTrackAODMCChargedAcceptance, kTrackAODMCChargedSec};
+  enum {kJetsUndef=0, kJetsRec, kJetsRecAcceptance, kJetsGen, kJetsGenAcceptance, kJetsKine, kJetsKineAcceptance,kJetsEmbedded};
+  enum {kBckgPerp=0, kBckgOutLJ, kBckgOut2J, kBckgClusters, kBckgClustersOutLeading, kBckgOut3J, kBckgOutAJ, kBckgOutLJStat, 
+       kBckgOut2JStat, kBckgOut3JStat, kBckgOutAJStat,  kBckgASide, kBckgASideWindow, kBckgPerpWindow};
+
+ 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
-  AliMCEvent*  fMCEvent;  // MC 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
+  //AliMCEvent*  fMCEvent;  // MC event
+  TString       fNonStdFile; // name of delta aod file to catch the extension
   TString fBranchRecJets;         // branch name for reconstructed jets
+  TString fBranchRecBackJets;     // branch name for reconstructed background jets
+  TString fBranchRecBckgClusters; // branch name for reconstructed background clusters 
   TString fBranchGenJets;         // branch name for generated jets
-  
-  Int_t   fTrackTypeGen;  // type of generated tracks
-  Int_t   fJetTypeGen;    // type of 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
+  Int_t   fEventClass;          // event class to be looked at for this instace of the task
+  Float_t fMaxVertexZ;          // maximum abs(z) position of primiary vertex [cm]
 
-  UInt_t  fFilterMask;   // filter bit for selected tracks
-       
   // track cuts
   Float_t fTrackPtCut;    // track transverse momentum cut
   Float_t fTrackEtaMin;   // track eta cut
@@ -450,6 +536,12 @@ class AliAnalysisTaskFragmentationFunction : public AliAnalysisTaskSE {
   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
@@ -464,18 +556,41 @@ class AliAnalysisTaskFragmentationFunction : public AliAnalysisTaskSE {
   Float_t fDiJetCDFCut;         // cdf cut value
 
   Int_t   fDiJetKindBins;       // type of bins: invmass, etleading, emean
-  static  TArrayD* fDiJetBins;   // bining in invmass, etleading, emean
 
   Float_t fFFRadius;        // if radius > 0 construct FF from tracks within cone around jet axis, otherwise use trackRefs  
+  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   fIJMode;          // Set intrajet 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   fDJMode;          // dijet mode: 0x00=0 none, 0x01=1 di-jet, 0x10=2 di-jet qa, 0x11=3 both
+  Int_t   fEffMode;         // efficiency mode
+  Int_t   fPhiCorrMode;     // track phi correlation mode
+
+  Bool_t  fUseRecEffRecJetPtBins;   // bin track reconstruction efficiency in reconstructed/generated jet pt bins 
+  Bool_t  fUseResponseRecJetPtBins; // bin track response matrix in reconstructed/generated jet pt bins 
+
+  Float_t fAvgTrials;       // average number of trials per event
   
-  TList* fTracksRec;      //! reconstructed tracks
-  TList* fTracksRecCuts;  //! reconstructed tracks after cuts
-  TList* fTracksGen;      //! generated tracks 
+  TList* fTracksRec;             //! reconstructed tracks
+  TList* fTracksRecCuts;         //! reconstructed tracks after cuts
+  TList* fTracksGen;             //! generated tracks 
+  TList* fTracksAODMCCharged;    //! AOD MC tracks 
+  TList* fTracksAODMCChargedSec; //! AOD MC tracks - secondaries 
+  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* fQATrackHistosRec;      //! track QA: reconstructed tracks
   AliFragFuncQATrackHistos* fQATrackHistosRecCuts;  //! track QA: reconstructed tracks after cuts
@@ -486,7 +601,9 @@ class AliAnalysisTaskFragmentationFunction : public AliAnalysisTaskSE {
   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 
   AliFragFuncHistos*  fFFHistosRecLeading;      //! FF reconstructed tracks after cuts: all reconstructed tracks pt / leading track pt  
   AliFragFuncHistos*  fFFHistosRecLeadingTrack; //! FF reconstructed tracks after cuts: leading track pt / jet pt
@@ -513,6 +630,9 @@ class AliAnalysisTaskFragmentationFunction : public AliAnalysisTaskSE {
   AliFragFuncQADiJetHistos* fQADiJetHistosRecCuts;       //! Dijet QA : reconstructed tracks after cuts
   AliFragFuncQADiJetHistos* fQADiJetHistosGen;           //! DiJet QA: jets from generated tracks  
 
+  AliFragFuncQATrackHistos* fPhiCorrHistosJetArea;        //! tracks in area of leading jet (phi = phi_jet - phi_track, eta = eta_track)
+  AliFragFuncQATrackHistos* fPhiCorrHistosTransverseArea; //! tracks in area transverse region (shift of phi by 90�)
+  AliFragFuncQATrackHistos* fPhiCorrHistosAwayArea;       //! tracks in area in away region (shift of phi by 180�)
 
   Float_t  fQATrackHighPtThreshold;       // track QA high transverse momentum threshold
   
@@ -618,6 +738,23 @@ class AliAnalysisTaskFragmentationFunction : public AliAnalysisTaskSE {
   Float_t fQADiJetDeltaPtMin;    // dijet QA histos limits
   Float_t fQADiJetDeltaPtMax;    // dijet QA histos limits
 
+  Int_t   fQADiJetNBinsInBal;  // dijet QA histos bins
+  Float_t fQADiJetInBalMin;    // dijet QA histos limits
+  Float_t fQADiJetInBalMax;    // dijet QA histos limits
+
+  // phi correlation
+  Int_t   fPhiCorrNBinsPt;  // track related to jet histos bins 
+  Float_t fPhiCorrPtMin;    // track related to jet histos limits
+  Float_t fPhiCorrPtMax;    // track related to jet histos limits
+  
+  Int_t   fPhiCorrNBinsEta; // track related to jet histos bins
+  Float_t fPhiCorrEtaMin;   // track related to jet histos limits
+  Float_t fPhiCorrEtaMax;   // track related to jet histos limits
+  
+  Int_t   fPhiCorrNBinsPhi; // track related to jet histos bins
+  Float_t fPhiCorrPhiMin;   // track related to jet histos limits
+  Float_t fPhiCorrPhiMax;   // track related to jet histos limits
+
   // Histograms
   TList        *fCommonHistList;         // List of common histos
   
@@ -625,10 +762,130 @@ class AliAnalysisTaskFragmentationFunction : public AliAnalysisTaskSE {
   TH1F *fh1VertexNContributors;  //! NContributors to prim vertex
   TH1F *fh1VertexZ;              //! prim vertex z distribution
   TH1F *fh1EvtMult;              //! number of reconstructed tracks after cuts 
+  TH1F *fh1EvtCent;              //! centrality percentile 
+
+  TH2F  *fh2TrackPtVsDCAXY;       //! track pt vs DCA 
+  TH2F  *fh2TrackPtVsDCAZ;        //! track pt vs DCA
+
+
+  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
-
-  ClassDef(AliAnalysisTaskFragmentationFunction, 3);
+  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* fQATrackHistosSecRec;         //! reconstructed secondaries
+
+  AliFragFuncHistos*  fFFHistosRecEffGen;                 //! tracking efficiency: FF generated primaries  
+  AliFragFuncHistos*  fFFHistosRecEffRec;                 //! tracking efficiency: FF reconstructed primaries
+  AliFragFuncHistos*  fFFHistosSecRec;                    //! secondary contamination: FF reconstructed secondaries
+
+  // momentum resolution 
+  THnSparse* fhnResponseSinglePt;      //! single track response pt
+  TH2F* fh2SingleInvPtRecMnGenVsPtGen; //! single track response inv pt
+
+  THnSparse* fhnResponseJetTrackPt;  //! jet track response pt 
+  THnSparse* fhnResponseJetZ;        //! jet track response z 
+  THnSparse* fhnResponseJetXi;       //! jet track response xi
+
+
+  // Background
+  TH1F  *fh1OutLeadingMult;       //! background multiplicity outside leading jet
+  TH1F  *fh1OutLeadingStatMult;   //! background multiplicity outside leading jet (stat)
+  TH1F  *fh1PerpMult;             //! background multiplicity perpendicular to the leading jet
+  TH1F  *fh1ASideMult;            //! background multiplicity perpendicular to the leading jet
+  TH1F  *fh1ASideWindowMult;      //! background multiplicity perpendicular to the leading jet
+  TH1F  *fh1PerpWindowMult;       //! background multiplicity perpendicular to the leading jet
+  TH1F  *fh1Out2JetsMult;         //! background multiplicity outside 2 jets
+  TH1F  *fh1Out3JetsMult;         //! background multiplicity outside 3 jets
+  TH1F  *fh1MedianClustersMult;   //! background multiplicity median cluster
+  TH1F  *fh1OutClustersMult;      //! background multiplicity clusters outside leading jet
+
+  // 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
+
+  // 2track resolution
+  TH2F* fh2ptVsDistNN_pt50_rec;    //!
+  TH2F* fh2ptVsDistNN_pt50_nonRec; //!
+  TH2F* fh2ptVsDistNN_pt10_rec;    //!
+  TH2F* fh2ptVsDistNN_pt10_nonRec; //!
+
+  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*  fFFBckgHisto0RecLeading;    //! Bckg (outside leading jet or 2 jets or more) FF reconstructed tracks after cuts: all reconstructed tracks pt / leading track pt  
+  AliFragFuncHistos*  fFFBckgHisto0Gen;           //! Bckg (outside leading jet or 2 jets or more) FF generated tracks after cuts 
+  AliFragFuncHistos*  fFFBckgHisto0GenLeading;    //! Bckg (outside leading jet or 2 jets or more) FF reconstructed tracks after cuts: all reconstructed tracks pt / leading track pt  
+  AliFragFuncHistos*  fFFBckgHisto1RecCuts;       //! Bckg (outside leading jet or 2 jets or more) FF reconstructed tracks after cuts 
+  AliFragFuncHistos*  fFFBckgHisto1RecLeading;    //! Bckg (outside leading jet or 2 jets or more) FF reconstructed tracks after cuts: all reconstructed tracks pt / leading track pt  
+  AliFragFuncHistos*  fFFBckgHisto1Gen;           //! Bckg (outside leading jet or 2 jets or more) FF generated tracks after cuts 
+  AliFragFuncHistos*  fFFBckgHisto1GenLeading;    //! Bckg (outside leading jet or 2 jets or more) FF reconstructed tracks after cuts: all reconstructed tracks pt / leading track pt  
+  AliFragFuncHistos*  fFFBckgHisto2RecCuts;       //! Bckg (outside leading jet or 2 jets or more) FF reconstructed tracks after cuts 
+  AliFragFuncHistos*  fFFBckgHisto2RecLeading;    //! Bckg (outside leading jet or 2 jets or more) FF reconstructed tracks after cuts: all reconstructed tracks pt / leading track pt  
+  AliFragFuncHistos*  fFFBckgHisto2Gen;           //! Bckg (outside leading jet or 2 jets or more) FF generated tracks after cuts 
+  AliFragFuncHistos*  fFFBckgHisto2GenLeading;    //! Bckg (outside leading jet or 2 jets or more) FF reconstructed tracks after cuts: all reconstructed tracks pt / leading track pt  
+  AliFragFuncHistos*  fFFBckgHisto3RecCuts;       //! Bckg (outside leading jet or 3 jets or more) FF reconstructed tracks after cuts 
+  AliFragFuncHistos*  fFFBckgHisto3RecLeading;    //! Bckg (outside leading jet or 3 jets or more) FF reconstructed tracks after cuts: all reconstructed tracks pt / leading track pt  
+  AliFragFuncHistos*  fFFBckgHisto3Gen;           //! Bckg (outside leading jet or 3 jets or more) FF generated tracks after cuts 
+  AliFragFuncHistos*  fFFBckgHisto3GenLeading;    //! Bckg (outside leading jet or 3 jets or more) FF reconstructed tracks after cuts: all reconstructed tracks pt / leading track pt
+  AliFragFuncHistos*  fFFBckgHisto4RecCuts;       //! Bckg (outside leading jet or 4 jets or more) FF reconstructed tracks after cuts 
+  AliFragFuncHistos*  fFFBckgHisto4RecLeading;    //! Bckg (outside leading jet or 4 jets or more) FF reconstructed tracks after cuts: all reconstructed tracks pt / leading track pt  
+  AliFragFuncHistos*  fFFBckgHisto4Gen;           //! Bckg (outside leading jet or 4 jets or more) FF generated tracks after cuts 
+  AliFragFuncHistos*  fFFBckgHisto4GenLeading;    //! Bckg (outside leading jet or 4 jets or more) FF reconstructed tracks after cuts: all reconstructed tracks pt / leading track pt
+
+
+  AliFragFuncIntraJetHistos*  fIJBckgHisto0RecCuts;    //!
+  AliFragFuncIntraJetHistos*  fIJBckgHisto0RecLeading; //!
+  AliFragFuncIntraJetHistos*  fIJBckgHisto0Gen;        //!
+  AliFragFuncIntraJetHistos*  fIJBckgHisto0GenLeading; //!
+  AliFragFuncIntraJetHistos*  fIJBckgHisto1RecCuts;    //!
+  AliFragFuncIntraJetHistos*  fIJBckgHisto1RecLeading; //!
+  AliFragFuncIntraJetHistos*  fIJBckgHisto1Gen;        //!
+  AliFragFuncIntraJetHistos*  fIJBckgHisto1GenLeading; //!
+  AliFragFuncIntraJetHistos*  fIJBckgHisto2RecCuts;    //!
+  AliFragFuncIntraJetHistos*  fIJBckgHisto2RecLeading; //!
+  AliFragFuncIntraJetHistos*  fIJBckgHisto2Gen;        //!
+  AliFragFuncIntraJetHistos*  fIJBckgHisto2GenLeading; //!
+  AliFragFuncIntraJetHistos*  fIJBckgHisto3RecCuts;    //!
+  AliFragFuncIntraJetHistos*  fIJBckgHisto3RecLeading; //!
+  AliFragFuncIntraJetHistos*  fIJBckgHisto3Gen;        //!
+  AliFragFuncIntraJetHistos*  fIJBckgHisto3GenLeading; //!
+  AliFragFuncIntraJetHistos*  fIJBckgHisto4RecCuts;    //!
+  AliFragFuncIntraJetHistos*  fIJBckgHisto4RecLeading; //!
+  AliFragFuncIntraJetHistos*  fIJBckgHisto4Gen;        //!
+  AliFragFuncIntraJetHistos*  fIJBckgHisto4GenLeading; //!
+
+  TRandom3*                   fRandom;          // TRandom3 for background estimation 
+  Int_t                       fBckgSubMethod;   // Bckg method: 1 = leading jet excluded, 2 = 2 most energetic jets excluded        
+
+  ClassDef(AliAnalysisTaskFragmentationFunction, 11);
 };
 
 #endif