ROOT logo
#if !defined(__CINT__) || defined(__MAKECINT__)
#include "TFile.h"
#include "TH1.h"
#include "TH1D.h"
#include "TH2.h"
#include "TH2D.h"
#include "TH3.h"
#include "TH3D.h"
#include "TNtuple.h"
#include "TGraphAsymmErrors.h"
#include "TMath.h"
#include "TCanvas.h"
#include "TLegend.h"
#include "TROOT.h"
#include "TStyle.h"
#include "TLine.h"
#include "TLatex.h"

#include "AliHFSystErr.h"
#include <Riostream.h>
#endif

/* $Id$ */
///////////////////////////////////////////////////////////////////////////////
//
// Macro to compute the Raa, taking as inputs the output of the corrected yields
//  and the pp reference
//
// R_AB =  [ ( dsigma/dpt )_AB / sigma_AB ]  / <TAB> *  ( dsigma/dpt )_pp
//
// 
// Parameters: 
//      1. ppfile = reference pp in the same pt binning
//	2. ABfile = corrected AB yields 
// 	3. outfile = output file name
//	4. decay = decay as in HFSystErr class
//      5. sigmaABCINT1B = cross section for normalization (**USE THE SAME AS ON 2.**)
//	6. fdMethod = feed-down subtraction method (kNb, kfc)
//      7. cc = centrality class
//      8. Energy = colliding energy (k276,k55)
//      9. MinHypo  = minimum energy loss hypothesis (Default 1./3.)
//      10. MaxHypo = maximum energy loss hypothesis (Default 3.0)
//      11. MaxRb = maximum Raa(b) hypothesis (Default 6.0, won't do anything)
//      12. RbHypo : flag to decide whether the Eloss hypothesis is Rb or Rb/Rc
//      13. CentralHypo = central energy loss hypothesis, DEFAULT TO 1.0
//      14. isRaavsEP = flag to compute the Raa IN/OUT of plane, divides the reference by 2.0
//      15. ScaledAndExtrapRef: flag to tag scaled+reference pp-scaled-data
//
//  Complains to : Zaida Conesa del Valle
//
///////////////////////////////////////////////////////////////////////////////

enum centrality{ kpp, k07half, kpPb0100, k010, k1020, k020, k2040, k2030, k3040, k4050, k3050, k5060, k4060, k6080, k4080, k5080, k80100, kpPb020, kpPb2040, kpPb4060, kpPb60100 };
enum centestimator{ kV0M, kV0A, kZNA };
enum energy{ k276, k5dot023, k55 };
enum BFDSubtrMethod { kfc, kNb };
enum RaavsEP {kPhiIntegrated, kInPlane, kOutOfPlane};

Bool_t printout = false;
Double_t ptprintout = 1.5;
Double_t NormPPUnc = 0.035;
Double_t NormABUnc = 0.037;
Bool_t elossFDQuadSum = true;

//____________________________________________________________
Bool_t PbPbDataSyst(AliHFSystErr *syst, Double_t pt, Int_t cc, Double_t &dataSystUp, Double_t &dataSystDown);

//____________________________________________________________
Double_t ExtractFDSyst(Double_t total, Double_t fd) {
  // total^2 = data^2 + fd^2
  Double_t data2 = total*total - fd*fd ;
  return TMath::Sqrt( data2 );
}

//____________________________________________________________
Int_t FindGraphBin(TGraphAsymmErrors *gr, Double_t pt)
{
  Int_t istart =0;
  Int_t npoints = gr->GetN();
  for(Int_t i=0; i<=npoints; i++){
    Double_t x=0.,y=0.;
    gr->GetPoint(i,x,y);
    if ( TMath::Abs ( x - pt ) < 0.4 ) { 
      istart = i; 
      break;
    }
  }
  return istart;
}


