ROOT logo
// **************************************
// Task used for the correction of determiantion of reconstructed jet spectra
// Compares input (gen) and output (rec) jets   
// *******************************************


/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

 
#include <TROOT.h>
#include <TH1F.h>
#include <TH2F.h>
#include <THnSparse.h>
#include <TSystem.h>
#include <TObjArray.h>
#include <TInterpreter.h>
#include <TList.h>
#include <TLorentzVector.h>
#include <TRefArray.h>
#include  "TDatabasePDG.h"

#include "AliAnalysisTaskJetBackgroundSubtract.h"
#include "AliAnalysisManager.h"
#include "AliAODHandler.h"
#include "AliAODTrack.h"
#include "AliAODJet.h"
#include "AliAODEvent.h"
#include "AliInputEventHandler.h"
#include "AliAODJetEventBackground.h"


ClassImp(AliAnalysisTaskJetBackgroundSubtract)

AliAnalysisTaskJetBackgroundSubtract::~AliAnalysisTaskJetBackgroundSubtract(){
  // 
  // destructor
  //
  delete fJBArray;
  delete fOutJetArrayList;
  delete fInJetArrayList;
}

AliAnalysisTaskJetBackgroundSubtract::AliAnalysisTaskJetBackgroundSubtract(): 
  AliAnalysisTaskSE(),
  fAODOut(0x0),
  fAODIn(0x0),  
  fAODExtension(0x0),
  fJBArray(0),
  fBackgroundBranch(""),
  fNonStdFile(""),
  fReplaceString1("B0"),
  fReplaceString2("B%d"),
  fSubtraction(k4Area),
  fKeepJets(kFALSE),
  fExclude2Leading(kTRUE),
  fInJetArrayList(0x0),
  fOutJetArrayList(0x0),
  fh2CentvsRho(0x0),
  fh2CentvsSigma(0x0),
  fh2MultvsRho(0x0),
  fh2MultvsSigma(0x0),
  fh2ShiftEta(0x0),
  fh2ShiftPhi(0x0),
  fh2ShiftEtaLeading(0x0),
  fh2ShiftPhiLeading(0x0),
  fHistList(0x0)  
{

}

AliAnalysisTaskJetBackgroundSubtract::AliAnalysisTaskJetBackgroundSubtract(const char* name):

  AliAnalysisTaskSE(name),
  fAODOut(0x0),
  fAODIn(0x0),  
  fAODExtension(0x0),
  fJBArray(0),
  fBackgroundBranch(""),
  fNonStdFile(""),
  fReplaceString1("B0"),
  fReplaceString2("B%d"),
  fSubtraction(k4Area),
  fKeepJets(kFALSE),
  fExclude2Leading(kTRUE),
  fInJetArrayList(0x0),
  fOutJetArrayList(0x0),
  fh2CentvsRho(0x0),
  fh2CentvsSigma(0x0),
  fh2MultvsRho(0x0),
  fh2MultvsSigma(0x0),
  fh2ShiftEta(0x0),
  fh2ShiftPhi(0x0),
  fh2ShiftEtaLeading(0x0),
  fh2ShiftPhiLeading(0x0),
  fHistList(0x0)  
{
 DefineOutput(1, TList::Class());  
}



Bool_t AliAnalysisTaskJetBackgroundSubtract::Notify()
{
  //
  // exec with every new file
  //
  fAODIn = dynamic_cast<AliAODEvent*>(InputEvent());

  ResetOutJets();

  // Now we also have the Input Event Available! Fillvthe pointers in the list

  fInJetArrayList->Clear();
  fOutJetArrayList->Clear();

  for(int iJB = 0;iJB<(fJBArray?fJBArray->GetEntries():0);iJB++){
    TObjString *ostr = (TObjString*)fJBArray->At(iJB);
 
  
    TClonesArray* jarray = 0;      
    if(!jarray&&fAODOut){
      jarray = (TClonesArray*)(fAODOut->FindListObject(ostr->GetString().Data()));
    }
    if(!jarray&&fAODExtension){
      jarray = (TClonesArray*)(fAODExtension->GetAOD()->FindListObject(ostr->GetString().Data()));
    }
    if(!jarray&&fAODIn){
      jarray = (TClonesArray*)(fAODIn->FindListObject(ostr->GetString().Data()));
    }

    if(!jarray){
      if(fDebug){
	Printf("%s:%d Input jet branch %s not found",(char*)__FILE__,__LINE__,ostr->GetString().Data());
      }
      continue;
    }
    
    TString newName(ostr->GetString().Data());
    newName.ReplaceAll(fReplaceString1.Data(),Form(fReplaceString2.Data(),fSubtraction));
    TClonesArray* jarrayOut = 0;      
    if(newName.CompareTo(ostr->GetString())==0){
      Printf("%s:%d Input and output branch would have the same name, skipping %s ",(char*)__FILE__,__LINE__,ostr->GetString().Data());
      continue;
    }

    if(!jarrayOut&&fAODOut){
      jarrayOut = (TClonesArray*)(fAODOut->FindListObject(newName.Data()));
    }
    if(!jarrayOut&&fAODExtension){
      jarrayOut = (TClonesArray*)(fAODExtension->GetAOD()->FindListObject(newName.Data()));
    }

    if(!jarrayOut){
      if(fDebug){
	Printf("%s:%d Output jet branch %s not found",(char*)__FILE__,__LINE__,newName.Data());
	PrintAODContents();
      }
      continue;
    }
    if(jarrayOut&&jarray){
      fOutJetArrayList->Add(jarrayOut);
      fInJetArrayList->Add(jarray);
    }
  }
  return kTRUE;
}

void AliAnalysisTaskJetBackgroundSubtract::UserCreateOutputObjects()
{

  //
  // Create the output container
  //
  // Connect the AOD

  if (fDebug > 1) printf("AnalysisTaskJetBackgroundSubtract::UserCreateOutputObjects() \n");



  if(fNonStdFile.Length()!=0){
    
    // case that we have an AOD extension we need to fetch the jets from the extended output
    // we identifay the extension aod event by looking for the branchname
    AliAODHandler *aodH = dynamic_cast<AliAODHandler*>(AliAnalysisManager::GetAnalysisManager()->GetOutputEventHandler());

    fAODExtension = (aodH?aodH->GetExtension(fNonStdFile.Data()):0);
    
    if(!fAODExtension){
      if(fDebug>1)Printf("AODExtension found for %s",fNonStdFile.Data());
    }
  }
  fAODOut = AODEvent();

  // usually we do not have the input already here

  if(!fInJetArrayList)fInJetArrayList =new TList();
  if(!fOutJetArrayList)fOutJetArrayList =new TList();

  for(int iJB = 0;iJB<(fJBArray?fJBArray->GetEntries():0);iJB++){
    TObjString *ostr = (TObjString*)fJBArray->At(iJB);
    TString newName(ostr->GetString().Data());
    if(!newName.Contains(fReplaceString1.Data())){
      Printf("%s:%d cannot replace string %s in %s",(char*)__FILE__,__LINE__,fReplaceString1.Data(),
	     newName.Data());
      continue;
    }


    // add a new branch to the output for the background subtracted jets take the names from
    // the input jets and replace the background flag names
    TClonesArray *tca = new TClonesArray("AliAODJet", 0);
    newName.ReplaceAll(fReplaceString1.Data(),Form(fReplaceString2.Data(),fSubtraction));
    if(newName.CompareTo(ostr->GetString())==0){
      Printf("%s:%d Input and output branch would have the same name, skipping: %s ",(char*)__FILE__,__LINE__,ostr->GetString().Data());
      continue;
    }

    if(fDebug){
      Printf("%s:%d created branch \n %s from \n %s",(char*)__FILE__,__LINE__,newName.Data(),
	     ostr->GetString().Data());
    }
    tca->SetName(newName.Data());
    AddAODBranch("TClonesArray",&tca,fNonStdFile.Data());
  }
  

  if(!fHistList)fHistList = new TList();
  fHistList->SetOwner();
  PostData(1, fHistList); // post data in any case once

  // 
  
  // delta pT vs. area vs. cent vs. mult
  const Int_t nSparseBinsDelta = 4;
  const Int_t nBinsDelta[nSparseBinsDelta] =   {   241,  10,  10,  25}; 
  const Double_t xminDelta[nSparseBinsDelta] = {-120.5,   0,   0,   0};
  const Double_t xmaxDelta[nSparseBinsDelta] = { 120.5, 1.0, 100,5000};
 
  for(int iJB = 0;iJB<(fJBArray?fJBArray->GetEntries():0);iJB++){
    TObjString *ostr = (TObjString*)fJBArray->At(iJB);
    TString oldName(ostr->GetString().Data()); 
    TString newName(ostr->GetString().Data()); 
    if(!newName.Contains(fReplaceString1.Data())){
      Printf("%s:%d cannot replace string %s in %s",(char*)__FILE__,__LINE__,fReplaceString1.Data(),
	     newName.Data());
      continue;
    }
    newName.ReplaceAll(fReplaceString1.Data(),Form(fReplaceString2.Data(),fSubtraction));
    
    TH2F *hTmp = new TH2F(Form("h2PtInPtOut_%d",iJB),Form(";%s p_{T}; %s p_{T}",oldName.Data(),newName.Data()),200,0,200.,400,-200.,200.);
    fHistList->Add(hTmp);
    THnSparseF *hFTmp = new THnSparseF(Form("hnDPtAreaCentMult_%d",iJB),Form("%s delta;#delta p_{T};Area;cent;mult",newName.Data()),nSparseBinsDelta,nBinsDelta,xminDelta,xmaxDelta);
    fHistList->Add(hFTmp);
  }

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

  //
  //  Histogram booking, add som control histograms here
  //    

 
    fh2CentvsRho = new TH2F("fh2CentvsRho","centrality vs background density", 100,0.,100.,600,0.,300.);
    fh2CentvsSigma = new TH2F("fh2CentvsSigma","centrality vs backgroun sigma",100,0.,100.,500,0.,50.);
    fHistList->Add(fh2CentvsRho);
    fHistList->Add(fh2CentvsSigma);

    fh2MultvsRho = new TH2F("fh2MultvsRho","mult vs background density", 100,0.,5000.,600,0.,300.);
    fh2MultvsSigma = new TH2F("fh2MultvsSigma","mult vs background sigma",100,0.,5000.,500,0.,50.);
    fHistList->Add(fh2MultvsRho);
    fHistList->Add(fh2MultvsSigma);

   if(fSubtraction==k4Area){
    fh2ShiftEta = new TH2F("fh2ShiftEta","extended correction Eta",100,-0.9,0.9,100,-0.9,0.9);
    fh2ShiftPhi = new TH2F("fh2ShiftPhi","extended correction Phi",100,0.,6.5,100,0.,6.5);
    fh2ShiftEtaLeading = new TH2F("fh2ShiftEtaLeading","extended correction Eta",100,-0.9,0.9,100,-0.9,0.9);
    fh2ShiftPhiLeading = new TH2F("fh2ShiftPhiLeading","extended correction Phi",100,0.,6.5,100,0.,6.5);
     fHistList->Add(fh2ShiftEta);
     fHistList->Add(fh2ShiftPhi);
     fHistList->Add(fh2ShiftEtaLeading);
     fHistList->Add(fh2ShiftPhiLeading);
   }
    
  // =========== Switch on Sumw2 for all histos ===========
  for (Int_t i=0; i<fHistList->GetEntries(); ++i) {
    TH1 *h1 = dynamic_cast<TH1*>(fHistList->At(i));
    if (h1){
      h1->Sumw2();
      continue;
    }
    THnSparse *hn = dynamic_cast<THnSparse*>(fHistList->At(i));
    if(hn)hn->Sumw2();
  }
  TH1::AddDirectory(oldStatus);

  if(fBackgroundBranch.Length()==0)
    AliError(Form("%s:%d No BackgroundBranch defined",(char*)__FILE__,__LINE__));
  if((fJBArray?fJBArray->GetEntries():0)==0)
    AliError(Form("%s:%d No Jet Branches defined defined",(char*)__FILE__,__LINE__));
}

