ROOT logo
#if !defined(__CINT__) || defined(__MAKECINT__)
#include <TInterpreter.h>
#include <TString.h>
#include <TObjString.h>
#include <TObjArray.h>
#include <TMath.h>
#include <TFile.h>
#include <TCanvas.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TH1D.h>
#include <TF1.h>
#include <TStyle.h>
#include <TLegend.h>
#include <TLegendEntry.h>
#include <TLatex.h>
#include <TPaveText.h>
#include <TDatabasePDG.h>
#include <TGraphErrors.h>
#include <TGraphAsymmErrors.h>

#include "AliAODRecoDecayHF.h"
#include "AliRDHFCuts.h"
#include "AliRDHFCutsDplustoKpipi.h"
#include "AliRDHFCutsDStartoKpipi.h"
#include "AliRDHFCutsD0toKpi.h"
#include "AliHFMassFitter.h"
#include "AliEventPlaneResolutionHandler.h"
#include "AliVertexingHFUtils.h"
#endif


// Common variables: to be configured by the user
TString filename="AnalysisResults_train63.root";
TString suffix="v2Dplus3050Cut4upcutPIDTPC";
TString partname="Dplus";
Int_t minCent=30;
Int_t maxCent=50;
//evPlane flag from AliEventPlaneResolutionHandler: 
//kTPCFullEta, kTPCPosEta,kVZERO,kVZEROA,kVZEROC
Int_t evPlane=AliEventPlaneResolutionHandler::kTPCPosEta;
//resolution flag fromAliEventPlaneResolutionHandler:
//kTwoRandSub,kTwoChargeSub,kTwoEtaSub,kThreeSub,kThreeSubTPCGap
Int_t evPlaneRes=AliEventPlaneResolutionHandler::kTwoEtaSub;
Bool_t useNcollWeight=kFALSE;

const Int_t nFinalPtBins=4;
Double_t ptlims[nFinalPtBins+1]={3.,4.,6.,8.,12.};
Double_t sigmaRangeForSig=2.5;
Double_t sigmaRangeForBkg=4.5;
Int_t rebinHistoSideBands[nFinalPtBins]={2,2,2,2};
Bool_t useConstantvsBkgVsMass=kFALSE;
Int_t rebinHistov2Mass[nFinalPtBins]={2,2,2,2};
Int_t factor4refl=0;
Int_t minPtBin[nFinalPtBins]={-1,-1,-1,-1};
Int_t maxPtBin[nFinalPtBins]={-1,-1,-1,-1};
Bool_t saveAllCanvas=kFALSE;

// systematic errors for D+, 30-50 TPC eventplane
Double_t systErrMeth1[nFinalPtBins]={
  (0.247359-0.152503)/2.,
  (0.337073-0.290978)/2.,
  (0.286888-0.222045)/2.,
  (-0.078888+0.178259)/2.
};

Double_t systErrMeth2[nFinalPtBins]={
  (0.151019-0.066624)/2.,
  (0.272252-0.232044)/2.,
  (0.246019-0.143002)/2.,
  (-0.026077+0.292956)/2.
};

// systematic errors for 2-5, 5-8 and 8-12 (no run-by-run weights)
/*
Double_t systErrMeth1[nFinalPtBins]={
  (0.308-0.169)/2.,
  (0.14-0.1)/2.,
  (0.04+0.02)/2.
};
Double_t systErrMeth2[nFinalPtBins]={
  (0.305-0.252)/2.,
  (0.129-0.020)/2.,
  (0.101+0.06)/2.
};
*/

// systematic errors for 2-5, 5-8 and 8-12 (93 runs with run-by-run weights)
/*
Double_t systErrMeth1[nFinalPtBins]={
  (0.23-0.10)/2.,
  (0.152-0.078)/2.,
  (0.161-0.097)/2.
};
Double_t systErrMeth2[nFinalPtBins]={
  (0.164-0.097)/2.,
  (0.110-0.012)/2.,
  (0.131-0.036)/2.
;
*/



// systematic errors for 2-5, 5-8 and 8-12 (93 runs with run-by-run weights, RAA cuts)
/*
Double_t systErrMeth1[nFinalPtBins]={
  (0.265-0.122)/2.,
  (0.165-0.117)/2.,
  (0.238-0.169)/2.
};
Double_t systErrMeth2[nFinalPtBins]={
  (0.174-0.135)/2.,
  (0.18-0.11)/2.,
  (0.311-0.28)/2.
};
*/

// output of mass fitter
Int_t hMinBin;
Int_t hMaxBin;
Double_t signalFromFit,esignalFromFit;
Double_t massFromFit,sigmaFromFit;
TF1* fB1=0x0;
TF1* fB2=0x0;
TF1* fSB=0x0;

void LoadMassHistos(TList* lst, TH2F** hMassDphi);
Bool_t DefinePtBins(TDirectoryFile* df);
Double_t v2vsMass(Double_t *x, Double_t *par);
Double_t GetEPResolution(TList* lst, Double_t &rcflow, Double_t &rcfhigh);
Double_t ComputeEventPlaneResolution(Double_t& error, TH1F* hsubev1, TH1F* hsubev2, TH1F* hsubev3);
Bool_t FitMassSpectrum(TH1F* hMass, TPad* pad);
TH1F* DoSideBands(Int_t iFinalPtBin, TH2F* hMassDphi, TH1F* hMass, Int_t rebin, TCanvas* c1, Int_t optBkg=0);
TF1* DoFitv2vsMass(Int_t iFinalPtBin, TH2F* hMassDphi, TH1F* hMass, Int_t rebin, TCanvas* c2, Int_t optErrors=0, Bool_t useConst=kTRUE);