//
//
// R_AB =  [ ( dsigma/dpt )_AB / sigma_AB ]  / <TAB> *  ( dsigma/dpt )_pp
//
//
//____________________________________________________________
void HFPtSpectrumRaa(const char *ppfile="HFPtSpectrum_D0Kpi_method2_rebinnedth_230311_newsigma.root",
		     const char *ABfile="HFPtSpectrum_D0Kpi_PbPbcuts_method2_rebinnedth_230311_newsigma.root",
		     const char *outfile="HFPtSpectrumRaa.root",
		     Int_t decay=1,
		     Double_t sigmaABCINT1B=54.e9,
		     Int_t fdMethod = kNb, Int_t cc=kpp, Int_t Energy=k276,
		     Double_t MinHypo=1./3., Double_t MaxHypo=3.0, Double_t MaxRb=6.0,
		     Bool_t isRbHypo=false, Double_t CentralHypo = 1.0,
		     Int_t ccestimator = kV0M,
		     Bool_t isUseTaaForRaa=true, const char *shadRbcFile="", Int_t nSigmaShad=3.0,
		     Int_t isRaavsEP=kPhiIntegrated, Bool_t isScaledAndExtrapRef=kFALSE)
{

  gROOT->Macro("$ALICE_ROOT/PWGHF/vertexingHF/macros/LoadLibraries.C");

  //
  // Defining the TAB values for the given centrality class
  //
  Double_t Tab = 1., TabSyst = 0., A=207.2, B=207.2;
  if ( Energy!=k276 && Energy!=k5dot023) {
    printf("\n The Tab values for this cms energy have not yet been implemented, please do it ! \n");
    return;
  }
  if ( cc == kpp ){
    Tab = 1.;
  }
  // Values from Alberica's twiki:
  //   https://twiki.cern.ch/twiki/bin/viewauth/ALICE/CentStudies
  if( ccestimator == kV0M ) {
    if ( cc == k07half ) {
      Tab = 24.81; TabSyst = 0.8037;
    } else if ( cc == k010 ) {
      Tab = 23.48; TabSyst = 0.97;
    } else if ( cc == k1020 ) {
      Tab = 14.4318; TabSyst = 0.5733;
    } else if ( cc == k020 ) {
      Tab = 18.93; TabSyst = 0.74;
    } else if ( cc == k2040 ) {
      Tab = 6.86; TabSyst = 0.28;
    } else if ( cc == k2030 ) {
      Tab = 8.73769; TabSyst = 0.370219;
    } else if ( cc == k3040 ) {
      Tab = 5.02755; TabSyst = 0.22099;
    } else if ( cc == k4050 ) {
      Tab = 2.68327; TabSyst = 0.137073;
    } else if ( cc == k3050 ) {
      Tab = 3.87011; TabSyst = 0.183847;
    } else if ( cc == k4060 ) {
      Tab = 2.00;  TabSyst= 0.11;
    } else if ( cc == k4080 ) {
      Tab = 1.20451; TabSyst = 0.071843;
    } else if ( cc == k5060 ) {
      Tab = 1.32884; TabSyst = 0.0929536;
    } else if ( cc == k6080 ) {
      Tab = 0.419; TabSyst = 0.033;
    } else if ( cc == k5080 ) {
      Tab = 0.719; TabSyst = 0.054;
    } else if ( cc == k80100 ){
      Tab = 0.0690; TabSyst = 0.0062;
    }
  }

  // pPb Glauber (A. Toia)
  // https://twiki.cern.ch/twiki/bin/viewauth/ALICE/PACentStudies#Glauber_Calculations_with_sigma
  if( cc == kpPb0100 ){
    Tab = 0.098334; TabSyst = 0.0070679;
    A=207.2; B=1.;
  }
  else if( ccestimator == kV0A ){
    if ( cc == kpPb020 ) {
      Tab = 0.183; TabSyst = 0.006245;
    } else if ( cc == kpPb2040 ) {
      Tab = 0.134; TabSyst = 0.004899;
    } else if ( cc == kpPb4060 ) {
      Tab = 0.092; TabSyst = 0.004796;
    } else if ( cc == kpPb60100 ) {
      Tab = 0.041; TabSyst = 0.008832;
    }
  }
  else if( ccestimator == kZNA ){
    if ( cc == kpPb020 ) {
      Tab = 0.164; TabSyst = 0.010724;
    } else if ( cc == kpPb2040 ) {
      Tab = 0.137; TabSyst = 0.005099;
    } else if ( cc == kpPb4060 ) {
      Tab = 0.1011; TabSyst = 0.006;
    } else if ( cc == kpPb60100 ) {
      Tab = 0.0459; TabSyst = 0.003162;
    }
  }

  //
  // Reading the pp file 
  //
  TFile * ppf = new TFile(ppfile,"read");
  TH1D * hSigmaPP;
  TGraphAsymmErrors * gSigmaPPSyst;
  TGraphAsymmErrors * gSigmaPPSystData = (TGraphAsymmErrors*)ppf->Get("gScaledDataSystData");
  TGraphAsymmErrors * gSigmaPPSystTheory = (TGraphAsymmErrors*)ppf->Get("gScaledDataSystExtrap");
  TGraphAsymmErrors * gSigmaPPSystFeedDown = (TGraphAsymmErrors*)ppf->Get("gScaledDataSystFeedDown");
  TH1I * hCombinedReferenceFlag;
  TGraphAsymmErrors * gReferenceFdSyst;
  if(isScaledAndExtrapRef){
    hCombinedReferenceFlag = (TH1I*)ppf->Get("hCombinedReferenceFlag");
    hSigmaPP = (TH1D*)ppf->Get("hReference");
    gSigmaPPSyst = (TGraphAsymmErrors*)ppf->Get("gReferenceSyst");
    gReferenceFdSyst = (TGraphAsymmErrors*)ppf->Get("gReferenceFdSyst");
  } else { 
    hSigmaPP = (TH1D*)ppf->Get("fhScaledData");
    gSigmaPPSyst = (TGraphAsymmErrors*)ppf->Get("gScaledData");
  }
  
  // Call the systematics uncertainty class for a given decay
  AliHFSystErr *systematicsPP = new AliHFSystErr();
  systematicsPP->Init(decay);

  //
  // Reading the AB collisions file
  // 
  TFile * ABf = new TFile(ABfile,"read");
  TH1D *hSigmaAB = (TH1D*)ABf->Get("histoSigmaCorr");
  //  TH2D *hSigmaABRcb = (TH2D*)ABf->Get("histoSigmaCorrRcb");
  //  TGraphAsymmErrors * gSigmaABSyst = (TGraphAsymmErrors*)ABf->Get("gSigmaCorr");
  TGraphAsymmErrors * gSigmaABSystFeedDown = (TGraphAsymmErrors*)ABf->Get("gSigmaCorrConservative");
  TNtuple * nSigmaAB = (TNtuple*)ABf->Get("fnSigma");
  //
  TH1D *hMassAB = (TH1D*)ABf->Get("hRECpt");
  TH1D *hDirectEffptAB = (TH1D*)ABf->Get("hDirectEffpt");
  TH1D *histofcAB = (TH1D*)ABf->Get("histofc");
  //
  TH1D* fhStatUncEffcSigmaAB = (TH1D*)ABf->Get("fhStatUncEffcSigma");
  TH1D* fhStatUncEffbSigmaAB = (TH1D*)ABf->Get("fhStatUncEffbSigma");
  TH1D* fhStatUncEffcFDAB = (TH1D*)ABf->Get("fhStatUncEffcFD");
  TH1D* fhStatUncEffbFDAB = (TH1D*)ABf->Get("fhStatUncEffbFD");
  //
  TH1D* fhStatUncEffcSigmaAB_Raa = (TH1D*)fhStatUncEffcSigmaAB->Clone("fhStatUncEffcSigmaAB_Raa");
  TH1D* fhStatUncEffbSigmaAB_Raa = (TH1D*)fhStatUncEffbSigmaAB->Clone("fhStatUncEffbSigmaAB_Raa");
  TH1D* fhStatUncEffcFDAB_Raa = (TH1D*)fhStatUncEffcFDAB->Clone("fhStatUncEffcFDAB_Raa");
  TH1D* fhStatUncEffbFDAB_Raa = (TH1D*)fhStatUncEffbFDAB->Clone("fhStatUncEffbFDAB_Raa");
  fhStatUncEffcSigmaAB_Raa->Reset();
  fhStatUncEffbSigmaAB_Raa->Reset();
  fhStatUncEffcFDAB_Raa->Reset();
  fhStatUncEffbFDAB_Raa->Reset();
  fhStatUncEffcSigmaAB_Raa->SetName("fhStatUncEffcSigmaAB_Raa");
  fhStatUncEffbSigmaAB_Raa->SetName("fhStatUncEffbSigmaAB_Raa");
  fhStatUncEffcFDAB_Raa->SetName("fhStatUncEffcFDAB_Raa");
  fhStatUncEffbFDAB_Raa->SetName("fhStatUncEffvFDAB_Raa");


  //
  // Call the systematics uncertainty class for a given decay
  AliHFSystErr *systematicsAB = new AliHFSystErr();
  systematicsAB->SetCollisionType(1);
  if ( cc == k07half ) systematicsAB->SetCentrality("07half");
  else if ( cc == k010 ) systematicsAB->SetCentrality("010");
  else if ( cc == k1020 ) systematicsAB->SetCentrality("1020");
  else if ( cc == k020 ) systematicsAB->SetCentrality("020");
  else if ( cc == k2040 || cc == k2030 || cc == k3040 ) {
    systematicsAB->SetCentrality("2040");
    systematicsAB->SetIsPbPb2010EnergyScan(true);
  }
  else if ( cc == k4060 || cc == k4050 || cc == k5060 ) systematicsAB->SetCentrality("4060");
  else if ( cc == k6080 || cc == k5080 ) systematicsAB->SetCentrality("6080");
  else if ( cc == k4080 ) systematicsAB->SetCentrality("4080");
  else if ( cc == k3050 ) {
    if (isRaavsEP == kPhiIntegrated) systematicsAB->SetCentrality("4080");
    else if (isRaavsEP == kInPlane) systematicsAB->SetCentrality("3050InPlane");
    else if (isRaavsEP == kOutOfPlane) systematicsAB->SetCentrality("3050OutOfPlane");
  }
  //
  else if ( cc == kpPb0100 || cc == kpPb020 || cc == kpPb2040 || cc == kpPb4060 || cc == kpPb60100 ) {
    systematicsAB->SetCollisionType(2);
    if(ccestimator==kV0A) {
      if(cc == kpPb020) systematicsAB->SetCentrality("020V0A");
      else if(cc == kpPb2040) systematicsAB->SetCentrality("2040V0A");
      else if(cc == kpPb4060) systematicsAB->SetCentrality("4060V0A");
      else if(cc == kpPb60100) systematicsAB->SetCentrality("60100V0A");
    } else if (ccestimator==kZNA) {
      if(cc == kpPb020) systematicsAB->SetCentrality("020ZNA");
      else if(cc == kpPb2040) systematicsAB->SetCentrality("2040ZNA");
      else if(cc == kpPb4060) systematicsAB->SetCentrality("4060ZNA");
      else if(cc == kpPb60100) systematicsAB->SetCentrality("60100ZNA");
    } else {
      if(!(cc == kpPb0100)) {
	cout <<" Error on the pPb options"<<endl;
	return;
      }
    }
  }
  else { 
    cout << " Systematics not yet implemented " << endl;
    return;
  }
  //
  systematicsAB->Init(decay);

  //
  Int_t entries = nSigmaAB->GetEntries();
  Float_t pt=0., signal=0., Rb=0., Rcb=0., fcAB=0., yieldAB=0., sigmaAB=0., statUncSigmaAB=0., sigmaABMin=0.,sigmaABMax=0.;
  nSigmaAB->SetBranchAddress("pt",&pt);
  nSigmaAB->SetBranchAddress("Signal",&signal);
  if (fdMethod==kNb) nSigmaAB->SetBranchAddress("Rb",&Rb);
  else if (fdMethod==kfc) nSigmaAB->SetBranchAddress("Rcb",&Rcb);
  nSigmaAB->SetBranchAddress("fc",&fcAB);
  nSigmaAB->SetBranchAddress("Yield",&yieldAB);
  nSigmaAB->SetBranchAddress("Sigma",&sigmaAB);
  nSigmaAB->SetBranchAddress("SigmaStatUnc",&statUncSigmaAB);
  nSigmaAB->SetBranchAddress("SigmaMax",&sigmaABMax);
  nSigmaAB->SetBranchAddress("SigmaMin",&sigmaABMin);
	
  
  // define the binning
  Int_t nbins = hSigmaAB->GetNbinsX();
  Double_t binwidth = hSigmaAB->GetBinWidth(1);
  Double_t *limits = new Double_t[nbins+1];
  Double_t *binwidths = new Double_t[nbins];
  Double_t xlow=0.;
  for (Int_t i=1; i<=nbins; i++) {
    binwidth = hSigmaAB->GetBinWidth(i);
    xlow = hSigmaAB->GetBinLowEdge(i);
    limits[i-1] = xlow;
    binwidths[i-1] = binwidth;
  }
  limits[nbins] = xlow + binwidth;


  //
  // Read the shadowing file if given as input
  //
  Double_t centralRbcShad[nbins+1], minRbcShad[nbins+1], maxRbcShad[nbins+1];
  for(Int_t i=0; i<=nbins; i++) { centralRbcShad[i]=1.0; minRbcShad[i]=6.0; maxRbcShad[i]=0.0; }
  Bool_t isShadHypothesis = false;
  if( strcmp(shadRbcFile,"")!=0 ) {
    isShadHypothesis = true;
    cout<<endl<<">>  Beware, using the shadowing prediction file with an "<<nSigmaShad<<"*sigma <<"<<endl<<endl;
    TFile *fshad = new TFile(shadRbcFile,"read");
    if(!fshad){ cout <<" >> Shadowing file not properly opened!!!"<<endl<<endl; return;}
    // TH1D *hRbcShadCentral = (TH1D*)fshad->Get("hDfromBoverPromptD_Shadowing_central");
    // TH1D *hRbcShadMin = (TH1D*)fshad->Get("hDfromBoverPromptD_Shadowing_upper");
    // TH1D *hRbcShadMax = (TH1D*)fshad->Get("hDfromBoverPromptD_Shadowing_lower");
    TH1D *hRbcShadCentral = (TH1D*)fshad->Get("hDfromBoverDfromc_L0");
    TH1D *hRbcShadMin = (TH1D*)fshad->Get("hDfromBoverDfromc_L0");
    TH1D *hRbcShadMax = (TH1D*)fshad->Get("hDfromBoverDfromc_L1");
    if(!hRbcShadCentral || !hRbcShadMin || !hRbcShadMax) {
      cout<< endl <<">> Shadowing input histograms are not ok !! "<<endl<<endl;
      return;
    }
    //       nSigmaShad
    //    nSigmaShad
    for(Int_t i=1; i<=nbins; i++) {
      Double_t xpt = hSigmaAB->GetBinCenter(i);
      if(xpt>24) xpt = 20;
      centralRbcShad[i] = hRbcShadCentral->GetBinContent( hRbcShadCentral->FindBin(xpt) );
      Double_t minValue0 = hRbcShadMin->GetBinContent( hRbcShadMin->FindBin(xpt) );
      Double_t maxValue0 = hRbcShadMax->GetBinContent( hRbcShadMax->FindBin(xpt) );
      Double_t arrayEl[3] = {minValue0,maxValue0, centralRbcShad[i]};
      Double_t minValue = TMath::MinElement(3,arrayEl);
      Double_t maxValue = TMath::MaxElement(3,arrayEl);
      cout<<">> Shadowing pt="<<xpt<<"  central="<<centralRbcShad[i]<<"  min="<<minValue<<"  max="<<maxValue<<endl;
      if(minValue>centralRbcShad[i]){ minValue = centralRbcShad[i]; }
      if(maxValue<centralRbcShad[i]){ maxValue = centralRbcShad[i]; }
      minRbcShad[i] = centralRbcShad[i] - nSigmaShad*(centralRbcShad[i] - minValue);
      maxRbcShad[i] = centralRbcShad[i] + nSigmaShad*(maxValue - centralRbcShad[i]);
      cout<<">> Shadowing hypothesis pt="<<xpt<<"  central="<<centralRbcShad[i]<<"  min="<<minRbcShad[i]<<"  max="<<maxRbcShad[i]<<endl;
    }
  }

  //
  // define the bins correspondence bw histos/files/graphs
  //
  //
  TH2D * hRABvsRcb = new TH2D("hRABvsRcb"," R_{AB}(c) vs Rcb Eloss hypothesis; p_{T} [GeV/c] ;  R_{AB}(c) ; Rcb Eloss hypothesis  ",nbins,limits,800,0.,4.);
  TH2D * hRABvsRb = new TH2D("hRABvsRb"," R_{AB}(c) vs Rb Eloss hypothesis; p_{T} [GeV/c] ;  R_{AB}(c) ; Rb Eloss hypothesis ",nbins,limits,800,0.,4.);
  //  TH2D * hRABBeautyvsRCharm = new TH2D("hRABBeautyvsRCharm"," R_{AB}(c) vs Rb Eloss hypothesis; p_{T} [GeV/c] ;  R_{AB}(b) ;  R_{AB}(c) ",nbins,limits,800,0.,4.);
  Int_t nbinsHypo=800;//200;
  Double_t *limitsHypo = new Double_t[nbinsHypo+1];
  for(Int_t i=1; i<=nbinsHypo+1; i++) limitsHypo[i-1]= i*4./800.;
  TH3D * hRABCharmVsRBeautyVsPt = new TH3D("hRABCharmVsRBeautyVsPt"," R_{AB}(c) vs Rb vs p_{T} Eloss hypothesis; p_{T} [GeV/c] ;  R_{AB}(b) ;  R_{AB}(c) ",nbins,limits,nbinsHypo,limitsHypo,nbinsHypo,limitsHypo);
  TH2D *hRCharmVsRBeauty[nbins+1];
  for(Int_t i=0; i<=nbins; i++) hRCharmVsRBeauty[i] = new TH2D(Form("hRCharmVsRBeauty_%i",i),Form("RAB(c) vs RAB(b) for pt bin %i ; R_{AB}(b) ;  R_{AB}(c)",i),nbinsHypo,limitsHypo,nbinsHypo,limitsHypo);
  TH2D *hRCharmVsElossHypo[nbins+1];
  for(Int_t i=0; i<=nbins; i++) hRCharmVsElossHypo[i] = new TH2D(Form("hRCharmVsElossHypo_%i",i),Form("RAB(c) vs ElossHypo for pt bin %i ; Eloss Hypothesis (c/b) ;  R_{AB}(c)",i),nbinsHypo,limitsHypo,nbinsHypo,limitsHypo);
  //
  TH1D *hRABEloss00= new TH1D("hRABEloss00","hRABEloss00",nbins,limits);
  TH1D *hRABEloss05= new TH1D("hRABEloss05","hRABEloss05",nbins,limits);
  TH1D *hRABEloss10= new TH1D("hRABEloss10","hRABEloss10",nbins,limits);
  TH1D *hRABEloss15= new TH1D("hRABEloss15","hRABEloss15",nbins,limits);
  TH1D *hRABEloss20= new TH1D("hRABEloss20","hRABEloss20",nbins,limits);
  //
  TH2D * hRABvsRbFDlow = new TH2D("hRABvsRbFDlow"," R_{AB}(c) vs Rb Eloss hypothesis (FD low); p_{T} [GeV/c] ; Rb Eloss hypothesis ; R_{AB}(c) ",nbins,limits,800,0.,4.);
  TH2D * hRABvsRbFDhigh = new TH2D("hRABvsRbFDhigh"," R_{AB}(c) vs Rb Eloss hypothesis (FD high); p_{T} [GeV/c] ; Rb Eloss hypothesis ; R_{AB}(c) ",nbins,limits,800,0.,4.);
  //
  TH1D * hRABvsRbFDhigh_proj = new TH1D("hRABvsRbFDhigh_proj","hRABvsRbFDhigh_proj",nbins,limits);
  TH1D * hRABvsRbFDlow_proj = new TH1D("hRABvsRbFDlow_proj","hRABvsRbFDlow_proj",nbins,limits);
  //
  TNtuple *ntupleRAB=0x0 ;
  if (fdMethod==kNb) {
    ntupleRAB = new TNtuple("ntupleRAB","ntupleRAB (Nb)","pt:TAB:sigmaPP:sigmaAB:invyieldAB:invyieldABFDHigh:invyieldABFDLow:RABCharm:RABCharmFDHigh:RABCharmFDLow:RABBeauty:fc",100000);
  } else if (fdMethod==kfc) {
    ntupleRAB = new TNtuple("ntupleRAB","ntupleRAB (fc)","pt:TAB:sigmaPP:sigmaAB:invyieldAB:invyieldABFDHigh:invyieldABFDLow:Rcb:RABCharm:RABCharmFDHigh:RABCharmFDLow:RABBeauty:RABBeautyFDHigh:RABBeautyFDLow:fc",100000);
  }
  if(!ntupleRAB) printf("ERROR: Wrong method option");

  TH1D * hYieldABvsPt = new TH1D("hYieldABvsPt"," Yield_{AB}(c) vs p_{T} (no Eloss hypothesis); p_{T} [GeV/c] ; Yield_{charm} ",nbins,limits);
  TH1D * hRABvsPt = new TH1D("hRABvsPt"," R_{AB}(c) vs p_{T} (no Eloss hypothesis); p_{T} [GeV/c] ; R_{charm} ",nbins,limits);
  TH1D * hRABvsPt_DataSystematics = new TH1D("hRABvsPt_DataSystematics"," Systematics of R_{AB} (c) vs p_{T} (no Eloss hypothesis); p_{T} [GeV/c] ; R_{charm} ",nbins,limits);
  TGraphAsymmErrors *gRAB_ElossHypothesis = new TGraphAsymmErrors(nbins+1);
  gRAB_ElossHypothesis->SetNameTitle("gRAB_ElossHypothesis","RAB Eloss systematics");
  TGraphAsymmErrors *gRAB_FeedDownSystematics = new TGraphAsymmErrors(nbins+1);
  gRAB_FeedDownSystematics->SetNameTitle("gRAB_FeedDownSystematics","RAB Feed-Down systematics");
  TGraphAsymmErrors *gRAB_fcFeedDownOnly = new TGraphAsymmErrors(nbins+1);
  gRAB_fcFeedDownOnly->SetNameTitle("gRAB_fcFeedDownOnly","RAB fc Feed-Down Only");
  TGraphAsymmErrors *gRAB_FeedDownSystematicsElossHypothesis = new TGraphAsymmErrors(nbins+1);
  gRAB_FeedDownSystematicsElossHypothesis->SetNameTitle("gRAB_FeedDownSystematicsElossHypothesis","RAB Feed-Down systematics considering Eloss hypothesis");
  TGraphAsymmErrors *gRAB_DataSystematics = new TGraphAsymmErrors(nbins+1);
  gRAB_DataSystematics->SetNameTitle("gRAB_DataSystematics","RAB Measurement (no FD, no Eloss) systematics");
  TGraphAsymmErrors *gRAB_DataSystematicsPP = new TGraphAsymmErrors(nbins+1);
  gRAB_DataSystematicsPP->SetNameTitle("gRAB_DataSystematicsPP","RAB Measurement PP meas. systematics (data+scaling)");
  TGraphAsymmErrors *gRAB_DataSystematicsAB = new TGraphAsymmErrors(nbins+1);
  gRAB_DataSystematicsAB->SetNameTitle("gRAB_DataSystematicsAB","RAB Measurement AB (no FD, no Eloss, no PP data) systematics");
  TGraphAsymmErrors *gRAB_GlobalSystematics = new TGraphAsymmErrors(nbins+1);
  gRAB_GlobalSystematics->SetNameTitle("gRAB_GlobalSystematics","RAB Measurement global (data, FD, Eloss) systematics");
  Double_t ElossMax[nbins+1], ElossMin[nbins+1];
  for(Int_t i=0; i<=nbins; i++) { ElossMax[i]=0.; ElossMin[i]=6.; }
  Double_t fcElossMax[nbins+1], fcElossMin[nbins+1];
  for(Int_t i=0; i<=nbins; i++) { fcElossMax[i]=0.; fcElossMin[i]=6.; }
  Double_t FDElossMax[nbins+1], FDElossMin[nbins+1];
  for(Int_t i=0; i<=nbins; i++) { FDElossMax[i]=0.; FDElossMin[i]=6.; }

  TGraphAsymmErrors *gRAB_Norm = new TGraphAsymmErrors(1);
  gRAB_Norm->SetNameTitle("gRAB_Norm","RAB Normalization systematics (pp norm + Tab)");
  Double_t normUnc = TMath::Sqrt ( NormPPUnc*NormPPUnc + (TabSyst/Tab)*(TabSyst/Tab) );
  if(!isUseTaaForRaa) normUnc = TMath::Sqrt ( NormPPUnc*NormPPUnc + NormABUnc*NormABUnc );
  gRAB_Norm->SetPoint(1,0.5,1.);
  gRAB_Norm->SetPointError(1,0.25,0.25,normUnc,normUnc);

  //
  // R_AB =  ( dN/dpt )_AB  / <Ncoll_AB> *  ( dN/dpt )_pp ; <Ncoll> = <Tab> * sigma_NN^inel
  // R_AB =  [ ( dsigma/dpt )_AB / sigma_AB ]  / <TAB> *  ( dsigma/dpt )_pp
  //
  Int_t istartPPfd=0, istartPPsyst=0, istartABfd=0, istartPPextr=0;
  Double_t yPPh=0., yPPl=0., yABh=0., yABl=0.;
  Double_t RaaCharm =0., RaaBeauty=0.;
  Double_t RaaCharmFDhigh = 0., RaaCharmFDlow = 0.;
  Double_t RaaBeautyFDhigh = 0., RaaBeautyFDlow = 0.;
  Double_t systUp=0., systLow=0., systPPUp=0., systPPLow=0., systABUp=0., systABLow=0.;
  //
  //
  // Search the central value of the energy loss hypothesis Rb = Rc (bin)
  //
  Double_t ElossCentral[nbins+1];
  for(Int_t i=0; i<=nbins; i++) { ElossCentral[i]=0.; }
  //
  for(Int_t ientry=0; ientry<=entries; ientry++){

    nSigmaAB->GetEntry(ientry);
    //    cout << " pt="<< pt<<" sigma-AB="<<sigmaAB<<endl;
    if ( !(sigmaAB>0.) ) continue;
    //if(decay==2 && pt<2.) continue;

    // Compute RAB and the statistical uncertainty
    Int_t hppbin = hSigmaPP->FindBin( pt );
    Int_t hABbin = hSigmaAB->FindBin( pt );
    Double_t sigmapp = hSigmaPP->GetBinContent( hppbin );
    //    cout << " pt="<< pt<<", sigma-pp="<< sigmapp<<endl;
    if (isRaavsEP>0.) sigmapp = 0.5*sigmapp;
    if ( !(sigmapp>0.) ) continue;

    RaaCharm =  ( sigmaAB / sigmaABCINT1B ) / ((Tab*1e3) * sigmapp *1e-12 ) ;
    if(!isUseTaaForRaa) { 
      RaaCharm =  ( sigmaAB ) / ( (A*B) * sigmapp ) ;
    }

    if (fdMethod==kNb) {
      RaaBeauty = Rb ; 
    }
    else if (fdMethod==kfc) {
      RaaBeauty = ( RaaCharm / Rcb ) ;
    }

    Double_t ElossHypo = 0.;
    if (fdMethod==kfc) { ElossHypo = 1. / Rcb; }
    else  { ElossHypo = 1. / (RaaCharm / RaaBeauty) ; }
    if(isRbHypo) ElossHypo = RaaBeauty;

    // If using shadowing hypothesis, change the central hypothesis too
    if(isShadHypothesis) CentralHypo = centralRbcShad[hABbin];

    //    cout <<" pt "<< pt << " Raa charm " << RaaCharm << " Raa beauty " << RaaBeauty << " eloss hypo "<< ElossHypo<<endl; 
    //
    // Find the bin for the central Eloss hypo
    //
    if( TMath::Abs( ElossHypo - CentralHypo ) < 0.075 ){
      Double_t DeltaIni = TMath::Abs( ElossCentral[ hABbin ] - CentralHypo );
      Double_t DeltaV = TMath::Abs( ElossHypo - CentralHypo );
      //      cout << " pt " << pt << " ECentral " << ElossCentral[ hABbin ] << " Ehypo "<< ElossHypo ;
      if ( DeltaV < DeltaIni ) ElossCentral[ hABbin ] = ElossHypo;
      //      cout << " final ECentral " << ElossCentral[ hABbin ] << endl;
    }
  }
  //
  // Calculation of the Raa and its uncertainties
  //
  for(Int_t ientry=0; ientry<entries; ientry++){

    nSigmaAB->GetEntry(ientry);
    if ( !(sigmaAB>0.) ) continue;
    //    if ( pt<2 || pt>16) continue;


    // Compute RAB and the statistical uncertainty
    Int_t hppbin = hSigmaPP->FindBin( pt );
    Double_t sigmapp = hSigmaPP->GetBinContent( hppbin );
    if (isRaavsEP>0.) sigmapp = 0.5*sigmapp;
    if ( !(sigmapp>0.) ) continue;

    RaaCharm =  ( sigmaAB / sigmaABCINT1B ) / ((Tab*1e3) * sigmapp *1e-12 );
    if(!isUseTaaForRaa) {
      RaaCharm =  ( sigmaAB ) / ( (A*B) * sigmapp ) ;
    }

    // Flag to know if it is an scaled or extrapolated point of the pp reference
    Bool_t isExtrapolatedBin = kFALSE;
    if(isScaledAndExtrapRef) isExtrapolatedBin = hCombinedReferenceFlag->GetBinContent( hppbin );
    istartPPsyst = -1;
    istartPPsyst = FindGraphBin(gSigmaPPSyst,pt);

    //
    // FONLL Feed-Down systematics
    //
    istartPPfd = -1;
    if(!isExtrapolatedBin) istartPPfd = FindGraphBin(gSigmaPPSystFeedDown,pt);
    istartABfd = -1;
    istartABfd = FindGraphBin(gSigmaABSystFeedDown,pt);

    //      cout << " Starting bin for pp is "<< istartPPfd <<", for AA is "<<istartABfd << endl;
    if(isExtrapolatedBin){
      Int_t ibinfd = FindGraphBin(gReferenceFdSyst,pt);
      yPPh = gReferenceFdSyst->GetErrorYhigh(ibinfd);
      yPPl = gReferenceFdSyst->GetErrorYlow(ibinfd);
    } else { 
      yPPh = gSigmaPPSystFeedDown->GetErrorYhigh(istartPPfd);
      yPPl = gSigmaPPSystFeedDown->GetErrorYlow(istartPPfd);
    }
    if (isRaavsEP>0.) {
      yPPh = yPPh*0.5;
      yPPl = yPPl*0.5;
    }

    yABh = gSigmaABSystFeedDown->GetErrorYhigh(istartABfd);
    yABl = gSigmaABSystFeedDown->GetErrorYlow(istartABfd);


    RaaCharmFDhigh = ( sigmaABMax / sigmaABCINT1B ) / ((Tab*1e3) * (sigmapp+yPPh) *1e-12 ) ;
    RaaCharmFDlow =  ( sigmaABMin / sigmaABCINT1B ) / ((Tab*1e3) * (sigmapp-yPPl) *1e-12 ) ;
    if(printout && TMath::Abs(ptprintout-pt)<0.1 ) cout << endl<<" pt "<< pt << " Raa " << RaaCharm <<" high "<< RaaCharmFDhigh << " low "<< RaaCharmFDlow<<endl;
    if(!isUseTaaForRaa) {
      RaaCharmFDhigh = ( sigmaABMax ) / ( (A*B)* (sigmapp+yPPh) ) ;
      RaaCharmFDlow =  ( sigmaABMin ) / ( (A*B)* (sigmapp-yPPl) ) ;
    }


    if (fdMethod==kNb) {
      RaaBeauty = Rb ; 
      RaaBeautyFDlow = Rb ;
      RaaBeautyFDhigh = Rb ;
      ntupleRAB->Fill( pt, Tab*1e3, sigmapp*1e-12, sigmaAB*1e-12, sigmaAB/sigmaABCINT1B,
		       sigmaABMax / sigmaABCINT1B, sigmaABMin / sigmaABCINT1B,
		       RaaCharm, RaaCharmFDhigh, RaaCharmFDlow, RaaBeauty, fcAB );
    }
    else if (fdMethod==kfc) {
      RaaBeauty = ( RaaCharm / Rcb ) ;
      RaaBeautyFDlow = ( RaaCharmFDlow / Rcb ) ;
      RaaBeautyFDhigh = ( RaaCharmFDhigh / Rcb ) ;
      hRABvsRcb->Fill( pt, RaaCharm, RaaBeauty );
      ntupleRAB->Fill( pt, Tab*1e3, sigmapp*1e-12, sigmaAB*1e-12, sigmaAB/sigmaABCINT1B,
		       sigmaABMax / sigmaABCINT1B, sigmaABMin / sigmaABCINT1B,
		       Rcb, RaaCharm, RaaCharmFDhigh, RaaCharmFDlow, RaaBeauty, RaaBeautyFDhigh, RaaBeautyFDlow, fcAB );
    }
    hRABvsRb->Fill( pt, RaaCharm, RaaBeauty );
    hRABvsRbFDlow->Fill( pt, RaaCharmFDlow, RaaBeautyFDlow );
    hRABvsRbFDhigh->Fill( pt, RaaCharmFDhigh, RaaBeautyFDhigh );
    if(printout && TMath::Abs(ptprintout-pt)<0.1) cout << " pt "<< pt << " Rb " << RaaBeauty <<" high "<< RaaBeautyFDhigh << " low "<< RaaBeautyFDlow <<endl;

    hRABCharmVsRBeautyVsPt->Fill( pt, RaaBeauty, RaaCharm );
    Int_t ptbin = hRABvsPt->FindBin( pt );
    hRCharmVsRBeauty[ptbin]->Fill( RaaBeauty, RaaCharm );
    hRCharmVsRBeauty[ptbin]->Fill( RaaBeautyFDlow, RaaCharmFDlow );
    hRCharmVsRBeauty[ptbin]->Fill( RaaBeautyFDhigh, RaaCharmFDhigh );


    if (fdMethod==kfc) {
      if( TMath::Abs(Rcb-0.015)<0.009 ) hRABEloss00->Fill(pt,RaaCharm);
      if( TMath::Abs(Rcb-0.5)<0.009 ) hRABEloss05->Fill(pt,RaaCharm);
      if( TMath::Abs(Rcb-1.0)<0.009 ) {
	hRABEloss10->Fill(pt,RaaCharm);
	hRABvsRbFDhigh_proj->Fill(pt,RaaCharmFDhigh);
	hRABvsRbFDlow_proj->Fill(pt,RaaCharmFDlow);
      }
      if( TMath::Abs(Rcb-1.5)<0.009 ) hRABEloss15->Fill(pt,RaaCharm);
      if( TMath::Abs(Rcb-2.0)<0.009 ) hRABEloss20->Fill(pt,RaaCharm);
    }
    else if (fdMethod==kNb) {
      if( TMath::Abs(RaaBeauty-0.015)<0.009 ) hRABEloss00->Fill(pt,RaaCharm);
      if( TMath::Abs(RaaBeauty-0.5)<0.009 ) hRABEloss05->Fill(pt,RaaCharm);
      if( TMath::Abs(RaaBeauty-1.0)<0.009 ) {
	hRABEloss10->Fill(pt,RaaCharm);
	hRABvsRbFDhigh_proj->Fill(pt,RaaCharmFDhigh);
	hRABvsRbFDlow_proj->Fill(pt,RaaCharmFDlow);
      }
      if( TMath::Abs(RaaBeauty-1.5)<0.009 ) hRABEloss15->Fill(pt,RaaCharm);
      if( TMath::Abs(RaaBeauty-2.0)<0.009 ) hRABEloss20->Fill(pt,RaaCharm);
    }


    Int_t hABbin = hMassAB->FindBin( pt );
    if(isShadHypothesis) CentralHypo = centralRbcShad[hABbin];

    if(printout && TMath::Abs(ptprintout-pt)<0.1)
    if ( fdMethod==kNb && TMath::Abs(Rb -CentralHypo)< 0.05) {
      cout << " pt "<< pt <<", at bin "<<hABbin<<endl;
      cout<<" entries "<<entries<<", i="<<ientry<<", pt="<<pt<<", Rb="<<Rb<<", Tab="<<Tab<<", sigmaAB="<<sigmaAB<<", sigmapp="<<sigmapp<<", Raacharm="<<RaaCharm<<", RaaBeauty="<<RaaBeauty<<endl;
      cout << "  AB  basis: mass "<< hMassAB->GetBinContent(hABbin)<<", eff "<< hDirectEffptAB->GetBinContent(hABbin)<<endl;
      cout<<"   FD low,  err low AB "<< (sigmaAB-sigmaABMin)<<"  err low PP "<< yPPl<<" Raacharm="<<RaaCharmFDlow<<", RaaBeauty="<<RaaBeautyFDlow<<endl;
      cout<<"   FD high, err high AB "<< (sigmaABMax-sigmaAB)<<"  err high PP "<< yPPh<<" Raacharm="<<RaaCharmFDhigh<<", RaaBeauty="<<RaaBeautyFDhigh<<endl;
    }
    if(printout && TMath::Abs(ptprintout-pt)<0.1)
    if ( fdMethod==kfc) if(TMath::Abs(Rcb -CentralHypo)< 0.05 ){
      cout << " pt "<< pt <<", at bin "<<hABbin<<endl;
      cout<<" entries "<<entries<<", i="<<ientry<<", pt="<<pt<<", Rcb="<<Rcb<<", Tab="<<Tab<<", sigmaAB="<<sigmaAB<<", sigmapp="<<sigmapp<<", Raacharm="<<RaaCharm<<", RaaBeauty="<<RaaBeauty<<endl;
      cout << "  AB  basis: mass "<< hMassAB->GetBinContent(hABbin)<<", eff "<< hDirectEffptAB->GetBinContent(hABbin)<<", fc "<<histofcAB->GetBinContent(hABbin)<< endl;       
      cout<<"   FD low,  err low AB "<< (sigmaAB-sigmaABMin)<<"  err low PP "<< yPPl<<" Raacharm="<<RaaCharmFDlow<<", RaaBeauty="<<RaaBeautyFDlow<<endl;
      cout<<"   FD high, err high AB "<< (sigmaABMax-sigmaAB)<<"  err high PP "<< yPPh<<" Raacharm="<<RaaCharmFDhigh<<", RaaBeauty="<<RaaBeautyFDhigh<<endl;
    }


    //
    // Fill in the global properties ?
    //
    Double_t ElossHypo = 0.;
    if (fdMethod==kfc) { ElossHypo = 1./ Rcb; }
    else  { ElossHypo = 1. / (RaaCharm / RaaBeauty); }
    if(isRbHypo) ElossHypo = RaaBeauty;
    hRCharmVsElossHypo[ptbin]->Fill( ElossHypo, RaaCharm );

   // If using shadowing hypothesis, change the limit hypothesis too
    if(isShadHypothesis) {
      MinHypo = minRbcShad[ hABbin ];
      MaxHypo = maxRbcShad[ hABbin ];
    }

    //    cout <<" pt "<< pt << " Raa charm " << RaaCharm << " Raa beauty " << RaaBeauty << " eloss hypo "<< ElossHypo
    if(ientry==0) cout<<" pt"<< pt<< " ElossCentral "<< ElossCentral[hABbin] << " min-hypo "<<MinHypo << " max-hypo "<<MaxHypo<<endl;

    //
    // Fill in histos charm (null Eloss hypothesis)
    //
    Double_t minFdSyst = 0., maxFdSyst = 0.;
    if ( ElossHypo == ElossCentral[ hABbin ] ) {

      //
      // Data stat uncertainty
      //
      Double_t sigmappStat = hSigmaPP->GetBinError( hppbin );
      if (isRaavsEP>0.) sigmappStat = sigmappStat*0.5;
      Int_t hRABbin = hRABvsPt->FindBin( pt );
      Double_t stat = RaaCharm * TMath::Sqrt( (statUncSigmaAB/sigmaAB)*(statUncSigmaAB/sigmaAB) + 
					      (sigmappStat/sigmapp)*(sigmappStat/sigmapp) ) ;
      if ( RaaCharm==0 ) stat =0.;
      if ( RaaCharm>0 ) {
	hRABvsPt->SetBinContent( hRABbin, RaaCharm );
	hRABvsPt->SetBinError( hRABbin, stat );
	hYieldABvsPt->SetBinContent( hRABbin, sigmaAB/sigmaABCINT1B );
	hYieldABvsPt->SetBinError( hRABbin, statUncSigmaAB/sigmaABCINT1B );
	
	cout << "pt="<< pt<< " Raa " << RaaCharm << " stat unc. "<<
	  " sigma-pp "<< sigmapp <<" sigma-AB "<< sigmaAB<<endl;
	if(printout && TMath::Abs(ptprintout-pt)<0.1) {
	  cout << " Raa " << RaaCharm << " stat unc. "<< stat << " is "<< stat/RaaCharm * 100. <<
	    "%, stat-pp "<< sigmappStat/sigmapp*100. <<"% stat-AB "<< statUncSigmaAB/sigmaAB*100.<<"%"<<endl;
	}

	Double_t errstatEff = fhStatUncEffcSigmaAB->GetBinError( hRABbin );
	fhStatUncEffcSigmaAB_Raa->SetBinError( hRABbin, errstatEff*RaaCharm );
	errstatEff = fhStatUncEffbSigmaAB->GetBinError( hRABbin );
	fhStatUncEffbSigmaAB_Raa->SetBinError( hRABbin, errstatEff*RaaCharm );
	errstatEff = fhStatUncEffcFDAB->GetBinError( hRABbin );
	fhStatUncEffcFDAB_Raa->SetBinError( hRABbin, errstatEff*RaaCharm );
	errstatEff = fhStatUncEffbFDAB->GetBinError( hRABbin );
	fhStatUncEffbFDAB_Raa->SetBinError( hRABbin, errstatEff*RaaCharm );
      }


      //
      //
      // Data systematics (sigma syst-but FD + extrap) syst
      //
      //
      // Data syst: a) Syst in p-p 
      //
      Double_t ptwidth = hSigmaAB->GetBinWidth(hABbin) / 2. ;
      istartPPextr = -1;
      if(!isExtrapolatedBin) istartPPextr = FindGraphBin(gSigmaPPSystTheory,pt);

      Double_t dataPPUp=0., dataPPLow=0.;
      if(isExtrapolatedBin) {
	dataPPUp = gSigmaPPSyst->GetErrorYhigh(istartPPsyst);
	dataPPLow = gSigmaPPSyst->GetErrorYlow(istartPPsyst);
	systPPUp = dataPPUp;
	systPPLow = dataPPLow;
      } else { 
	dataPPUp = ExtractFDSyst( gSigmaPPSystData->GetErrorYhigh(istartPPextr), gSigmaPPSystFeedDown->GetErrorYhigh(istartPPfd) );
	dataPPLow = ExtractFDSyst( gSigmaPPSystData->GetErrorYlow(istartPPextr), gSigmaPPSystFeedDown->GetErrorYlow(istartPPfd) );
	systPPUp = TMath::Sqrt( dataPPUp*dataPPUp + gSigmaPPSystTheory->GetErrorYhigh(istartPPextr)*gSigmaPPSystTheory->GetErrorYhigh(istartPPextr) );
	systPPLow = TMath::Sqrt( dataPPLow*dataPPLow + gSigmaPPSystTheory->GetErrorYlow(istartPPextr)*gSigmaPPSystTheory->GetErrorYlow(istartPPextr) );
      }
      if (isRaavsEP>0.) {
	dataPPUp = dataPPUp*0.5;
	dataPPLow = dataPPLow*0.5;
	if(isExtrapolatedBin) {
	  systPPUp = dataPPUp;
	  systPPLow = dataPPLow;
	} else {  
	  systPPUp = TMath::Sqrt( dataPPUp*dataPPUp + 0.5*gSigmaPPSystTheory->GetErrorYhigh(istartPPextr)*0.5*gSigmaPPSystTheory->GetErrorYhigh(istartPPextr) );
	  systPPLow = TMath::Sqrt( dataPPLow*dataPPLow + 0.5*gSigmaPPSystTheory->GetErrorYlow(istartPPextr)*0.5*gSigmaPPSystTheory->GetErrorYlow(istartPPextr) );
	}
      }


      if(printout && TMath::Abs(ptprintout-pt)<0.1) {
	cout << " pt : "<< pt<<" Syst-pp-data "<< dataPPUp/sigmapp << "%, ";
	if(!isExtrapolatedBin){
	  if (isRaavsEP>0.) cout <<" extr unc + "<< 0.5*gSigmaPPSystTheory->GetErrorYhigh(istartPPextr)/sigmapp <<" - "<< 0.5*gSigmaPPSystTheory->GetErrorYlow(istartPPextr)/sigmapp <<" %";
	  else cout <<" extr unc + "<< gSigmaPPSystTheory->GetErrorYhigh(istartPPextr)/sigmapp <<" - "<< gSigmaPPSystTheory->GetErrorYlow(istartPPextr)/sigmapp <<" %";
	}
	cout << endl;
      }

      //
      // Data syst: b) Syst in PbPb
      //
      Double_t dataSystUp=0., dataSystDown=0.;
      Bool_t PbPbDataSystOk = PbPbDataSyst(systematicsAB,pt,cc,dataSystUp,dataSystDown);
      if (!PbPbDataSystOk) { cout <<" There is some issue with the PbPb data systematics, please check and rerun"<<endl; return; }
      systABUp = sigmaAB * TMath::Sqrt( dataSystUp*dataSystUp + 
					(hDirectEffptAB->GetBinError(hABbin)/hDirectEffptAB->GetBinContent(hABbin))*(hDirectEffptAB->GetBinError(hABbin)/hDirectEffptAB->GetBinContent(hABbin)) );

      systABLow = sigmaAB * TMath::Sqrt( dataSystDown*dataSystDown + 
					(hDirectEffptAB->GetBinError(hABbin)/hDirectEffptAB->GetBinContent(hABbin))*(hDirectEffptAB->GetBinError(hABbin)/hDirectEffptAB->GetBinContent(hABbin)) );
      //
      // Data syst : c) combine pp & PbPb
      //
      systLow = sigmapp>0. ? 
	RaaCharm * TMath::Sqrt( (systABLow/sigmaAB)*(systABLow/sigmaAB) + (systPPUp/sigmapp)*(systPPUp/sigmapp) )
	: 0.;

      systUp = sigmapp>0. ? 
	RaaCharm * TMath::Sqrt( (systABUp/sigmaAB)*(systABUp/sigmaAB) + (systPPLow/sigmapp)*(systPPLow/sigmapp) )
	: 0.;
      if ( RaaCharm==0 ) { systPPUp =0.; systPPLow =0.; }
      
      //      if(printout) 
	cout << " Syst-pp-up "<< systPPUp/sigmapp <<"%, syst-pp-low "<< systPPLow/sigmapp <<"%, syst-AB-up "<<systABUp/sigmaAB<<"%, syst-AB-low "<<systABLow/sigmaAB<<"%, tot-syst-up "<<systUp/RaaCharm<<"%, tot-syst-low "<<systLow/RaaCharm<<"%"<<endl;

      if ( RaaCharm>0 ) {
	hRABvsPt_DataSystematics->SetBinContent( hRABbin, RaaCharm );
	hRABvsPt_DataSystematics->SetBinError( hRABbin, systUp );
	gRAB_DataSystematics->SetPoint( hABbin, pt, RaaCharm ); // i, x, y
	gRAB_DataSystematics->SetPointError( hABbin, ptwidth, ptwidth, systLow, systUp );
	gRAB_DataSystematics->SetPointEXlow(hABbin, 0.4); gRAB_DataSystematics->SetPointEXhigh(hABbin,0.4);
	gRAB_DataSystematicsPP->SetPoint( hABbin, pt, RaaCharm ); // i, x, y
	gRAB_DataSystematicsPP->SetPointError( hABbin, ptwidth, ptwidth, RaaCharm *(systPPUp/sigmapp), RaaCharm *systPPLow/sigmapp );
	gRAB_DataSystematicsAB->SetPoint( hABbin, pt, RaaCharm ); // i, x, y
	gRAB_DataSystematicsAB->SetPointError( hABbin, ptwidth, ptwidth, RaaCharm *systABLow/sigmaAB, RaaCharm *systABUp/sigmaAB );
      }

      //
      // Feed-down Systematics
      //
      Double_t FDL=0., FDH=0.;
      if ( RaaCharmFDhigh > RaaCharmFDlow ){
	FDH = RaaCharmFDhigh; FDL = RaaCharmFDlow;
      } else {
	FDL = RaaCharmFDhigh; FDH = RaaCharmFDlow;
      } 
      
      if(printout && TMath::Abs(ptprintout-pt)<0.1) cout<<" Raa "<<RaaCharm<<", Raa-fd-low "<<RaaCharmFDlow <<", Raa-fd-high "<<RaaCharmFDhigh <<endl;
      maxFdSyst = TMath::Abs(FDH - RaaCharm);
      minFdSyst = TMath::Abs(RaaCharm - FDL);
      if ( RaaCharm>0 ) {
	gRAB_FeedDownSystematics->SetPoint( hABbin, pt, RaaCharm ); // i, x, y
	gRAB_FeedDownSystematics->SetPointError( hABbin, 0.3, 0.3, minFdSyst, maxFdSyst ); // i, x, y
	gRAB_fcFeedDownOnly->SetPoint( hABbin, pt,fcAB );
	gRAB_fcFeedDownOnly->SetPointError(hABbin, 0.3, 0.3, fcAB-(sigmaABMin/sigmaAB*fcAB), (sigmaABMax/sigmaAB*fcAB)-fcAB );
      }
      
      //      if(printout) { 
	cout<<" FD syst  +"<< maxFdSyst/RaaCharm <<" - "<<minFdSyst/RaaCharm<<endl;
	cout<<"  fc = "<<fcAB<<", ("<< sigmaABMax/sigmaAB * fcAB <<","<< sigmaABMin/sigmaAB * fcAB <<")"<<endl;
	//      }

      //
      // Filling part of the Eloss scenarii information
      //
      if(RaaCharm>0 ) {
	gRAB_ElossHypothesis->SetPoint( hABbin, pt, RaaCharm ); // i, x, y
	gRAB_ElossHypothesis->SetPointEXlow( hABbin, ptwidth);
	gRAB_ElossHypothesis->SetPointEXhigh( hABbin, ptwidth);
	gRAB_FeedDownSystematicsElossHypothesis->SetPoint( hABbin, pt, RaaCharm ); // i, x, y
	gRAB_FeedDownSystematicsElossHypothesis->SetPointEXlow( hABbin, ptwidth);
	gRAB_FeedDownSystematicsElossHypothesis->SetPointEXhigh( hABbin, ptwidth);
	gRAB_GlobalSystematics->SetPoint( hABbin, pt, RaaCharm ); // i, x, y
	gRAB_GlobalSystematics->SetPointEXlow(hABbin,0.4); gRAB_GlobalSystematics->SetPointEXhigh(hABbin,0.4);
      }
    }

    //
    // Filling Eloss scenarii information
    //
    //    trick in case not fine enough Rb hypothesis to cope with the min/max range
    //    if( RaaCharm>0 && ( (ElossHypo >= MinHypo && ElossHypo <=MaxHypo) || ElossHypo == ElossCentral[ hABbin ] ) && RaaBeauty<=MaxRb ) {
    //      by default better not use it, to monitor when this happens (could affect results)
    if( RaaCharm>0 && ElossHypo >= MinHypo && ElossHypo <=MaxHypo && RaaBeauty<=MaxRb ) {

      Double_t Ehigh =  ElossMax[ hABbin ] ;
      Double_t Elow =  ElossMin[ hABbin ] ;
      if ( RaaCharm > Ehigh ) ElossMax[ hABbin ] = RaaCharm ;
      if ( RaaCharm < Elow ) ElossMin[ hABbin ] = RaaCharm ;
      if(printout && TMath::Abs(ptprintout-pt)<0.1) {
	cout<<" Hypothesis " << ElossHypo << " sigma-AB "<< sigmaAB <<", Raa "<< RaaCharm <<", Raa Eloss max "<< ElossMax[hABbin] <<" Raa Eloss min "<< ElossMin[hABbin] << " Rb="<< RaaBeauty <<endl;
	cout<<"  Rb="<< RaaBeauty <<" max "<< RaaBeautyFDhigh <<" min "<< RaaBeautyFDlow <<endl;
      }
      Double_t fcEhigh =  fcElossMax[ hABbin ] ;
      Double_t fcElow =  fcElossMin[ hABbin ] ;
      if ( fcAB > fcEhigh ) fcElossMax[ hABbin ] = fcAB ;
      if ( fcAB < fcElow ) fcElossMin[ hABbin ] = fcAB ;
      Double_t FDEhigh = FDElossMax[ hABbin ];
      Double_t FDEmin = FDElossMin[ hABbin ];
      Double_t RFDhigh = RaaCharmFDhigh>RaaCharmFDlow ? RaaCharmFDhigh : RaaCharmFDlow;
      Double_t RFDlow = RaaCharmFDlow<RaaCharmFDhigh ? RaaCharmFDlow : RaaCharmFDhigh;
      if ( RFDhigh > FDEhigh ) FDElossMax[ hABbin ] = RFDhigh ;
      if ( RFDlow < FDEmin ) FDElossMin[ hABbin ] = RFDlow ;
      if(printout && TMath::Abs(ptprintout-pt)<0.1) 
	cout<<" Hypothesis " << ElossHypo << " sigma-AB "<< sigmaAB <<", Raa FD-max Eloss max "<< FDElossMax[hABbin] <<" Raa FD-min Eloss min "<< FDElossMin[hABbin] <<endl;
    }


  }
  delete [] limits;
  delete [] binwidths;


  // Finish filling the y-uncertainties of the Eloss scenarii 
  for (Int_t ibin=0; ibin<=nbins; ibin++){
    Double_t ipt=0., value =0.;
    gRAB_ElossHypothesis->GetPoint(ibin,ipt,value);
    if(ipt<=0) continue;
    //
    // Uncertainty on Raa due to the Eloss hypothesis
    Double_t elossYhigh = TMath::Abs( ElossMax[ibin] - value );
    Double_t elossYlow = TMath::Abs( value - ElossMin[ibin] );
    gRAB_ElossHypothesis->SetPointEYhigh(ibin, elossYhigh );
    gRAB_ElossHypothesis->SetPointEYlow(ibin, elossYlow );
    gRAB_ElossHypothesis->SetPointEXhigh(ibin, 0.2);
    gRAB_ElossHypothesis->SetPointEXlow(ibin, 0.2);
    cout << " pt "<< ipt << " Raa "<< value <<" max "<< ElossMax[ibin] << " min " <<ElossMin[ibin] <<endl;
    cout<<" Eloss syst  +"<< elossYhigh <<" - "<< elossYlow <<endl; 
    //    cout << " fc max "<< fcElossMax[ibin] << " fc min " <<fcElossMin[ibin] <<endl;   
    //
    // Uncertainty on Raa due to the FD unc & Eloss hypothesis
    Double_t fdElossEYhigh = TMath::Abs( FDElossMax[ibin] - value );
    Double_t fdElossEYlow = TMath::Abs( value - FDElossMin[ibin] );
    if(elossFDQuadSum){
      Double_t fdEYhigh = gRAB_FeedDownSystematics->GetErrorYhigh(ibin);
      fdElossEYhigh = TMath::Sqrt( elossYhigh*elossYhigh + fdEYhigh*fdEYhigh );
      Double_t fdEYlow = gRAB_FeedDownSystematics->GetErrorYlow(ibin);
      fdElossEYlow = TMath::Sqrt( elossYlow*elossYlow + fdEYlow*fdEYlow );
    }
    gRAB_FeedDownSystematicsElossHypothesis->SetPointEYhigh(ibin, fdElossEYhigh );
    gRAB_FeedDownSystematicsElossHypothesis->SetPointEYlow(ibin, fdElossEYlow );
    gRAB_FeedDownSystematicsElossHypothesis->SetPointEXhigh(ibin, 0.25);
    gRAB_FeedDownSystematicsElossHypothesis->SetPointEXlow(ibin, 0.25);
    cout<<" FD & Eloss syst  +"<< fdElossEYhigh <<" - "<< fdElossEYlow 
	<<" = + "<< fdElossEYhigh/value <<" - "<< fdElossEYlow/value <<" %" <<endl; 
    //
    // All uncertainty on Raa (FD unc & Eloss + data)
    Double_t systdatal = gRAB_DataSystematics->GetErrorYlow(ibin);
    Double_t systdatah = gRAB_DataSystematics->GetErrorYhigh(ibin);
    Double_t systgbhUnc = TMath::Sqrt( systdatah*systdatah + fdElossEYhigh*fdElossEYhigh );
    Double_t systgblUnc = TMath::Sqrt( systdatal*systdatal + fdElossEYlow*fdElossEYlow );
    gRAB_GlobalSystematics->SetPointEYhigh(ibin,systgbhUnc);
    gRAB_GlobalSystematics->SetPointEYlow(ibin,systgblUnc);
    cout<<" Data syst  +"<< systdatah <<" - "<<  systdatal <<" = + "<< systdatah/value <<" - " <<  systdatal/value << " % "<<endl; 
    cout<<" Global syst  +"<< systgbhUnc <<" - "<<  systgblUnc << " = + "<< systgbhUnc/value <<" - "<<  systgblUnc/value << " %" <<endl; 
    //
  }


  gROOT->SetStyle("Plain");
  gStyle->SetPalette(1);
  gStyle->SetOptStat(0);


  TCanvas *cRABvsRb = new TCanvas("RABvsRb","RAB vs Rb");
  hRABvsRb->Draw("colz");
  cRABvsRb->Update();

  TCanvas *cRABvsRbvsPt = new TCanvas("cRABvsRbvsPt","RAB vs Rb vs pt");
  hRABCharmVsRBeautyVsPt->Draw("lego3z");
  cRABvsRbvsPt->Update();


  TCanvas *cRABvsRbFDl = new TCanvas("RABvsRbFDl","RAB vs Rb (FD low)");
  hRABvsRbFDlow->Draw("cont4z");
  cRABvsRbFDl->Update();
  TCanvas *cRABvsRbFDh = new TCanvas("RABvsRbFDh","RAB vs Rb (FD high)");
  hRABvsRbFDhigh->Draw("cont4z");
  cRABvsRbFDh->Update();

  TCanvas * cSigmaABptEloss = new TCanvas("cSigmaABptEloss","SigmaAB vs pt, Eloss hypothesis");
  TH1D *hSigmaABEloss00= new TH1D("hSigmaABEloss00","hSigmaABEloss00",nbins,limits);
  TH1D *hSigmaABEloss05= new TH1D("hSigmaABEloss05","hSigmaABEloss05",nbins,limits);
  TH1D *hSigmaABEloss10= new TH1D("hSigmaABEloss10","hSigmaABEloss10",nbins,limits);
  TH1D *hSigmaABEloss15= new TH1D("hSigmaABEloss15","hSigmaABEloss15",nbins,limits);
  TH1D *hSigmaABEloss20= new TH1D("hSigmaABEloss20","hSigmaABEloss20",nbins,limits);
  for (Int_t i=0; i<=nSigmaAB->GetEntriesFast(); i++) {
    nSigmaAB->GetEntry(i);
    if (fdMethod==kfc) {
      if( TMath::Abs(Rcb-0.015)<0.009 ) hSigmaABEloss00->Fill(pt,sigmaAB);
      if( TMath::Abs(Rcb-0.5)<0.009 ) hSigmaABEloss05->Fill(pt,sigmaAB);
      if( TMath::Abs(Rcb-1.0)<0.009 ) hSigmaABEloss10->Fill(pt,sigmaAB);
      if( TMath::Abs(Rcb-1.5)<0.009 ) hSigmaABEloss15->Fill(pt,sigmaAB);
      if( TMath::Abs(Rcb-2.0)<0.009 ) hSigmaABEloss20->Fill(pt,sigmaAB);
    }
    else if (fdMethod==kNb) {
      if( TMath::Abs(Rb-0.015)<0.009 ) hSigmaABEloss00->Fill(pt,sigmaAB);
      if( TMath::Abs(Rb-0.5)<0.009 ) hSigmaABEloss05->Fill(pt,sigmaAB);
      if( TMath::Abs(Rb-1.0)<0.009 ) hSigmaABEloss10->Fill(pt,sigmaAB);
      if( TMath::Abs(Rb-1.5)<0.009 ) hSigmaABEloss15->Fill(pt,sigmaAB);
      if( TMath::Abs(Rb-2.0)<0.009 ) hSigmaABEloss20->Fill(pt,sigmaAB);
    }
  }
  hSigmaABEloss00->SetLineColor(2);
  hSigmaABEloss05->SetLineColor(3);
  hSigmaABEloss10->SetLineColor(4);
  hSigmaABEloss15->SetLineColor(kMagenta+1);
  hSigmaABEloss20->SetLineColor(kGreen+2);
  hSigmaABEloss00->SetMarkerStyle(22);
  hSigmaABEloss05->SetMarkerStyle(26);
  hSigmaABEloss10->SetMarkerStyle(20);
  hSigmaABEloss15->SetMarkerStyle(25);
  hSigmaABEloss20->SetMarkerStyle(21);
  if (fdMethod==kNb) {
    hSigmaABEloss05->Draw("ph");
    hSigmaABEloss10->Draw("phsame");
    hSigmaABEloss15->Draw("phsame");
    hSigmaABEloss20->Draw("phsame");
  }
  else {
    hSigmaABEloss20->Draw("p");
    hSigmaABEloss00->Draw("phsame");
    hSigmaABEloss05->Draw("phsame");
    hSigmaABEloss10->Draw("phsame");
    hSigmaABEloss15->Draw("phsame");
    hSigmaABEloss20->Draw("phsame");
  }
  TLegend *legrcb = new TLegend(0.8,0.8,0.95,0.9);
  legrcb->SetFillColor(0);
  legrcb->AddEntry(hSigmaABEloss00,"Rc/b=0.0","lp");
  legrcb->AddEntry(hSigmaABEloss05,"Rc/b=0.5","lp");
  legrcb->AddEntry(hSigmaABEloss10,"Rc/b=1.0","lp");
  legrcb->AddEntry(hSigmaABEloss15,"Rc/b=1.5","lp");
  legrcb->AddEntry(hSigmaABEloss20,"Rc/b=2.0","lp");
  legrcb->Draw();
  cSigmaABptEloss->Update();


  TCanvas * cRABptEloss = new TCanvas("cRABptEloss","RAB vs pt, Eloss hypothesis");
  hRABEloss00->SetLineColor(2);
  hRABEloss05->SetLineColor(3);
  hRABEloss10->SetLineColor(4);
  hRABEloss15->SetLineColor(kMagenta+1);
  hRABEloss20->SetLineColor(kGreen+2);
  hRABEloss00->SetMarkerStyle(22);
  hRABEloss05->SetMarkerStyle(26);
  hRABEloss10->SetMarkerStyle(20);
  hRABEloss15->SetMarkerStyle(25);
  hRABEloss20->SetMarkerStyle(21);
  if (fdMethod==kNb) {
    hRABEloss05->Draw("ph");
    hRABEloss10->Draw("phsame");
    hRABEloss15->Draw("phsame");
    hRABEloss20->Draw("phsame");
  }
  else {
    hRABEloss20->Draw("p");
    hRABEloss00->Draw("phsame");
    hRABEloss05->Draw("phsame");
    hRABEloss10->Draw("phsame");
    hRABEloss15->Draw("phsame");
    hRABEloss20->Draw("phsame");
  }
  legrcb = new TLegend(0.8,0.8,0.95,0.9);
  legrcb->SetFillColor(0);
  if (fdMethod==kfc) {
    legrcb->AddEntry(hRABEloss00,"Rc/b=0.0","lp");
    legrcb->AddEntry(hRABEloss05,"Rc/b=0.5","lp");
    legrcb->AddEntry(hRABEloss10,"Rc/b=1.0","lp");
    legrcb->AddEntry(hRABEloss15,"Rc/b=0.5","lp");
    legrcb->AddEntry(hRABEloss20,"Rc/b=2.0","lp");
  }
  else if (fdMethod==kNb) {
    legrcb->AddEntry(hRABEloss00,"Rb=0.0","lp");
    legrcb->AddEntry(hRABEloss05,"Rb=0.5","lp");
    legrcb->AddEntry(hRABEloss10,"Rb=1.0","lp");
    legrcb->AddEntry(hRABEloss15,"Rb=0.5","lp");
    legrcb->AddEntry(hRABEloss20,"Rb=2.0","lp");
  }	
  legrcb->Draw();
  cRABptEloss->Update();


  TCanvas * cRABpt = new TCanvas("cRABpt","RAB vs pt, no hypothesis");
  hRABEloss10->Draw("");
  cRABpt->Update();

  TCanvas * cRABptFDUnc = new TCanvas("cRABptFDUnc","RAB vs pt, FD Uncertainties");
  hRABvsRbFDlow_proj->Draw("");
  hRABEloss10->Draw("phsame");
  hRABvsRbFDhigh_proj->SetLineColor(kMagenta+1);
  hRABvsRbFDhigh_proj->Draw("same");
  hRABvsRbFDlow_proj->SetLineColor(kGreen+2);
  hRABvsRbFDlow_proj->Draw("same");
  legrcb = new TLegend(0.8,0.8,0.95,0.9);
  legrcb->SetFillColor(0);
  legrcb->AddEntry(hRABEloss10,"FD Central","lp");
  legrcb->AddEntry(hRABvsRbFDhigh_proj,"FD Upper unc.","l");
  legrcb->AddEntry(hRABvsRbFDlow_proj,"FD Lower unc.","l");
  legrcb->Draw();
  cRABptFDUnc->Update();

  TCanvas *RaaPlot = new TCanvas("RaaPlot","RAB vs pt, plot all");
  RaaPlot->SetTopMargin(0.085);
  RaaPlot->SetBottomMargin(0.1);
  RaaPlot->SetTickx();
  RaaPlot->SetTicky();
  TH2D *hRaaCanvas = new TH2D("hRaaCanvas"," R_{AB}(c) vs p_{T} (no Eloss hypothesis); p_{t} [GeV/c] ; R_{AA} prompt D",40,0.,40.,100,0.,3.0);
  hRaaCanvas->GetXaxis()->SetTitleSize(0.05);
  hRaaCanvas->GetXaxis()->SetTitleOffset(0.9);
  hRaaCanvas->GetYaxis()->SetTitleSize(0.05);
  hRaaCanvas->GetYaxis()->SetTitleOffset(0.9);
  hRaaCanvas->Draw();
  gRAB_Norm->SetFillStyle(1001);
  gRAB_Norm->SetFillColor(kGray+2);
  gRAB_Norm->Draw("2");
  TLine *line = new TLine(0.0172415,1.0,40.,1.0);
  line->SetLineStyle(2);
  line->Draw();
  hRABvsPt->SetMarkerColor(kBlue);
  hRABvsPt->SetMarkerColor(kBlue);
  hRABvsPt->SetMarkerStyle(21);
  hRABvsPt->SetMarkerSize(1.1);
  hRABvsPt->SetLineWidth(2);
  hRABvsPt->Draw("psame");
  gRAB_DataSystematics->SetLineColor(kBlue);
  gRAB_DataSystematics->SetLineWidth(3);
  gRAB_DataSystematics->SetLineWidth(2);
  gRAB_DataSystematics->SetFillColor(kRed);
  gRAB_DataSystematics->SetFillStyle(0);
  gRAB_DataSystematics->Draw("2");
  gRAB_FeedDownSystematics->SetFillColor(kViolet+1);
  gRAB_FeedDownSystematics->SetFillStyle(1001);
  gRAB_FeedDownSystematics->Draw("2");
  gRAB_ElossHypothesis->SetLineColor(kMagenta-7);
  gRAB_ElossHypothesis->SetFillColor(kMagenta-7);
  gRAB_ElossHypothesis->SetFillStyle(1001);
  gRAB_ElossHypothesis->Draw("2");
  hRABvsPt->Draw("psame");
  gRAB_DataSystematics->Draw("2");
  legrcb = new TLegend(0.5517241,0.6504237,0.8520115,0.8728814,NULL,"brNDC");
  legrcb->SetBorderSize(0);
  legrcb->SetTextSize(0.03389831);
  legrcb->SetLineColor(1);
  legrcb->SetLineStyle(1);
  legrcb->SetLineWidth(1);
  legrcb->SetFillColor(0);
  legrcb->SetFillStyle(1001);
  if(cc==k020) legrcb->AddEntry(hRABvsPt,"R_{AA} 0-20% CC","pe");
  else if(cc==k4080) legrcb->AddEntry(hRABvsPt,"R_{AA} 40-80% CC","pe");
  else legrcb->AddEntry(hRABvsPt,"R_{AA} and stat. unc.","pe");
  legrcb->AddEntry(gRAB_DataSystematics,"Syst. from data","f");
  legrcb->AddEntry(gRAB_ElossHypothesis,"Syst. from R_{AA}(B)","f");
  legrcb->AddEntry(gRAB_FeedDownSystematics,"Syst. from B feed-down","f");
  legrcb->Draw();
  TLatex* tc;
  TString system = "Pb-Pb   #sqrt{s_{NN}}=2.76 TeV";
  if( cc==kpPb0100 || cc==kpPb020 || cc==kpPb2040 || cc==kpPb4060 || cc==kpPb60100 ) system = "p-Pb   #sqrt{s_{NN}}=5.023 TeV";
  if(decay==1) tc =new TLatex(0.18,0.82,Form("D^{0},  %s ",system.Data()));
  else if(decay==2) tc =new TLatex(0.18,0.82,Form("D^{+},  %s ",system.Data()));
  else if(decay==3) tc =new TLatex(0.18,0.82,Form("D^{*+},  %s ",system.Data()));
  else if(decay==4) tc =new TLatex(0.18,0.82,Form("D_{s}^{+},  %s ",system.Data()));
  else  tc =new TLatex(0.18,0.82,Form("any (?) D meson,  %s ",system.Data()));
  tc->SetNDC();
  tc->SetTextSize(0.038);
  tc->SetTextFont(42);
  tc->Draw();
  RaaPlot->Update();


  TCanvas *RaaPlotFDEloss = new TCanvas("RaaPlotFDEloss","RAB vs pt, plot FD & ElossUnc");
  RaaPlotFDEloss->SetTopMargin(0.085);
  RaaPlotFDEloss->SetBottomMargin(0.1);
  hRaaCanvas->Draw();
  line->Draw();
  hRABvsPt->Draw("psame");
  gRAB_FeedDownSystematics->SetFillColor(kViolet+1);
  gRAB_FeedDownSystematics->SetFillStyle(1001);
  gRAB_FeedDownSystematics->Draw("2");
  gRAB_ElossHypothesis->SetLineColor(kMagenta-7);
  gRAB_ElossHypothesis->SetFillColor(kMagenta-7);
  gRAB_ElossHypothesis->SetFillStyle(1001);
  gRAB_ElossHypothesis->Draw("2");
  gRAB_FeedDownSystematicsElossHypothesis->SetLineColor(kBlack);
  gRAB_FeedDownSystematicsElossHypothesis->SetFillStyle(0);
  gRAB_FeedDownSystematicsElossHypothesis->SetFillColor(kViolet+1);
  gRAB_FeedDownSystematicsElossHypothesis->Draw("2");
  hRABvsPt->Draw("psame");
  legrcb = new TLegend(0.6,0.6,0.9,0.9);
  legrcb->SetBorderSize(0);
  legrcb->SetTextSize(0.03389831);
  legrcb->SetLineColor(1);
  legrcb->SetLineStyle(1);
  legrcb->SetLineWidth(1);
  legrcb->SetFillColor(0);
  legrcb->SetFillStyle(1001);
  legrcb->AddEntry(hRABvsPt,"R_{PbPb} and stat. unc.","pe");
  legrcb->AddEntry(gRAB_ElossHypothesis,"Energy loss syst.","f");
  legrcb->AddEntry(gRAB_FeedDownSystematics,"Feed down syst.","f");
  legrcb->AddEntry(gRAB_FeedDownSystematicsElossHypothesis,"Feed down & Eloss syst.","f");
  legrcb->Draw();
  RaaPlotFDEloss->Update();
  

  TCanvas *RaaPlotGlob = new TCanvas("RaaPlotGlob","RAB vs pt, plot Global unc");
  RaaPlotGlob->SetTopMargin(0.085);
  RaaPlotGlob->SetBottomMargin(0.1);
  RaaPlotGlob->SetTickx();
  RaaPlotGlob->SetTicky();
  hRaaCanvas->Draw();
  line->Draw();
  hRABvsPt->Draw("psame");
  gRAB_DataSystematics->Draw("2");
  gRAB_FeedDownSystematicsElossHypothesis->Draw("2");
  gRAB_GlobalSystematics->SetLineColor(kRed);
  gRAB_GlobalSystematics->SetLineWidth(2);
  gRAB_GlobalSystematics->SetFillColor(kRed);
  gRAB_GlobalSystematics->SetFillStyle(3002);
  gRAB_GlobalSystematics->Draw("2");
  hRABvsPt->Draw("psame");
  legrcb = new TLegend(0.6,0.6,0.9,0.9);
  legrcb->SetBorderSize(0);
  legrcb->SetTextSize(0.03389831);
  legrcb->SetLineColor(1);
  legrcb->SetLineStyle(1);
  legrcb->SetLineWidth(1);
  legrcb->SetFillColor(0);
  legrcb->SetFillStyle(1001);
  legrcb->AddEntry(hRABvsPt,"R_{PbPb} and stat. unc.","pe");
  legrcb->AddEntry(gRAB_DataSystematics,"Data syst.","f");
  legrcb->AddEntry(gRAB_FeedDownSystematicsElossHypothesis,"Feed down & Eloss syst.","f");
  legrcb->AddEntry(gRAB_GlobalSystematics,"Global syst.","f");
  legrcb->Draw();
  RaaPlotGlob->Update();


  
  TCanvas *RaaPlotSimple = new TCanvas("RaaPlotSimple","RAB vs pt, plot Simple unc");
  RaaPlotSimple->SetTopMargin(0.085);
  RaaPlotSimple->SetBottomMargin(0.1);
  RaaPlotSimple->SetTickx();
  RaaPlotSimple->SetTicky();
  hRaaCanvas->Draw();
  line->Draw();
  hRABvsPt->Draw("psame");
  gRAB_GlobalSystematics->SetLineColor(kBlue);
  gRAB_GlobalSystematics->SetLineWidth(2);
  gRAB_GlobalSystematics->SetFillStyle(0);
  gRAB_GlobalSystematics->Draw("2");
  gRAB_Norm->Draw("2");
  hRABvsPt->Draw("psame");
  legrcb = new TLegend(0.5991379,0.6949153,0.8534483,0.8559322,NULL,"brNDC");
  legrcb->SetBorderSize(0);
  legrcb->SetTextSize(0.03389831);
  legrcb->SetLineColor(1);
  legrcb->SetLineStyle(1);
  legrcb->SetLineWidth(1);
  legrcb->SetFillColor(0);
  legrcb->SetFillStyle(1001); 
  if(cc==k020) legrcb->AddEntry(hRABvsPt,"R_{AA} 0-20% CC","pe");
  else if(cc==k4080) legrcb->AddEntry(hRABvsPt,"R_{AA} 40-80% CC","pe");
  else legrcb->AddEntry(hRABvsPt,"R_{AA} and stat. unc.","pe");
  legrcb->AddEntry(gRAB_GlobalSystematics,"Systematics","f");
  legrcb->Draw();
  tc->Draw();
  RaaPlotSimple->Update();


  TCanvas *c = new TCanvas("c","");
  systematicsAB->DrawErrors();
  c->Update();

  TCanvas *cStatUnc = new TCanvas("cStatUnc","stat unc");
  cStatUnc->Divide(2,2);
  cStatUnc->cd(1);
  fhStatUncEffcSigmaAB_Raa->Draw("e");
  cStatUnc->cd(2);
  fhStatUncEffbSigmaAB_Raa->Draw("e");
  cStatUnc->cd(3);
  fhStatUncEffcFDAB_Raa->Draw("e");
  cStatUnc->cd(4);
  fhStatUncEffbFDAB_Raa->Draw("e");
  cStatUnc->Update();

  //
  // Write the information to a file
  //
  TFile * out = new TFile(outfile,"recreate");

  ntupleRAB->Write();
  hRABvsRcb->Write();
  hRABvsRb->Write();
  hRABCharmVsRBeautyVsPt->Write();
  for(Int_t j=0; j<=nbins; j++) hRCharmVsRBeauty[j]->Write();
  //  for(Int_t j=0; j<=nbins; j++) hRCharmVsElossHypo[j]->Write();
  hRABvsPt->Write();
  hRABvsPt_DataSystematics->Write();
  gRAB_ElossHypothesis->Write();
  gRAB_FeedDownSystematics->Write();
  gRAB_fcFeedDownOnly->Write();
  gRAB_DataSystematics->Write();
  gRAB_DataSystematicsPP->Write();
  gSigmaPPSystTheory->Write();
  gRAB_DataSystematicsAB->Write();
  gRAB_Norm->Write();
  gRAB_FeedDownSystematicsElossHypothesis->Write();
  gRAB_GlobalSystematics->Write();
  if(isScaledAndExtrapRef) hCombinedReferenceFlag->Write();

  out->Write();

}