void AliAnalysisTaskJetBackgroundSubtract::Init()
{
  //
  // Initialization
  //
  if (fDebug > 1) printf("AnalysisTaskJetBackgroundSubtract::Init() \n");
}

void AliAnalysisTaskJetBackgroundSubtract::UserExec(Option_t */*option*/)
{
  //
  // Execute for every selected event
  //

  if (fDebug > 1) printf("AnalysisTaskJetBackgroundSubtract::UserExec() \n");
  ResetOutJets();
  if(fBackgroundBranch.Length()==0||(fJBArray?fJBArray->GetEntries():0)==0){
    if(fDebug)Printf("%s:%d No background subtraction done",(char*)__FILE__,__LINE__);
    PostData(1,fHistList);
  }
  if(fJBArray->GetEntries()!=fInJetArrayList->GetEntries()){
    if(fDebug)Printf("%s:%d different Array  sizes %d %d %d",(char*)__FILE__,__LINE__,fJBArray->GetEntries(),fInJetArrayList->GetEntries(),fOutJetArrayList->GetEntries());
    PostData(1,fHistList);
  }



  AliAODJetEventBackground*  evBkg = 0;
  TClonesArray*              bkgClusters = 0;
  TClonesArray*              bkgClustersRC = 0;
  TString bkgClusterName(fBackgroundBranch.Data());
  bkgClusterName.ReplaceAll(Form("%s_",AliAODJetEventBackground::StdBranchName()),"");
  TString bkgClusterRCName(Form("%s%s",bkgClusterName.Data(),"RandomCone")); 

  if(!evBkg&&!bkgClusters&&!bkgClustersRC&&fAODOut){
    evBkg = (AliAODJetEventBackground*)(fAODOut->FindListObject(fBackgroundBranch.Data()));
    bkgClusters = (TClonesArray*)(fAODOut->FindListObject(bkgClusterName.Data()));
    bkgClustersRC = (TClonesArray*)(fAODOut->FindListObject(bkgClusterRCName.Data()));

    if(fDebug&&bkgClusters)Printf("%s:%d Background cluster branch %s found",(char*)__FILE__,__LINE__,bkgClusterName.Data());
    if(fDebug&&bkgClustersRC)Printf("%s:%d Background cluster RC branch %s found",(char*)__FILE__,__LINE__,bkgClusterRCName.Data());
    if(fDebug&&evBkg)Printf("%s:%d Backgroundbranch %s found",(char*)__FILE__,__LINE__,fBackgroundBranch.Data());
  }
  if(!evBkg&&!bkgClusters&&!bkgClustersRC&&fAODExtension){
    evBkg = (AliAODJetEventBackground*)(fAODExtension->GetAOD()->FindListObject(fBackgroundBranch.Data()));
    bkgClusters = (TClonesArray*)(fAODExtension->GetAOD()->FindListObject(bkgClusterName.Data()));
    bkgClustersRC = (TClonesArray*)(fAODExtension->GetAOD()->FindListObject(bkgClusterRCName.Data()));
    if(fDebug&&bkgClusters)Printf("%s:%d Background cluster branch %s found",(char*)__FILE__,__LINE__,bkgClusterName.Data());
    if(fDebug&&bkgClustersRC)Printf("%s:%d Background cluster RC branch %s found",(char*)__FILE__,__LINE__,bkgClusterRCName.Data());

    if(fDebug&&evBkg)Printf("%s:%d Backgroundbranch %s found",(char*)__FILE__,__LINE__,fBackgroundBranch.Data());
  }

  if(!evBkg&&!bkgClusters&&!bkgClustersRC&&fAODIn){
    evBkg = (AliAODJetEventBackground*)(fAODIn->FindListObject(fBackgroundBranch.Data()));
    bkgClusters = (TClonesArray*)(fAODIn->FindListObject(bkgClusterName.Data()));
    bkgClustersRC = (TClonesArray*)(fAODIn->FindListObject(bkgClusterRCName.Data()));

    if(fDebug&&bkgClusters)Printf("%s:%d Background cluster branch %s found",(char*)__FILE__,__LINE__,bkgClusterName.Data());
    if(fDebug&&bkgClustersRC)Printf("%s:%d Background cluster RC branch %s found",(char*)__FILE__,__LINE__,bkgClusterRCName.Data());
    if(fDebug&&evBkg)Printf("%s:%d Backgroundbranch %s found",(char*)__FILE__,__LINE__,fBackgroundBranch.Data());
  }

  if(!evBkg&&(fSubtraction==kArea||fSubtraction==kRhoRecalc||fSubtraction==k4Area)){
    if(fDebug){
      Printf("%s:%d Backgroundbranch %s not found",(char*)__FILE__,__LINE__,fBackgroundBranch.Data());
      PrintAODContents();
    }
    PostData(1,fHistList);
    return;
  }

  if(!bkgClusters&&(fSubtraction==kRhoRecalc)){
    if(fDebug){
      Printf("%s:%d Background cluster branch %s not found",(char*)__FILE__,__LINE__,bkgClusterName.Data());
      PrintAODContents();
    }
    PostData(1,fHistList);
    return;
  }

  if(!bkgClustersRC&&(fSubtraction==kRhoRC)){
    if(fDebug){
      Printf("%s:%d Background cluster RC branch %s not found",(char*)__FILE__,__LINE__,bkgClusterRCName.Data());
      PrintAODContents();
    }
    PostData(1,fHistList);
    return;
  }
  // LOOP over all jet branches and subtract the background

   Float_t rho = 0;
   Float_t sigma=0.;
   Double_t meanarea = 0;
   TLorentzVector backgroundv;
   Float_t cent=0.;
   
   if(fAODOut)cent = ((AliVAODHeader*)fAODOut->GetHeader())->GetCentrality();
   if(fAODIn) cent = ((AliVAODHeader*)fAODIn->GetHeader() )->GetCentrality();

   if(evBkg)sigma=evBkg->GetSigma(1); 
  
   if(fSubtraction==kArea) {rho = evBkg->GetBackground(1);
      if(fExclude2Leading==kFALSE){
       rho=evBkg->GetBackground(3);
       sigma=evBkg->GetSigma(3);}}

   if(fSubtraction==k4Area){
    
     rho = evBkg->GetBackground(0);
     sigma=evBkg->GetSigma(0);
   }
 
   

   if(fSubtraction==kRhoRecalc){
     meanarea=evBkg->GetMeanarea(1);
     rho =RecalcRho(bkgClusters,meanarea);
   }
   if(fSubtraction==kRhoRC) rho=RhoRC(bkgClustersRC);

   Float_t mult = 0;
   for(int iJB = 0;iJB<fInJetArrayList->GetEntries();iJB++){
    TClonesArray* jarray = (TClonesArray*)fInJetArrayList->At(iJB);
    if(jarray){
      TString tmp(jarray->GetName());
      if(tmp.Contains("cluster")){
	mult = MultFromJetRefs(jarray);
	if(mult>0)break;
      }
    }
   }

   fh2CentvsRho->Fill(cent,rho);
   fh2CentvsSigma->Fill(cent,sigma);

   fh2MultvsRho->Fill(mult,rho);
   fh2MultvsSigma->Fill(mult,sigma);
   
   for(int iJB = 0;iJB<fInJetArrayList->GetEntries();iJB++){
    TClonesArray* jarray = (TClonesArray*)fInJetArrayList->At(iJB);
    TClonesArray* jarrayOut = (TClonesArray*)fOutJetArrayList->At(iJB);
    
    if(!jarray||!jarrayOut){
      Printf("%s:%d Array not found %d: %p %p",(char*)__FILE__,__LINE__,iJB,jarray,jarrayOut);
      continue;
    }
    TH2F* h2PtInOut = (TH2F*)fHistList->FindObject(Form("h2PtInPtOut_%d",iJB));
    THnSparseF* hnDPtAreaCentMult = (THnSparseF*)fHistList->FindObject(Form("hnDPtAreaCentMult_%d",iJB));
    // loop over all jets
    Int_t nOut = 0;
      
    Double_t deltaPt[4];
    deltaPt[2] = cent;
    deltaPt[3] = mult;

    for(int i = 0;i < jarray->GetEntriesFast();i++){
      AliAODJet *jet = (AliAODJet*)jarray->At(i);
      AliAODJet tmpNewJet(*jet);
      Bool_t bAdd = false;
      Float_t ptSub = 0;


      if(fSubtraction==kArea){	
	Double_t background = rho * jet->EffectiveAreaCharged();
	ptSub = jet->Pt() - background;	
	if(fDebug>2){
	  Printf("%s:%d Jet %d %3.3f %3.3f",(char*)__FILE__,__LINE__,i,jet->Pt(),ptSub);
	}
	if(ptSub<=0){
	  // optionally rescale it and keep??
	  if(fKeepJets){
	     bAdd = RescaleJetMomentum(&tmpNewJet,0.1);
	  }
	  else{
	    bAdd = false;
	  }
	}
	else{
	  bAdd = RescaleJetMomentum(&tmpNewJet,ptSub);
	}
	// add background estimates to the new jet object
	// allows to recover old p_T and rho...
	tmpNewJet.SetBgEnergy(background,0);
	tmpNewJet.SetPtSubtracted(ptSub,0);
      }// kAREA
      else if(fSubtraction==kRhoRecalc){
 	Double_t background = rho * jet->EffectiveAreaCharged();
	ptSub = jet->Pt() - background;	
        if(fDebug>2){
	  Printf("%s:%d Jet %d %3.3f %3.3f %3.3f %3.3f",(char*)__FILE__,__LINE__,i,jet->Pt(),ptSub,background,rho);}
	if(ptSub<=0){
	  // optionally rescale it and keep
	  if(fKeepJets){
	     bAdd = RescaleJetMomentum(&tmpNewJet,0.1);
	  }
	  else{
	    bAdd = false;
	  }
	}
	else{
	  bAdd = RescaleJetMomentum(&tmpNewJet,ptSub);
	}
	// add background estimates to the new jet object
	// allows to recover old p_T and rho...
	tmpNewJet.SetBgEnergy(background,0);
	tmpNewJet.SetPtSubtracted(ptSub,0);
      }//kRhoRecalc
       else if(fSubtraction==kRhoRC){
	Double_t background = rho * jet->EffectiveAreaCharged();
	ptSub = jet->Pt() - background;	
	if(fDebug>2){	Printf("%s:%d Jet %d %3.3f %3.3f %3.3f %3.3f",(char*)__FILE__,__LINE__,i,jet->Pt(),ptSub,background,rho);}
	if(ptSub<=0){
	  if(fKeepJets){
	     bAdd = RescaleJetMomentum(&tmpNewJet,0.1);
	  }
	  else{
	    bAdd = false;
	  }
	}
	else{
	  bAdd = RescaleJetMomentum(&tmpNewJet,ptSub);
	}
	// add background estimates to the new jet object
	// allows to recover old p_T and rho...
	tmpNewJet.SetBgEnergy(background,0);
	tmpNewJet.SetPtSubtracted(ptSub,0);
       }//kRhoRC

       else if(fSubtraction==k4Area&&jet->VectorAreaCharged()){
	 backgroundv.SetPxPyPzE(rho*(jet->VectorAreaCharged())->Px(),rho*(jet->VectorAreaCharged())->Py(),rho*(jet->VectorAreaCharged())->Pz(),rho*(jet->VectorAreaCharged())->E());
	 ptSub = jet->Pt()-backgroundv.Pt();
	 if((backgroundv.E()>=jet->E())||(backgroundv.Pt()>=jet->Pt())){
	   if(fKeepJets){
	     bAdd =  RescaleJetMomentum(&tmpNewJet,0.1);
	   }
	   else{
	     bAdd = false;
	   }
	 }
	 else{
	   bAdd = RescaleJet4vector(&tmpNewJet,backgroundv);
	 }
	 // add background estimates to the new jet object
	 // allows to recover old p_T and rho...
	 tmpNewJet.SetBgEnergy(backgroundv.Pt(),0);
	 tmpNewJet.SetPtSubtracted(ptSub,0);
	 
       }//kArea4vector  

      if(bAdd){
        AliAODJet *newJet = new ((*jarrayOut)[nOut++]) AliAODJet(tmpNewJet);
	// what about track references, clear for now...
	if(fSubtraction==k4Area){
         fh2ShiftEta->Fill(jet->Eta(),newJet->Eta());
         fh2ShiftPhi->Fill(jet->Phi(),newJet->Phi());
         if(i==0){fh2ShiftEtaLeading->Fill(jet->Eta(),newJet->Eta());
	   fh2ShiftPhiLeading->Fill(jet->Phi(),newJet->Phi());}}

	// set the references 
	newJet->GetRefTracks()->Clear();
	TRefArray *refs = jet->GetRefTracks();
	for(Int_t ir=0;ir<refs->GetEntriesFast();ir++){
	  AliVParticle *vp = dynamic_cast<AliVParticle*>(refs->At(ir));
	  if(vp)newJet->AddTrack(vp);
	}
      }
      if(h2PtInOut)h2PtInOut->Fill(jet->Pt(),ptSub);
      if(hnDPtAreaCentMult){
	deltaPt[0] = ptSub;
	deltaPt[1] = jet->EffectiveAreaCharged();
	hnDPtAreaCentMult->Fill(deltaPt);
      }
    }
    if(jarrayOut)jarrayOut->Sort();
   }
   
   PostData(1, fHistList);
}