//______________________________________________________________________________
void Extractv2from2Dhistos(){
  // main function: computes v2 with side band and v2(M) methods

  gInterpreter->ExecuteMacro("$ALICE_ROOT/PWG3/vertexingHF/macros/LoadLibraries.C");

  TString dirname=Form("PWGHF_D2H_HFv2_%s%s",partname.Data(),suffix.Data());
  TString listname=Form("coutputv2%s%s",partname.Data(),suffix.Data());

  TFile *f = TFile::Open(filename.Data());
  if(!f){
    printf("file %s not found, please check file name\n",filename.Data());
    return;
  }
  TDirectoryFile* dir=(TDirectoryFile*)f->Get(dirname.Data());
  if(!dir){
    printf("Directory %s not found, please check dir name\n",dirname.Data());
    return;
  }
  Bool_t binOK=DefinePtBins(dir);
  if(!binOK){
    printf("ERROR: mismatch in pt binning\n");
    return;
  }
  TList *lst =(TList*)dir->Get(listname.Data());
  if(!lst){
    printf("list %s not found in file, please check list name\n",listname.Data());
    return;
  }
 
  // Double_t rcfmin,rcfmax;
  // Double_t resolFull=GetEPResolution(lst,rcfmin,rcfmax);
  // Double_t resolSyst=(rcfmax-rcfmin)/2./resolFull;
  // printf("Relative Systematic Error on RCF=%f\n",resolSyst);
  AliEventPlaneResolutionHandler* epres=new AliEventPlaneResolutionHandler();
  epres->SetEventPlane(evPlane);
  epres->SetResolutionOption(evPlaneRes);
  epres->SetUseNcollWeights(useNcollWeight);
  Double_t resolFull=epres->GetEventPlaneResolution(minCent,maxCent);
  Double_t rcfmin=epres->GetEventPlaneResolution(minCent,minCent+2.5);
  Double_t rcfmax=epres->GetEventPlaneResolution(maxCent-2.5,maxCent);
  Double_t resolSyst=TMath::Abs(rcfmax-rcfmin)/2./resolFull;
  delete epres;
  printf("Event plane resolution %f\n",resolFull);

  TH2F** hMassDphi=new TH2F*[nFinalPtBins];
  for(Int_t iFinalPtBin=0; iFinalPtBin<nFinalPtBins; iFinalPtBin++){
    hMassDphi[iFinalPtBin]=0x0;
  }
  LoadMassHistos(lst, hMassDphi);

  TCanvas** c1=new TCanvas*[nFinalPtBins];
  TCanvas** c2=new TCanvas*[nFinalPtBins];

  Double_t v2M1[nFinalPtBins],errv2M1[nFinalPtBins];
  Double_t v2M2[nFinalPtBins],errv2M2[nFinalPtBins];

  gStyle->SetPalette(1);
  gStyle->SetOptTitle(0);

  for(Int_t iFinalPtBin=0; iFinalPtBin<nFinalPtBins; iFinalPtBin++){
    printf("**************** BIN %d ******************\n",iFinalPtBin);
    printf("\n--------- Method 1: Side Bands ----------\n");
    TH1F* hMass=(TH1F*)hMassDphi[iFinalPtBin]->ProjectionY();

    c1[iFinalPtBin]=new TCanvas(Form("cMeth1PtBin%d",iFinalPtBin),Form("Meth1PtBin%d",iFinalPtBin));
    c1[iFinalPtBin]->Divide(2,2);
    c1[iFinalPtBin]->cd(1);
    hMassDphi[iFinalPtBin]->Draw("colz");
    c1[iFinalPtBin]->cd(2);
    Bool_t out=FitMassSpectrum(hMass,(TPad*)gPad);
    if(!out) continue;

    TH1F* hCos2PhiSig=DoSideBands(iFinalPtBin,hMassDphi[iFinalPtBin],hMass,rebinHistoSideBands[iFinalPtBin],c1[iFinalPtBin]);
    Double_t v2obsM1=hCos2PhiSig->GetMean();
    Double_t errv2obsM1=hCos2PhiSig->GetMeanError();  
    printf("v2obs = %f +- %f\n",v2obsM1,errv2obsM1);
    v2M1[iFinalPtBin]=v2obsM1/resolFull;
    errv2M1[iFinalPtBin]=errv2obsM1/resolFull;
    printf("v2 = %f +- %f\n",v2M1[iFinalPtBin],errv2M1[iFinalPtBin]);
    
    printf("\n--------- Method 2: S/S+B ----------\n");
    c2[iFinalPtBin]=new TCanvas(Form("cMeth2PtBin%d",iFinalPtBin),Form("Meth2PtBin%d",iFinalPtBin));
    TF1* fv2=DoFitv2vsMass(iFinalPtBin,hMassDphi[iFinalPtBin],hMass,rebinHistov2Mass[iFinalPtBin],c2[iFinalPtBin],0,useConstantvsBkgVsMass);

    Double_t v2obsM2=fv2->GetParameter(3);
    Double_t errv2obsM2=fv2->GetParError(3);
    printf("v2obs = %f +- %f\n",v2obsM2,errv2obsM2);
    v2M2[iFinalPtBin]=v2obsM2/resolFull;
    errv2M2[iFinalPtBin]=errv2obsM2/resolFull;
    printf("v2 = %f +- %f\n",v2M2[iFinalPtBin],errv2M2[iFinalPtBin]);
    if(saveAllCanvas){
      c1[iFinalPtBin]->SaveAs(Form("cMeth1PtBin%d.root",iFinalPtBin));
      c2[iFinalPtBin]->SaveAs(Form("cMeth2PtBin%d.root",iFinalPtBin));
      c1[iFinalPtBin]->SaveAs(Form("cMeth1PtBin%d.eps",iFinalPtBin));
      c2[iFinalPtBin]->SaveAs(Form("cMeth2PtBin%d.eps",iFinalPtBin));
   }
  }

  printf("\n--------- Summary ------------\n");

  TH1F* hv2m1=new TH1F("hv2m1","Side Band subtraction",nFinalPtBins,ptlims);
  TH1F* hv2m2=new TH1F("hv2m2","Fit to v2 vs. mass",nFinalPtBins,ptlims);
   for(Int_t iFinalPtBin=0; iFinalPtBin<nFinalPtBins; iFinalPtBin++){
    printf("PtBin %d   v2method1 = %f +- %f   v2method2 = %f +-%f\n",iFinalPtBin,
	   v2M1[iFinalPtBin],errv2M1[iFinalPtBin],
	   v2M2[iFinalPtBin],errv2M2[iFinalPtBin]
	   );
    hv2m1->SetBinContent(iFinalPtBin+1,v2M1[iFinalPtBin]);
    hv2m1->SetBinError(iFinalPtBin+1,errv2M1[iFinalPtBin]);
    hv2m2->SetBinContent(iFinalPtBin+1,v2M2[iFinalPtBin]);
    hv2m2->SetBinError(iFinalPtBin+1,errv2M2[iFinalPtBin]);
  }
    
   TH1F* hSystErr1=(TH1F*)hv2m1->Clone("hSystErr1");
   TH1F* hSystErr2=(TH1F*)hv2m2->Clone("hSystErr2");
   for(Int_t iFinalPtBin=0; iFinalPtBin<nFinalPtBins; iFinalPtBin++){
     Double_t systRes1=resolSyst*v2M1[iFinalPtBin];
     Double_t systRes2=resolSyst*v2M2[iFinalPtBin];
     Double_t syste1=TMath::Sqrt(systErrMeth1[iFinalPtBin]*systErrMeth1[iFinalPtBin]+systRes1*systRes1);
     Double_t syste2=TMath::Sqrt(systErrMeth2[iFinalPtBin]*systErrMeth2[iFinalPtBin]+systRes2*systRes2);
     hSystErr1->SetBinError(iFinalPtBin+1,syste1);
     hSystErr2->SetBinError(iFinalPtBin+1,syste2);
   }


   Double_t maxy=TMath::Max(hv2m2->GetMaximum(),hv2m1->GetMaximum())+0.1;
   Double_t miny=TMath::Min(hv2m2->GetMinimum(),hv2m1->GetMinimum())-0.1;
   TH2F* hempty=new TH2F("hempty","",10,0.,hv2m1->GetXaxis()->GetXmax()+2.,10,miny,maxy);
   hempty->GetXaxis()->SetTitle("p_{t} (GeV/c)");
   hempty->GetYaxis()->SetTitle("v_{2}");

   TCanvas* cv2=new TCanvas("cv2","v2");
   hempty->Draw();
   hv2m1->SetMarkerStyle(26);
   hSystErr1->SetFillColor(kGray);
   hSystErr1->SetFillStyle(3002);
   hSystErr1->Draw("e2same");

   hv2m2->SetLineColor(kRed+1);
   hv2m2->SetMarkerColor(kRed+1);
   hv2m2->SetMarkerStyle(20);
   hSystErr2->SetFillColor(kRed-9);
   hSystErr2->SetFillStyle(3005);
   hSystErr2->Draw("e2same");

   hv2m1->Draw("same");
   hv2m2->Draw("same");

   TLegend* leg2=new TLegend(0.5,0.7,0.89,0.89);
   leg2->SetFillStyle(0);
   TLegendEntry* ent=leg2->AddEntry(hv2m1,"Side Band subtraction","P");
   ent->SetTextColor(hv2m1->GetMarkerColor());
   ent=leg2->AddEntry(hv2m2,"Fit to v2 vs. mass","P");
   ent->SetTextColor(hv2m2->GetMarkerColor());
   leg2->Draw();
   cv2->Update();
   cv2->SaveAs(Form("v2%s-2Dmethods-%s.png",partname.Data(),suffix.Data()));
   cv2->SaveAs(Form("v2%s-2Dmethods-%s.eps",partname.Data(),suffix.Data()));

   TFile* outfil=new TFile(Form("v2Output2DMeth_%s_%d_%d_%s.root",partname.Data(),minCent,maxCent,suffix.Data()),"recreate");
   outfil->cd();
   hv2m1->Write();
   hv2m2->Write();
   hSystErr1->Write();
   hSystErr2->Write();
   outfil->Close();
}


//______________________________________________________________________________
Double_t v2vsMass(Double_t *x, Double_t *par){
  // Fit function for signal+background
  // par[0] = S/B at the mass peak
  // par[1] = mass
  // par[2] = sigma
  // par[3] = v2sig
  // par[4] = v2back

  Double_t fracsig=par[0]*TMath::Exp(-(x[0]-par[1])*(x[0]-par[1])/2./par[2]/par[2]);
  Double_t fracbkg=1-fracsig;
  return par[3]*fracsig+par[4]*fracbkg;
}

//______________________________________________________________________________
Double_t v2vsMassLin(Double_t *x, Double_t *par){
  // Fit function for signal+background
  // par[0] = S/B at the mass peak
  // par[1] = mass
  // par[2] = sigma
  // par[3] = v2sig
  // par[4] = v2back constant
  // par[5] = v2back slope

  Double_t fracsig=par[0]*TMath::Exp(-(x[0]-par[1])*(x[0]-par[1])/2./par[2]/par[2]);
  Double_t fracbkg=1-fracsig;
  return par[3]*fracsig+(par[4]+par[5]*x[0])*fracbkg;
}

//______________________________________________________________________________
Bool_t FitMassSpectrum(TH1F* hMass, TPad* pad){

  Int_t nMassBins=hMass->GetNbinsX();
  hMinBin=3;
  hMaxBin=nMassBins-2;
  Double_t hmin=hMass->GetBinLowEdge(hMinBin);
  Double_t hmax=hMass->GetBinLowEdge(hMaxBin)+hMass->GetBinWidth(hMaxBin);
  Double_t massD;
  if(partname.Contains("Dzero")) {
    massD=TDatabasePDG::Instance()->GetParticle(421)->Mass();
  }else if(partname.Contains("Dplus")){
    massD=TDatabasePDG::Instance()->GetParticle(411)->Mass();
  }else if(partname.Contains("Dstar")) {
    massD=(TDatabasePDG::Instance()->GetParticle(413)->Mass() - TDatabasePDG::Instance()->GetParticle(421)->Mass()); 
  }else{
    printf("Wrong particle name\n");
    massD=TDatabasePDG::Instance()->GetParticle(421)->Mass();    
  }
    
  AliHFMassFitter* fitter=new AliHFMassFitter(hMass,hmin,hmax,2,0,0);
  fitter->SetReflectionSigmaFactor(factor4refl);
  fitter->SetInitialGaussianMean(massD);
  Bool_t out=fitter->MassFitter(0);
  if(!out) return kFALSE;
  fitter->Signal(sigmaRangeForSig, signalFromFit,esignalFromFit);
  massFromFit=fitter->GetMean();
  sigmaFromFit=fitter->GetSigma();
  fB1=fitter->GetBackgroundFullRangeFunc();
  fB2=fitter->GetBackgroundRecalcFunc();
  fSB=fitter->GetMassFunc();
  if(!fB1) return kFALSE;
  if(!fB2) return kFALSE;
  if(!fSB) return kFALSE;
  if(pad){
    fitter->DrawHere(gPad,3.,0.);
  }
  return kTRUE;
}