//____________________________________________________________
Bool_t PbPbDataSyst(AliHFSystErr *syst, Double_t pt, Int_t cc, Double_t &dataSystUp, Double_t &dataSystDown)
{

  Double_t err=0., errUp=1., errDown=1.;
  Bool_t isOk=false;
  Double_t pidunc=0.;

  err = syst->GetTotalSystErr(pt)*syst->GetTotalSystErr(pt);
  errUp = err ;
  errDown = err ;

  // Apply an asymetric PID uncertainty for 2010 PbPb data only
  if( syst->GetRunNumber()==10 && syst->GetCollisionType()==1 ) {
    if( cc==k07half || cc==k020 || cc==k010 || cc==k1020 || cc==k2040 ) {
      if(pt<6) pidunc = 0.15;
      else pidunc = 0.05;
      errUp = err + pidunc*pidunc - syst->GetPIDEffErr(pt)*syst->GetPIDEffErr(pt);
      isOk = true;
    }
    else if ( cc==k3050 || cc==k4080 || cc==k4060 || cc==k6080 ){
      if(pt<3.1) pidunc = 0.10;
      else pidunc = 0.05;
      errUp = err + pidunc*pidunc - syst->GetPIDEffErr(pt)*syst->GetPIDEffErr(pt);
      isOk = true;
    }
  }
  else { isOk = true; }

  dataSystUp = TMath::Sqrt(errUp);
  dataSystDown = TMath::Sqrt(errDown);

  return isOk;
}
 HFPtSpectrumRaa.C:1
 HFPtSpectrumRaa.C:2
 HFPtSpectrumRaa.C:3
 HFPtSpectrumRaa.C:4
 HFPtSpectrumRaa.C:5
 HFPtSpectrumRaa.C:6
 HFPtSpectrumRaa.C:7
 HFPtSpectrumRaa.C:8
 HFPtSpectrumRaa.C:9
 HFPtSpectrumRaa.C:10
 HFPtSpectrumRaa.C:11
 HFPtSpectrumRaa.C:12
 HFPtSpectrumRaa.C:13
 HFPtSpectrumRaa.C:14
 HFPtSpectrumRaa.C:15
 HFPtSpectrumRaa.C:16
 HFPtSpectrumRaa.C:17
 HFPtSpectrumRaa.C:18
 HFPtSpectrumRaa.C:19
 HFPtSpectrumRaa.C:20
 HFPtSpectrumRaa.C:21
 HFPtSpectrumRaa.C:22
 HFPtSpectrumRaa.C:23
 HFPtSpectrumRaa.C:24
 HFPtSpectrumRaa.C:25
 HFPtSpectrumRaa.C:26
 HFPtSpectrumRaa.C:27
 HFPtSpectrumRaa.C:28
 HFPtSpectrumRaa.C:29
 HFPtSpectrumRaa.C:30
 HFPtSpectrumRaa.C:31
 HFPtSpectrumRaa.C:32
 HFPtSpectrumRaa.C:33
 HFPtSpectrumRaa.C:34
 HFPtSpectrumRaa.C:35
 HFPtSpectrumRaa.C:36
 HFPtSpectrumRaa.C:37
 HFPtSpectrumRaa.C:38
 HFPtSpectrumRaa.C:39
 HFPtSpectrumRaa.C:40
 HFPtSpectrumRaa.C:41
 HFPtSpectrumRaa.C:42
 HFPtSpectrumRaa.C:43
 HFPtSpectrumRaa.C:44
 HFPtSpectrumRaa.C:45
 HFPtSpectrumRaa.C:46
 HFPtSpectrumRaa.C:47
 HFPtSpectrumRaa.C:48
 HFPtSpectrumRaa.C:49
 HFPtSpectrumRaa.C:50
 HFPtSpectrumRaa.C:51
 HFPtSpectrumRaa.C:52
 HFPtSpectrumRaa.C:53
 HFPtSpectrumRaa.C:54
 HFPtSpectrumRaa.C:55
 HFPtSpectrumRaa.C:56
 HFPtSpectrumRaa.C:57
 HFPtSpectrumRaa.C:58
 HFPtSpectrumRaa.C:59
 HFPtSpectrumRaa.C:60
 HFPtSpectrumRaa.C:61
 HFPtSpectrumRaa.C:62
 HFPtSpectrumRaa.C:63
 HFPtSpectrumRaa.C:64
 HFPtSpectrumRaa.C:65
 HFPtSpectrumRaa.C:66
 HFPtSpectrumRaa.C:67
 HFPtSpectrumRaa.C:68
 HFPtSpectrumRaa.C:69
 HFPtSpectrumRaa.C:70
 HFPtSpectrumRaa.C:71
 HFPtSpectrumRaa.C:72
 HFPtSpectrumRaa.C:73
 HFPtSpectrumRaa.C:74
 HFPtSpectrumRaa.C:75
 HFPtSpectrumRaa.C:76
 HFPtSpectrumRaa.C:77
 HFPtSpectrumRaa.C:78
 HFPtSpectrumRaa.C:79
 HFPtSpectrumRaa.C:80
 HFPtSpectrumRaa.C:81
 HFPtSpectrumRaa.C:82
 HFPtSpectrumRaa.C:83
 HFPtSpectrumRaa.C:84
 HFPtSpectrumRaa.C:85
 HFPtSpectrumRaa.C:86
 HFPtSpectrumRaa.C:87
 HFPtSpectrumRaa.C:88
 HFPtSpectrumRaa.C:89
 HFPtSpectrumRaa.C:90
 HFPtSpectrumRaa.C:91
 HFPtSpectrumRaa.C:92
 HFPtSpectrumRaa.C:93
 HFPtSpectrumRaa.C:94
 HFPtSpectrumRaa.C:95
 HFPtSpectrumRaa.C:96
 HFPtSpectrumRaa.C:97
 HFPtSpectrumRaa.C:98
 HFPtSpectrumRaa.C:99
 HFPtSpectrumRaa.C:100
 HFPtSpectrumRaa.C:101
 HFPtSpectrumRaa.C:102
 HFPtSpectrumRaa.C:103
 HFPtSpectrumRaa.C:104
 HFPtSpectrumRaa.C:105
 HFPtSpectrumRaa.C:106
 HFPtSpectrumRaa.C:107
 HFPtSpectrumRaa.C:108
 HFPtSpectrumRaa.C:109
 HFPtSpectrumRaa.C:110
 HFPtSpectrumRaa.C:111
 HFPtSpectrumRaa.C:112
 HFPtSpectrumRaa.C:113
 HFPtSpectrumRaa.C:114
 HFPtSpectrumRaa.C:115
 HFPtSpectrumRaa.C:116
 HFPtSpectrumRaa.C:117
 HFPtSpectrumRaa.C:118
 HFPtSpectrumRaa.C:119
 HFPtSpectrumRaa.C:120
 HFPtSpectrumRaa.C:121
 HFPtSpectrumRaa.C:122
 HFPtSpectrumRaa.C:123
 HFPtSpectrumRaa.C:124
 HFPtSpectrumRaa.C:125
 HFPtSpectrumRaa.C:126
 HFPtSpectrumRaa.C:127
 HFPtSpectrumRaa.C:128
 HFPtSpectrumRaa.C:129
 HFPtSpectrumRaa.C:130
 HFPtSpectrumRaa.C:131
 HFPtSpectrumRaa.C:132
 HFPtSpectrumRaa.C:133
 HFPtSpectrumRaa.C:134
 HFPtSpectrumRaa.C:135
 HFPtSpectrumRaa.C:136
 HFPtSpectrumRaa.C:137
 HFPtSpectrumRaa.C:138
 HFPtSpectrumRaa.C:139
 HFPtSpectrumRaa.C:140
 HFPtSpectrumRaa.C:141
 HFPtSpectrumRaa.C:142
 HFPtSpectrumRaa.C:143
 HFPtSpectrumRaa.C:144
 HFPtSpectrumRaa.C:145
 HFPtSpectrumRaa.C:146
 HFPtSpectrumRaa.C:147
 HFPtSpectrumRaa.C:148
 HFPtSpectrumRaa.C:149
 HFPtSpectrumRaa.C:150
 HFPtSpectrumRaa.C:151
 HFPtSpectrumRaa.C:152
 HFPtSpectrumRaa.C:153
 HFPtSpectrumRaa.C:154
 HFPtSpectrumRaa.C:155
 HFPtSpectrumRaa.C:156
 HFPtSpectrumRaa.C:157
 HFPtSpectrumRaa.C:158
 HFPtSpectrumRaa.C:159
 HFPtSpectrumRaa.C:160
 HFPtSpectrumRaa.C:161
 HFPtSpectrumRaa.C:162
 HFPtSpectrumRaa.C:163
 HFPtSpectrumRaa.C:164
 HFPtSpectrumRaa.C:165
 HFPtSpectrumRaa.C:166
 HFPtSpectrumRaa.C:167
 HFPtSpectrumRaa.C:168
 HFPtSpectrumRaa.C:169
 HFPtSpectrumRaa.C:170
 HFPtSpectrumRaa.C:171
 HFPtSpectrumRaa.C:172
 HFPtSpectrumRaa.C:173
 HFPtSpectrumRaa.C:174
 HFPtSpectrumRaa.C:175
 HFPtSpectrumRaa.C:176
 HFPtSpectrumRaa.C:177
 HFPtSpectrumRaa.C:178
 HFPtSpectrumRaa.C:179
 HFPtSpectrumRaa.C:180
 HFPtSpectrumRaa.C:181
 HFPtSpectrumRaa.C:182
 HFPtSpectrumRaa.C:183
 HFPtSpectrumRaa.C:184
 HFPtSpectrumRaa.C:185
 HFPtSpectrumRaa.C:186
 HFPtSpectrumRaa.C:187
 HFPtSpectrumRaa.C:188
 HFPtSpectrumRaa.C:189
 HFPtSpectrumRaa.C:190
 HFPtSpectrumRaa.C:191
 HFPtSpectrumRaa.C:192
 HFPtSpectrumRaa.C:193
 HFPtSpectrumRaa.C:194
 HFPtSpectrumRaa.C:195
 HFPtSpectrumRaa.C:196
 HFPtSpectrumRaa.C:197
 HFPtSpectrumRaa.C:198
 HFPtSpectrumRaa.C:199
 HFPtSpectrumRaa.C:200
 HFPtSpectrumRaa.C:201
 HFPtSpectrumRaa.C:202
 HFPtSpectrumRaa.C:203
 HFPtSpectrumRaa.C:204
 HFPtSpectrumRaa.C:205
 HFPtSpectrumRaa.C:206
 HFPtSpectrumRaa.C:207
 HFPtSpectrumRaa.C:208
 HFPtSpectrumRaa.C:209
 HFPtSpectrumRaa.C:210
 HFPtSpectrumRaa.C:211
 HFPtSpectrumRaa.C:212
 HFPtSpectrumRaa.C:213
 HFPtSpectrumRaa.C:214
 HFPtSpectrumRaa.C:215
 HFPtSpectrumRaa.C:216
 HFPtSpectrumRaa.C:217
 HFPtSpectrumRaa.C:218
 HFPtSpectrumRaa.C:219
 HFPtSpectrumRaa.C:220
 HFPtSpectrumRaa.C:221
 HFPtSpectrumRaa.C:222
 HFPtSpectrumRaa.C:223
 HFPtSpectrumRaa.C:224
 HFPtSpectrumRaa.C:225
 HFPtSpectrumRaa.C:226
 HFPtSpectrumRaa.C:227
 HFPtSpectrumRaa.C:228
 HFPtSpectrumRaa.C:229
 HFPtSpectrumRaa.C:230
 HFPtSpectrumRaa.C:231
 HFPtSpectrumRaa.C:232
 HFPtSpectrumRaa.C:233
 HFPtSpectrumRaa.C:234
 HFPtSpectrumRaa.C:235
 HFPtSpectrumRaa.C:236
 HFPtSpectrumRaa.C:237
 HFPtSpectrumRaa.C:238
 HFPtSpectrumRaa.C:239
 HFPtSpectrumRaa.C:240
 HFPtSpectrumRaa.C:241
 HFPtSpectrumRaa.C:242
 HFPtSpectrumRaa.C:243
 HFPtSpectrumRaa.C:244
 HFPtSpectrumRaa.C:245
 HFPtSpectrumRaa.C:246
 HFPtSpectrumRaa.C:247
 HFPtSpectrumRaa.C:248
 HFPtSpectrumRaa.C:249
 HFPtSpectrumRaa.C:250
 HFPtSpectrumRaa.C:251
 HFPtSpectrumRaa.C:252
 HFPtSpectrumRaa.C:253
 HFPtSpectrumRaa.C:254
 HFPtSpectrumRaa.C:255
 HFPtSpectrumRaa.C:256
 HFPtSpectrumRaa.C:257
 HFPtSpectrumRaa.C:258
 HFPtSpectrumRaa.C:259
 HFPtSpectrumRaa.C:260
 HFPtSpectrumRaa.C:261
 HFPtSpectrumRaa.C:262
 HFPtSpectrumRaa.C:263
 HFPtSpectrumRaa.C:264
 HFPtSpectrumRaa.C:265
 HFPtSpectrumRaa.C:266
 HFPtSpectrumRaa.C:267
 HFPtSpectrumRaa.C:268
 HFPtSpectrumRaa.C:269
 HFPtSpectrumRaa.C:270
 HFPtSpectrumRaa.C:271
 HFPtSpectrumRaa.C:272
 HFPtSpectrumRaa.C:273
 HFPtSpectrumRaa.C:274
 HFPtSpectrumRaa.C:275
 HFPtSpectrumRaa.C:276
 HFPtSpectrumRaa.C:277
 HFPtSpectrumRaa.C:278
 HFPtSpectrumRaa.C:279
 HFPtSpectrumRaa.C:280
 HFPtSpectrumRaa.C:281
 HFPtSpectrumRaa.C:282
 HFPtSpectrumRaa.C:283
 HFPtSpectrumRaa.C:284
 HFPtSpectrumRaa.C:285
 HFPtSpectrumRaa.C:286
 HFPtSpectrumRaa.C:287
 HFPtSpectrumRaa.C:288
 HFPtSpectrumRaa.C:289
 HFPtSpectrumRaa.C:290
 HFPtSpectrumRaa.C:291
 HFPtSpectrumRaa.C:292
 HFPtSpectrumRaa.C:293
 HFPtSpectrumRaa.C:294
 HFPtSpectrumRaa.C:295
 HFPtSpectrumRaa.C:296
 HFPtSpectrumRaa.C:297
 HFPtSpectrumRaa.C:298
 HFPtSpectrumRaa.C:299
 HFPtSpectrumRaa.C:300
 HFPtSpectrumRaa.C:301
 HFPtSpectrumRaa.C:302
 HFPtSpectrumRaa.C:303
 HFPtSpectrumRaa.C:304
 HFPtSpectrumRaa.C:305
 HFPtSpectrumRaa.C:306
 HFPtSpectrumRaa.C:307
 HFPtSpectrumRaa.C:308
 HFPtSpectrumRaa.C:309
 HFPtSpectrumRaa.C:310
 HFPtSpectrumRaa.C:311
 HFPtSpectrumRaa.C:312
 HFPtSpectrumRaa.C:313
 HFPtSpectrumRaa.C:314
 HFPtSpectrumRaa.C:315
 HFPtSpectrumRaa.C:316
 HFPtSpectrumRaa.C:317
 HFPtSpectrumRaa.C:318
 HFPtSpectrumRaa.C:319
 HFPtSpectrumRaa.C:320
 HFPtSpectrumRaa.C:321
 HFPtSpectrumRaa.C:322
 HFPtSpectrumRaa.C:323
 HFPtSpectrumRaa.C:324
 HFPtSpectrumRaa.C:325
 HFPtSpectrumRaa.C:326
 HFPtSpectrumRaa.C:327
 HFPtSpectrumRaa.C:328
 HFPtSpectrumRaa.C:329
 HFPtSpectrumRaa.C:330
 HFPtSpectrumRaa.C:331
 HFPtSpectrumRaa.C:332
 HFPtSpectrumRaa.C:333
 HFPtSpectrumRaa.C:334
 HFPtSpectrumRaa.C:335
 HFPtSpectrumRaa.C:336
 HFPtSpectrumRaa.C:337
 HFPtSpectrumRaa.C:338
 HFPtSpectrumRaa.C:339
 HFPtSpectrumRaa.C:340
 HFPtSpectrumRaa.C:341
 HFPtSpectrumRaa.C:342
 HFPtSpectrumRaa.C:343
 HFPtSpectrumRaa.C:344
 HFPtSpectrumRaa.C:345
 HFPtSpectrumRaa.C:346
 HFPtSpectrumRaa.C:347
 HFPtSpectrumRaa.C:348
 HFPtSpectrumRaa.C:349
 HFPtSpectrumRaa.C:350
 HFPtSpectrumRaa.C:351
 HFPtSpectrumRaa.C:352
 HFPtSpectrumRaa.C:353
 HFPtSpectrumRaa.C:354
 HFPtSpectrumRaa.C:355
 HFPtSpectrumRaa.C:356
 HFPtSpectrumRaa.C:357
 HFPtSpectrumRaa.C:358
 HFPtSpectrumRaa.C:359
 HFPtSpectrumRaa.C:360
 HFPtSpectrumRaa.C:361
 HFPtSpectrumRaa.C:362
 HFPtSpectrumRaa.C:363
 HFPtSpectrumRaa.C:364
 HFPtSpectrumRaa.C:365
 HFPtSpectrumRaa.C:366
 HFPtSpectrumRaa.C:367
 HFPtSpectrumRaa.C:368
 HFPtSpectrumRaa.C:369
 HFPtSpectrumRaa.C:370
 HFPtSpectrumRaa.C:371
 HFPtSpectrumRaa.C:372
 HFPtSpectrumRaa.C:373
 HFPtSpectrumRaa.C:374
 HFPtSpectrumRaa.C:375
 HFPtSpectrumRaa.C:376
 HFPtSpectrumRaa.C:377
 HFPtSpectrumRaa.C:378
 HFPtSpectrumRaa.C:379
 HFPtSpectrumRaa.C:380
 HFPtSpectrumRaa.C:381
 HFPtSpectrumRaa.C:382
 HFPtSpectrumRaa.C:383
 HFPtSpectrumRaa.C:384
 HFPtSpectrumRaa.C:385
 HFPtSpectrumRaa.C:386
 HFPtSpectrumRaa.C:387
 HFPtSpectrumRaa.C:388
 HFPtSpectrumRaa.C:389
 HFPtSpectrumRaa.C:390
 HFPtSpectrumRaa.C:391
 HFPtSpectrumRaa.C:392
 HFPtSpectrumRaa.C:393
 HFPtSpectrumRaa.C:394
 HFPtSpectrumRaa.C:395
 HFPtSpectrumRaa.C:396
 HFPtSpectrumRaa.C:397
 HFPtSpectrumRaa.C:398
 HFPtSpectrumRaa.C:399
 HFPtSpectrumRaa.C:400
 HFPtSpectrumRaa.C:401
 HFPtSpectrumRaa.C:402
 HFPtSpectrumRaa.C:403
 HFPtSpectrumRaa.C:404
 HFPtSpectrumRaa.C:405
 HFPtSpectrumRaa.C:406
 HFPtSpectrumRaa.C:407
 HFPtSpectrumRaa.C:408
 HFPtSpectrumRaa.C:409
 HFPtSpectrumRaa.C:410
 HFPtSpectrumRaa.C:411
 HFPtSpectrumRaa.C:412
 HFPtSpectrumRaa.C:413
 HFPtSpectrumRaa.C:414
 HFPtSpectrumRaa.C:415
 HFPtSpectrumRaa.C:416
 HFPtSpectrumRaa.C:417
 HFPtSpectrumRaa.C:418
 HFPtSpectrumRaa.C:419
 HFPtSpectrumRaa.C:420
 HFPtSpectrumRaa.C:421
 HFPtSpectrumRaa.C:422
 HFPtSpectrumRaa.C:423
 HFPtSpectrumRaa.C:424
 HFPtSpectrumRaa.C:425
 HFPtSpectrumRaa.C:426
 HFPtSpectrumRaa.C:427
 HFPtSpectrumRaa.C:428
 HFPtSpectrumRaa.C:429
 HFPtSpectrumRaa.C:430
 HFPtSpectrumRaa.C:431
 HFPtSpectrumRaa.C:432
 HFPtSpectrumRaa.C:433
 HFPtSpectrumRaa.C:434
 HFPtSpectrumRaa.C:435
 HFPtSpectrumRaa.C:436
 HFPtSpectrumRaa.C:437
 HFPtSpectrumRaa.C:438
 HFPtSpectrumRaa.C:439
 HFPtSpectrumRaa.C:440
 HFPtSpectrumRaa.C:441
 HFPtSpectrumRaa.C:442
 HFPtSpectrumRaa.C:443
 HFPtSpectrumRaa.C:444
 HFPtSpectrumRaa.C:445
 HFPtSpectrumRaa.C:446
 HFPtSpectrumRaa.C:447
 HFPtSpectrumRaa.C:448
 HFPtSpectrumRaa.C:449
 HFPtSpectrumRaa.C:450
 HFPtSpectrumRaa.C:451
 HFPtSpectrumRaa.C:452
 HFPtSpectrumRaa.C:453
 HFPtSpectrumRaa.C:454
 HFPtSpectrumRaa.C:455
 HFPtSpectrumRaa.C:456
 HFPtSpectrumRaa.C:457
 HFPtSpectrumRaa.C:458
 HFPtSpectrumRaa.C:459
 HFPtSpectrumRaa.C:460
 HFPtSpectrumRaa.C:461
 HFPtSpectrumRaa.C:462
 HFPtSpectrumRaa.C:463
 HFPtSpectrumRaa.C:464
 HFPtSpectrumRaa.C:465
 HFPtSpectrumRaa.C:466
 HFPtSpectrumRaa.C:467
 HFPtSpectrumRaa.C:468
 HFPtSpectrumRaa.C:469
 HFPtSpectrumRaa.C:470
 HFPtSpectrumRaa.C:471
 HFPtSpectrumRaa.C:472
 HFPtSpectrumRaa.C:473
 HFPtSpectrumRaa.C:474
 HFPtSpectrumRaa.C:475
 HFPtSpectrumRaa.C:476
 HFPtSpectrumRaa.C:477
 HFPtSpectrumRaa.C:478
 HFPtSpectrumRaa.C:479
 HFPtSpectrumRaa.C:480
 HFPtSpectrumRaa.C:481
 HFPtSpectrumRaa.C:482
 HFPtSpectrumRaa.C:483
 HFPtSpectrumRaa.C:484
 HFPtSpectrumRaa.C:485
 HFPtSpectrumRaa.C:486
 HFPtSpectrumRaa.C:487
 HFPtSpectrumRaa.C:488
 HFPtSpectrumRaa.C:489
 HFPtSpectrumRaa.C:490
 HFPtSpectrumRaa.C:491
 HFPtSpectrumRaa.C:492
 HFPtSpectrumRaa.C:493
 HFPtSpectrumRaa.C:494
 HFPtSpectrumRaa.C:495
 HFPtSpectrumRaa.C:496
 HFPtSpectrumRaa.C:497
 HFPtSpectrumRaa.C:498
 HFPtSpectrumRaa.C:499
 HFPtSpectrumRaa.C:500
 HFPtSpectrumRaa.C:501
 HFPtSpectrumRaa.C:502
 HFPtSpectrumRaa.C:503
 HFPtSpectrumRaa.C:504
 HFPtSpectrumRaa.C:505
 HFPtSpectrumRaa.C:506
 HFPtSpectrumRaa.C:507
 HFPtSpectrumRaa.C:508
 HFPtSpectrumRaa.C:509
 HFPtSpectrumRaa.C:510
 HFPtSpectrumRaa.C:511
 HFPtSpectrumRaa.C:512
 HFPtSpectrumRaa.C:513
 HFPtSpectrumRaa.C:514
 HFPtSpectrumRaa.C:515
 HFPtSpectrumRaa.C:516
 HFPtSpectrumRaa.C:517
 HFPtSpectrumRaa.C:518
 HFPtSpectrumRaa.C:519
 HFPtSpectrumRaa.C:520
 HFPtSpectrumRaa.C:521
 HFPtSpectrumRaa.C:522
 HFPtSpectrumRaa.C:523
 HFPtSpectrumRaa.C:524
 HFPtSpectrumRaa.C:525
 HFPtSpectrumRaa.C:526
 HFPtSpectrumRaa.C:527
 HFPtSpectrumRaa.C:528
 HFPtSpectrumRaa.C:529
 HFPtSpectrumRaa.C:530
 HFPtSpectrumRaa.C:531
 HFPtSpectrumRaa.C:532
 HFPtSpectrumRaa.C:533
 HFPtSpectrumRaa.C:534
 HFPtSpectrumRaa.C:535
 HFPtSpectrumRaa.C:536
 HFPtSpectrumRaa.C:537
 HFPtSpectrumRaa.C:538
 HFPtSpectrumRaa.C:539
 HFPtSpectrumRaa.C:540
 HFPtSpectrumRaa.C:541
 HFPtSpectrumRaa.C:542
 HFPtSpectrumRaa.C:543
 HFPtSpectrumRaa.C:544
 HFPtSpectrumRaa.C:545
 HFPtSpectrumRaa.C:546
 HFPtSpectrumRaa.C:547
 HFPtSpectrumRaa.C:548
 HFPtSpectrumRaa.C:549
 HFPtSpectrumRaa.C:550
 HFPtSpectrumRaa.C:551
 HFPtSpectrumRaa.C:552
 HFPtSpectrumRaa.C:553
 HFPtSpectrumRaa.C:554
 HFPtSpectrumRaa.C:555
 HFPtSpectrumRaa.C:556
 HFPtSpectrumRaa.C:557
 HFPtSpectrumRaa.C:558
 HFPtSpectrumRaa.C:559
 HFPtSpectrumRaa.C:560
 HFPtSpectrumRaa.C:561
 HFPtSpectrumRaa.C:562
 HFPtSpectrumRaa.C:563
 HFPtSpectrumRaa.C:564
 HFPtSpectrumRaa.C:565
 HFPtSpectrumRaa.C:566
 HFPtSpectrumRaa.C:567
 HFPtSpectrumRaa.C:568
 HFPtSpectrumRaa.C:569
 HFPtSpectrumRaa.C:570
 HFPtSpectrumRaa.C:571
 HFPtSpectrumRaa.C:572
 HFPtSpectrumRaa.C:573
 HFPtSpectrumRaa.C:574
 HFPtSpectrumRaa.C:575
 HFPtSpectrumRaa.C:576
 HFPtSpectrumRaa.C:577
 HFPtSpectrumRaa.C:578
 HFPtSpectrumRaa.C:579
 HFPtSpectrumRaa.C:580
 HFPtSpectrumRaa.C:581
 HFPtSpectrumRaa.C:582
 HFPtSpectrumRaa.C:583
 HFPtSpectrumRaa.C:584
 HFPtSpectrumRaa.C:585
 HFPtSpectrumRaa.C:586
 HFPtSpectrumRaa.C:587
 HFPtSpectrumRaa.C:588
 HFPtSpectrumRaa.C:589
 HFPtSpectrumRaa.C:590
 HFPtSpectrumRaa.C:591
 HFPtSpectrumRaa.C:592
 HFPtSpectrumRaa.C:593
 HFPtSpectrumRaa.C:594
 HFPtSpectrumRaa.C:595
 HFPtSpectrumRaa.C:596
 HFPtSpectrumRaa.C:597
 HFPtSpectrumRaa.C:598
 HFPtSpectrumRaa.C:599
 HFPtSpectrumRaa.C:600
 HFPtSpectrumRaa.C:601
 HFPtSpectrumRaa.C:602
 HFPtSpectrumRaa.C:603
 HFPtSpectrumRaa.C:604
 HFPtSpectrumRaa.C:605
 HFPtSpectrumRaa.C:606
 HFPtSpectrumRaa.C:607
 HFPtSpectrumRaa.C:608
 HFPtSpectrumRaa.C:609
 HFPtSpectrumRaa.C:610
 HFPtSpectrumRaa.C:611
 HFPtSpectrumRaa.C:612
 HFPtSpectrumRaa.C:613
 HFPtSpectrumRaa.C:614
 HFPtSpectrumRaa.C:615
 HFPtSpectrumRaa.C:616
 HFPtSpectrumRaa.C:617
 HFPtSpectrumRaa.C:618
 HFPtSpectrumRaa.C:619
 HFPtSpectrumRaa.C:620
 HFPtSpectrumRaa.C:621
 HFPtSpectrumRaa.C:622
 HFPtSpectrumRaa.C:623
 HFPtSpectrumRaa.C:624
 HFPtSpectrumRaa.C:625
 HFPtSpectrumRaa.C:626
 HFPtSpectrumRaa.C:627
 HFPtSpectrumRaa.C:628
 HFPtSpectrumRaa.C:629
 HFPtSpectrumRaa.C:630
 HFPtSpectrumRaa.C:631
 HFPtSpectrumRaa.C:632
 HFPtSpectrumRaa.C:633
 HFPtSpectrumRaa.C:634
 HFPtSpectrumRaa.C:635
 HFPtSpectrumRaa.C:636
 HFPtSpectrumRaa.C:637
 HFPtSpectrumRaa.C:638
 HFPtSpectrumRaa.C:639
 HFPtSpectrumRaa.C:640
 HFPtSpectrumRaa.C:641
 HFPtSpectrumRaa.C:642
 HFPtSpectrumRaa.C:643
 HFPtSpectrumRaa.C:644
 HFPtSpectrumRaa.C:645
 HFPtSpectrumRaa.C:646
 HFPtSpectrumRaa.C:647
 HFPtSpectrumRaa.C:648
 HFPtSpectrumRaa.C:649
 HFPtSpectrumRaa.C:650
 HFPtSpectrumRaa.C:651
 HFPtSpectrumRaa.C:652
 HFPtSpectrumRaa.C:653
 HFPtSpectrumRaa.C:654
 HFPtSpectrumRaa.C:655
 HFPtSpectrumRaa.C:656
 HFPtSpectrumRaa.C:657
 HFPtSpectrumRaa.C:658
 HFPtSpectrumRaa.C:659
 HFPtSpectrumRaa.C:660
 HFPtSpectrumRaa.C:661
 HFPtSpectrumRaa.C:662
 HFPtSpectrumRaa.C:663
 HFPtSpectrumRaa.C:664
 HFPtSpectrumRaa.C:665
 HFPtSpectrumRaa.C:666
 HFPtSpectrumRaa.C:667
 HFPtSpectrumRaa.C:668
 HFPtSpectrumRaa.C:669
 HFPtSpectrumRaa.C:670
 HFPtSpectrumRaa.C:671
 HFPtSpectrumRaa.C:672
 HFPtSpectrumRaa.C:673
 HFPtSpectrumRaa.C:674
 HFPtSpectrumRaa.C:675
 HFPtSpectrumRaa.C:676
 HFPtSpectrumRaa.C:677
 HFPtSpectrumRaa.C:678
 HFPtSpectrumRaa.C:679
 HFPtSpectrumRaa.C:680
 HFPtSpectrumRaa.C:681
 HFPtSpectrumRaa.C:682
 HFPtSpectrumRaa.C:683
 HFPtSpectrumRaa.C:684
 HFPtSpectrumRaa.C:685
 HFPtSpectrumRaa.C:686
 HFPtSpectrumRaa.C:687
 HFPtSpectrumRaa.C:688
 HFPtSpectrumRaa.C:689
 HFPtSpectrumRaa.C:690
 HFPtSpectrumRaa.C:691
 HFPtSpectrumRaa.C:692
 HFPtSpectrumRaa.C:693
 HFPtSpectrumRaa.C:694
 HFPtSpectrumRaa.C:695
 HFPtSpectrumRaa.C:696
 HFPtSpectrumRaa.C:697
 HFPtSpectrumRaa.C:698
 HFPtSpectrumRaa.C:699
 HFPtSpectrumRaa.C:700
 HFPtSpectrumRaa.C:701
 HFPtSpectrumRaa.C:702
 HFPtSpectrumRaa.C:703
 HFPtSpectrumRaa.C:704
 HFPtSpectrumRaa.C:705
 HFPtSpectrumRaa.C:706
 HFPtSpectrumRaa.C:707
 HFPtSpectrumRaa.C:708
 HFPtSpectrumRaa.C:709
 HFPtSpectrumRaa.C:710
 HFPtSpectrumRaa.C:711
 HFPtSpectrumRaa.C:712
 HFPtSpectrumRaa.C:713
 HFPtSpectrumRaa.C:714
 HFPtSpectrumRaa.C:715
 HFPtSpectrumRaa.C:716
 HFPtSpectrumRaa.C:717
 HFPtSpectrumRaa.C:718
 HFPtSpectrumRaa.C:719
 HFPtSpectrumRaa.C:720
 HFPtSpectrumRaa.C:721
 HFPtSpectrumRaa.C:722
 HFPtSpectrumRaa.C:723
 HFPtSpectrumRaa.C:724
 HFPtSpectrumRaa.C:725
 HFPtSpectrumRaa.C:726
 HFPtSpectrumRaa.C:727
 HFPtSpectrumRaa.C:728
 HFPtSpectrumRaa.C:729
 HFPtSpectrumRaa.C:730
 HFPtSpectrumRaa.C:731
 HFPtSpectrumRaa.C:732
 HFPtSpectrumRaa.C:733
 HFPtSpectrumRaa.C:734
 HFPtSpectrumRaa.C:735
 HFPtSpectrumRaa.C:736
 HFPtSpectrumRaa.C:737
 HFPtSpectrumRaa.C:738
 HFPtSpectrumRaa.C:739
 HFPtSpectrumRaa.C:740
 HFPtSpectrumRaa.C:741
 HFPtSpectrumRaa.C:742
 HFPtSpectrumRaa.C:743
 HFPtSpectrumRaa.C:744
 HFPtSpectrumRaa.C:745
 HFPtSpectrumRaa.C:746
 HFPtSpectrumRaa.C:747
 HFPtSpectrumRaa.C:748
 HFPtSpectrumRaa.C:749
 HFPtSpectrumRaa.C:750
 HFPtSpectrumRaa.C:751
 HFPtSpectrumRaa.C:752
 HFPtSpectrumRaa.C:753
 HFPtSpectrumRaa.C:754
 HFPtSpectrumRaa.C:755
 HFPtSpectrumRaa.C:756
 HFPtSpectrumRaa.C:757
 HFPtSpectrumRaa.C:758
 HFPtSpectrumRaa.C:759
 HFPtSpectrumRaa.C:760
 HFPtSpectrumRaa.C:761
 HFPtSpectrumRaa.C:762
 HFPtSpectrumRaa.C:763
 HFPtSpectrumRaa.C:764
 HFPtSpectrumRaa.C:765
 HFPtSpectrumRaa.C:766
 HFPtSpectrumRaa.C:767
 HFPtSpectrumRaa.C:768
 HFPtSpectrumRaa.C:769
 HFPtSpectrumRaa.C:770
 HFPtSpectrumRaa.C:771
 HFPtSpectrumRaa.C:772
 HFPtSpectrumRaa.C:773
 HFPtSpectrumRaa.C:774
 HFPtSpectrumRaa.C:775
 HFPtSpectrumRaa.C:776
 HFPtSpectrumRaa.C:777
 HFPtSpectrumRaa.C:778
 HFPtSpectrumRaa.C:779
 HFPtSpectrumRaa.C:780
 HFPtSpectrumRaa.C:781
 HFPtSpectrumRaa.C:782
 HFPtSpectrumRaa.C:783
 HFPtSpectrumRaa.C:784
 HFPtSpectrumRaa.C:785
 HFPtSpectrumRaa.C:786
 HFPtSpectrumRaa.C:787
 HFPtSpectrumRaa.C:788
 HFPtSpectrumRaa.C:789
 HFPtSpectrumRaa.C:790
 HFPtSpectrumRaa.C:791
 HFPtSpectrumRaa.C:792
 HFPtSpectrumRaa.C:793
 HFPtSpectrumRaa.C:794
 HFPtSpectrumRaa.C:795
 HFPtSpectrumRaa.C:796
 HFPtSpectrumRaa.C:797
 HFPtSpectrumRaa.C:798
 HFPtSpectrumRaa.C:799
 HFPtSpectrumRaa.C:800
 HFPtSpectrumRaa.C:801
 HFPtSpectrumRaa.C:802
 HFPtSpectrumRaa.C:803
 HFPtSpectrumRaa.C:804
 HFPtSpectrumRaa.C:805
 HFPtSpectrumRaa.C:806
 HFPtSpectrumRaa.C:807
 HFPtSpectrumRaa.C:808
 HFPtSpectrumRaa.C:809
 HFPtSpectrumRaa.C:810
 HFPtSpectrumRaa.C:811
 HFPtSpectrumRaa.C:812
 HFPtSpectrumRaa.C:813
 HFPtSpectrumRaa.C:814
 HFPtSpectrumRaa.C:815
 HFPtSpectrumRaa.C:816
 HFPtSpectrumRaa.C:817
 HFPtSpectrumRaa.C:818
 HFPtSpectrumRaa.C:819
 HFPtSpectrumRaa.C:820
 HFPtSpectrumRaa.C:821
 HFPtSpectrumRaa.C:822
 HFPtSpectrumRaa.C:823
 HFPtSpectrumRaa.C:824
 HFPtSpectrumRaa.C:825
 HFPtSpectrumRaa.C:826
 HFPtSpectrumRaa.C:827
 HFPtSpectrumRaa.C:828
 HFPtSpectrumRaa.C:829
 HFPtSpectrumRaa.C:830
 HFPtSpectrumRaa.C:831
 HFPtSpectrumRaa.C:832
 HFPtSpectrumRaa.C:833
 HFPtSpectrumRaa.C:834
 HFPtSpectrumRaa.C:835
 HFPtSpectrumRaa.C:836
 HFPtSpectrumRaa.C:837
 HFPtSpectrumRaa.C:838
 HFPtSpectrumRaa.C:839
 HFPtSpectrumRaa.C:840
 HFPtSpectrumRaa.C:841
 HFPtSpectrumRaa.C:842
 HFPtSpectrumRaa.C:843
 HFPtSpectrumRaa.C:844
 HFPtSpectrumRaa.C:845
 HFPtSpectrumRaa.C:846
 HFPtSpectrumRaa.C:847
 HFPtSpectrumRaa.C:848
 HFPtSpectrumRaa.C:849
 HFPtSpectrumRaa.C:850
 HFPtSpectrumRaa.C:851
 HFPtSpectrumRaa.C:852
 HFPtSpectrumRaa.C:853
 HFPtSpectrumRaa.C:854
 HFPtSpectrumRaa.C:855
 HFPtSpectrumRaa.C:856
 HFPtSpectrumRaa.C:857
 HFPtSpectrumRaa.C:858
 HFPtSpectrumRaa.C:859
 HFPtSpectrumRaa.C:860
 HFPtSpectrumRaa.C:861
 HFPtSpectrumRaa.C:862
 HFPtSpectrumRaa.C:863
 HFPtSpectrumRaa.C:864
 HFPtSpectrumRaa.C:865
 HFPtSpectrumRaa.C:866
 HFPtSpectrumRaa.C:867
 HFPtSpectrumRaa.C:868
 HFPtSpectrumRaa.C:869
 HFPtSpectrumRaa.C:870
 HFPtSpectrumRaa.C:871
 HFPtSpectrumRaa.C:872
 HFPtSpectrumRaa.C:873
 HFPtSpectrumRaa.C:874
 HFPtSpectrumRaa.C:875
 HFPtSpectrumRaa.C:876
 HFPtSpectrumRaa.C:877
 HFPtSpectrumRaa.C:878
 HFPtSpectrumRaa.C:879
 HFPtSpectrumRaa.C:880
 HFPtSpectrumRaa.C:881
 HFPtSpectrumRaa.C:882
 HFPtSpectrumRaa.C:883
 HFPtSpectrumRaa.C:884
 HFPtSpectrumRaa.C:885
 HFPtSpectrumRaa.C:886
 HFPtSpectrumRaa.C:887
 HFPtSpectrumRaa.C:888
 HFPtSpectrumRaa.C:889
 HFPtSpectrumRaa.C:890
 HFPtSpectrumRaa.C:891
 HFPtSpectrumRaa.C:892
 HFPtSpectrumRaa.C:893
 HFPtSpectrumRaa.C:894
 HFPtSpectrumRaa.C:895
 HFPtSpectrumRaa.C:896
 HFPtSpectrumRaa.C:897
 HFPtSpectrumRaa.C:898
 HFPtSpectrumRaa.C:899
 HFPtSpectrumRaa.C:900
 HFPtSpectrumRaa.C:901
 HFPtSpectrumRaa.C:902
 HFPtSpectrumRaa.C:903
 HFPtSpectrumRaa.C:904
 HFPtSpectrumRaa.C:905
 HFPtSpectrumRaa.C:906
 HFPtSpectrumRaa.C:907
 HFPtSpectrumRaa.C:908
 HFPtSpectrumRaa.C:909
 HFPtSpectrumRaa.C:910
 HFPtSpectrumRaa.C:911
 HFPtSpectrumRaa.C:912
 HFPtSpectrumRaa.C:913
 HFPtSpectrumRaa.C:914
 HFPtSpectrumRaa.C:915
 HFPtSpectrumRaa.C:916
 HFPtSpectrumRaa.C:917
 HFPtSpectrumRaa.C:918
 HFPtSpectrumRaa.C:919
 HFPtSpectrumRaa.C:920
 HFPtSpectrumRaa.C:921
 HFPtSpectrumRaa.C:922
 HFPtSpectrumRaa.C:923
 HFPtSpectrumRaa.C:924
 HFPtSpectrumRaa.C:925
 HFPtSpectrumRaa.C:926
 HFPtSpectrumRaa.C:927
 HFPtSpectrumRaa.C:928
 HFPtSpectrumRaa.C:929
 HFPtSpectrumRaa.C:930
 HFPtSpectrumRaa.C:931
 HFPtSpectrumRaa.C:932
 HFPtSpectrumRaa.C:933
 HFPtSpectrumRaa.C:934
 HFPtSpectrumRaa.C:935
 HFPtSpectrumRaa.C:936
 HFPtSpectrumRaa.C:937
 HFPtSpectrumRaa.C:938
 HFPtSpectrumRaa.C:939
 HFPtSpectrumRaa.C:940
 HFPtSpectrumRaa.C:941
 HFPtSpectrumRaa.C:942
 HFPtSpectrumRaa.C:943
 HFPtSpectrumRaa.C:944
 HFPtSpectrumRaa.C:945
 HFPtSpectrumRaa.C:946
 HFPtSpectrumRaa.C:947
 HFPtSpectrumRaa.C:948
 HFPtSpectrumRaa.C:949
 HFPtSpectrumRaa.C:950
 HFPtSpectrumRaa.C:951
 HFPtSpectrumRaa.C:952
 HFPtSpectrumRaa.C:953
 HFPtSpectrumRaa.C:954
 HFPtSpectrumRaa.C:955
 HFPtSpectrumRaa.C:956
 HFPtSpectrumRaa.C:957
 HFPtSpectrumRaa.C:958
 HFPtSpectrumRaa.C:959
 HFPtSpectrumRaa.C:960
 HFPtSpectrumRaa.C:961
 HFPtSpectrumRaa.C:962
 HFPtSpectrumRaa.C:963
 HFPtSpectrumRaa.C:964
 HFPtSpectrumRaa.C:965
 HFPtSpectrumRaa.C:966
 HFPtSpectrumRaa.C:967
 HFPtSpectrumRaa.C:968
 HFPtSpectrumRaa.C:969
 HFPtSpectrumRaa.C:970
 HFPtSpectrumRaa.C:971
 HFPtSpectrumRaa.C:972
 HFPtSpectrumRaa.C:973
 HFPtSpectrumRaa.C:974
 HFPtSpectrumRaa.C:975
 HFPtSpectrumRaa.C:976
 HFPtSpectrumRaa.C:977
 HFPtSpectrumRaa.C:978
 HFPtSpectrumRaa.C:979
 HFPtSpectrumRaa.C:980
 HFPtSpectrumRaa.C:981
 HFPtSpectrumRaa.C:982
 HFPtSpectrumRaa.C:983
 HFPtSpectrumRaa.C:984
 HFPtSpectrumRaa.C:985
 HFPtSpectrumRaa.C:986
 HFPtSpectrumRaa.C:987
 HFPtSpectrumRaa.C:988
 HFPtSpectrumRaa.C:989
 HFPtSpectrumRaa.C:990
 HFPtSpectrumRaa.C:991
 HFPtSpectrumRaa.C:992
 HFPtSpectrumRaa.C:993
 HFPtSpectrumRaa.C:994
 HFPtSpectrumRaa.C:995
 HFPtSpectrumRaa.C:996
 HFPtSpectrumRaa.C:997
 HFPtSpectrumRaa.C:998
 HFPtSpectrumRaa.C:999
 HFPtSpectrumRaa.C:1000
 HFPtSpectrumRaa.C:1001
 HFPtSpectrumRaa.C:1002
 HFPtSpectrumRaa.C:1003
 HFPtSpectrumRaa.C:1004
 HFPtSpectrumRaa.C:1005
 HFPtSpectrumRaa.C:1006
 HFPtSpectrumRaa.C:1007
 HFPtSpectrumRaa.C:1008
 HFPtSpectrumRaa.C:1009
 HFPtSpectrumRaa.C:1010
 HFPtSpectrumRaa.C:1011
 HFPtSpectrumRaa.C:1012
 HFPtSpectrumRaa.C:1013
 HFPtSpectrumRaa.C:1014
 HFPtSpectrumRaa.C:1015
 HFPtSpectrumRaa.C:1016
 HFPtSpectrumRaa.C:1017
 HFPtSpectrumRaa.C:1018
 HFPtSpectrumRaa.C:1019
 HFPtSpectrumRaa.C:1020
 HFPtSpectrumRaa.C:1021
 HFPtSpectrumRaa.C:1022
 HFPtSpectrumRaa.C:1023
 HFPtSpectrumRaa.C:1024
 HFPtSpectrumRaa.C:1025
 HFPtSpectrumRaa.C:1026
 HFPtSpectrumRaa.C:1027
 HFPtSpectrumRaa.C:1028
 HFPtSpectrumRaa.C:1029
 HFPtSpectrumRaa.C:1030
 HFPtSpectrumRaa.C:1031
 HFPtSpectrumRaa.C:1032
 HFPtSpectrumRaa.C:1033
 HFPtSpectrumRaa.C:1034
 HFPtSpectrumRaa.C:1035
 HFPtSpectrumRaa.C:1036
 HFPtSpectrumRaa.C:1037
 HFPtSpectrumRaa.C:1038
 HFPtSpectrumRaa.C:1039
 HFPtSpectrumRaa.C:1040
 HFPtSpectrumRaa.C:1041
 HFPtSpectrumRaa.C:1042
 HFPtSpectrumRaa.C:1043
 HFPtSpectrumRaa.C:1044
 HFPtSpectrumRaa.C:1045
 HFPtSpectrumRaa.C:1046
 HFPtSpectrumRaa.C:1047
 HFPtSpectrumRaa.C:1048
 HFPtSpectrumRaa.C:1049
 HFPtSpectrumRaa.C:1050
 HFPtSpectrumRaa.C:1051
 HFPtSpectrumRaa.C:1052
 HFPtSpectrumRaa.C:1053
 HFPtSpectrumRaa.C:1054
 HFPtSpectrumRaa.C:1055
 HFPtSpectrumRaa.C:1056
 HFPtSpectrumRaa.C:1057
 HFPtSpectrumRaa.C:1058
 HFPtSpectrumRaa.C:1059
 HFPtSpectrumRaa.C:1060
 HFPtSpectrumRaa.C:1061
 HFPtSpectrumRaa.C:1062
 HFPtSpectrumRaa.C:1063
 HFPtSpectrumRaa.C:1064
 HFPtSpectrumRaa.C:1065
 HFPtSpectrumRaa.C:1066
 HFPtSpectrumRaa.C:1067
 HFPtSpectrumRaa.C:1068
 HFPtSpectrumRaa.C:1069
 HFPtSpectrumRaa.C:1070
 HFPtSpectrumRaa.C:1071
 HFPtSpectrumRaa.C:1072
 HFPtSpectrumRaa.C:1073
 HFPtSpectrumRaa.C:1074
 HFPtSpectrumRaa.C:1075
 HFPtSpectrumRaa.C:1076
 HFPtSpectrumRaa.C:1077
 HFPtSpectrumRaa.C:1078
 HFPtSpectrumRaa.C:1079
 HFPtSpectrumRaa.C:1080
 HFPtSpectrumRaa.C:1081
 HFPtSpectrumRaa.C:1082
 HFPtSpectrumRaa.C:1083
 HFPtSpectrumRaa.C:1084
 HFPtSpectrumRaa.C:1085
 HFPtSpectrumRaa.C:1086
 HFPtSpectrumRaa.C:1087
 HFPtSpectrumRaa.C:1088
 HFPtSpectrumRaa.C:1089
 HFPtSpectrumRaa.C:1090
 HFPtSpectrumRaa.C:1091
 HFPtSpectrumRaa.C:1092
 HFPtSpectrumRaa.C:1093
 HFPtSpectrumRaa.C:1094
 HFPtSpectrumRaa.C:1095
 HFPtSpectrumRaa.C:1096
 HFPtSpectrumRaa.C:1097
 HFPtSpectrumRaa.C:1098
 HFPtSpectrumRaa.C:1099
 HFPtSpectrumRaa.C:1100
 HFPtSpectrumRaa.C:1101
 HFPtSpectrumRaa.C:1102
 HFPtSpectrumRaa.C:1103
 HFPtSpectrumRaa.C:1104
 HFPtSpectrumRaa.C:1105
 HFPtSpectrumRaa.C:1106
 HFPtSpectrumRaa.C:1107
 HFPtSpectrumRaa.C:1108
 HFPtSpectrumRaa.C:1109
 HFPtSpectrumRaa.C:1110
 HFPtSpectrumRaa.C:1111
 HFPtSpectrumRaa.C:1112
 HFPtSpectrumRaa.C:1113
 HFPtSpectrumRaa.C:1114
 HFPtSpectrumRaa.C:1115
 HFPtSpectrumRaa.C:1116
 HFPtSpectrumRaa.C:1117
 HFPtSpectrumRaa.C:1118
 HFPtSpectrumRaa.C:1119
 HFPtSpectrumRaa.C:1120
 HFPtSpectrumRaa.C:1121
 HFPtSpectrumRaa.C:1122
 HFPtSpectrumRaa.C:1123
 HFPtSpectrumRaa.C:1124
 HFPtSpectrumRaa.C:1125
 HFPtSpectrumRaa.C:1126
 HFPtSpectrumRaa.C:1127
 HFPtSpectrumRaa.C:1128
 HFPtSpectrumRaa.C:1129
 HFPtSpectrumRaa.C:1130
 HFPtSpectrumRaa.C:1131
 HFPtSpectrumRaa.C:1132
 HFPtSpectrumRaa.C:1133
 HFPtSpectrumRaa.C:1134
 HFPtSpectrumRaa.C:1135
 HFPtSpectrumRaa.C:1136
 HFPtSpectrumRaa.C:1137
 HFPtSpectrumRaa.C:1138
 HFPtSpectrumRaa.C:1139
 HFPtSpectrumRaa.C:1140
 HFPtSpectrumRaa.C:1141
 HFPtSpectrumRaa.C:1142
 HFPtSpectrumRaa.C:1143
 HFPtSpectrumRaa.C:1144
 HFPtSpectrumRaa.C:1145
 HFPtSpectrumRaa.C:1146
 HFPtSpectrumRaa.C:1147
 HFPtSpectrumRaa.C:1148
 HFPtSpectrumRaa.C:1149
 HFPtSpectrumRaa.C:1150
 HFPtSpectrumRaa.C:1151
 HFPtSpectrumRaa.C:1152
 HFPtSpectrumRaa.C:1153
 HFPtSpectrumRaa.C:1154
 HFPtSpectrumRaa.C:1155
 HFPtSpectrumRaa.C:1156
 HFPtSpectrumRaa.C:1157
 HFPtSpectrumRaa.C:1158
 HFPtSpectrumRaa.C:1159
 HFPtSpectrumRaa.C:1160
 HFPtSpectrumRaa.C:1161
 HFPtSpectrumRaa.C:1162
 HFPtSpectrumRaa.C:1163
 HFPtSpectrumRaa.C:1164
 HFPtSpectrumRaa.C:1165
 HFPtSpectrumRaa.C:1166
 HFPtSpectrumRaa.C:1167
 HFPtSpectrumRaa.C:1168
 HFPtSpectrumRaa.C:1169
 HFPtSpectrumRaa.C:1170
 HFPtSpectrumRaa.C:1171
 HFPtSpectrumRaa.C:1172
 HFPtSpectrumRaa.C:1173
 HFPtSpectrumRaa.C:1174
 HFPtSpectrumRaa.C:1175
 HFPtSpectrumRaa.C:1176
 HFPtSpectrumRaa.C:1177
 HFPtSpectrumRaa.C:1178
 HFPtSpectrumRaa.C:1179
 HFPtSpectrumRaa.C:1180
 HFPtSpectrumRaa.C:1181
 HFPtSpectrumRaa.C:1182
 HFPtSpectrumRaa.C:1183
 HFPtSpectrumRaa.C:1184
 HFPtSpectrumRaa.C:1185
 HFPtSpectrumRaa.C:1186
 HFPtSpectrumRaa.C:1187
 HFPtSpectrumRaa.C:1188
 HFPtSpectrumRaa.C:1189
 HFPtSpectrumRaa.C:1190
 HFPtSpectrumRaa.C:1191
 HFPtSpectrumRaa.C:1192
 HFPtSpectrumRaa.C:1193
 HFPtSpectrumRaa.C:1194
 HFPtSpectrumRaa.C:1195
 HFPtSpectrumRaa.C:1196
 HFPtSpectrumRaa.C:1197
 HFPtSpectrumRaa.C:1198
 HFPtSpectrumRaa.C:1199
 HFPtSpectrumRaa.C:1200
 HFPtSpectrumRaa.C:1201
 HFPtSpectrumRaa.C:1202
 HFPtSpectrumRaa.C:1203
 HFPtSpectrumRaa.C:1204
 HFPtSpectrumRaa.C:1205
 HFPtSpectrumRaa.C:1206
 HFPtSpectrumRaa.C:1207
 HFPtSpectrumRaa.C:1208
 HFPtSpectrumRaa.C:1209
 HFPtSpectrumRaa.C:1210
 HFPtSpectrumRaa.C:1211
 HFPtSpectrumRaa.C:1212
 HFPtSpectrumRaa.C:1213
 HFPtSpectrumRaa.C:1214
 HFPtSpectrumRaa.C:1215
 HFPtSpectrumRaa.C:1216
 HFPtSpectrumRaa.C:1217
 HFPtSpectrumRaa.C:1218
 HFPtSpectrumRaa.C:1219
 HFPtSpectrumRaa.C:1220
 HFPtSpectrumRaa.C:1221
 HFPtSpectrumRaa.C:1222
 HFPtSpectrumRaa.C:1223
 HFPtSpectrumRaa.C:1224
 HFPtSpectrumRaa.C:1225
 HFPtSpectrumRaa.C:1226
 HFPtSpectrumRaa.C:1227
 HFPtSpectrumRaa.C:1228
 HFPtSpectrumRaa.C:1229
 HFPtSpectrumRaa.C:1230
 HFPtSpectrumRaa.C:1231
 HFPtSpectrumRaa.C:1232
 HFPtSpectrumRaa.C:1233
 HFPtSpectrumRaa.C:1234
 HFPtSpectrumRaa.C:1235
 HFPtSpectrumRaa.C:1236
 HFPtSpectrumRaa.C:1237
 HFPtSpectrumRaa.C:1238
 HFPtSpectrumRaa.C:1239
 HFPtSpectrumRaa.C:1240
 HFPtSpectrumRaa.C:1241
 HFPtSpectrumRaa.C:1242
 HFPtSpectrumRaa.C:1243
 HFPtSpectrumRaa.C:1244
 HFPtSpectrumRaa.C:1245
 HFPtSpectrumRaa.C:1246
 HFPtSpectrumRaa.C:1247
 HFPtSpectrumRaa.C:1248
 HFPtSpectrumRaa.C:1249
 HFPtSpectrumRaa.C:1250
 HFPtSpectrumRaa.C:1251
 HFPtSpectrumRaa.C:1252
 HFPtSpectrumRaa.C:1253
 HFPtSpectrumRaa.C:1254
 HFPtSpectrumRaa.C:1255
 HFPtSpectrumRaa.C:1256
 HFPtSpectrumRaa.C:1257
 HFPtSpectrumRaa.C:1258
 HFPtSpectrumRaa.C:1259
 HFPtSpectrumRaa.C:1260
 HFPtSpectrumRaa.C:1261
 HFPtSpectrumRaa.C:1262
 HFPtSpectrumRaa.C:1263
 HFPtSpectrumRaa.C:1264
 HFPtSpectrumRaa.C:1265
 HFPtSpectrumRaa.C:1266
 HFPtSpectrumRaa.C:1267
 HFPtSpectrumRaa.C:1268
 HFPtSpectrumRaa.C:1269
 HFPtSpectrumRaa.C:1270
 HFPtSpectrumRaa.C:1271
 HFPtSpectrumRaa.C:1272
 HFPtSpectrumRaa.C:1273
 HFPtSpectrumRaa.C:1274
 HFPtSpectrumRaa.C:1275
 HFPtSpectrumRaa.C:1276
 HFPtSpectrumRaa.C:1277
 HFPtSpectrumRaa.C:1278
 HFPtSpectrumRaa.C:1279
 HFPtSpectrumRaa.C:1280
 HFPtSpectrumRaa.C:1281
 HFPtSpectrumRaa.C:1282
 HFPtSpectrumRaa.C:1283
 HFPtSpectrumRaa.C:1284