void AliAnalysisTaskJetBackgroundSubtract::Terminate(Option_t */*option*/)
{
  // Terminate analysis
  //
  if (fDebug > 1) printf("AnalysisJetBackgroundSubtract: Terminate() \n");
}

Bool_t AliAnalysisTaskJetBackgroundSubtract::RescaleJetMomentum(AliAODJet *jet,Float_t pT){
  // keep the direction and the jet mass
  if(pT<=0)return kFALSE;
  Double_t pTold = jet->Pt();
  Double_t scale  = pT/pTold;
  Double_t mass  = jet->M();
  Double_t pNew = jet->P() * scale;
  jet->SetPxPyPzE(scale*jet->Px(),scale*jet->Py(),scale*jet->Pz(),TMath::Sqrt(mass*mass+pNew*pNew));
 


  return kTRUE;
}

Bool_t AliAnalysisTaskJetBackgroundSubtract::RescaleJet4vector(AliAODJet *jet,TLorentzVector backgroundv){
  
  if(backgroundv.Pt()<0.) return kFALSE;
  jet->SetPxPyPzE(jet->Px()-backgroundv.Px(),jet->Py()-backgroundv.Py(),jet->Pz()-backgroundv.Pz(),jet->E()-backgroundv.E());
 
 return kTRUE;
}








Double_t AliAnalysisTaskJetBackgroundSubtract::RecalcRho(TClonesArray* bkgClusters,Double_t meanarea){
  
  //
  // recalc rhoo
  // 

  Double_t ptarea=0.;
  Int_t count=0;
  Double_t rho=0.; 
  const Double_t rLimit2=0.8*0.8;  //2*jet radius.
  TClonesArray* jarray=0;
  
  for(int iJB = 0;iJB<fInJetArrayList->GetEntries();iJB++){
    TObjString *ostr = (TObjString*)fInJetArrayList->At(iJB);
    TString jetref=ostr->GetString().Data();
    if(jetref.Contains("ANTIKT04")){ 
      jarray = (TClonesArray*)fInJetArrayList->At(iJB);
    }
  }
  if(!jarray)return rho;
  if(jarray->GetEntries()>=2){ 
    AliAODJet *first = (AliAODJet*)(jarray->At(0)); 
    AliAODJet *second= (AliAODJet*)(jarray->At(1)); 
    for(Int_t k=0;k<bkgClusters->GetEntriesFast();k++){
      AliAODJet *clus = (AliAODJet*)(bkgClusters->At(k));
      if(TMath::Abs(clus->Eta())>0.5) continue;
      if((clus->EffectiveAreaCharged())<0.1*meanarea) continue; 
      Double_t distance1=(first->Eta()-clus->Eta())*(first->Eta()-clus->Eta())+
	(first->Phi()-clus->Phi())*(first->Phi()-clus->Phi());
      Double_t distance2= (second->Eta()-clus->Eta())*(second->Eta()-clus->Eta())+
	(second->Phi()-clus->Phi())*(second->Phi()-clus->Phi());
      if((distance1<rLimit2)||(distance2<rLimit2)) continue;    
      ptarea=ptarea+clus->Pt()/clus->EffectiveAreaCharged(); 
      count=count+1;}
    if(count!=0) rho=ptarea/count; 
  }        
  return rho;
}

Double_t AliAnalysisTaskJetBackgroundSubtract::RhoRC(TClonesArray* bkgClustersRC){

  // 
  // calc rho from random cones
  //
  
       Double_t ptarea=0.;
       Int_t count=0;
       Double_t rho=0.; 
       const Double_t rLimit2=0.8*0.8;  //2*jet radius.
       TClonesArray* jarray=0;
        for(int iJB = 0;iJB<fInJetArrayList->GetEntries();iJB++){
	  TObjString *ostr = (TObjString*)fInJetArrayList->At(iJB);
	  TString jetref=ostr->GetString().Data();
	  if(jetref.Contains("ANTIKT04")){ 
	    jarray = (TClonesArray*)fInJetArrayList->At(iJB);
	  }
	}
	if(!jarray)return rho;

         if(jarray->GetEntries()>=2){ 
	   AliAODJet *first = (AliAODJet*)(jarray->At(0)); 
	   AliAODJet *second=(AliAODJet*)(jarray->At(1)); 
         for(Int_t k=0;k<bkgClustersRC->GetEntriesFast();k++){
	   AliAODJet *clus = (AliAODJet*)(bkgClustersRC->At(k));
	   if(TMath::Abs(clus->Eta())>0.5) continue;
	   Double_t distance1=(first->Eta()-clus->Eta())*(first->Eta()-clus->Eta())+
	     (first->Phi()-clus->Phi())*(first->Phi()-clus->Phi());
	   Double_t distance2= (second->Eta()-clus->Eta())*(second->Eta()-clus->Eta())+
	     (second->Phi()-clus->Phi())*(second->Phi()-clus->Phi());
	   if((distance1<rLimit2)||(distance2<rLimit2)) continue;    
	   ptarea=ptarea+clus->Pt()/clus->EffectiveAreaCharged(); 
	   count=count+1;}
         if(count!=0) rho=ptarea/count;  }
         return rho;
}









void AliAnalysisTaskJetBackgroundSubtract::ResetOutJets(){
  //
  // Reset the output jets
  //

  if(!fOutJetArrayList)return;
  for(int iJB = 0;iJB<fOutJetArrayList->GetEntries();iJB++){
    TClonesArray* jarray = (TClonesArray*)fOutJetArrayList->At(iJB);
    if(jarray)jarray->Delete();
  }
}


void AliAnalysisTaskJetBackgroundSubtract::PrintAODContents(){

  //
  // guess from the name what this function does
  //

  if(fAODIn){
    Printf("%s:%d >>>>>> Input",(char*)__FILE__,__LINE__);
    fAODIn->Print();
  }
  if(fAODExtension){
    Printf("%s:%d >>>>>> Extenstion",(char*)__FILE__,__LINE__);
    fAODExtension->GetAOD()->Print();
  }
  if(fAODOut){
    Printf("%s:%d >>>>>> Output",(char*)__FILE__,__LINE__);
    fAODOut->Print();
  }
}

Int_t AliAnalysisTaskJetBackgroundSubtract::MultFromJetRefs(TClonesArray* jets){
  //
  // calculate multiplicty based on jet references
  //

  if(!jets)return 0;

  Int_t refMult = 0;
  for(int ij = 0;ij < jets->GetEntries();++ij){
    AliAODJet* jet = (AliAODJet*)jets->At(ij);
    if(!jet)continue;
    TRefArray *refs = jet->GetRefTracks();
    if(!refs)continue;
    refMult += refs->GetEntries();
  }
  return refMult;

}