//______________________________________________________________________________
TH1F* DoSideBands(Int_t iFinalPtBin,
		  TH2F* hMassDphi, 
		  TH1F* hMass, 
		  Int_t rebin,
		  TCanvas* c1,
		  Int_t optBkg){

  // Build histo with cos(2*deltaphi) distribution for signal

  Double_t hmin=hMass->GetBinLowEdge(hMinBin);
  Double_t hmax=hMass->GetBinLowEdge(hMaxBin)+hMass->GetBinWidth(hMaxBin);

  Double_t minMassSig=massFromFit-sigmaRangeForSig*sigmaFromFit;
  Double_t maxMassSig=massFromFit+sigmaRangeForSig*sigmaFromFit;
  Int_t minBinSig=hMass->FindBin(minMassSig);
  Int_t maxBinSig=hMass->FindBin(maxMassSig);
  Double_t minMassSigBin=hMass->GetBinLowEdge(minBinSig);
  Double_t maxMassSigBin=hMass->GetBinLowEdge(maxBinSig)+hMass->GetBinWidth(maxBinSig);
  printf("Signal Fit Limits = %f %f\n",minMassSigBin,maxMassSigBin);
  Double_t maxMassBkgLow=massFromFit-sigmaRangeForBkg*sigmaFromFit;
  Int_t minBinBkgLow=hMinBin;
  Int_t maxBinBkgLow=hMass->FindBin(maxMassBkgLow);
  Double_t minMassBkgLowBin=hmin;
  Double_t maxMassBkgLowBin=hMass->GetBinLowEdge(maxBinBkgLow)+hMass->GetBinWidth(maxBinBkgLow);
  Double_t minMassBkgHi=massFromFit+sigmaRangeForBkg*sigmaFromFit;
  Int_t minBinBkgHi=hMass->FindBin(minMassBkgHi);
  Int_t maxBinBkgHi=hMaxBin;
  Double_t minMassBkgHiBin=hMass->GetBinLowEdge(minBinBkgHi);
  Double_t maxMassBkgHiBin=hmax;
  printf("BKG Fit Limits = %f %f  && %f %f\n",minMassBkgLowBin,maxMassBkgLowBin,minMassBkgHiBin,maxMassBkgHiBin);
  Double_t bkgSig=fB2->Integral(minMassSigBin,maxMassSigBin);
  Double_t bkgLow=fB2->Integral(minMassBkgLowBin,maxMassBkgLowBin);
  Double_t bkgHi=fB2->Integral(minMassBkgHiBin,maxMassBkgHiBin);
  printf("Background integrals = %f %f %f\n",bkgLow,bkgSig,bkgHi);
  if(c1){
    TBox* bleft=new TBox(minMassBkgLowBin,0.,maxMassBkgLowBin,hMass->GetMaximum());
    bleft->SetFillColor(kRed+1);
    bleft->SetFillStyle(3002);
    bleft->Draw();
    TBox* bright=new TBox(minMassBkgHiBin,0.,maxMassBkgHiBin,hMass->GetMaximum());
    bright->SetFillColor(kBlue+1);
    bright->SetFillStyle(3002);
    bright->Draw();
    TBox* bsig=new TBox(minMassSigBin,0.,maxMassSigBin,hMass->GetMaximum()*2);
    bsig->SetFillColor(1);
    bsig->SetFillStyle(3002);
    bsig->Draw();
  }
  TH1F* hCos2PhiBkgLo=(TH1F*)hMassDphi->ProjectionX(Form("hCos2PhiBkgLoBin%d",iFinalPtBin),minBinBkgLow,maxBinBkgLow);
  TH1F* hCos2PhiBkgHi=(TH1F*)hMassDphi->ProjectionX(Form("hCos2PhiBkgHiBin%d",iFinalPtBin),minBinBkgHi,maxBinBkgHi);
  TH1F* hCos2PhiSigReg=(TH1F*)hMassDphi->ProjectionX(Form("hCos2PhiBkgSigBin%d",iFinalPtBin),minBinSig,maxBinSig);

  printf("Before Rebin11: BkgLo = %f+-%f BkgHi=%f+-%f  SigReg=%f+-%f\n",hCos2PhiBkgLo->GetBinContent(11),hCos2PhiBkgLo->GetBinError(11),
	 hCos2PhiBkgHi->GetBinContent(11),hCos2PhiBkgHi->GetBinError(11),
	 hCos2PhiSigReg->GetBinContent(11),hCos2PhiSigReg->GetBinError(11));
  printf("Before Rebin12: BkgLo = %f+-%f BkgHi=%f+-%f  SigReg=%f+-%f\n",hCos2PhiBkgLo->GetBinContent(12),hCos2PhiBkgLo->GetBinError(12),
	 hCos2PhiBkgHi->GetBinContent(12),hCos2PhiBkgHi->GetBinError(12),
	 hCos2PhiSigReg->GetBinContent(12),hCos2PhiSigReg->GetBinError(12));
  Double_t binc=hCos2PhiBkgLo->GetBinCenter(11);

  hCos2PhiBkgLo->Rebin(rebin);
  hCos2PhiBkgHi->Rebin(rebin);
  hCos2PhiSigReg->Rebin(rebin);
  hCos2PhiSigReg->SetLineWidth(2);
  hCos2PhiBkgLo->SetLineWidth(2);
  hCos2PhiBkgHi->SetLineWidth(2);
  hCos2PhiBkgLo->SetLineColor(kRed+1);
  hCos2PhiBkgHi->SetLineColor(kBlue+1);

  Int_t theBinR=hCos2PhiBkgLo->FindBin(binc);
  printf("After Rebin %d: BkgLo = %f+-%f BkgHi=%f+-%f  SigReg=%f+-%f\n",theBinR,
	 hCos2PhiBkgLo->GetBinContent(theBinR),hCos2PhiBkgLo->GetBinError(theBinR),
	 hCos2PhiBkgHi->GetBinContent(theBinR),hCos2PhiBkgHi->GetBinError(theBinR),
	 hCos2PhiSigReg->GetBinContent(theBinR),hCos2PhiSigReg->GetBinError(theBinR));

  printf("Background Scaling: Lo->Sig= %f Hi->Sig=%f\n",bkgSig/bkgLow,bkgSig/bkgHi);
   
  hCos2PhiBkgLo->Sumw2();
  hCos2PhiBkgHi->Sumw2();
  TH1F* hCos2PhiBkgLoScal=(TH1F*)hCos2PhiBkgLo->Clone(Form("hCos2PhiBkgLoScalBin%d",iFinalPtBin));
  hCos2PhiBkgLoScal->Scale(bkgSig/bkgLow);
  TH1F* hCos2PhiBkgHiScal=(TH1F*)hCos2PhiBkgHi->Clone(Form("hCos2PhiBkgHiScalBin%d",iFinalPtBin));
  hCos2PhiBkgHiScal->Scale(bkgSig/bkgHi);
  hCos2PhiBkgLoScal->SetLineWidth(2);
  hCos2PhiBkgHiScal->SetLineWidth(2);
  hCos2PhiBkgLoScal->SetLineStyle(7);
  hCos2PhiBkgHiScal->SetLineStyle(2);
  hCos2PhiBkgLoScal->SetLineColor(kRed+1);
  hCos2PhiBkgHiScal->SetLineColor(kBlue+1);
  printf("After Scaling %d: BkgLo = %f+-%f BkgHi=%f+-%f \n",theBinR,
	 hCos2PhiBkgLoScal->GetBinContent(theBinR),hCos2PhiBkgLoScal->GetBinError(theBinR),
	 hCos2PhiBkgHiScal->GetBinContent(theBinR),hCos2PhiBkgHiScal->GetBinError(theBinR));


  TH1F* hCos2PhiBkgAver=0x0;
  if(optBkg==0){
    hCos2PhiBkgAver=(TH1F*)hCos2PhiBkgLoScal->Clone(Form("hCos2PhiBkgAverBin%d",iFinalPtBin));
    hCos2PhiBkgAver->Add(hCos2PhiBkgHiScal);
    hCos2PhiBkgAver->Scale(0.5);
  }else if(optBkg==-1){
    hCos2PhiBkgAver=(TH1F*)hCos2PhiBkgLoScal->Clone(Form("hCos2PhiBkgAverBin%d",iFinalPtBin));
  }else{
    hCos2PhiBkgAver=(TH1F*)hCos2PhiBkgHiScal->Clone(Form("hCos2PhiBkgAverBin%d",iFinalPtBin));
  }
  printf("After Average %d: BkgLo = %f+-%f BkgHi=%f+-%f BkgAve=%f+-%f \n",theBinR,
	 hCos2PhiBkgLoScal->GetBinContent(theBinR),hCos2PhiBkgLoScal->GetBinError(theBinR),
	 hCos2PhiBkgHiScal->GetBinContent(theBinR),hCos2PhiBkgHiScal->GetBinError(theBinR),
	 hCos2PhiBkgAver->GetBinContent(theBinR),hCos2PhiBkgAver->GetBinError(theBinR)
	 );

  hCos2PhiBkgAver->SetLineWidth(2);
  hCos2PhiBkgAver->SetLineColor(kGreen+1);
  hCos2PhiBkgAver->SetFillColor(kGreen+1);
  TH1F* hCos2PhiSig=(TH1F*)hCos2PhiSigReg->Clone(Form("hCos2PhiSigBin%d",iFinalPtBin));
  hCos2PhiSig->Add(hCos2PhiBkgAver,-1.);   
  printf("After Subtraction %d: All = %f+-%f BkgAve=%f+-%f Sig=%f+-%f \n",theBinR,
	 hCos2PhiSigReg->GetBinContent(theBinR),hCos2PhiSigReg->GetBinError(theBinR),
	 hCos2PhiBkgAver->GetBinContent(theBinR),hCos2PhiBkgAver->GetBinError(theBinR),
	 hCos2PhiSig->GetBinContent(theBinR),hCos2PhiSig->GetBinError(theBinR)	 
	 );
  
  TLegend* leg0=new TLegend(0.3,0.6,0.75,0.89);
  TPaveText* t0= new TPaveText(0.15,0.70,0.45,0.89,"NDC");
  if(c1){
    c1->cd(3);
    hCos2PhiSigReg->Draw();
    hCos2PhiBkgAver->Draw("same");
    hCos2PhiBkgLoScal->Draw("same");
    hCos2PhiBkgHiScal->Draw("same");
    leg0->SetFillColor(0);
    TLegendEntry* ent=leg0->AddEntry(hCos2PhiSigReg,"Signal region","L");
    ent->SetTextColor(hCos2PhiSigReg->GetLineColor());
    ent=leg0->AddEntry(hCos2PhiBkgLoScal,"Left side band","L");
    ent->SetTextColor(hCos2PhiBkgLoScal->GetLineColor());
    ent=leg0->AddEntry(hCos2PhiBkgHiScal,"Right side band","L");
    ent->SetTextColor(hCos2PhiBkgHiScal->GetLineColor());
    ent=leg0->AddEntry(hCos2PhiBkgAver,"Average of side bands","F");
    ent->SetTextColor(hCos2PhiBkgAver->GetLineColor());
    leg0->Draw();
    c1->cd(4);
    hCos2PhiSig->Draw("EP");
    t0->SetFillColor(0);
    t0->AddText(Form("v2=%.3f+-%.3f\n",hCos2PhiSig->GetMean(),hCos2PhiSig->GetMeanError()));
    t0->Draw();
  
    c1->Update();
  }
  if(!c1){
    delete leg0;
    delete t0;
    delete hCos2PhiBkgLo;
    delete hCos2PhiBkgHi;
    delete hCos2PhiSigReg;
    delete hCos2PhiBkgLoScal;
    delete hCos2PhiBkgHiScal;
    delete hCos2PhiBkgAver;
  }
  printf("Signal from mass fitter = %f  Signal from subracted histo= %f\n",
	 signalFromFit,hCos2PhiSig->Integral());
  return hCos2PhiSig;
}