void  AliAnalysisTaskJetBackgroundSubtract::AddJetBranch(const char* c){
  if(!fJBArray)fJBArray = new TObjArray();
  fJBArray->Add(new TObjString(c));
}
 AliAnalysisTaskJetBackgroundSubtract.cxx:1
 AliAnalysisTaskJetBackgroundSubtract.cxx:2
 AliAnalysisTaskJetBackgroundSubtract.cxx:3
 AliAnalysisTaskJetBackgroundSubtract.cxx:4
 AliAnalysisTaskJetBackgroundSubtract.cxx:5
 AliAnalysisTaskJetBackgroundSubtract.cxx:6
 AliAnalysisTaskJetBackgroundSubtract.cxx:7
 AliAnalysisTaskJetBackgroundSubtract.cxx:8
 AliAnalysisTaskJetBackgroundSubtract.cxx:9
 AliAnalysisTaskJetBackgroundSubtract.cxx:10
 AliAnalysisTaskJetBackgroundSubtract.cxx:11
 AliAnalysisTaskJetBackgroundSubtract.cxx:12
 AliAnalysisTaskJetBackgroundSubtract.cxx:13
 AliAnalysisTaskJetBackgroundSubtract.cxx:14
 AliAnalysisTaskJetBackgroundSubtract.cxx:15
 AliAnalysisTaskJetBackgroundSubtract.cxx:16
 AliAnalysisTaskJetBackgroundSubtract.cxx:17
 AliAnalysisTaskJetBackgroundSubtract.cxx:18
 AliAnalysisTaskJetBackgroundSubtract.cxx:19
 AliAnalysisTaskJetBackgroundSubtract.cxx:20
 AliAnalysisTaskJetBackgroundSubtract.cxx:21
 AliAnalysisTaskJetBackgroundSubtract.cxx:22
 AliAnalysisTaskJetBackgroundSubtract.cxx:23
 AliAnalysisTaskJetBackgroundSubtract.cxx:24
 AliAnalysisTaskJetBackgroundSubtract.cxx:25
 AliAnalysisTaskJetBackgroundSubtract.cxx:26
 AliAnalysisTaskJetBackgroundSubtract.cxx:27
 AliAnalysisTaskJetBackgroundSubtract.cxx:28
 AliAnalysisTaskJetBackgroundSubtract.cxx:29
 AliAnalysisTaskJetBackgroundSubtract.cxx:30
 AliAnalysisTaskJetBackgroundSubtract.cxx:31
 AliAnalysisTaskJetBackgroundSubtract.cxx:32
 AliAnalysisTaskJetBackgroundSubtract.cxx:33
 AliAnalysisTaskJetBackgroundSubtract.cxx:34
 AliAnalysisTaskJetBackgroundSubtract.cxx:35
 AliAnalysisTaskJetBackgroundSubtract.cxx:36
 AliAnalysisTaskJetBackgroundSubtract.cxx:37
 AliAnalysisTaskJetBackgroundSubtract.cxx:38
 AliAnalysisTaskJetBackgroundSubtract.cxx:39
 AliAnalysisTaskJetBackgroundSubtract.cxx:40
 AliAnalysisTaskJetBackgroundSubtract.cxx:41
 AliAnalysisTaskJetBackgroundSubtract.cxx:42
 AliAnalysisTaskJetBackgroundSubtract.cxx:43
 AliAnalysisTaskJetBackgroundSubtract.cxx:44
 AliAnalysisTaskJetBackgroundSubtract.cxx:45
 AliAnalysisTaskJetBackgroundSubtract.cxx:46
 AliAnalysisTaskJetBackgroundSubtract.cxx:47
 AliAnalysisTaskJetBackgroundSubtract.cxx:48
 AliAnalysisTaskJetBackgroundSubtract.cxx:49
 AliAnalysisTaskJetBackgroundSubtract.cxx:50
 AliAnalysisTaskJetBackgroundSubtract.cxx:51
 AliAnalysisTaskJetBackgroundSubtract.cxx:52
 AliAnalysisTaskJetBackgroundSubtract.cxx:53
 AliAnalysisTaskJetBackgroundSubtract.cxx:54
 AliAnalysisTaskJetBackgroundSubtract.cxx:55
 AliAnalysisTaskJetBackgroundSubtract.cxx:56
 AliAnalysisTaskJetBackgroundSubtract.cxx:57
 AliAnalysisTaskJetBackgroundSubtract.cxx:58
 AliAnalysisTaskJetBackgroundSubtract.cxx:59
 AliAnalysisTaskJetBackgroundSubtract.cxx:60
 AliAnalysisTaskJetBackgroundSubtract.cxx:61
 AliAnalysisTaskJetBackgroundSubtract.cxx:62
 AliAnalysisTaskJetBackgroundSubtract.cxx:63
 AliAnalysisTaskJetBackgroundSubtract.cxx:64
 AliAnalysisTaskJetBackgroundSubtract.cxx:65
 AliAnalysisTaskJetBackgroundSubtract.cxx:66
 AliAnalysisTaskJetBackgroundSubtract.cxx:67
 AliAnalysisTaskJetBackgroundSubtract.cxx:68
 AliAnalysisTaskJetBackgroundSubtract.cxx:69
 AliAnalysisTaskJetBackgroundSubtract.cxx:70
 AliAnalysisTaskJetBackgroundSubtract.cxx:71
 AliAnalysisTaskJetBackgroundSubtract.cxx:72
 AliAnalysisTaskJetBackgroundSubtract.cxx:73
 AliAnalysisTaskJetBackgroundSubtract.cxx:74
 AliAnalysisTaskJetBackgroundSubtract.cxx:75
 AliAnalysisTaskJetBackgroundSubtract.cxx:76
 AliAnalysisTaskJetBackgroundSubtract.cxx:77
 AliAnalysisTaskJetBackgroundSubtract.cxx:78
 AliAnalysisTaskJetBackgroundSubtract.cxx:79
 AliAnalysisTaskJetBackgroundSubtract.cxx:80
 AliAnalysisTaskJetBackgroundSubtract.cxx:81
 AliAnalysisTaskJetBackgroundSubtract.cxx:82
 AliAnalysisTaskJetBackgroundSubtract.cxx:83
 AliAnalysisTaskJetBackgroundSubtract.cxx:84
 AliAnalysisTaskJetBackgroundSubtract.cxx:85
 AliAnalysisTaskJetBackgroundSubtract.cxx:86
 AliAnalysisTaskJetBackgroundSubtract.cxx:87
 AliAnalysisTaskJetBackgroundSubtract.cxx:88
 AliAnalysisTaskJetBackgroundSubtract.cxx:89
 AliAnalysisTaskJetBackgroundSubtract.cxx:90
 AliAnalysisTaskJetBackgroundSubtract.cxx:91
 AliAnalysisTaskJetBackgroundSubtract.cxx:92
 AliAnalysisTaskJetBackgroundSubtract.cxx:93
 AliAnalysisTaskJetBackgroundSubtract.cxx:94
 AliAnalysisTaskJetBackgroundSubtract.cxx:95
 AliAnalysisTaskJetBackgroundSubtract.cxx:96
 AliAnalysisTaskJetBackgroundSubtract.cxx:97
 AliAnalysisTaskJetBackgroundSubtract.cxx:98
 AliAnalysisTaskJetBackgroundSubtract.cxx:99
 AliAnalysisTaskJetBackgroundSubtract.cxx:100
 AliAnalysisTaskJetBackgroundSubtract.cxx:101
 AliAnalysisTaskJetBackgroundSubtract.cxx:102
 AliAnalysisTaskJetBackgroundSubtract.cxx:103
 AliAnalysisTaskJetBackgroundSubtract.cxx:104
 AliAnalysisTaskJetBackgroundSubtract.cxx:105
 AliAnalysisTaskJetBackgroundSubtract.cxx:106
 AliAnalysisTaskJetBackgroundSubtract.cxx:107
 AliAnalysisTaskJetBackgroundSubtract.cxx:108
 AliAnalysisTaskJetBackgroundSubtract.cxx:109
 AliAnalysisTaskJetBackgroundSubtract.cxx:110
 AliAnalysisTaskJetBackgroundSubtract.cxx:111
 AliAnalysisTaskJetBackgroundSubtract.cxx:112
 AliAnalysisTaskJetBackgroundSubtract.cxx:113
 AliAnalysisTaskJetBackgroundSubtract.cxx:114
 AliAnalysisTaskJetBackgroundSubtract.cxx:115
 AliAnalysisTaskJetBackgroundSubtract.cxx:116
 AliAnalysisTaskJetBackgroundSubtract.cxx:117
 AliAnalysisTaskJetBackgroundSubtract.cxx:118
 AliAnalysisTaskJetBackgroundSubtract.cxx:119
 AliAnalysisTaskJetBackgroundSubtract.cxx:120
 AliAnalysisTaskJetBackgroundSubtract.cxx:121
 AliAnalysisTaskJetBackgroundSubtract.cxx:122
 AliAnalysisTaskJetBackgroundSubtract.cxx:123
 AliAnalysisTaskJetBackgroundSubtract.cxx:124
 AliAnalysisTaskJetBackgroundSubtract.cxx:125
 AliAnalysisTaskJetBackgroundSubtract.cxx:126
 AliAnalysisTaskJetBackgroundSubtract.cxx:127
 AliAnalysisTaskJetBackgroundSubtract.cxx:128
 AliAnalysisTaskJetBackgroundSubtract.cxx:129
 AliAnalysisTaskJetBackgroundSubtract.cxx:130
 AliAnalysisTaskJetBackgroundSubtract.cxx:131
 AliAnalysisTaskJetBackgroundSubtract.cxx:132
 AliAnalysisTaskJetBackgroundSubtract.cxx:133
 AliAnalysisTaskJetBackgroundSubtract.cxx:134
 AliAnalysisTaskJetBackgroundSubtract.cxx:135
 AliAnalysisTaskJetBackgroundSubtract.cxx:136
 AliAnalysisTaskJetBackgroundSubtract.cxx:137
 AliAnalysisTaskJetBackgroundSubtract.cxx:138
 AliAnalysisTaskJetBackgroundSubtract.cxx:139
 AliAnalysisTaskJetBackgroundSubtract.cxx:140
 AliAnalysisTaskJetBackgroundSubtract.cxx:141
 AliAnalysisTaskJetBackgroundSubtract.cxx:142
 AliAnalysisTaskJetBackgroundSubtract.cxx:143
 AliAnalysisTaskJetBackgroundSubtract.cxx:144
 AliAnalysisTaskJetBackgroundSubtract.cxx:145
 AliAnalysisTaskJetBackgroundSubtract.cxx:146
 AliAnalysisTaskJetBackgroundSubtract.cxx:147
 AliAnalysisTaskJetBackgroundSubtract.cxx:148
 AliAnalysisTaskJetBackgroundSubtract.cxx:149
 AliAnalysisTaskJetBackgroundSubtract.cxx:150
 AliAnalysisTaskJetBackgroundSubtract.cxx:151
 AliAnalysisTaskJetBackgroundSubtract.cxx:152
 AliAnalysisTaskJetBackgroundSubtract.cxx:153
 AliAnalysisTaskJetBackgroundSubtract.cxx:154
 AliAnalysisTaskJetBackgroundSubtract.cxx:155
 AliAnalysisTaskJetBackgroundSubtract.cxx:156
 AliAnalysisTaskJetBackgroundSubtract.cxx:157
 AliAnalysisTaskJetBackgroundSubtract.cxx:158
 AliAnalysisTaskJetBackgroundSubtract.cxx:159
 AliAnalysisTaskJetBackgroundSubtract.cxx:160
 AliAnalysisTaskJetBackgroundSubtract.cxx:161
 AliAnalysisTaskJetBackgroundSubtract.cxx:162
 AliAnalysisTaskJetBackgroundSubtract.cxx:163
 AliAnalysisTaskJetBackgroundSubtract.cxx:164
 AliAnalysisTaskJetBackgroundSubtract.cxx:165
 AliAnalysisTaskJetBackgroundSubtract.cxx:166
 AliAnalysisTaskJetBackgroundSubtract.cxx:167
 AliAnalysisTaskJetBackgroundSubtract.cxx:168
 AliAnalysisTaskJetBackgroundSubtract.cxx:169
 AliAnalysisTaskJetBackgroundSubtract.cxx:170
 AliAnalysisTaskJetBackgroundSubtract.cxx:171
 AliAnalysisTaskJetBackgroundSubtract.cxx:172
 AliAnalysisTaskJetBackgroundSubtract.cxx:173
 AliAnalysisTaskJetBackgroundSubtract.cxx:174
 AliAnalysisTaskJetBackgroundSubtract.cxx:175
 AliAnalysisTaskJetBackgroundSubtract.cxx:176
 AliAnalysisTaskJetBackgroundSubtract.cxx:177
 AliAnalysisTaskJetBackgroundSubtract.cxx:178
 AliAnalysisTaskJetBackgroundSubtract.cxx:179
 AliAnalysisTaskJetBackgroundSubtract.cxx:180
 AliAnalysisTaskJetBackgroundSubtract.cxx:181
 AliAnalysisTaskJetBackgroundSubtract.cxx:182
 AliAnalysisTaskJetBackgroundSubtract.cxx:183
 AliAnalysisTaskJetBackgroundSubtract.cxx:184
 AliAnalysisTaskJetBackgroundSubtract.cxx:185
 AliAnalysisTaskJetBackgroundSubtract.cxx:186
 AliAnalysisTaskJetBackgroundSubtract.cxx:187
 AliAnalysisTaskJetBackgroundSubtract.cxx:188
 AliAnalysisTaskJetBackgroundSubtract.cxx:189
 AliAnalysisTaskJetBackgroundSubtract.cxx:190
 AliAnalysisTaskJetBackgroundSubtract.cxx:191
 AliAnalysisTaskJetBackgroundSubtract.cxx:192
 AliAnalysisTaskJetBackgroundSubtract.cxx:193
 AliAnalysisTaskJetBackgroundSubtract.cxx:194
 AliAnalysisTaskJetBackgroundSubtract.cxx:195
 AliAnalysisTaskJetBackgroundSubtract.cxx:196
 AliAnalysisTaskJetBackgroundSubtract.cxx:197
 AliAnalysisTaskJetBackgroundSubtract.cxx:198
 AliAnalysisTaskJetBackgroundSubtract.cxx:199
 AliAnalysisTaskJetBackgroundSubtract.cxx:200
 AliAnalysisTaskJetBackgroundSubtract.cxx:201
 AliAnalysisTaskJetBackgroundSubtract.cxx:202
 AliAnalysisTaskJetBackgroundSubtract.cxx:203
 AliAnalysisTaskJetBackgroundSubtract.cxx:204
 AliAnalysisTaskJetBackgroundSubtract.cxx:205
 AliAnalysisTaskJetBackgroundSubtract.cxx:206
 AliAnalysisTaskJetBackgroundSubtract.cxx:207
 AliAnalysisTaskJetBackgroundSubtract.cxx:208
 AliAnalysisTaskJetBackgroundSubtract.cxx:209
 AliAnalysisTaskJetBackgroundSubtract.cxx:210
 AliAnalysisTaskJetBackgroundSubtract.cxx:211
 AliAnalysisTaskJetBackgroundSubtract.cxx:212
 AliAnalysisTaskJetBackgroundSubtract.cxx:213
 AliAnalysisTaskJetBackgroundSubtract.cxx:214
 AliAnalysisTaskJetBackgroundSubtract.cxx:215
 AliAnalysisTaskJetBackgroundSubtract.cxx:216
 AliAnalysisTaskJetBackgroundSubtract.cxx:217
 AliAnalysisTaskJetBackgroundSubtract.cxx:218
 AliAnalysisTaskJetBackgroundSubtract.cxx:219
 AliAnalysisTaskJetBackgroundSubtract.cxx:220
 AliAnalysisTaskJetBackgroundSubtract.cxx:221
 AliAnalysisTaskJetBackgroundSubtract.cxx:222
 AliAnalysisTaskJetBackgroundSubtract.cxx:223
 AliAnalysisTaskJetBackgroundSubtract.cxx:224
 AliAnalysisTaskJetBackgroundSubtract.cxx:225
 AliAnalysisTaskJetBackgroundSubtract.cxx:226
 AliAnalysisTaskJetBackgroundSubtract.cxx:227
 AliAnalysisTaskJetBackgroundSubtract.cxx:228
 AliAnalysisTaskJetBackgroundSubtract.cxx:229
 AliAnalysisTaskJetBackgroundSubtract.cxx:230
 AliAnalysisTaskJetBackgroundSubtract.cxx:231
 AliAnalysisTaskJetBackgroundSubtract.cxx:232
 AliAnalysisTaskJetBackgroundSubtract.cxx:233
 AliAnalysisTaskJetBackgroundSubtract.cxx:234
 AliAnalysisTaskJetBackgroundSubtract.cxx:235
 AliAnalysisTaskJetBackgroundSubtract.cxx:236
 AliAnalysisTaskJetBackgroundSubtract.cxx:237
 AliAnalysisTaskJetBackgroundSubtract.cxx:238
 AliAnalysisTaskJetBackgroundSubtract.cxx:239
 AliAnalysisTaskJetBackgroundSubtract.cxx:240
 AliAnalysisTaskJetBackgroundSubtract.cxx:241
 AliAnalysisTaskJetBackgroundSubtract.cxx:242
 AliAnalysisTaskJetBackgroundSubtract.cxx:243
 AliAnalysisTaskJetBackgroundSubtract.cxx:244
 AliAnalysisTaskJetBackgroundSubtract.cxx:245
 AliAnalysisTaskJetBackgroundSubtract.cxx:246
 AliAnalysisTaskJetBackgroundSubtract.cxx:247
 AliAnalysisTaskJetBackgroundSubtract.cxx:248
 AliAnalysisTaskJetBackgroundSubtract.cxx:249
 AliAnalysisTaskJetBackgroundSubtract.cxx:250
 AliAnalysisTaskJetBackgroundSubtract.cxx:251
 AliAnalysisTaskJetBackgroundSubtract.cxx:252
 AliAnalysisTaskJetBackgroundSubtract.cxx:253
 AliAnalysisTaskJetBackgroundSubtract.cxx:254
 AliAnalysisTaskJetBackgroundSubtract.cxx:255
 AliAnalysisTaskJetBackgroundSubtract.cxx:256
 AliAnalysisTaskJetBackgroundSubtract.cxx:257
 AliAnalysisTaskJetBackgroundSubtract.cxx:258
 AliAnalysisTaskJetBackgroundSubtract.cxx:259
 AliAnalysisTaskJetBackgroundSubtract.cxx:260
 AliAnalysisTaskJetBackgroundSubtract.cxx:261
 AliAnalysisTaskJetBackgroundSubtract.cxx:262
 AliAnalysisTaskJetBackgroundSubtract.cxx:263
 AliAnalysisTaskJetBackgroundSubtract.cxx:264
 AliAnalysisTaskJetBackgroundSubtract.cxx:265
 AliAnalysisTaskJetBackgroundSubtract.cxx:266
 AliAnalysisTaskJetBackgroundSubtract.cxx:267
 AliAnalysisTaskJetBackgroundSubtract.cxx:268
 AliAnalysisTaskJetBackgroundSubtract.cxx:269
 AliAnalysisTaskJetBackgroundSubtract.cxx:270
 AliAnalysisTaskJetBackgroundSubtract.cxx:271
 AliAnalysisTaskJetBackgroundSubtract.cxx:272
 AliAnalysisTaskJetBackgroundSubtract.cxx:273
 AliAnalysisTaskJetBackgroundSubtract.cxx:274
 AliAnalysisTaskJetBackgroundSubtract.cxx:275
 AliAnalysisTaskJetBackgroundSubtract.cxx:276
 AliAnalysisTaskJetBackgroundSubtract.cxx:277
 AliAnalysisTaskJetBackgroundSubtract.cxx:278
 AliAnalysisTaskJetBackgroundSubtract.cxx:279
 AliAnalysisTaskJetBackgroundSubtract.cxx:280
 AliAnalysisTaskJetBackgroundSubtract.cxx:281
 AliAnalysisTaskJetBackgroundSubtract.cxx:282
 AliAnalysisTaskJetBackgroundSubtract.cxx:283
 AliAnalysisTaskJetBackgroundSubtract.cxx:284
 AliAnalysisTaskJetBackgroundSubtract.cxx:285
 AliAnalysisTaskJetBackgroundSubtract.cxx:286
 AliAnalysisTaskJetBackgroundSubtract.cxx:287
 AliAnalysisTaskJetBackgroundSubtract.cxx:288
 AliAnalysisTaskJetBackgroundSubtract.cxx:289
 AliAnalysisTaskJetBackgroundSubtract.cxx:290
 AliAnalysisTaskJetBackgroundSubtract.cxx:291
 AliAnalysisTaskJetBackgroundSubtract.cxx:292
 AliAnalysisTaskJetBackgroundSubtract.cxx:293
 AliAnalysisTaskJetBackgroundSubtract.cxx:294
 AliAnalysisTaskJetBackgroundSubtract.cxx:295
 AliAnalysisTaskJetBackgroundSubtract.cxx:296
 AliAnalysisTaskJetBackgroundSubtract.cxx:297
 AliAnalysisTaskJetBackgroundSubtract.cxx:298
 AliAnalysisTaskJetBackgroundSubtract.cxx:299
 AliAnalysisTaskJetBackgroundSubtract.cxx:300
 AliAnalysisTaskJetBackgroundSubtract.cxx:301
 AliAnalysisTaskJetBackgroundSubtract.cxx:302
 AliAnalysisTaskJetBackgroundSubtract.cxx:303
 AliAnalysisTaskJetBackgroundSubtract.cxx:304
 AliAnalysisTaskJetBackgroundSubtract.cxx:305
 AliAnalysisTaskJetBackgroundSubtract.cxx:306
 AliAnalysisTaskJetBackgroundSubtract.cxx:307
 AliAnalysisTaskJetBackgroundSubtract.cxx:308
 AliAnalysisTaskJetBackgroundSubtract.cxx:309
 AliAnalysisTaskJetBackgroundSubtract.cxx:310
 AliAnalysisTaskJetBackgroundSubtract.cxx:311
 AliAnalysisTaskJetBackgroundSubtract.cxx:312
 AliAnalysisTaskJetBackgroundSubtract.cxx:313
 AliAnalysisTaskJetBackgroundSubtract.cxx:314
 AliAnalysisTaskJetBackgroundSubtract.cxx:315
 AliAnalysisTaskJetBackgroundSubtract.cxx:316
 AliAnalysisTaskJetBackgroundSubtract.cxx:317
 AliAnalysisTaskJetBackgroundSubtract.cxx:318
 AliAnalysisTaskJetBackgroundSubtract.cxx:319
 AliAnalysisTaskJetBackgroundSubtract.cxx:320
 AliAnalysisTaskJetBackgroundSubtract.cxx:321
 AliAnalysisTaskJetBackgroundSubtract.cxx:322
 AliAnalysisTaskJetBackgroundSubtract.cxx:323
 AliAnalysisTaskJetBackgroundSubtract.cxx:324
 AliAnalysisTaskJetBackgroundSubtract.cxx:325
 AliAnalysisTaskJetBackgroundSubtract.cxx:326
 AliAnalysisTaskJetBackgroundSubtract.cxx:327
 AliAnalysisTaskJetBackgroundSubtract.cxx:328
 AliAnalysisTaskJetBackgroundSubtract.cxx:329
 AliAnalysisTaskJetBackgroundSubtract.cxx:330
 AliAnalysisTaskJetBackgroundSubtract.cxx:331
 AliAnalysisTaskJetBackgroundSubtract.cxx:332
 AliAnalysisTaskJetBackgroundSubtract.cxx:333
 AliAnalysisTaskJetBackgroundSubtract.cxx:334
 AliAnalysisTaskJetBackgroundSubtract.cxx:335
 AliAnalysisTaskJetBackgroundSubtract.cxx:336
 AliAnalysisTaskJetBackgroundSubtract.cxx:337
 AliAnalysisTaskJetBackgroundSubtract.cxx:338
 AliAnalysisTaskJetBackgroundSubtract.cxx:339
 AliAnalysisTaskJetBackgroundSubtract.cxx:340
 AliAnalysisTaskJetBackgroundSubtract.cxx:341
 AliAnalysisTaskJetBackgroundSubtract.cxx:342
 AliAnalysisTaskJetBackgroundSubtract.cxx:343
 AliAnalysisTaskJetBackgroundSubtract.cxx:344
 AliAnalysisTaskJetBackgroundSubtract.cxx:345
 AliAnalysisTaskJetBackgroundSubtract.cxx:346
 AliAnalysisTaskJetBackgroundSubtract.cxx:347
 AliAnalysisTaskJetBackgroundSubtract.cxx:348
 AliAnalysisTaskJetBackgroundSubtract.cxx:349
 AliAnalysisTaskJetBackgroundSubtract.cxx:350
 AliAnalysisTaskJetBackgroundSubtract.cxx:351
 AliAnalysisTaskJetBackgroundSubtract.cxx:352
 AliAnalysisTaskJetBackgroundSubtract.cxx:353
 AliAnalysisTaskJetBackgroundSubtract.cxx:354
 AliAnalysisTaskJetBackgroundSubtract.cxx:355
 AliAnalysisTaskJetBackgroundSubtract.cxx:356
 AliAnalysisTaskJetBackgroundSubtract.cxx:357
 AliAnalysisTaskJetBackgroundSubtract.cxx:358
 AliAnalysisTaskJetBackgroundSubtract.cxx:359
 AliAnalysisTaskJetBackgroundSubtract.cxx:360
 AliAnalysisTaskJetBackgroundSubtract.cxx:361
 AliAnalysisTaskJetBackgroundSubtract.cxx:362
 AliAnalysisTaskJetBackgroundSubtract.cxx:363
 AliAnalysisTaskJetBackgroundSubtract.cxx:364
 AliAnalysisTaskJetBackgroundSubtract.cxx:365
 AliAnalysisTaskJetBackgroundSubtract.cxx:366
 AliAnalysisTaskJetBackgroundSubtract.cxx:367
 AliAnalysisTaskJetBackgroundSubtract.cxx:368
 AliAnalysisTaskJetBackgroundSubtract.cxx:369
 AliAnalysisTaskJetBackgroundSubtract.cxx:370
 AliAnalysisTaskJetBackgroundSubtract.cxx:371
 AliAnalysisTaskJetBackgroundSubtract.cxx:372
 AliAnalysisTaskJetBackgroundSubtract.cxx:373
 AliAnalysisTaskJetBackgroundSubtract.cxx:374
 AliAnalysisTaskJetBackgroundSubtract.cxx:375
 AliAnalysisTaskJetBackgroundSubtract.cxx:376
 AliAnalysisTaskJetBackgroundSubtract.cxx:377
 AliAnalysisTaskJetBackgroundSubtract.cxx:378
 AliAnalysisTaskJetBackgroundSubtract.cxx:379
 AliAnalysisTaskJetBackgroundSubtract.cxx:380
 AliAnalysisTaskJetBackgroundSubtract.cxx:381
 AliAnalysisTaskJetBackgroundSubtract.cxx:382
 AliAnalysisTaskJetBackgroundSubtract.cxx:383
 AliAnalysisTaskJetBackgroundSubtract.cxx:384
 AliAnalysisTaskJetBackgroundSubtract.cxx:385
 AliAnalysisTaskJetBackgroundSubtract.cxx:386
 AliAnalysisTaskJetBackgroundSubtract.cxx:387
 AliAnalysisTaskJetBackgroundSubtract.cxx:388
 AliAnalysisTaskJetBackgroundSubtract.cxx:389
 AliAnalysisTaskJetBackgroundSubtract.cxx:390
 AliAnalysisTaskJetBackgroundSubtract.cxx:391
 AliAnalysisTaskJetBackgroundSubtract.cxx:392
 AliAnalysisTaskJetBackgroundSubtract.cxx:393
 AliAnalysisTaskJetBackgroundSubtract.cxx:394
 AliAnalysisTaskJetBackgroundSubtract.cxx:395
 AliAnalysisTaskJetBackgroundSubtract.cxx:396
 AliAnalysisTaskJetBackgroundSubtract.cxx:397
 AliAnalysisTaskJetBackgroundSubtract.cxx:398
 AliAnalysisTaskJetBackgroundSubtract.cxx:399
 AliAnalysisTaskJetBackgroundSubtract.cxx:400
 AliAnalysisTaskJetBackgroundSubtract.cxx:401
 AliAnalysisTaskJetBackgroundSubtract.cxx:402
 AliAnalysisTaskJetBackgroundSubtract.cxx:403
 AliAnalysisTaskJetBackgroundSubtract.cxx:404
 AliAnalysisTaskJetBackgroundSubtract.cxx:405
 AliAnalysisTaskJetBackgroundSubtract.cxx:406
 AliAnalysisTaskJetBackgroundSubtract.cxx:407
 AliAnalysisTaskJetBackgroundSubtract.cxx:408
 AliAnalysisTaskJetBackgroundSubtract.cxx:409
 AliAnalysisTaskJetBackgroundSubtract.cxx:410
 AliAnalysisTaskJetBackgroundSubtract.cxx:411
 AliAnalysisTaskJetBackgroundSubtract.cxx:412
 AliAnalysisTaskJetBackgroundSubtract.cxx:413
 AliAnalysisTaskJetBackgroundSubtract.cxx:414
 AliAnalysisTaskJetBackgroundSubtract.cxx:415
 AliAnalysisTaskJetBackgroundSubtract.cxx:416
 AliAnalysisTaskJetBackgroundSubtract.cxx:417
 AliAnalysisTaskJetBackgroundSubtract.cxx:418
 AliAnalysisTaskJetBackgroundSubtract.cxx:419
 AliAnalysisTaskJetBackgroundSubtract.cxx:420
 AliAnalysisTaskJetBackgroundSubtract.cxx:421
 AliAnalysisTaskJetBackgroundSubtract.cxx:422
 AliAnalysisTaskJetBackgroundSubtract.cxx:423
 AliAnalysisTaskJetBackgroundSubtract.cxx:424
 AliAnalysisTaskJetBackgroundSubtract.cxx:425
 AliAnalysisTaskJetBackgroundSubtract.cxx:426
 AliAnalysisTaskJetBackgroundSubtract.cxx:427
 AliAnalysisTaskJetBackgroundSubtract.cxx:428
 AliAnalysisTaskJetBackgroundSubtract.cxx:429
 AliAnalysisTaskJetBackgroundSubtract.cxx:430
 AliAnalysisTaskJetBackgroundSubtract.cxx:431
 AliAnalysisTaskJetBackgroundSubtract.cxx:432
 AliAnalysisTaskJetBackgroundSubtract.cxx:433
 AliAnalysisTaskJetBackgroundSubtract.cxx:434
 AliAnalysisTaskJetBackgroundSubtract.cxx:435
 AliAnalysisTaskJetBackgroundSubtract.cxx:436
 AliAnalysisTaskJetBackgroundSubtract.cxx:437
 AliAnalysisTaskJetBackgroundSubtract.cxx:438
 AliAnalysisTaskJetBackgroundSubtract.cxx:439
 AliAnalysisTaskJetBackgroundSubtract.cxx:440
 AliAnalysisTaskJetBackgroundSubtract.cxx:441
 AliAnalysisTaskJetBackgroundSubtract.cxx:442
 AliAnalysisTaskJetBackgroundSubtract.cxx:443
 AliAnalysisTaskJetBackgroundSubtract.cxx:444
 AliAnalysisTaskJetBackgroundSubtract.cxx:445
 AliAnalysisTaskJetBackgroundSubtract.cxx:446
 AliAnalysisTaskJetBackgroundSubtract.cxx:447
 AliAnalysisTaskJetBackgroundSubtract.cxx:448
 AliAnalysisTaskJetBackgroundSubtract.cxx:449
 AliAnalysisTaskJetBackgroundSubtract.cxx:450
 AliAnalysisTaskJetBackgroundSubtract.cxx:451
 AliAnalysisTaskJetBackgroundSubtract.cxx:452
 AliAnalysisTaskJetBackgroundSubtract.cxx:453
 AliAnalysisTaskJetBackgroundSubtract.cxx:454
 AliAnalysisTaskJetBackgroundSubtract.cxx:455
 AliAnalysisTaskJetBackgroundSubtract.cxx:456
 AliAnalysisTaskJetBackgroundSubtract.cxx:457
 AliAnalysisTaskJetBackgroundSubtract.cxx:458
 AliAnalysisTaskJetBackgroundSubtract.cxx:459
 AliAnalysisTaskJetBackgroundSubtract.cxx:460
 AliAnalysisTaskJetBackgroundSubtract.cxx:461
 AliAnalysisTaskJetBackgroundSubtract.cxx:462
 AliAnalysisTaskJetBackgroundSubtract.cxx:463
 AliAnalysisTaskJetBackgroundSubtract.cxx:464
 AliAnalysisTaskJetBackgroundSubtract.cxx:465
 AliAnalysisTaskJetBackgroundSubtract.cxx:466
 AliAnalysisTaskJetBackgroundSubtract.cxx:467
 AliAnalysisTaskJetBackgroundSubtract.cxx:468
 AliAnalysisTaskJetBackgroundSubtract.cxx:469
 AliAnalysisTaskJetBackgroundSubtract.cxx:470
 AliAnalysisTaskJetBackgroundSubtract.cxx:471
 AliAnalysisTaskJetBackgroundSubtract.cxx:472
 AliAnalysisTaskJetBackgroundSubtract.cxx:473
 AliAnalysisTaskJetBackgroundSubtract.cxx:474
 AliAnalysisTaskJetBackgroundSubtract.cxx:475
 AliAnalysisTaskJetBackgroundSubtract.cxx:476
 AliAnalysisTaskJetBackgroundSubtract.cxx:477
 AliAnalysisTaskJetBackgroundSubtract.cxx:478
 AliAnalysisTaskJetBackgroundSubtract.cxx:479
 AliAnalysisTaskJetBackgroundSubtract.cxx:480
 AliAnalysisTaskJetBackgroundSubtract.cxx:481
 AliAnalysisTaskJetBackgroundSubtract.cxx:482
 AliAnalysisTaskJetBackgroundSubtract.cxx:483
 AliAnalysisTaskJetBackgroundSubtract.cxx:484
 AliAnalysisTaskJetBackgroundSubtract.cxx:485
 AliAnalysisTaskJetBackgroundSubtract.cxx:486
 AliAnalysisTaskJetBackgroundSubtract.cxx:487
 AliAnalysisTaskJetBackgroundSubtract.cxx:488
 AliAnalysisTaskJetBackgroundSubtract.cxx:489
 AliAnalysisTaskJetBackgroundSubtract.cxx:490
 AliAnalysisTaskJetBackgroundSubtract.cxx:491
 AliAnalysisTaskJetBackgroundSubtract.cxx:492
 AliAnalysisTaskJetBackgroundSubtract.cxx:493
 AliAnalysisTaskJetBackgroundSubtract.cxx:494
 AliAnalysisTaskJetBackgroundSubtract.cxx:495
 AliAnalysisTaskJetBackgroundSubtract.cxx:496
 AliAnalysisTaskJetBackgroundSubtract.cxx:497
 AliAnalysisTaskJetBackgroundSubtract.cxx:498
 AliAnalysisTaskJetBackgroundSubtract.cxx:499
 AliAnalysisTaskJetBackgroundSubtract.cxx:500
 AliAnalysisTaskJetBackgroundSubtract.cxx:501
 AliAnalysisTaskJetBackgroundSubtract.cxx:502
 AliAnalysisTaskJetBackgroundSubtract.cxx:503
 AliAnalysisTaskJetBackgroundSubtract.cxx:504
 AliAnalysisTaskJetBackgroundSubtract.cxx:505
 AliAnalysisTaskJetBackgroundSubtract.cxx:506
 AliAnalysisTaskJetBackgroundSubtract.cxx:507
 AliAnalysisTaskJetBackgroundSubtract.cxx:508
 AliAnalysisTaskJetBackgroundSubtract.cxx:509
 AliAnalysisTaskJetBackgroundSubtract.cxx:510
 AliAnalysisTaskJetBackgroundSubtract.cxx:511
 AliAnalysisTaskJetBackgroundSubtract.cxx:512
 AliAnalysisTaskJetBackgroundSubtract.cxx:513
 AliAnalysisTaskJetBackgroundSubtract.cxx:514
 AliAnalysisTaskJetBackgroundSubtract.cxx:515
 AliAnalysisTaskJetBackgroundSubtract.cxx:516
 AliAnalysisTaskJetBackgroundSubtract.cxx:517
 AliAnalysisTaskJetBackgroundSubtract.cxx:518
 AliAnalysisTaskJetBackgroundSubtract.cxx:519
 AliAnalysisTaskJetBackgroundSubtract.cxx:520
 AliAnalysisTaskJetBackgroundSubtract.cxx:521
 AliAnalysisTaskJetBackgroundSubtract.cxx:522
 AliAnalysisTaskJetBackgroundSubtract.cxx:523
 AliAnalysisTaskJetBackgroundSubtract.cxx:524
 AliAnalysisTaskJetBackgroundSubtract.cxx:525
 AliAnalysisTaskJetBackgroundSubtract.cxx:526
 AliAnalysisTaskJetBackgroundSubtract.cxx:527
 AliAnalysisTaskJetBackgroundSubtract.cxx:528
 AliAnalysisTaskJetBackgroundSubtract.cxx:529
 AliAnalysisTaskJetBackgroundSubtract.cxx:530
 AliAnalysisTaskJetBackgroundSubtract.cxx:531
 AliAnalysisTaskJetBackgroundSubtract.cxx:532
 AliAnalysisTaskJetBackgroundSubtract.cxx:533
 AliAnalysisTaskJetBackgroundSubtract.cxx:534
 AliAnalysisTaskJetBackgroundSubtract.cxx:535
 AliAnalysisTaskJetBackgroundSubtract.cxx:536
 AliAnalysisTaskJetBackgroundSubtract.cxx:537
 AliAnalysisTaskJetBackgroundSubtract.cxx:538
 AliAnalysisTaskJetBackgroundSubtract.cxx:539
 AliAnalysisTaskJetBackgroundSubtract.cxx:540
 AliAnalysisTaskJetBackgroundSubtract.cxx:541
 AliAnalysisTaskJetBackgroundSubtract.cxx:542
 AliAnalysisTaskJetBackgroundSubtract.cxx:543
 AliAnalysisTaskJetBackgroundSubtract.cxx:544
 AliAnalysisTaskJetBackgroundSubtract.cxx:545
 AliAnalysisTaskJetBackgroundSubtract.cxx:546
 AliAnalysisTaskJetBackgroundSubtract.cxx:547
 AliAnalysisTaskJetBackgroundSubtract.cxx:548
 AliAnalysisTaskJetBackgroundSubtract.cxx:549
 AliAnalysisTaskJetBackgroundSubtract.cxx:550
 AliAnalysisTaskJetBackgroundSubtract.cxx:551
 AliAnalysisTaskJetBackgroundSubtract.cxx:552
 AliAnalysisTaskJetBackgroundSubtract.cxx:553
 AliAnalysisTaskJetBackgroundSubtract.cxx:554
 AliAnalysisTaskJetBackgroundSubtract.cxx:555
 AliAnalysisTaskJetBackgroundSubtract.cxx:556
 AliAnalysisTaskJetBackgroundSubtract.cxx:557
 AliAnalysisTaskJetBackgroundSubtract.cxx:558
 AliAnalysisTaskJetBackgroundSubtract.cxx:559
 AliAnalysisTaskJetBackgroundSubtract.cxx:560
 AliAnalysisTaskJetBackgroundSubtract.cxx:561
 AliAnalysisTaskJetBackgroundSubtract.cxx:562
 AliAnalysisTaskJetBackgroundSubtract.cxx:563
 AliAnalysisTaskJetBackgroundSubtract.cxx:564
 AliAnalysisTaskJetBackgroundSubtract.cxx:565
 AliAnalysisTaskJetBackgroundSubtract.cxx:566
 AliAnalysisTaskJetBackgroundSubtract.cxx:567
 AliAnalysisTaskJetBackgroundSubtract.cxx:568
 AliAnalysisTaskJetBackgroundSubtract.cxx:569
 AliAnalysisTaskJetBackgroundSubtract.cxx:570
 AliAnalysisTaskJetBackgroundSubtract.cxx:571
 AliAnalysisTaskJetBackgroundSubtract.cxx:572
 AliAnalysisTaskJetBackgroundSubtract.cxx:573
 AliAnalysisTaskJetBackgroundSubtract.cxx:574
 AliAnalysisTaskJetBackgroundSubtract.cxx:575
 AliAnalysisTaskJetBackgroundSubtract.cxx:576
 AliAnalysisTaskJetBackgroundSubtract.cxx:577
 AliAnalysisTaskJetBackgroundSubtract.cxx:578
 AliAnalysisTaskJetBackgroundSubtract.cxx:579
 AliAnalysisTaskJetBackgroundSubtract.cxx:580
 AliAnalysisTaskJetBackgroundSubtract.cxx:581
 AliAnalysisTaskJetBackgroundSubtract.cxx:582
 AliAnalysisTaskJetBackgroundSubtract.cxx:583
 AliAnalysisTaskJetBackgroundSubtract.cxx:584
 AliAnalysisTaskJetBackgroundSubtract.cxx:585
 AliAnalysisTaskJetBackgroundSubtract.cxx:586
 AliAnalysisTaskJetBackgroundSubtract.cxx:587
 AliAnalysisTaskJetBackgroundSubtract.cxx:588
 AliAnalysisTaskJetBackgroundSubtract.cxx:589
 AliAnalysisTaskJetBackgroundSubtract.cxx:590
 AliAnalysisTaskJetBackgroundSubtract.cxx:591
 AliAnalysisTaskJetBackgroundSubtract.cxx:592
 AliAnalysisTaskJetBackgroundSubtract.cxx:593
 AliAnalysisTaskJetBackgroundSubtract.cxx:594
 AliAnalysisTaskJetBackgroundSubtract.cxx:595
 AliAnalysisTaskJetBackgroundSubtract.cxx:596
 AliAnalysisTaskJetBackgroundSubtract.cxx:597
 AliAnalysisTaskJetBackgroundSubtract.cxx:598
 AliAnalysisTaskJetBackgroundSubtract.cxx:599
 AliAnalysisTaskJetBackgroundSubtract.cxx:600
 AliAnalysisTaskJetBackgroundSubtract.cxx:601
 AliAnalysisTaskJetBackgroundSubtract.cxx:602
 AliAnalysisTaskJetBackgroundSubtract.cxx:603
 AliAnalysisTaskJetBackgroundSubtract.cxx:604
 AliAnalysisTaskJetBackgroundSubtract.cxx:605
 AliAnalysisTaskJetBackgroundSubtract.cxx:606
 AliAnalysisTaskJetBackgroundSubtract.cxx:607
 AliAnalysisTaskJetBackgroundSubtract.cxx:608
 AliAnalysisTaskJetBackgroundSubtract.cxx:609
 AliAnalysisTaskJetBackgroundSubtract.cxx:610
 AliAnalysisTaskJetBackgroundSubtract.cxx:611
 AliAnalysisTaskJetBackgroundSubtract.cxx:612
 AliAnalysisTaskJetBackgroundSubtract.cxx:613
 AliAnalysisTaskJetBackgroundSubtract.cxx:614
 AliAnalysisTaskJetBackgroundSubtract.cxx:615
 AliAnalysisTaskJetBackgroundSubtract.cxx:616
 AliAnalysisTaskJetBackgroundSubtract.cxx:617
 AliAnalysisTaskJetBackgroundSubtract.cxx:618
 AliAnalysisTaskJetBackgroundSubtract.cxx:619
 AliAnalysisTaskJetBackgroundSubtract.cxx:620
 AliAnalysisTaskJetBackgroundSubtract.cxx:621
 AliAnalysisTaskJetBackgroundSubtract.cxx:622
 AliAnalysisTaskJetBackgroundSubtract.cxx:623
 AliAnalysisTaskJetBackgroundSubtract.cxx:624
 AliAnalysisTaskJetBackgroundSubtract.cxx:625
 AliAnalysisTaskJetBackgroundSubtract.cxx:626
 AliAnalysisTaskJetBackgroundSubtract.cxx:627
 AliAnalysisTaskJetBackgroundSubtract.cxx:628
 AliAnalysisTaskJetBackgroundSubtract.cxx:629
 AliAnalysisTaskJetBackgroundSubtract.cxx:630
 AliAnalysisTaskJetBackgroundSubtract.cxx:631
 AliAnalysisTaskJetBackgroundSubtract.cxx:632
 AliAnalysisTaskJetBackgroundSubtract.cxx:633
 AliAnalysisTaskJetBackgroundSubtract.cxx:634
 AliAnalysisTaskJetBackgroundSubtract.cxx:635
 AliAnalysisTaskJetBackgroundSubtract.cxx:636
 AliAnalysisTaskJetBackgroundSubtract.cxx:637
 AliAnalysisTaskJetBackgroundSubtract.cxx:638
 AliAnalysisTaskJetBackgroundSubtract.cxx:639
 AliAnalysisTaskJetBackgroundSubtract.cxx:640
 AliAnalysisTaskJetBackgroundSubtract.cxx:641
 AliAnalysisTaskJetBackgroundSubtract.cxx:642
 AliAnalysisTaskJetBackgroundSubtract.cxx:643
 AliAnalysisTaskJetBackgroundSubtract.cxx:644
 AliAnalysisTaskJetBackgroundSubtract.cxx:645
 AliAnalysisTaskJetBackgroundSubtract.cxx:646
 AliAnalysisTaskJetBackgroundSubtract.cxx:647
 AliAnalysisTaskJetBackgroundSubtract.cxx:648
 AliAnalysisTaskJetBackgroundSubtract.cxx:649
 AliAnalysisTaskJetBackgroundSubtract.cxx:650
 AliAnalysisTaskJetBackgroundSubtract.cxx:651
 AliAnalysisTaskJetBackgroundSubtract.cxx:652
 AliAnalysisTaskJetBackgroundSubtract.cxx:653
 AliAnalysisTaskJetBackgroundSubtract.cxx:654
 AliAnalysisTaskJetBackgroundSubtract.cxx:655
 AliAnalysisTaskJetBackgroundSubtract.cxx:656
 AliAnalysisTaskJetBackgroundSubtract.cxx:657
 AliAnalysisTaskJetBackgroundSubtract.cxx:658
 AliAnalysisTaskJetBackgroundSubtract.cxx:659
 AliAnalysisTaskJetBackgroundSubtract.cxx:660
 AliAnalysisTaskJetBackgroundSubtract.cxx:661
 AliAnalysisTaskJetBackgroundSubtract.cxx:662
 AliAnalysisTaskJetBackgroundSubtract.cxx:663
 AliAnalysisTaskJetBackgroundSubtract.cxx:664
 AliAnalysisTaskJetBackgroundSubtract.cxx:665
 AliAnalysisTaskJetBackgroundSubtract.cxx:666
 AliAnalysisTaskJetBackgroundSubtract.cxx:667
 AliAnalysisTaskJetBackgroundSubtract.cxx:668
 AliAnalysisTaskJetBackgroundSubtract.cxx:669
 AliAnalysisTaskJetBackgroundSubtract.cxx:670
 AliAnalysisTaskJetBackgroundSubtract.cxx:671
 AliAnalysisTaskJetBackgroundSubtract.cxx:672
 AliAnalysisTaskJetBackgroundSubtract.cxx:673
 AliAnalysisTaskJetBackgroundSubtract.cxx:674
 AliAnalysisTaskJetBackgroundSubtract.cxx:675
 AliAnalysisTaskJetBackgroundSubtract.cxx:676
 AliAnalysisTaskJetBackgroundSubtract.cxx:677
 AliAnalysisTaskJetBackgroundSubtract.cxx:678
 AliAnalysisTaskJetBackgroundSubtract.cxx:679
 AliAnalysisTaskJetBackgroundSubtract.cxx:680
 AliAnalysisTaskJetBackgroundSubtract.cxx:681
 AliAnalysisTaskJetBackgroundSubtract.cxx:682
 AliAnalysisTaskJetBackgroundSubtract.cxx:683
 AliAnalysisTaskJetBackgroundSubtract.cxx:684
 AliAnalysisTaskJetBackgroundSubtract.cxx:685
 AliAnalysisTaskJetBackgroundSubtract.cxx:686
 AliAnalysisTaskJetBackgroundSubtract.cxx:687
 AliAnalysisTaskJetBackgroundSubtract.cxx:688
 AliAnalysisTaskJetBackgroundSubtract.cxx:689
 AliAnalysisTaskJetBackgroundSubtract.cxx:690
 AliAnalysisTaskJetBackgroundSubtract.cxx:691
 AliAnalysisTaskJetBackgroundSubtract.cxx:692
 AliAnalysisTaskJetBackgroundSubtract.cxx:693
 AliAnalysisTaskJetBackgroundSubtract.cxx:694
 AliAnalysisTaskJetBackgroundSubtract.cxx:695
 AliAnalysisTaskJetBackgroundSubtract.cxx:696
 AliAnalysisTaskJetBackgroundSubtract.cxx:697
 AliAnalysisTaskJetBackgroundSubtract.cxx:698
 AliAnalysisTaskJetBackgroundSubtract.cxx:699
 AliAnalysisTaskJetBackgroundSubtract.cxx:700
 AliAnalysisTaskJetBackgroundSubtract.cxx:701
 AliAnalysisTaskJetBackgroundSubtract.cxx:702
 AliAnalysisTaskJetBackgroundSubtract.cxx:703
 AliAnalysisTaskJetBackgroundSubtract.cxx:704
 AliAnalysisTaskJetBackgroundSubtract.cxx:705
 AliAnalysisTaskJetBackgroundSubtract.cxx:706
 AliAnalysisTaskJetBackgroundSubtract.cxx:707
 AliAnalysisTaskJetBackgroundSubtract.cxx:708
 AliAnalysisTaskJetBackgroundSubtract.cxx:709
 AliAnalysisTaskJetBackgroundSubtract.cxx:710
 AliAnalysisTaskJetBackgroundSubtract.cxx:711
 AliAnalysisTaskJetBackgroundSubtract.cxx:712
 AliAnalysisTaskJetBackgroundSubtract.cxx:713
 AliAnalysisTaskJetBackgroundSubtract.cxx:714
 AliAnalysisTaskJetBackgroundSubtract.cxx:715
 AliAnalysisTaskJetBackgroundSubtract.cxx:716
 AliAnalysisTaskJetBackgroundSubtract.cxx:717
 AliAnalysisTaskJetBackgroundSubtract.cxx:718
 AliAnalysisTaskJetBackgroundSubtract.cxx:719
 AliAnalysisTaskJetBackgroundSubtract.cxx:720
 AliAnalysisTaskJetBackgroundSubtract.cxx:721
 AliAnalysisTaskJetBackgroundSubtract.cxx:722
 AliAnalysisTaskJetBackgroundSubtract.cxx:723
 AliAnalysisTaskJetBackgroundSubtract.cxx:724
 AliAnalysisTaskJetBackgroundSubtract.cxx:725
 AliAnalysisTaskJetBackgroundSubtract.cxx:726
 AliAnalysisTaskJetBackgroundSubtract.cxx:727
 AliAnalysisTaskJetBackgroundSubtract.cxx:728
 AliAnalysisTaskJetBackgroundSubtract.cxx:729
 AliAnalysisTaskJetBackgroundSubtract.cxx:730
 AliAnalysisTaskJetBackgroundSubtract.cxx:731
 AliAnalysisTaskJetBackgroundSubtract.cxx:732
 AliAnalysisTaskJetBackgroundSubtract.cxx:733
 AliAnalysisTaskJetBackgroundSubtract.cxx:734
 AliAnalysisTaskJetBackgroundSubtract.cxx:735
 AliAnalysisTaskJetBackgroundSubtract.cxx:736
 AliAnalysisTaskJetBackgroundSubtract.cxx:737
 AliAnalysisTaskJetBackgroundSubtract.cxx:738
 AliAnalysisTaskJetBackgroundSubtract.cxx:739
 AliAnalysisTaskJetBackgroundSubtract.cxx:740
 AliAnalysisTaskJetBackgroundSubtract.cxx:741
 AliAnalysisTaskJetBackgroundSubtract.cxx:742
 AliAnalysisTaskJetBackgroundSubtract.cxx:743
 AliAnalysisTaskJetBackgroundSubtract.cxx:744
 AliAnalysisTaskJetBackgroundSubtract.cxx:745
 AliAnalysisTaskJetBackgroundSubtract.cxx:746
 AliAnalysisTaskJetBackgroundSubtract.cxx:747
 AliAnalysisTaskJetBackgroundSubtract.cxx:748
 AliAnalysisTaskJetBackgroundSubtract.cxx:749
 AliAnalysisTaskJetBackgroundSubtract.cxx:750
 AliAnalysisTaskJetBackgroundSubtract.cxx:751
 AliAnalysisTaskJetBackgroundSubtract.cxx:752
 AliAnalysisTaskJetBackgroundSubtract.cxx:753
 AliAnalysisTaskJetBackgroundSubtract.cxx:754
 AliAnalysisTaskJetBackgroundSubtract.cxx:755
 AliAnalysisTaskJetBackgroundSubtract.cxx:756
 AliAnalysisTaskJetBackgroundSubtract.cxx:757
 AliAnalysisTaskJetBackgroundSubtract.cxx:758
 AliAnalysisTaskJetBackgroundSubtract.cxx:759
 AliAnalysisTaskJetBackgroundSubtract.cxx:760
 AliAnalysisTaskJetBackgroundSubtract.cxx:761
 AliAnalysisTaskJetBackgroundSubtract.cxx:762
 AliAnalysisTaskJetBackgroundSubtract.cxx:763
 AliAnalysisTaskJetBackgroundSubtract.cxx:764
 AliAnalysisTaskJetBackgroundSubtract.cxx:765
 AliAnalysisTaskJetBackgroundSubtract.cxx:766
 AliAnalysisTaskJetBackgroundSubtract.cxx:767
 AliAnalysisTaskJetBackgroundSubtract.cxx:768
 AliAnalysisTaskJetBackgroundSubtract.cxx:769
 AliAnalysisTaskJetBackgroundSubtract.cxx:770
 AliAnalysisTaskJetBackgroundSubtract.cxx:771