//______________________________________________________________________________
TF1* DoFitv2vsMass(Int_t iFinalPtBin, TH2F* hMassDphi, TH1F* hMass, Int_t rebin, TCanvas* c2, Int_t optErrors, Bool_t useConst){

  Int_t npars=fSB->GetNpar();
  Double_t sigmaSB=fSB->GetParameter(npars-1);
  Double_t massSB=fSB->GetParameter(npars-2);
  Double_t integr=fSB->GetParameter(npars-3);
  Double_t sOverAll=(fSB->Eval(massSB)-fB2->Eval(massSB))/fSB->Eval(massSB);
  printf("mass=%f  S+B=%f   bkg=%f S/(S+B)=%f\n",massSB,fSB->Eval(massSB),fB2->Eval(massSB),sOverAll);
  printf("Number of parameters: %d. Signal params: %f %f %f\n",npars,massSB,sigmaSB,integr);
  if(optErrors==1){
    sOverAll+=fSB->GetParError(npars-3)/fSB->GetParameter(npars-3);
  }
  else if(optErrors==-1){
    sOverAll-=fSB->GetParError(npars-3)/fSB->GetParameter(npars-3);
  }

  Int_t nbinsmass=hMassDphi->GetNbinsY();
  Double_t minmass=hMassDphi->GetYaxis()->GetXmin();
  Double_t maxmass=hMassDphi->GetYaxis()->GetXmax();

  TF1* fSig=new TF1(Form("fSig%d",iFinalPtBin),"[0]/TMath::Sqrt(2.*TMath::Pi())/[2]*TMath::Exp(-(x-[1])*(x-[1])/2./[2]/[2])",minmass,maxmass);
  fSig->SetParameters(integr,massSB,sigmaSB);
 
  TH1F* hAverCos2Phi=new TH1F(Form("hAverCos2PhiBin%d",iFinalPtBin),"",nbinsmass,minmass,maxmass);
  TH1F* hFractionSig=new TH1F(Form("hFractionSigBin%d",iFinalPtBin),"",nbinsmass,minmass,maxmass);
  TH1F* hFractionBkg=new TH1F(Form("hFractionBkgBin%d",iFinalPtBin),"",nbinsmass,minmass,maxmass);
  for(Int_t iBin=1; iBin<=hMassDphi->GetNbinsY(); iBin++){
    TH1F* htemp=(TH1F*)hMassDphi->ProjectionX("htemp",iBin,iBin);
    hAverCos2Phi->SetBinContent(iBin,htemp->GetMean());
    hAverCos2Phi->SetBinError(iBin,htemp->GetMeanError());
    Double_t sig=fSig->Eval(hFractionSig->GetBinCenter(iBin));
    Double_t bkg=fB2->Eval(hFractionSig->GetBinCenter(iBin));
    if(bkg<1 && sig<1){
      hFractionSig->SetBinContent(iBin,0.);
      hFractionSig->SetBinError(iBin,0.);
      hFractionBkg->SetBinContent(iBin,1.);
      hFractionBkg->SetBinError(iBin,0.);
    }else{
      Double_t fracs=sig/(sig+bkg);
      Double_t fracb=bkg/(sig+bkg);
      Double_t efracs=0.;//TMath::Sqrt(fracs*(1.-fracs)/(sig+bkg));
      Double_t efracb=0.;//TMath::Sqrt(fracb*(1.-fracb)/(sig+bkg));
      
      hFractionSig->SetBinContent(iBin,fracs);
      hFractionSig->SetBinError(iBin,efracs);
      hFractionBkg->SetBinContent(iBin,fracb);      
      hFractionBkg->SetBinError(iBin,efracb);
    }
    delete htemp;
  }
  
  TF1* fv2=0x0;
  if(useConst){
    fv2=new TF1(Form("fv2Bin%d",iFinalPtBin),v2vsMass,minmass,maxmass,5);
  }else{
    fv2=new TF1(Form("fv2Bin%d",iFinalPtBin),v2vsMassLin,minmass,maxmass,6);
    fv2->SetParameter(5,0.);
  }
  fv2->SetParameter(0,sOverAll);
  fv2->SetParameter(1,massSB);
  fv2->SetParameter(2,sigmaSB);
  fv2->SetParameter(3,0.2);
  fv2->SetParameter(4,0.2);
  fv2->FixParameter(0,sOverAll);
  fv2->FixParameter(1,massSB);
  fv2->FixParameter(2,sigmaSB);

  printf("LOOP %d\n",rebin);
  if((hAverCos2Phi->GetNbinsX()%rebin)==0){
    hAverCos2Phi->Rebin(rebin);
    hAverCos2Phi->Scale(1./(Double_t)rebin);
  }

  if(c2){
    c2->Divide(2,2);
    c2->cd(1);
    hMassDphi->Draw("colz");
    c2->cd(2);
    hMass->Rebin(2);
    hMass->SetMinimum(0.);
    hMass->SetMarkerStyle(20);
    hMass->Draw("E");
    fSB->Draw("same");
    fSig->Draw("same");
    fB2->Draw("same");
    c2->cd(3);
    hFractionSig->SetMaximum(1.2);
    hFractionSig->Draw();
    hFractionSig->GetXaxis()->SetTitle("Mass (GeV/c^2)");
    hFractionSig->GetYaxis()->SetTitle("Fraction");
    hFractionBkg->SetLineColor(2);
    hFractionBkg->Draw("same");
    TLegend* leg1=new TLegend(0.15,0.15,0.35,0.35);
    leg1->SetFillColor(0);
    TLegendEntry* ent=leg1->AddEntry(hFractionSig,"S/(S+B)","L");
    ent->SetTextColor(hFractionSig->GetLineColor());
    ent=leg1->AddEntry(hFractionBkg,"B/(S+B)","L");
    ent->SetTextColor(hFractionBkg->GetLineColor());
    leg1->Draw();
    c2->cd(4);
    hAverCos2Phi->Fit(fv2);
    fv2->DrawCopy("same");
    hAverCos2Phi->GetXaxis()->SetTitle("Mass (GeV/c^2)");
    hAverCos2Phi->GetYaxis()->SetTitle("v_2^{obs}");
    TPaveText* t1= new TPaveText(0.55,0.70,0.89,0.89,"NDC");
    t1->SetFillColor(0);
    t1->AddText(Form("v2sig=%.3f+-%.3f\n",fv2->GetParameter(3),fv2->GetParError(3)));
    if(useConst){
      t1->AddText(Form("v2bkg=%.3f+-%.3f\n",fv2->GetParameter(4),fv2->GetParError(4)));
    }else{
      t1->AddText(Form("v2bkg=(%.3f+-%.3f) + (%.3g+-%.3g)*mass\n",fv2->GetParameter(4),fv2->GetParError(4),fv2->GetParameter(5),fv2->GetParError(5)));
    }
    t1->Draw();
    c2->Update();
  }else{
    hAverCos2Phi->Fit(fv2);
  }
  return fv2;
}


//______________________________________________________________________________
Double_t GetEPResolution(TList* lst, Double_t &rcflow, Double_t &rcfhigh){
  // Event plane resolution syst err (from wide centrality bin
  TH1F* hResolSubAB=0x0;
  TH1F* hResolSubBC=0x0;
  TH1F* hResolSubAC=0x0;
  Double_t xmin=1.;
  Double_t xmax=-1.;
  TGraphAsymmErrors* grSingle=new TGraphAsymmErrors(0);
  TGraphAsymmErrors* grInteg=new TGraphAsymmErrors(0);
  Int_t iPt=0;
  Int_t minCentTimesTen=minCent*10;
  Int_t maxCentTimesTen=maxCent*10;  
  Double_t binHalfWid=25./20.;
  for(Int_t iHisC=minCentTimesTen; iHisC<=maxCentTimesTen-25; iHisC+=25){    
    TString hisnameAB=Form("hEvPlaneResocentr%d_%d",iHisC,iHisC+25);
    TString hisnameBC=Form("hEvPlaneReso2centr%d_%d",iHisC,iHisC+25);
    TString hisnameAC=Form("hEvPlaneReso3centr%d_%d",iHisC,iHisC+25);
    TH1F* hResolSubABsing=(TH1F*)lst->FindObject(hisnameAB.Data());
    cout<<hResolSubABsing->GetName()<<endl;
    TH1F* hResolSubBCsing=0x0;
    TH1F* hResolSubACsing=0x0;
    if(evPlaneRes==AliEventPlaneResolutionHandler::kThreeSub||
       evPlaneRes==AliEventPlaneResolutionHandler::kThreeSubTPCGap){
      hResolSubBCsing=(TH1F*)lst->FindObject(hisnameBC.Data());
      cout<<hResolSubBCsing->GetName()<<endl;
      hResolSubACsing=(TH1F*)lst->FindObject(hisnameAC.Data());
      cout<<hResolSubACsing->GetName()<<endl;
    }
    Double_t error; 
    Double_t resolFull=ComputeEventPlaneResolution(error,hResolSubABsing,hResolSubBCsing,hResolSubACsing);
    Double_t resolFullmin=resolFull-error;
    Double_t resolFullmax=resolFull+error;
    
    Double_t binCentr=(Double_t)iHisC/10.+binHalfWid;
    grSingle->SetPoint(iPt,binCentr,resolFull);
    grSingle->SetPointEXlow(iPt,binHalfWid);
    grSingle->SetPointEXhigh(iPt,binHalfWid);
    grSingle->SetPointEYlow(iPt,resolFullmax-resolFull);
    grSingle->SetPointEYhigh(iPt,resolFull-resolFullmin);
    ++iPt;
    if(resolFullmin<xmin) xmin=resolFullmin;
    if(resolFullmax>xmax) xmax=resolFullmax;
    if(iHisC==minCentTimesTen){
      hResolSubAB=(TH1F*)hResolSubABsing->Clone("hResolSubAB");
      if(evPlaneRes==AliEventPlaneResolutionHandler::kThreeSub||
	 evPlaneRes==AliEventPlaneResolutionHandler::kThreeSubTPCGap){
	hResolSubBC=(TH1F*)hResolSubBCsing->Clone("hResolSubAB");
	hResolSubAC=(TH1F*)hResolSubACsing->Clone("hResolSubAB");
      }
    }else{
      hResolSubAB->Add(hResolSubABsing);
      if(evPlaneRes==AliEventPlaneResolutionHandler::kThreeSub||
	 evPlaneRes==AliEventPlaneResolutionHandler::kThreeSubTPCGap){
	hResolSubBC->Add(hResolSubBCsing);
	hResolSubAC->Add(hResolSubACsing);
      }
    }
    printf("Adding histogram %s\n",hResolSubAB->GetName());
  }
  rcflow=xmin;
  rcfhigh=xmax;


  Double_t error; 
  Double_t resolFull=ComputeEventPlaneResolution(error,hResolSubAB,hResolSubBC,hResolSubAC);

  grInteg->SetPoint(0,40.,resolFull);
  grInteg->SetPointEXlow(0,10);
  grInteg->SetPointEXhigh(0,10.);
  grInteg->SetPointEYlow(0,error);
  grInteg->SetPointEYhigh(0,error);
  
  TCanvas* cEP=new TCanvas("cEP","EvPlaneResol");
  cEP->Divide(1,2);
  cEP->cd(1);
  hResolSubAB->Draw();
  if(evPlaneRes==AliEventPlaneResolutionHandler::kThreeSub||
     evPlaneRes==AliEventPlaneResolutionHandler::kThreeSubTPCGap){
    hResolSubBC->SetLineColor(2);
    hResolSubBC->Draw("same");
    hResolSubAC->SetLineColor(4);
    hResolSubAC->Draw("same");
  }
  TLatex* tres=new TLatex(0.15,0.7,Form("Resolution on full event = %.4f\n",resolFull));
  tres->SetNDC();
  tres->Draw();
  cEP->cd(2);
  grSingle->SetMarkerStyle(20);
  grInteg->SetMarkerColor(kRed+1);
  grInteg->SetLineColor(kRed+1);
  grInteg->SetMarkerStyle(29);
  grSingle->Draw("AP");
  grSingle->GetXaxis()->SetTitle("Centrality Percentile");
  grSingle->GetYaxis()->SetTitle("Resolution Correction Factor");
  grInteg->Draw("Psame");
 
  return resolFull;
  
}
  
//______________________________________________________________________________
Double_t ComputeEventPlaneResolution(Double_t& error, TH1F* hsubev1, TH1F* hsubev2, TH1F* hsubev3){
  Double_t resolFull;
  if(evPlaneRes==AliEventPlaneResolutionHandler::kTwoRandSub ||
     evPlaneRes==AliEventPlaneResolutionHandler::kTwoChargeSub){
    resolFull=AliVertexingHFUtils::GetFullEvResol(hsubev1);
    error = TMath::Abs(resolFull-AliVertexingHFUtils::GetFullEvResolLowLim(hsubev1));
  }else if(evPlaneRes==AliEventPlaneResolutionHandler::kTwoEtaSub){
    if(evPlane==AliEventPlaneResolutionHandler::kTPCFullEta){
      resolFull=AliVertexingHFUtils::GetFullEvResol(hsubev1);
      error = TMath::Abs(resolFull-AliVertexingHFUtils::GetFullEvResolLowLim(hsubev1));
    }else if(evPlane==AliEventPlaneResolutionHandler::kTPCPosEta){
      resolFull=AliVertexingHFUtils::GetSubEvResol(hsubev1);
      error = TMath::Abs(resolFull-AliVertexingHFUtils::GetSubEvResolLowLim(hsubev1));      
    }
  }else{
    Double_t resolSub[3];
    Double_t errors[3];
    TH1F* hevplresos[3];
    hevplresos[0]=hsubev1;
    hevplresos[1]=hsubev2;
    hevplresos[2]=hsubev3;
    for(Int_t ires=0;ires<3;ires++){
      resolSub[ires]=hevplresos[ires]->GetMean();
      errors[ires]=hevplresos[ires]->GetMeanError();
    }
    Double_t lowlim[3];for(Int_t ie=0;ie<3;ie++)lowlim[ie]=TMath::Abs(resolSub[ie]-errors[ie]);
    if(evPlane==AliEventPlaneResolutionHandler::kVZEROC ||
       evPlane==AliEventPlaneResolutionHandler::kVZERO){
      resolFull=TMath::Sqrt(resolSub[1]*resolSub[2]/resolSub[0]);
      error=resolFull-TMath::Sqrt(lowlim[2]*lowlim[1]/lowlim[0]);
    }
    else if(evPlane==AliEventPlaneResolutionHandler::kVZEROA){
      resolFull=TMath::Sqrt(resolSub[0]*resolSub[2]/resolSub[1]);
      error=resolFull-TMath::Sqrt(lowlim[2]*lowlim[0]/lowlim[1]);
    }
    else if(evPlane==AliEventPlaneResolutionHandler::kTPCFullEta ||
	    evPlane==AliEventPlaneResolutionHandler::kTPCPosEta){
      resolFull=TMath::Sqrt(resolSub[0]*resolSub[1]/resolSub[2]);
      error=resolFull-TMath::Sqrt(lowlim[0]*lowlim[1]/lowlim[2]);
    }
  }
  return resolFull;
}

//______________________________________________________________________________
void LoadMassHistos(TList* lst, TH2F** hMassDphi){

  Int_t minCentTimesTen=minCent*10;
  Int_t maxCentTimesTen=maxCent*10;  
  for(Int_t iHisC=minCentTimesTen; iHisC<=maxCentTimesTen-25; iHisC+=25){    
    for(Int_t iFinalPtBin=0; iFinalPtBin<nFinalPtBins; iFinalPtBin++){
      for(Int_t iPtBin=minPtBin[iFinalPtBin]; iPtBin<=maxPtBin[iFinalPtBin]; iPtBin++){
    	TString hisname=Form("hMc2deltaphi_pt%dcentr%d_%d",iPtBin,iHisC,iHisC+25);
    	TH2F* htmp=(TH2F*)lst->FindObject(hisname.Data());
	if(hMassDphi[iFinalPtBin]==0x0){
	  hMassDphi[iFinalPtBin]=(TH2F*)htmp->Clone(Form("hMassCos2DphiBin%d",iFinalPtBin));
	}else{ 
	  hMassDphi[iFinalPtBin]->Add(htmp);
	}
    	printf("Adding histogram %s to PtBin %d\n",hisname.Data(),iFinalPtBin);
      }
    }
  }
}

//______________________________________________________________________________
Bool_t DefinePtBins(TDirectoryFile* df){

  AliRDHFCuts *d0cuts;
  if(partname.Contains("Dzero")) d0cuts=(AliRDHFCutsD0toKpi*)df->Get(df->GetListOfKeys()->At(2)->GetName());
  if(partname.Contains("Dplus")) d0cuts=(AliRDHFCutsDplustoKpipi*)df->Get(df->GetListOfKeys()->At(2)->GetName());
  if(partname.Contains("Dstar")) d0cuts=((AliRDHFCutsDStartoKpipi*)df->Get(df->GetListOfKeys()->At(2)->GetName()));

  Int_t nPtBinsCuts=d0cuts->GetNPtBins();
  printf("Number of pt bins for cut object = %d\n",nPtBinsCuts);
  Float_t *ptlimsCuts=d0cuts->GetPtBinLimits();
  for(Int_t iPt=0; iPt<nPtBinsCuts; iPt++) printf(" %d %f-%f\n",iPt,ptlimsCuts[iPt],ptlimsCuts[iPt+1]);
  for(Int_t iPtCuts=0; iPtCuts<nPtBinsCuts; iPtCuts++){
    for(Int_t iFinalPtBin=0; iFinalPtBin<nFinalPtBins; iFinalPtBin++){  
      if(TMath::Abs(ptlimsCuts[iPtCuts]-ptlims[iFinalPtBin])<0.0001){ 
	minPtBin[iFinalPtBin]=iPtCuts;
	if(iFinalPtBin>0) maxPtBin[iFinalPtBin-1]=iPtCuts-1;
      }
    }
    if(TMath::Abs(ptlimsCuts[iPtCuts]-ptlims[nFinalPtBins])<0.0001) maxPtBin[nFinalPtBins-1]=iPtCuts-1;
  }
  if(TMath::Abs(ptlims[nFinalPtBins]-ptlimsCuts[nPtBinsCuts])<0.0001) maxPtBin[nFinalPtBins-1]=nPtBinsCuts-1;
  for(Int_t iFinalPtBin=0; iFinalPtBin<nFinalPtBins; iFinalPtBin++){
    printf("Pt bins to be merged: %d %d\n",minPtBin[iFinalPtBin],maxPtBin[iFinalPtBin]);
    if(minPtBin[iFinalPtBin]<0 || maxPtBin[iFinalPtBin]<0) return kFALSE;
  }

  return kTRUE;
}


//______________________________________________________________________________
void SystForSideBands(){
  // Compute systematic ucnertainty for the side band subtraction method
  gInterpreter->ExecuteMacro("$ALICE_ROOT/PWG3/vertexingHF/macros/LoadLibraries.C");

  TString dirname=Form("PWGHF_D2H_HFv2_%s%s",partname.Data(),suffix.Data());
  TString listname=Form("coutputv2%s%s",partname.Data(),suffix.Data());

  TFile *f = TFile::Open(filename.Data());
  if(!f){
    printf("file %s not found, please check file name\n",filename.Data());
    return;
  }
  TDirectoryFile* dir=(TDirectoryFile*)f->Get(dirname.Data());
  if(!dir){
    printf("Directory %s not found, please check dir name\n",dirname.Data());
    return;
  }
  Bool_t binOK=DefinePtBins(dir);
  if(!binOK){
    printf("ERROR: mismatch in pt binning\n");
    return;
  }
  TList *lst =(TList*)dir->Get(listname.Data());
  if(!lst){
    printf("list %s not found in file, please check list name\n",listname.Data());
    return;
  }

  AliEventPlaneResolutionHandler* epres=new AliEventPlaneResolutionHandler();
  epres->SetEventPlane(evPlane);
  epres->SetResolutionOption(evPlaneRes);
  epres->SetUseNcollWeights(useNcollWeight);
  Double_t resolFull=epres->GetEventPlaneResolution(minCent,maxCent);
  delete epres;
  printf("Event plane resolution %f\n",resolFull);
  
  TH2F** hMassDphi=new TH2F*[nFinalPtBins];
  for(Int_t iFinalPtBin=0; iFinalPtBin<nFinalPtBins; iFinalPtBin++){
    hMassDphi[iFinalPtBin]=0x0;
  }
  LoadMassHistos(lst, hMassDphi);

  Int_t nSteps=21;

  TGraphErrors** gSystSigRange=new TGraphErrors*[nFinalPtBins];
  TGraphErrors** gSystBkgRange=new TGraphErrors*[nFinalPtBins];
  TGraphErrors** gSystRebin=new TGraphErrors*[nFinalPtBins];
  TGraphErrors** gSystWhichSide=new TGraphErrors*[nFinalPtBins];

  Double_t min1[nFinalPtBins],max1[nFinalPtBins];
  Double_t min123[nFinalPtBins],max123[nFinalPtBins];
  Double_t min2[nFinalPtBins],max2[nFinalPtBins];
  Double_t min3[nFinalPtBins],max3[nFinalPtBins];
  Double_t min4[nFinalPtBins],max4[nFinalPtBins];

  Double_t sigmaRangeForSigOrig=sigmaRangeForSig;
  Double_t sigmaRangeForBkgOrig=sigmaRangeForBkg;


  for(Int_t iFinalPtBin=0; iFinalPtBin<nFinalPtBins; iFinalPtBin++){
    printf("**************** BIN %d ******************\n",iFinalPtBin);

    Int_t rebinHistoSideBandsOrig=rebinHistoSideBands[iFinalPtBin];

    gSystSigRange[iFinalPtBin]=new TGraphErrors(0);
    gSystSigRange[iFinalPtBin]->SetTitle(Form("v2 vs. nSigma Signal Region Ptbin %d",iFinalPtBin));

    TH1F* hMass=(TH1F*)hMassDphi[iFinalPtBin]->ProjectionY();

    Bool_t out=FitMassSpectrum(hMass,0x0);
    if(!out) continue;

    min1[iFinalPtBin]=99999.;
    max1[iFinalPtBin]=-99999.;
    min123[iFinalPtBin]=99999.;
    max123[iFinalPtBin]=-99999.;
    for(Int_t iStep=0; iStep<nSteps; iStep++){
      Int_t index=iFinalPtBin*nSteps+iStep;
      sigmaRangeForSig=1.5+0.1*iStep;
      sigmaRangeForBkg=sigmaRangeForBkgOrig;
      rebinHistoSideBands[iFinalPtBin]=rebinHistoSideBandsOrig;
      TH1F* hCos2PhiSig=DoSideBands(index,hMassDphi[iFinalPtBin],hMass,rebinHistoSideBands[iFinalPtBin],0x0);
      Double_t v2obsM1=hCos2PhiSig->GetMean();
      Double_t errv2obsM1=hCos2PhiSig->GetMeanError();  
      delete hCos2PhiSig;
      Double_t v2M1=v2obsM1/resolFull;
      Double_t errv2M1=errv2obsM1/resolFull;
      gSystSigRange[iFinalPtBin]->SetPoint(iStep,sigmaRangeForSig,v2M1);
      gSystSigRange[iFinalPtBin]->SetPointError(iStep,0.,errv2M1);
      if(v2M1>max1[iFinalPtBin]) max1[iFinalPtBin]=v2M1;
      if(v2M1<min1[iFinalPtBin]) min1[iFinalPtBin]=v2M1;
      if(sigmaRangeForSig>=2. && sigmaRangeForSig<=3){
	if(v2M1>max123[iFinalPtBin]) max123[iFinalPtBin]=v2M1;
	if(v2M1<min123[iFinalPtBin]) min123[iFinalPtBin]=v2M1;
      }
    }
 
    min2[iFinalPtBin]=99999.;
    max2[iFinalPtBin]=-99999.;
    gSystBkgRange[iFinalPtBin]=new TGraphErrors(0);
    gSystBkgRange[iFinalPtBin]->SetTitle(Form("v2 vs. nSigma Bkg Region Ptbin %d",iFinalPtBin));
    for(Int_t iStep=0; iStep<nSteps; iStep++){
      Int_t index=nSteps*nFinalPtBins+iFinalPtBin*nSteps+iStep;
      sigmaRangeForSig=sigmaRangeForSigOrig;
      sigmaRangeForBkg=4.+0.1*iStep;
      rebinHistoSideBands[iFinalPtBin]=rebinHistoSideBandsOrig;
      TH1F* hCos2PhiSig=DoSideBands(index,hMassDphi[iFinalPtBin],hMass,rebinHistoSideBands[iFinalPtBin],0x0);
      Double_t v2obsM1=hCos2PhiSig->GetMean();
      Double_t errv2obsM1=hCos2PhiSig->GetMeanError();  
      delete hCos2PhiSig;
      Double_t v2M1=v2obsM1/resolFull;
      Double_t errv2M1=errv2obsM1/resolFull;
      gSystBkgRange[iFinalPtBin]->SetPoint(iStep,sigmaRangeForBkg,v2M1);
      gSystBkgRange[iFinalPtBin]->SetPointError(iStep,0.,errv2M1);
      if(v2M1>max2[iFinalPtBin]) max2[iFinalPtBin]=v2M1;
      if(v2M1<min2[iFinalPtBin]) min2[iFinalPtBin]=v2M1;
    }

    min3[iFinalPtBin]=99999.;
    max3[iFinalPtBin]=-99999.;
    gSystRebin[iFinalPtBin]=new TGraphErrors(0);
    gSystRebin[iFinalPtBin]->SetTitle(Form("v2 vs. Rebin Ptbin %d",iFinalPtBin));
    Int_t nPts=0;
    for(Int_t iStep=0; iStep<nSteps; iStep++){
      Int_t index=2*nSteps*nFinalPtBins+iFinalPtBin*nSteps+iStep;
      sigmaRangeForSig=sigmaRangeForSigOrig;
      sigmaRangeForBkg=sigmaRangeForBkgOrig;
      rebinHistoSideBands[iFinalPtBin]=iStep+1;
      if((hMassDphi[iFinalPtBin]->GetNbinsY())%rebinHistoSideBands[iFinalPtBin]!=0) continue;
      TH1F* hCos2PhiSig=DoSideBands(index,hMassDphi[iFinalPtBin],hMass,rebinHistoSideBands[iFinalPtBin],0x0);
      Double_t v2obsM1=hCos2PhiSig->GetMean();
      Double_t errv2obsM1=hCos2PhiSig->GetMeanError();  
      delete hCos2PhiSig;
      Double_t v2M1=v2obsM1/resolFull;
      Double_t errv2M1=errv2obsM1/resolFull;
      gSystRebin[iFinalPtBin]->SetPoint(nPts,(Double_t)rebinHistoSideBands[iFinalPtBin],v2M1);
      gSystRebin[iFinalPtBin]->SetPointError(nPts,0.,errv2M1);
      if(v2M1>max3[iFinalPtBin]) max3[iFinalPtBin]=v2M1;
      if(v2M1<min3[iFinalPtBin]) min3[iFinalPtBin]=v2M1;
      ++nPts;
    }

    min4[iFinalPtBin]=99999.;
    max4[iFinalPtBin]=-99999.;
    gSystWhichSide[iFinalPtBin]=new TGraphErrors(0);
    gSystWhichSide[iFinalPtBin]->SetTitle(Form("v2 vs. WhichSide Ptbin %d",iFinalPtBin));
    nPts=0;
    for(Int_t iStep=-1; iStep<=1; iStep++){
      Int_t index=3*nSteps*nFinalPtBins+2+iStep;
      sigmaRangeForSig=sigmaRangeForSigOrig;
      sigmaRangeForBkg=sigmaRangeForBkgOrig;
      rebinHistoSideBands[iFinalPtBin]=rebinHistoSideBandsOrig;
      TH1F* hCos2PhiSig=DoSideBands(index,hMassDphi[iFinalPtBin],hMass,rebinHistoSideBands[iFinalPtBin],0x0,iStep);
      Double_t v2obsM1=hCos2PhiSig->GetMean();
      Double_t errv2obsM1=hCos2PhiSig->GetMeanError();  
      delete hCos2PhiSig;
      Double_t v2M1=v2obsM1/resolFull;
      Double_t errv2M1=errv2obsM1/resolFull;
      gSystWhichSide[iFinalPtBin]->SetPoint(nPts,(Double_t)iStep,v2M1);
      gSystWhichSide[iFinalPtBin]->SetPointError(nPts,0.,errv2M1);
      if(v2M1>max4[iFinalPtBin]) max4[iFinalPtBin]=v2M1;
      if(v2M1<min4[iFinalPtBin]) min4[iFinalPtBin]=v2M1;
      ++nPts;
    }
    rebinHistoSideBands[iFinalPtBin]=rebinHistoSideBandsOrig;
  }

  for(Int_t iFinalPtBin=0; iFinalPtBin<nFinalPtBins; iFinalPtBin++){
    printf("------ Pt Bin %d ------\n",iFinalPtBin);
    printf("Range of values for sig variation = %f %f\n",min1[iFinalPtBin],max1[iFinalPtBin]);
    printf("           (limited to 2-3 sigma) = %f %f\n",min123[iFinalPtBin],max123[iFinalPtBin]);
    printf("Range of values for bkg variation = %f %f\n",min2[iFinalPtBin],max2[iFinalPtBin]);
    printf("Range of values for rebin = %f %f\n",min3[iFinalPtBin],max3[iFinalPtBin]);
    printf("Range of values for whichside = %f %f\n",min4[iFinalPtBin],max4[iFinalPtBin]);
    Float_t minenv=TMath::Min(min123[iFinalPtBin],TMath::Min(min2[iFinalPtBin],min4[iFinalPtBin]));
    Float_t maxenv=TMath::Max(max123[iFinalPtBin],TMath::Max(max2[iFinalPtBin],max4[iFinalPtBin]));
    printf(" ---> Envelope                = %f %f\n",minenv,maxenv);
  }

  TCanvas* cs1=new TCanvas("cs1");
  cs1->Divide(2,2);
  for(Int_t iFinalPtBin=0; iFinalPtBin<nFinalPtBins; iFinalPtBin++){
    cs1->cd(iFinalPtBin+1);
    gSystSigRange[iFinalPtBin]->SetMarkerStyle(20);
    gSystSigRange[iFinalPtBin]->Draw("AP");
    gSystSigRange[iFinalPtBin]->GetXaxis()->SetTitle("nSigmaSignal");
    gSystSigRange[iFinalPtBin]->GetYaxis()->SetTitle("v2");
  }

  TCanvas* cs2=new TCanvas("cs2");
  cs2->Divide(2,2);
  for(Int_t iFinalPtBin=0; iFinalPtBin<nFinalPtBins; iFinalPtBin++){
    cs2->cd(iFinalPtBin+1);
    gSystBkgRange[iFinalPtBin]->SetMarkerStyle(20);
    gSystBkgRange[iFinalPtBin]->Draw("AP");
    gSystBkgRange[iFinalPtBin]->GetXaxis()->SetTitle("nSigmaBackground");
    gSystBkgRange[iFinalPtBin]->GetYaxis()->SetTitle("v2");
  }

  TCanvas* cs3=new TCanvas("cs3");
  cs3->Divide(2,2);
  for(Int_t iFinalPtBin=0; iFinalPtBin<nFinalPtBins; iFinalPtBin++){
    cs3->cd(iFinalPtBin+1);
    gSystRebin[iFinalPtBin]->SetMarkerStyle(20);
    gSystRebin[iFinalPtBin]->Draw("AP");
    gSystRebin[iFinalPtBin]->GetXaxis()->SetTitle("Rebin factor");
    gSystRebin[iFinalPtBin]->GetYaxis()->SetTitle("v2");
  }

  TCanvas* cs4=new TCanvas("cs4");
  cs4->Divide(2,2);
  for(Int_t iFinalPtBin=0; iFinalPtBin<nFinalPtBins; iFinalPtBin++){
    cs4->cd(iFinalPtBin+1);
    gSystWhichSide[iFinalPtBin]->SetMarkerStyle(20);
    gSystWhichSide[iFinalPtBin]->Draw("AP");
    gSystWhichSide[iFinalPtBin]->GetXaxis()->SetTitle("Side band used");
    gSystWhichSide[iFinalPtBin]->GetYaxis()->SetTitle("v2");
  }
}

//______________________________________________________________________________
void SystForFitv2Mass(){
  // Compute systematic ucnertainty for the v2(M) method
  gInterpreter->ExecuteMacro("$ALICE_ROOT/PWG3/vertexingHF/macros/LoadLibraries.C");

  TString dirname=Form("PWGHF_D2H_HFv2_%s%s",partname.Data(),suffix.Data());
  TString listname=Form("coutputv2%s%s",partname.Data(),suffix.Data());

  TFile *f = TFile::Open(filename.Data());
  if(!f){
    printf("file %s not found, please check file name\n",filename.Data());
    return;
  }
  TDirectoryFile* dir=(TDirectoryFile*)f->Get(dirname.Data());
  if(!dir){
    printf("Directory %s not found, please check dir name\n",dirname.Data());
    return;
  }
  Bool_t binOK=DefinePtBins(dir);
  if(!binOK){
    printf("ERROR: mismatch in pt binning\n");
    return;
  }
  TList *lst =(TList*)dir->Get(listname.Data());
  if(!lst){
    printf("list %s not found in file, please check list name\n",listname.Data());
    return;
  }

  AliEventPlaneResolutionHandler* epres=new AliEventPlaneResolutionHandler();
  epres->SetEventPlane(evPlane);
  epres->SetResolutionOption(evPlaneRes);
  epres->SetUseNcollWeights(useNcollWeight);
  Double_t resolFull=epres->GetEventPlaneResolution(minCent,maxCent);
  delete epres;
  printf("Event plane resolution %f\n",resolFull);

  TH2F** hMassDphi=new TH2F*[nFinalPtBins];
  for(Int_t iFinalPtBin=0; iFinalPtBin<nFinalPtBins; iFinalPtBin++){
    hMassDphi[iFinalPtBin]=0x0;
  }
  LoadMassHistos(lst, hMassDphi);

  Int_t nSteps=11;

  TGraphErrors** gSystParamErr=new TGraphErrors*[nFinalPtBins];
  TGraphErrors** gSystRebin=new TGraphErrors*[nFinalPtBins];
  TGraphErrors** gSystLinConst=new TGraphErrors*[nFinalPtBins];

  Double_t min1[nFinalPtBins],max1[nFinalPtBins];
  Double_t min2[nFinalPtBins],max2[nFinalPtBins];
  Double_t min3[nFinalPtBins],max3[nFinalPtBins];


  for(Int_t iFinalPtBin=0; iFinalPtBin<nFinalPtBins; iFinalPtBin++){
    printf("**************** BIN %d ******************\n",iFinalPtBin);

    Int_t rebinHistov2MassOrig=rebinHistov2Mass[iFinalPtBin];
    TH1F* hMass=(TH1F*)hMassDphi[iFinalPtBin]->ProjectionY();

    Bool_t out=FitMassSpectrum(hMass,0x0);
    if(!out) continue;

    min1[iFinalPtBin]=99999.;
    max1[iFinalPtBin]=-99999.;
    gSystRebin[iFinalPtBin]=new TGraphErrors(0);
    gSystRebin[iFinalPtBin]->SetTitle(Form("v2 vs. Rebin PtBin %d",iFinalPtBin));
    Int_t nPts=0;
    for(Int_t iStep=0; iStep<nSteps; iStep++){
      Int_t index=iStep;
      rebinHistov2Mass[iFinalPtBin]=iStep+1;
      if((hMassDphi[iFinalPtBin]->GetNbinsY())%rebinHistov2Mass[iFinalPtBin]!=0) continue;
      TF1* fv2=DoFitv2vsMass(index,hMassDphi[iFinalPtBin],hMass,rebinHistov2Mass[iFinalPtBin],0x0,0,useConstantvsBkgVsMass);
      Double_t v2obsM2=fv2->GetParameter(3);
      Double_t errv2obsM2=fv2->GetParError(3);
      delete fv2;
      Double_t v2M2=v2obsM2/resolFull;
      Double_t errv2M2=errv2obsM2/resolFull;
      gSystRebin[iFinalPtBin]->SetPoint(nPts,(Double_t)rebinHistov2Mass[iFinalPtBin],v2M2);
      gSystRebin[iFinalPtBin]->SetPointError(nPts,0.,errv2M2);
      if(v2M2>max1[iFinalPtBin]) max1[iFinalPtBin]=v2M2;
      if(v2M2<min1[iFinalPtBin]) min1[iFinalPtBin]=v2M2;
      ++nPts;
    }
    rebinHistov2Mass[iFinalPtBin]=rebinHistov2MassOrig;

    min2[iFinalPtBin]=99999.;
    max2[iFinalPtBin]=-99999.;
    gSystParamErr[iFinalPtBin]=new TGraphErrors(0);
    gSystParamErr[iFinalPtBin]->SetTitle(Form("v2 vs. ParamErr PtBin %d",iFinalPtBin));
    nPts=0;
    for(Int_t iStep=-1; iStep<=1; iStep++){
      Int_t index=nSteps*2+iStep;
      TF1* fv2=DoFitv2vsMass(index,hMassDphi[iFinalPtBin],hMass,rebinHistov2Mass[iFinalPtBin],0x0,iStep,useConstantvsBkgVsMass);
      Double_t v2obsM2=fv2->GetParameter(3);
      Double_t errv2obsM2=fv2->GetParError(3);
      delete fv2;
      Double_t v2M2=v2obsM2/resolFull;
      Double_t errv2M2=errv2obsM2/resolFull;
      gSystParamErr[iFinalPtBin]->SetPoint(nPts,(Double_t)iStep,v2M2);
      gSystParamErr[iFinalPtBin]->SetPointError(nPts,0.,errv2M2);
      if(v2M2>max2[iFinalPtBin]) max2[iFinalPtBin]=v2M2;
      if(v2M2<min2[iFinalPtBin]) min2[iFinalPtBin]=v2M2;
      ++nPts;
    }

    min3[iFinalPtBin]=99999.;
    max3[iFinalPtBin]=-99999.;
    gSystLinConst[iFinalPtBin]=new TGraphErrors(0);
    gSystLinConst[iFinalPtBin]->SetTitle(Form("v2 LinVsConst Bin%d",iFinalPtBin));
    nPts=0;
    for(Int_t iStep=0; iStep<=1; iStep++){
      Int_t index=nSteps*3+iStep;
      TF1* fv2=DoFitv2vsMass(index,hMassDphi[iFinalPtBin],hMass,rebinHistov2Mass[iFinalPtBin],0x0,0,iStep);
      Double_t v2obsM2=fv2->GetParameter(3);
      Double_t errv2obsM2=fv2->GetParError(3);
      delete fv2;
      Double_t v2M2=v2obsM2/resolFull;
      Double_t errv2M2=errv2obsM2/resolFull;
      gSystLinConst[iFinalPtBin]->SetPoint(nPts,1.-(Double_t)iStep,v2M2);
      gSystLinConst[iFinalPtBin]->SetPointError(nPts,0.,errv2M2);
      if(v2M2>max3[iFinalPtBin]) max3[iFinalPtBin]=v2M2;
      if(v2M2<min3[iFinalPtBin]) min3[iFinalPtBin]=v2M2;
      ++nPts;
    }


  }

  for(Int_t iFinalPtBin=0; iFinalPtBin<nFinalPtBins; iFinalPtBin++){
    printf("------ Pt Bin %d ------\n",iFinalPtBin);
    printf("Range of values for rebin = %f %f\n",min1[iFinalPtBin],max1[iFinalPtBin]);
    printf("Range of values for par err = %f %f\n",min2[iFinalPtBin],max2[iFinalPtBin]);
    printf("Range of values for lin const = %f %f\n",min3[iFinalPtBin],max3[iFinalPtBin]);
    Float_t minenv=TMath::Min(min2[iFinalPtBin],min3[iFinalPtBin]);
    Float_t maxenv=TMath::Max(max2[iFinalPtBin],max3[iFinalPtBin]);
    printf(" ---> Envelope                = %f %f\n",minenv,maxenv);
  }

  TCanvas* cs1=new TCanvas("cs1");
  cs1->Divide(2,2);
  for(Int_t iFinalPtBin=0; iFinalPtBin<nFinalPtBins; iFinalPtBin++){
    cs1->cd(iFinalPtBin+1);
    gSystRebin[iFinalPtBin]->SetMarkerStyle(20);
    gSystRebin[iFinalPtBin]->Draw("AP");
    gSystRebin[iFinalPtBin]->GetXaxis()->SetTitle("Rebin factor");
    gSystRebin[iFinalPtBin]->GetYaxis()->SetTitle("v2");
  }

  TCanvas* cs2=new TCanvas("cs2");
  cs2->Divide(2,2);
  for(Int_t iFinalPtBin=0; iFinalPtBin<nFinalPtBins; iFinalPtBin++){
    cs2->cd(iFinalPtBin+1);
    gSystParamErr[iFinalPtBin]->SetMarkerStyle(20);
    gSystParamErr[iFinalPtBin]->Draw("AP");
    gSystParamErr[iFinalPtBin]->GetXaxis()->SetTitle("Error on Signal yield");
    gSystParamErr[iFinalPtBin]->GetYaxis()->SetTitle("v2");
  }

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