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 <TH1.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TH3.h>
#include <TH3F.h>
#include <TH1D.h>
#include <TProfile.h>
#include <TF1.h>
#include <TSystem.h>
#include <TStyle.h>
#include <TLegend.h>
#include <TList.h>
#include <TLegendEntry.h>
#include <TDatabasePDG.h>
#include <TGraph.h>

#include "AliAODRecoDecayHF.h"
#include "AliRDHFCuts.h"
#include "AliRDHFCutsDplustoKpipi.h"
#include "AliRDHFCutsD0toKpi.h"
#include "AliHFMassFitter.h"
#include "AliNormalizationCounter.h"
#endif

/* $Id$ */ 

enum {kD0toKpi, kDplusKpipi};
enum {kBoth, kParticleOnly, kAntiParticleOnly};
enum {kExpo=0, kLinear, kPol2};
enum {kGaus=0, kDoubleGaus};
enum {kCorr=0, kUnCorr, kNoPid};


// Common variables: to be configured by the user
// const Int_t nPtBins=6;
// Double_t ptlims[nPtBins+1]={1., 2.,4.,6.,8.,12.,24.};
// Int_t rebin[nPtBins]={4,4,6,6,8,8};
// Double_t sigmapt[nPtBins]={ 0.008, 0.010, 0.012, 0.016, 0.018, 0.020 };
const Int_t nPtBins=5;
Double_t ptlims[nPtBins+1]={1.,2.,4.,8.,12.,24.};
Int_t rebin[nPtBins]={4,4,6,8,8};
Double_t sigmapt[nPtBins]={ 0.008, 0.014, 0.019, 0.027, 0.033 };
Bool_t fixPeakSigma = kTRUE;
//
const Int_t nMultbins=7;
Double_t multlims[nMultbins+1]={1.,9.,14.,20.,31.,50.,81.,100.};
// const Int_t nMultbins=1;
// Double_t multlims[nMultbins+1]={0.,500.};
//
Int_t firstUsedBin[nPtBins]={-1,-1,-1,-1,-1}; // -1 uses all bins, >=1 to set the lower bin to be accepted from original histo
//
Bool_t isMC=kFALSE;
Int_t typeb=kExpo;
Int_t types=kGaus;
Int_t optPartAntiPart=kBoth;
Int_t factor4refl=0;
Float_t massRangeForCounting=0.05; // GeV --> it is 3 sigmapt[binpt]
Float_t nSigmaRangeForCounting=3.0; //  3 sigmapt[binpt]
TH2F* hPtMass=0x0;
TString suffix="StdPid";


// Functions
Bool_t LoadDplusHistos(TObjArray* listFiles, TH3F** hPtMassMult, TH2F** hNtrZvtx, TH2F** hNtrZvtxCorr, const char *CutsType, Int_t Option);
Bool_t LoadD0toKpiHistos(TObjArray* listFiles, TH3F** hPtMassMult, TH2F** hNtrZvtx, TH2F** hNtrZvtxCorr, AliNormalizationCounter *counter, const char *CutsType, Int_t Option);
Bool_t CheckNtrVsZvtx(TH2F** hNtrZvtx, TH2F** hNtrZvtxCorr, Int_t nFiles);
TH1F* RebinHisto(TH1F* hOrig, Int_t reb, Int_t firstUse=-1);


void ReadDvsMultiplicity(Int_t analysisType=kD0toKpi,
			 TString fileNameb="AnalysisResults.root",
			 TString fileNamec="",
			 TString fileNamed="",
			 TString fileNamee="",
			 const char *CutsType="",
			 Int_t Option=kCorr)
{
  // gSystem->SetIncludePath("-I. -I$ROOTSYS/include -I$ALICE_ROOT -I$ALICE_ROOT/include -I$ALICE_ROOT/ITS -I$ALICE_ROOT/TPC -I$ALICE_ROOT/CONTAINERS -I$ALICE_ROOT/STEER/STEER -I$ALICE_ROOT/STEER/STEERBase -I$ALICE_ROOT/STEER/ESD -I$ALICE_ROOT/STEER/AOD -I$ALICE_ROOT/TRD -I$ALICE_ROOT/macros -I$ALICE_ROOT/ANALYSIS  -I$ALICE_ROOT/OADB -I$ALICE_ROOT/PWGHF -I$ALICE_ROOT/PWGHF/base -I$ALICE_ROOT/PWGHF/vertexingHF -I$ALICE_ROOT/PWG/FLOW/Case -I$ALICE_ROOT/PWG/FLOW/Tasks -g");

  // gInterpreter->ExecuteMacro("$ALICE_ROOT/PWGHF/vertexingHF/macros/LoadLibraries.C");
  gStyle->SetOptTitle(1);

  TString ntrkname="Ntracklets";
   // for(int j=0; j<=nMultbins; j++) multlims[j] *= (68./8.8);
   // ntrkname="Nvzero";

  Int_t nFiles=0;
  TObjArray* listFiles=new TObjArray();
  if(fileNameb!="") { listFiles->AddLast(new TObjString(fileNameb.Data())); nFiles++; }
  if(fileNamec!="") { listFiles->AddLast(new TObjString(fileNamec.Data())); nFiles++; }
  if(fileNamed!="") { listFiles->AddLast(new TObjString(fileNamed.Data())); nFiles++; }
  if(fileNamee!="") { listFiles->AddLast(new TObjString(fileNamee.Data())); nFiles++; }
  if(listFiles->GetEntries()==0){
    printf("Missing file names in input\n");
    return;
  }
  TH3F** hPtMassMult=new TH3F*[1];
  hPtMassMult[0]=0x0;
  TH1F** hmass=new TH1F*[nPtBins*nMultbins];
  for(Int_t i=0; i<nPtBins*nMultbins; i++) hmass[i]=0x0;
  TH2F** hNtrZvtx=new TH2F*[4];
  for(Int_t i=0; i<4; i++) hNtrZvtx[i]=0x0;
  TH2F** hNtrZvtxCorr=new TH2F*[4];
  for(Int_t i=0; i<4; i++) hNtrZvtxCorr[i]=0x0;
  AliNormalizationCounter *counter=0x0;
  TH1F * hNormalization = new TH1F("hNormalization","Events in the norm counter",nMultbins,multlims);

  Float_t massD;
  Bool_t retCode;
  if(analysisType==kD0toKpi) {
    massD=1.86484003067016602e+00;//(Float_t)(TDatabasePDG::Instance()->GetParticle(421)->Mass());
    retCode=LoadD0toKpiHistos(listFiles,hPtMassMult,hNtrZvtx,hNtrZvtxCorr,counter,CutsType,Option);
  }
  else if(analysisType==kDplusKpipi) {
    massD=1.86961996555328369e+00;//(Float_t)(TDatabasePDG::Instance()->GetParticle(411)->Mass());
    retCode=LoadDplusHistos(listFiles,hPtMassMult,hNtrZvtx,hNtrZvtxCorr,CutsType,Option);
  }
  else{
    printf("Wrong analysis type parameter\n");
    return;
  }
  if(!retCode){
    printf("ERROR in reading input files\n");
    return;
  }
  //
  // Check the multiplicity variables
  //
  Bool_t isMult = CheckNtrVsZvtx(hNtrZvtx,hNtrZvtxCorr,nFiles);
  if(!isMult) return;
  //
  //
  printf(" Preparing the mass fits");
  TH1F* hCntSig1[nMultbins];
  TH1F* hCntSig2[nMultbins];
  TH1F* hNDiffCntSig1[nMultbins];
  TH1F* hNDiffCntSig2[nMultbins];
  TH1F* hSignal[nMultbins];
  TH1F* hRelErrSig[nMultbins];
  TH1F* hInvSignif[nMultbins];
  TH1F* hBackground[nMultbins];
  TH1F* hBackgroundNormSigma[nMultbins];
  TH1F* hSignificance[nMultbins];
  TH1F* hMass[nMultbins];
  TH1F* hSigma[nMultbins];
  for(Int_t i=0; i<nMultbins; i++){
    hCntSig1[i]=new TH1F(Form("hCntSig1_%d",i),Form("hCntSig1_%d",i),nPtBins,ptlims);
    hCntSig2[i]=new TH1F(Form("hCntSig2_%d",i),Form("hCntSig2_%d",i),nPtBins,ptlims);
    hNDiffCntSig1[i]=new TH1F(Form("hNDiffCntSig1_%d",i),Form("hNDiffCntSig1_%d",i),nPtBins,ptlims);
    hNDiffCntSig2[i]=new TH1F(Form("hNDiffCntSig2_%d",i),Form("hNDiffCntSig2_%d",i),nPtBins,ptlims);
    hSignal[i]=new TH1F(Form("hSignal_%d",i),Form("hSignal_%d",i),nPtBins,ptlims);
    hRelErrSig[i]=new TH1F(Form("hRelErrSig_%d",i),Form("hRelErrSig_%d",i),nPtBins,ptlims);
    hInvSignif[i]=new TH1F(Form("hInvSignif_%d",i),Form("hInvSignif_%d",i),nPtBins,ptlims);
    hBackground[i]=new TH1F(Form("hBackground_%d",i),Form("hBackground_%d",i),nPtBins,ptlims);
    hBackgroundNormSigma[i]=new TH1F(Form("hBackgroundNormSigma_%d",i),Form("hBackgroundNormSigma_%d",i),nPtBins,ptlims);
    hSignificance[i]=new TH1F(Form("hSignificance_%d",i),Form("hSignificance_%d",i),nPtBins,ptlims);
    hMass[i]=new TH1F(Form("hMass_%d",i),Form("hMass_%d",i),nPtBins,ptlims);
    hSigma[i]=new TH1F(Form("hSigma_%d",i),Form("hSigma_%d",i),nPtBins,ptlims);
  }
  printf(", defined...\n");

  //  std::cout << " htemp :"<<hPtMassMult[0]<<std::endl;
  TH1F* hptaxis = (TH1F*)hPtMassMult[0]->ProjectionZ("hptaxis");
  TH1F* hmassaxis = (TH1F*)hPtMassMult[0]->ProjectionY("hmassaxis");
  TH1F* hmultaxis = (TH1F*)hPtMassMult[0]->ProjectionX("hmultaxis");
  Int_t nMassBins=hmassaxis->GetNbinsX();
  Double_t hmin=hmassaxis->GetBinLowEdge(3);
  Double_t hmax=hmassaxis->GetBinLowEdge(nMassBins-2) + hmassaxis->GetBinWidth(nMassBins-2);
  Int_t iPad=1;
  
  printf("Now initializing the fit functions\n");
  // TF1* funBckStore1=0x0;
  // TF1* funBckStore2=0x0;
  // TF1* funBckStore3=0x0;

  Int_t nPtMultbins = nPtBins*nMultbins;
  AliHFMassFitter** fitter=new AliHFMassFitter*[nPtMultbins];
  Double_t arrchisquare0[nPtBins];
  Double_t arrchisquare1[nPtBins];
  Double_t arrchisquare2[nPtBins];
  Double_t arrchisquare3[nPtBins];
  Double_t arrchisquare4[nPtBins];
  Double_t arrchisquare5[nPtBins];
  for(Int_t i=0; i<nPtBins; i++){
    arrchisquare0[i]=0.;
    arrchisquare1[i]=0.;
    arrchisquare2[i]=0.;
    arrchisquare3[i]=0.;
    arrchisquare4[i]=0.;
    arrchisquare5[i]=0.;
  }
  
  TCanvas* canvas[nMultbins];
  Int_t nx=2, ny=2;
  if(nPtBins>4){
    nx=3;
    ny=2;
  }
  if(nPtBins>6){
    nx=4;
    ny=3;
  }
  if(nPtBins>12){
    nx=5;
    ny=4;
  }
  for(Int_t i=0; i<nMultbins; i++ ){
    canvas[i] = new TCanvas(Form("c%d",i),Form("summary canvas for mult bin %d",i));
    canvas[i]->Divide(nx,ny);
  }
  TCanvas *myCanvas[nPtMultbins];
  
  //
  //
  // Loop on multiplicity bins
  //
  Int_t massBin=0;
  for(Int_t j=0; j<nMultbins; j++){
    Double_t sig,errsig,s,errs,b,errb;
    //    printf(" Studying multiplicity bin %d\n",j);
    Int_t multbinlow = hmultaxis->FindBin(multlims[j]);
    Int_t multbinhigh = hmultaxis->FindBin(multlims[j+1])-1;
    Float_t val = multbinlow + (multbinhigh-multbinlow)/2.;
    Int_t hnbin = hNormalization->FindBin(val);
    Float_t nevents = 0.;
    if(counter) { nevents = counter->GetNEventsForNorm(multbinlow,multbinhigh); std::cout << std::endl<<std::endl<<" Nevents ("<<multbinlow<<","<<multbinhigh<<") ="<<nevents<<std::endl<<std::endl<<std::endl;}
    hNormalization->SetBinContent(hnbin,nevents);
    //
    // Loop on pt bins
    //
    iPad=1;
    for(Int_t iBin=0; iBin<nPtBins; iBin++){
      canvas[j]->cd(iPad++);
      //      printf(" projecting to the mass histogram\n");
      Int_t ptbinlow = hptaxis->FindBin(ptlims[iBin]);
      Int_t ptbinhigh = hptaxis->FindBin(ptlims[iBin+1])-1;
      hmass[massBin] = (TH1F*)hPtMassMult[0]->ProjectionY(Form("hmass_%d_%d",j,iBin),multbinlow,multbinhigh,ptbinlow,ptbinhigh);
      hmass[massBin]->SetTitle( Form("%2.0f<p_{T}<%2.0f GeV/c, %s [%3.0f,%3.0f]",ptlims[iBin],ptlims[iBin+1],ntrkname.Data(),multlims[j],multlims[j+1]) );
      //      std::cout << std::endl<<  Form("%2.0f<p_{T}<%2.0f GeV/c, %s [%3.0f,%3.0f]",ptlims[iBin],ptlims[iBin+1],ntrkname.Data(),multlims[j],multlims[j+1]) << std::endl<< std::endl;
      if(  hmass[massBin]->GetEntries() < 60 ) {
	massBin++;
	continue;
      }
      Int_t origNbins=hmass[massBin]->GetNbinsX(); 
      //      printf(" rebinning the mass histogram\n");
      TH1F* hRebinned=RebinHisto(hmass[massBin],rebin[iBin],firstUsedBin[iBin]);
      hmin=hRebinned->GetBinLowEdge(2);
      hmax=hRebinned->GetBinLowEdge(hRebinned->GetNbinsX());
      //      printf(" define the mass fitter and options \n");
      fitter[massBin] = new AliHFMassFitter(hRebinned,hmin, hmax,1,typeb,types);
      fitter[massBin]->SetRangeFit(1.65,2.10);
      Int_t rebinItem = origNbins/fitter[massBin]->GetBinN();
      fitter[massBin]->SetReflectionSigmaFactor(factor4refl);
      fitter[massBin]->SetInitialGaussianMean(massD);
      fitter[massBin]->SetInitialGaussianSigma(sigmapt[iBin]);
      if(fixPeakSigma) {
	fitter[massBin]->SetFixGaussianMean(massD);
	fitter[massBin]->SetFixGaussianSigma(sigmapt[iBin],kTRUE);
      }
      Bool_t out=fitter[massBin]->MassFitter(0);
      if(!out) {
	fitter[massBin]->GetHistoClone()->Draw();
	massBin++;
	continue;
      }
      //      printf(" getting the fit parameters\n");
      Double_t mass=fitter[massBin]->GetMean();
      Double_t massUnc=fitter[massBin]->GetMeanUncertainty();
      Double_t sigma=fitter[massBin]->GetSigma();
      Double_t sigmaUnc=fitter[massBin]->GetSigmaUncertainty();
      if(j==0) arrchisquare0[iBin]=fitter[massBin]->GetReducedChiSquare();
      else if(j==1) arrchisquare1[iBin]=fitter[massBin]->GetReducedChiSquare();
      else if(j==2) arrchisquare2[iBin]=fitter[massBin]->GetReducedChiSquare();
      else if(j==3) arrchisquare3[iBin]=fitter[massBin]->GetReducedChiSquare();
      else if(j==4) arrchisquare4[iBin]=fitter[massBin]->GetReducedChiSquare();
      else if(j==5) arrchisquare5[iBin]=fitter[massBin]->GetReducedChiSquare();
      TF1* fB1=fitter[massBin]->GetBackgroundFullRangeFunc();
      TF1* fB2=fitter[massBin]->GetBackgroundRecalcFunc();
      //      TF1* fM=fitter[massBin]->GetMassFunc();
      // if(iBin==0 && fB1) funBckStore1=new TF1(*fB1);
      // if(iBin==0 && fB2) funBckStore2=new TF1(*fB2);
      // if(iBin==0 && fM) funBckStore3=new TF1(*fM);

      fitter[massBin]->DrawHere(gPad);
      fitter[massBin]->Signal(3,s,errs);
      fitter[massBin]->Background(3,b,errb);
      fitter[massBin]->Significance(3,sig,errsig);
      Double_t ry=fitter[massBin]->GetRawYield();
      Double_t ery=fitter[massBin]->GetRawYieldError();
      myCanvas[massBin] = new TCanvas(Form("myCanvas_%d_%d",j,iBin),Form("Invariant mass mult bin %d, pt bin %d",j,iBin));
      fitter[massBin]->DrawHere(gPad);
    
      Float_t cntSig1=0.;
      Float_t cntSig2=0.;
      Float_t cntErr=0.;
      massRangeForCounting = nSigmaRangeForCounting*sigmapt[iBin];
      //      std::cout << " pt bin "<< iBin << " mass range = "<< massRangeForCounting<<std::endl;
      Float_t minBinSum=hmassaxis->FindBin(massD-massRangeForCounting);
      Float_t maxBinSum=hmassaxis->FindBin(massD+massRangeForCounting);
      for(Int_t iMB=minBinSum; iMB<=maxBinSum; iMB++){
	Float_t bkg1=fB1 ? fB1->Eval(hmass[massBin]->GetBinCenter(iMB))/rebinItem : 0;
	Float_t bkg2=fB2 ? fB2->Eval(hmass[massBin]->GetBinCenter(iMB))/rebinItem : 0;
	cntSig1+=(hmass[massBin]->GetBinContent(iMB)-bkg1);
	cntSig2+=(hmass[massBin]->GetBinContent(iMB)-bkg2);
	cntErr+=(hmass[massBin]->GetBinContent(iMB));
      }
      hCntSig1[j]->SetBinContent(iBin+1,cntSig1);
      hCntSig1[j]->SetBinError(iBin+1,TMath::Sqrt(cntErr));
      hNDiffCntSig1[j]->SetBinContent(iBin+1,(s-cntSig1)/s);
      hNDiffCntSig1[j]->SetBinError(iBin+1,TMath::Sqrt(cntErr)/s);
      hCntSig2[j]->SetBinContent(iBin+1,cntSig2);
      hNDiffCntSig2[j]->SetBinContent(iBin+1,(s-cntSig2)/s);
      hNDiffCntSig2[j]->SetBinError(iBin+1,TMath::Sqrt(cntErr)/s);
      hCntSig2[j]->SetBinError(iBin+1,TMath::Sqrt(cntErr));
      hSignal[j]->SetBinContent(iBin+1,ry);
      hSignal[j]->SetBinError(iBin+1,ery);
      hRelErrSig[j]->SetBinContent(iBin+1,errs/s);
      hInvSignif[j]->SetBinContent(iBin+1,1/sig);
      hInvSignif[j]->SetBinError(iBin+1,errsig/(sig*sig));
      hBackground[j]->SetBinContent(iBin+1,b); //consider sigma
      hBackground[j]->SetBinError(iBin+1,errb);
      hBackgroundNormSigma[j]->SetBinContent(iBin+1,b/(3*fitter[massBin]->GetSigma())*(3*0.012)); //consider sigma
      hBackgroundNormSigma[j]->SetBinError(iBin+1,errb);
      hSignificance[j]->SetBinContent(iBin+1,sig);
      hSignificance[j]->SetBinError(iBin+1,errsig);
      hMass[j]->SetBinContent(iBin+1,mass);
      hMass[j]->SetBinError(iBin+1,massUnc);
      hSigma[j]->SetBinContent(iBin+1,sigma);
      hSigma[j]->SetBinError(iBin+1,sigmaUnc);

      massBin++;
      delete hRebinned;
    }// end loop on pt bins

    canvas[j]->Update();
    canvas[j]->SaveAs(Form("hMass%s_%d_%d.eps",CutsType,typeb,j));
    //    canvas[j]->SaveAs(Form("hMass%s_%d_%d_MultInt.eps",CutsType,typeb,j));
    
  }// end loop on multiplicity bins


  TCanvas *cpar=new TCanvas("cpar","Fit params",1200,600);
  cpar->Divide(2,1);
  cpar->cd(1);
  for(Int_t imult=0; imult<nMultbins; imult++) {
    hMass[imult]->SetMarkerStyle(20);
    hMass[imult]->GetXaxis()->SetTitle("Pt (GeV/c)");
    hMass[imult]->GetYaxis()->SetTitle("Mass (GeV/c^{2})");
    hMass[imult]->SetMarkerColor(2*imult);
    if(imult==5) hMass[imult]->SetMarkerColor(2*imult-3);
    if(imult==0) {
      hMass[imult]->SetMarkerColor(kBlack);
      hMass[imult]->Draw("PE");
    }
    else  hMass[imult]->Draw("PEsame");
  }
  cpar->cd(2);
  for(Int_t imult=0; imult<nMultbins; imult++) {
    hSigma[imult]->SetMarkerStyle(20);
    //  hSigma[0]->Draw("PE");
    hSigma[imult]->GetXaxis()->SetTitle("Pt (GeV/c)");
    hSigma[imult]->GetYaxis()->SetTitle("Sigma (GeV/c^{2})");
    hSigma[imult]->SetMarkerColor(2*imult);
    if(imult==5) hSigma[imult]->SetMarkerColor(2*imult-3);
    if(imult==0) {
      hSigma[imult]->SetMarkerColor(kBlack);
      hSigma[imult]->Draw("PE");
    }
    else  hSigma[imult]->Draw("PEsame");
  }
  cpar->Update();

  /*
  TCanvas** csig;//= new TCanvas*[nMultbins];
  TCanvas** cDiffS;//=new TCanvas*[nMultbins];
  for(Int_t i=0; i<nMultbins; i++){
    csig[i] =new TCanvas(Form("csig_%d",i),Form("Results, multiplicity bin %d",i),1200,600);
    csig[i]->Divide(3,1);
    csig[i]->cd(1);
    hSignal[i]->SetMarkerStyle(20);
    hSignal[i]->SetMarkerColor(4);
    hSignal[i]->SetLineColor(4);
    hSignal[i]->GetXaxis()->SetTitle("Pt (GeV/c)");
    hSignal[i]->GetYaxis()->SetTitle("Signal");
    hSignal[i]->Draw("P");
    hCntSig1[i]->SetMarkerStyle(26);
    hCntSig1[i]->SetMarkerColor(2);
    hCntSig1[i]->SetLineColor(2);
    hCntSig1[i]->Draw("PSAME");
    hCntSig2[i]->SetMarkerStyle(29);
    hCntSig2[i]->SetMarkerColor(kGray+1);
    hCntSig2[i]->SetLineColor(kGray+1);
    hCntSig2[i]->Draw("PSAME");
    TLegend* leg=new TLegend(0.4,0.7,0.89,0.89);
    leg->SetFillColor(0);
    TLegendEntry* ent=leg->AddEntry(hSignal[i],"From Fit","PL");
    ent->SetTextColor(hSignal[i]->GetMarkerColor());
    ent=leg->AddEntry(hCntSig1[i],"From Counting1","PL");
    ent->SetTextColor(hCntSig1[i]->GetMarkerColor());
    ent=leg->AddEntry(hCntSig2[i],"From Counting2","PL");
    ent->SetTextColor(hCntSig2[i]->GetMarkerColor());
    leg->Draw();
    csig[i]->cd(2);
    hBackground[i]->SetMarkerStyle(20);
    hBackground[i]->Draw("P");
    hBackground[i]->GetXaxis()->SetTitle("Pt (GeV/c)");
    hBackground[i]->GetYaxis()->SetTitle("Background");
    csig[i]->cd(3);
    hSignificance[i]->SetMarkerStyle(20);
    hSignificance[i]->Draw("P");
    hSignificance[i]->GetXaxis()->SetTitle("Pt (GeV/c)");
    hSignificance[i]->GetYaxis()->SetTitle("Significance");
    
    cDiffS[i]=new TCanvas(Form("cDiffS_%d",i),Form("Difference, multiplicity bin %d",i),1200,600);
    cDiffS[i]->Divide(2,1);
    cDiffS[i]->cd(1);
    hRelErrSig[i]->SetMarkerStyle(20); //fullcircle
    hRelErrSig[i]->SetTitleOffset(1.2);  
    hRelErrSig[i]->SetTitle("Rel Error from Fit;p_{t} (GeV/c);Signal Relative Error");
    hRelErrSig[i]->Draw("P");
    hInvSignif[i]->SetMarkerStyle(21); //fullsquare
    hInvSignif[i]->SetMarkerColor(kMagenta+1);
    hInvSignif[i]->SetLineColor(kMagenta+1);
    hInvSignif[i]->Draw("PSAMES");
    TLegend* leg2=new TLegend(0.4,0.7,0.89,0.89);
    leg2->SetFillColor(0);
    TLegendEntry* ent2=leg2->AddEntry(hRelErrSig[i],"From Fit","P");
    ent2->SetTextColor(hRelErrSig[i]->GetMarkerColor());
    ent2=leg2->AddEntry(hInvSignif[i],"1/Significance","PL");
    ent2->SetTextColor(hInvSignif[i]->GetMarkerColor());
    leg2->Draw();

    cDiffS[i]->cd(2);
    hNDiffCntSig1[i]->SetMarkerStyle(26);
    hNDiffCntSig1[i]->SetMarkerColor(2);
    hNDiffCntSig1[i]->SetLineColor(2);
    hNDiffCntSig1[i]->SetTitle("Cmp Fit-Count;p_{t} (GeV/c);(S_{fit}-S_{count})/S_{fit}");
    hNDiffCntSig1[i]->Draw("P");
    hNDiffCntSig2[i]->SetMarkerStyle(29);
    hNDiffCntSig2[i]->SetMarkerColor(kGray+1);
    hNDiffCntSig2[i]->SetLineColor(kGray+1);
    hNDiffCntSig2[i]->Draw("PSAME");
    TLegend* leg1=new TLegend(0.4,0.7,0.89,0.89);
    leg1->SetFillColor(0);
    TLegendEntry* ent1=leg1->AddEntry(hNDiffCntSig1[i],"From Counting1","PL");
    ent1->SetTextColor(hNDiffCntSig1[i]->GetMarkerColor());
    ent1=leg1->AddEntry(hNDiffCntSig2[i],"From Counting2","PL");
    ent1->SetTextColor(hNDiffCntSig2[i]->GetMarkerColor());
    leg1->Draw();
  }
*/

  TGraph* grReducedChiSquare0=new TGraph(nPtBins,ptlims,arrchisquare0);
  grReducedChiSquare0->SetName("grReducedChiSquare0");
  grReducedChiSquare0->SetTitle("Reduced Chi2;p_{t} (GeV/c);#tilde{#chi}^{2}");
  TGraph* grReducedChiSquare1=new TGraph(nPtBins,ptlims,arrchisquare1);
  grReducedChiSquare1->SetName("grReducedChiSquare1");
  grReducedChiSquare1->SetTitle("Reduced Chi2;p_{t} (GeV/c);#tilde{#chi}^{2}");
  TGraph* grReducedChiSquare2=new TGraph(nPtBins,ptlims,arrchisquare2);
  grReducedChiSquare2->SetName("grReducedChiSquare2");
  grReducedChiSquare2->SetTitle("Reduced Chi2;p_{t} (GeV/c);#tilde{#chi}^{2}");
  TGraph* grReducedChiSquare3=new TGraph(nPtBins,ptlims,arrchisquare3);
  grReducedChiSquare3->SetName("grReducedChiSquare3");
  grReducedChiSquare3->SetTitle("Reduced Chi2;p_{t} (GeV/c);#tilde{#chi}^{2}");
  TCanvas *cChi2=new TCanvas("cChi2","reduced chi square",600,600);
  cChi2->cd();
  grReducedChiSquare0->SetMarkerStyle(21);
  grReducedChiSquare0->Draw("AP");
  grReducedChiSquare1->SetMarkerStyle(22);
  grReducedChiSquare1->Draw("Psame");
  grReducedChiSquare2->SetMarkerStyle(23);
  grReducedChiSquare2->Draw("Psame");
  grReducedChiSquare3->SetMarkerStyle(24);
  grReducedChiSquare3->Draw("Psame");

  TCanvas* cbkgNormSigma=new TCanvas("cbkgNormSigma","Background normalized to sigma",400,600);
  cbkgNormSigma->cd();
  for(Int_t i=0; i<nMultbins; i++){
    hBackgroundNormSigma[i]->SetMarkerStyle(20);
    hBackgroundNormSigma[i]->GetXaxis()->SetTitle("Pt (GeV/c)");
    hBackgroundNormSigma[i]->GetYaxis()->SetTitle("Background #times 3 #times 0.012/ (3 #times #sigma)");
    hBackgroundNormSigma[i]->SetMarkerColor(2*i);
    if(i==5) hBackgroundNormSigma[i]->SetMarkerColor(2*i-3);
    if(i==0) { 
      hBackgroundNormSigma[i]->SetMarkerColor(kBlack);
      hBackgroundNormSigma[i]->Draw("PE");
    }
    else  hBackgroundNormSigma[i]->Draw("Psame");
  }


  TString partname="Both";
  if(optPartAntiPart==kParticleOnly) {
    if(analysisType==kD0toKpi) partname="D0";
    if(analysisType==kDplusKpipi) partname="Dplus";
  }
  if(optPartAntiPart==kAntiParticleOnly) {
    if(analysisType==kD0toKpi) partname="D0bar";
    if(analysisType==kDplusKpipi) partname="Dminus";
  }

  TString outfilename = Form("RawYield_Mult_%s_%s",partname.Data(),CutsType);
  //  outfilename += "_MultInt";
  if(fixPeakSigma) outfilename += "_SigmaFixed";
  outfilename += Form("_BCin%1.1fSigma",nSigmaRangeForCounting);
  if(typeb==0) outfilename += "_Expo.root";
  else if(typeb==1) outfilename += "_Linear.root";
  else if(typeb==2) outfilename += "_Pol2.root";

  TFile* outf=new TFile(outfilename,"recreate");
  outf->cd(); 
  hNormalization->Write();
  for(Int_t j=0; j<massBin; j++) hmass[j]->Write();
  for(Int_t j=0; j<nMultbins; j++){
    hMass[j]->Write();
    hSigma[j]->Write();
    hCntSig1[j]->Write();
    hCntSig2[j]->Write();
    hNDiffCntSig1[j]->Write();
    hNDiffCntSig2[j]->Write();
    hSignal[j]->Write();
    hRelErrSig[j]->Write();
    hInvSignif[j]->Write();
    hBackground[j]->Write();
    hBackgroundNormSigma[j]->Write();
    hSignificance[j]->Write();
  }
  grReducedChiSquare0->Write();
  grReducedChiSquare1->Write();
  grReducedChiSquare2->Write();
  grReducedChiSquare3->Write();
  //  hPtMass->Write();
  outf->Close();
  
}

//_____________________________________________________________________________________________
Bool_t LoadD0toKpiHistos(TObjArray* listFiles, TH3F** hPtMassMult, TH2F** hNtrZvtx, TH2F** hNtrZvtxCorr, AliNormalizationCounter *counter, const char *CutsType, Int_t Option)
{
  Int_t nFiles=listFiles->GetEntries();
  TList **hlist=new TList*[nFiles];
  TList **hlistNorm=new TList*[nFiles];
  AliRDHFCutsD0toKpi** dcuts=new AliRDHFCutsD0toKpi*[nFiles];

  Int_t nReadFiles=0;
  for(Int_t iFile=0; iFile<nFiles; iFile++){
    TString fName=((TObjString*)listFiles->At(iFile))->GetString();    
    TFile *f=TFile::Open(fName.Data());
    if(!f){
      printf("ERROR: file %s does not exist\n",fName.Data());
      continue;
    }
    printf("Open File %s\n",f->GetName());

    TString dirname="PWG3_D2H_DMult_D0";
    if(optPartAntiPart==kParticleOnly) dirname+="D0";
    else if(optPartAntiPart==kAntiParticleOnly) dirname+="D0bar";
    dirname += CutsType;
    TDirectory *dir = (TDirectory*)f->Get(dirname);
    if(!dir){
      printf("ERROR: directory %s not found in %s\n",dirname.Data(),fName.Data());
      continue;
    }

    TString listmassname="coutputD0";
    if(optPartAntiPart==kParticleOnly) listmassname+="D0";
    else if(optPartAntiPart==kAntiParticleOnly) listmassname+="D0bar";
    listmassname += CutsType;
    printf("List mass name %s\n",listmassname.Data());
    hlist[nReadFiles]=(TList*)dir->Get(listmassname);

    TString listnorm="coutputNormD0";
    if(optPartAntiPart==kParticleOnly) listnorm+="D0";
    else if(optPartAntiPart==kAntiParticleOnly) listnorm+="D0bar";
    listnorm += CutsType;
    printf("List norm name %s\n",listnorm.Data());
    hlistNorm[nReadFiles]=(TList*)dir->Get(listnorm);
    //    AliNormalizationCounter *tmpcounter = (AliNormalizationCounter*)hlistNorm[nReadFiles]->FindObject("NormCounterCorrMult");
    //    counter->Add(tmpcounter);
    //    delete tmpcounter;
    //    counter = tmpcounter;

    TString cutsobjname="coutputCutsD0";
    if(optPartAntiPart==kParticleOnly) cutsobjname+="D0";
    else if(optPartAntiPart==kAntiParticleOnly) cutsobjname+="D0bar";
    cutsobjname += CutsType;
    printf("Cuts name %s\n",cutsobjname.Data());
    dcuts[nReadFiles]=(AliRDHFCutsD0toKpi*)dir->Get(cutsobjname);
    if(!dcuts[nReadFiles]) {
      printf("ERROR: Cut objects do not match\n");
      return kFALSE;
    }
    /*
    if(nReadFiles>0){
      Bool_t sameCuts=dcuts[nReadFiles]->CompareCuts(dcuts[0]);
      if(!sameCuts){
	printf("ERROR: Cut objects do not match\n");
	return kFALSE;
      }
    }
    */
    nReadFiles++;
  }
  if(nReadFiles<nFiles){
    printf("WARNING: not all requested files have been found\n");
    if (nReadFiles==0) {
      printf("ERROR: Any file/dir found\n");
      return kFALSE;
    }
  }
  //  printf("Cuts type %s, particle/antipart %d\n",CutsType,optPartAntiPart);

  /*
  Int_t nPtBinsCuts=dcuts[0]->GetNPtBins();
  printf("Number of pt bins for cut object = %d\n",nPtBins);
  Float_t *ptlimsCuts=dcuts[0]->GetPtBinLimits();
  ptlimsCuts[nPtBinsCuts]=ptlimsCuts[nPtBinsCuts-1]+4.;
  */

  printf("Get the 3D histogram \n");
  const char *histoname="";
  if(optPartAntiPart==kParticleOnly) histoname= "hPtVsMassvsMultPart";
  else if(optPartAntiPart==kAntiParticleOnly) histoname="hPtVsMassvsMultAntiPart";
  else if(optPartAntiPart==kBoth) histoname="hPtVsMassvsMult";
  if(Option==kUnCorr) histoname="hPtVsMassvsMultUncorr";
  if(Option==kNoPid) histoname="hPtVsMassvsMultNoPid";

  TH3F * htemp;
  for(Int_t iFile=0; iFile<nReadFiles; iFile++){
    printf(" Looking for histo histMass %s for file %d\n",histoname,iFile);
    htemp=(TH3F*)hlist[iFile]->FindObject(Form("%s",histoname));
    //    cout << " htemp :"<<htemp<<endl;
    if(!hPtMassMult[0]){
      hPtMassMult[0]=new TH3F(*htemp);
    }else{
      hPtMassMult[0]->Add(htemp);
    }
    hNtrZvtx[iFile] = (TH2F*)hlist[iFile]->FindObject("hNtrVsZvtx");
    hNtrZvtxCorr[iFile] = (TH2F*)hlist[iFile]->FindObject("hNtrCorrVsZvtx");
  }
  
  //  std::cout<<" hPtMassMult:"<<hPtMassMult[0]<<std::endl;

  TString partname="Both";
  if(optPartAntiPart==kParticleOnly) partname="D0";
  if(optPartAntiPart==kAntiParticleOnly) partname="D0bar";

  TString outfilename = Form("RawYield%s_%s",partname.Data(),CutsType);
  if(fixPeakSigma) outfilename += "_SigmaFixed";
  if(typeb==0) outfilename += "_Expo.root";
  else if(typeb==1) outfilename += "_Linear.root";
  else if(typeb==2) outfilename += "_Pol2.root";
  TFile* outf=new TFile(outfilename,"recreate");
  outf->cd();
  dcuts[0]->Write();
  outf->Close();
  return kTRUE;

}

//_____________________________________________________________________________________________
Bool_t LoadDplusHistos(TObjArray* listFiles, TH3F** hPtMassMult, TH2F** hNtrZvtx, TH2F** hNtrZvtxCorr, const char *CutsType, Int_t Option)
{
Int_t nFiles=listFiles->GetEntries();
  TList **hlist=new TList*[nFiles];
  TList **hlistNorm=new TList*[nFiles];
  AliRDHFCutsDplustoKpipi** dcuts=new AliRDHFCutsDplustoKpipi*[nFiles];

  Int_t nReadFiles=0;
  for(Int_t iFile=0; iFile<nFiles; iFile++){
    TString fName=((TObjString*)listFiles->At(iFile))->GetString();    
    TFile *f=TFile::Open(fName.Data());
    if(!f){
      printf("ERROR: file %s does not exist\n",fName.Data());
      continue;
    }
    printf("Open File %s\n",f->GetName());
 TDirectory *dir = (TDirectory*)f->Get(Form("PWG3_D2H_DMult_Dplus%s",suffix.Data()));
    // TDirectory *dir = (TDirectory*)f->Get("PWG3_D2H_DMult");
    if(!dir){
      printf("ERROR: directory PWG3_D2H_DMult not found in %s\n",fName.Data());
      continue;
    }
    hlist[nReadFiles]=(TList*)dir->Get(Form("coutputDplus%s",suffix.Data()));
    TList *listcut = (TList*)dir->Get(Form("coutputCutsDplus%s",suffix.Data()));
    TList *listNorm = (TList*)dir->Get(Form("coutputNormDplus%s",suffix.Data()));
    dcuts[nReadFiles]=(AliRDHFCutsDplustoKpipi*)listcut->At(0);
     if(nReadFiles>0){
      Bool_t sameCuts=dcuts[nReadFiles]->CompareCuts(dcuts[0]);
      if(!sameCuts){
 
	printf("ERROR: Cut objects do not match\n");
	return kFALSE;
      }
     }



 nReadFiles++;
      }
  if(nReadFiles<nFiles){
    printf("WARNING: not all requested files have been found\n");
    if (nReadFiles==0) {
      printf("ERROR: Any file/dir found\n");
      return kFALSE;
    }
  }


 printf("Get the 3D histogram \n");
  const char *histoname="";
  if(optPartAntiPart==kParticleOnly) histoname= "hPtVsMassvsMultPart";
  else if(optPartAntiPart==kAntiParticleOnly) histoname="hPtVsMassvsMultAntiPart";
  else if(optPartAntiPart==kBoth) histoname="hPtVsMassvsMult";
  if(Option==kUnCorr) histoname="hPtVsMassvsMultUncorr";
  if(Option==kNoPid) histoname="hPtVsMassvsMultNoPid";

  TH3F * htemp;
  for(Int_t iFile=0; iFile<nReadFiles; iFile++){
    printf(" Looking for histo histMass %s for file %d\n",histoname,iFile);
    htemp=(TH3F*)hlist[iFile]->FindObject(Form("%s",histoname));
    //    cout << " htemp :"<<htemp<<endl;
    if(!hPtMassMult[0]){
      hPtMassMult[0]=new TH3F(*htemp);
    }else{
      hPtMassMult[0]->Add(htemp);
    }
    //  (TH2F*)hNtrZvtx[iFile] = (TH2F*)hlist[iFile]->FindObject("hNtrVsZvtx"); 
    //(TH2F*)hNtrZvtxCorr[iFile] = (TH2F*)hlist[iFile]->FindObject("hNtrVsZvtxCorr");
  }
  
  //  cout<<" hPtMassMult:"<<hPtMassMult[0]<<endl;

  TString partname="Both";
  if(optPartAntiPart==kParticleOnly) partname="Dplus";
  if(optPartAntiPart==kAntiParticleOnly) partname="Dminus";

  TString outfilename = Form("RawYield%s_%s",partname.Data(),CutsType);
  if(fixPeakSigma) outfilename += "_SigmaFixed";
  if(typeb==0) outfilename += "_Expo.root";
  else if(typeb==1) outfilename += "_Linear.root";
  else if(typeb==2) outfilename += "_Pol2.root";
  TFile* outf=new TFile(outfilename,"recreate");
  outf->cd();
  dcuts[0]->Write();
  outf->Close();
  return kTRUE;
  
}

//_____________________________________________________________________________________________
TH1F* RebinHisto(TH1F* hOrig, Int_t reb, Int_t firstUse){
  // Rebin histogram, from bin firstUse to lastUse
  // Use all bins if firstUse=-1
  
  Int_t nBinOrig=hOrig->GetNbinsX();
  Int_t firstBinOrig=1;
  Int_t lastBinOrig=nBinOrig;
  Int_t nBinOrigUsed=nBinOrig;
  Int_t nBinFinal=nBinOrig/reb;
  if(firstUse>=1){
    firstBinOrig=firstUse;
    nBinFinal=(nBinOrig-firstUse+1)/reb;
    nBinOrigUsed=nBinFinal*reb;
    lastBinOrig=firstBinOrig+nBinOrigUsed-1;
  }else{
    Int_t exc=nBinOrigUsed%reb;
    if(exc!=0){
      nBinOrigUsed-=exc;
      firstBinOrig+=exc/2;
      lastBinOrig=firstBinOrig+nBinOrigUsed-1;
    }
  }
  
  printf("Rebin from %d bins to %d bins -- Used bins=%d in range %d-%d\n",nBinOrig,nBinFinal,nBinOrigUsed,firstBinOrig,lastBinOrig);
  Float_t lowLim=hOrig->GetXaxis()->GetBinLowEdge(firstBinOrig);
  Float_t hiLim=hOrig->GetXaxis()->GetBinUpEdge(lastBinOrig);
  TH1F* hRebin=new TH1F(Form("%s-rebin",hOrig->GetName()),hOrig->GetTitle(),nBinFinal,lowLim,hiLim);
  Int_t lastSummed=firstBinOrig-1;
  for(Int_t iBin=1;iBin<=nBinFinal; iBin++){
    Float_t sum=0.;
    for(Int_t iOrigBin=0;iOrigBin<reb;iOrigBin++){
      sum+=hOrig->GetBinContent(lastSummed+1);
      lastSummed++;
    }
    hRebin->SetBinContent(iBin,sum);
  }
  return hRebin;
}

//_____________________________________________________________________________________________
Bool_t CheckNtrVsZvtx(TH2F** hNtrackVsVtxZ, TH2F** hNtrackVsVtxZCorr, Int_t nFiles)
{

  TCanvas *cNtrVsZvtx = new TCanvas("cNtrVsZvtx","Ntr Vs Zvtx");
  cNtrVsZvtx->Divide(2,2);
  TProfile **hProf = new TProfile*[nFiles];
  TProfile **hProfCorr = new TProfile*[nFiles];
  for(Int_t i=0; i<nFiles; i++){
    cNtrVsZvtx->cd(i+1);
    cNtrVsZvtx->SetLogz();
    //    hNtrackVsVtxZ[i]->Fit("pol4");
    hNtrackVsVtxZ[i]->Draw("colz");
    hProf[i] = (TProfile*)hNtrackVsVtxZ[i]->ProfileX(Form("%s_%d","hProf",i));
    hProf[i]->SetLineColor(kBlack);
    hProf[i]->Draw("same");
    cNtrVsZvtx->Update();
  }

  TCanvas *cNtrVsZvtxCorr = new TCanvas("cNtrVsZvtxCorr","Ntr Vs Zvtx Corr");
  cNtrVsZvtxCorr->Divide(2,2);
  for(Int_t i=0; i<nFiles; i++){
    cNtrVsZvtxCorr->cd(i+1);
    cNtrVsZvtxCorr->SetLogz();
    //    hNtrackVsVtxZCorr[i]->Fit("pol4");
    hNtrackVsVtxZCorr[i]->Draw("colz");
    hProfCorr[i] = (TProfile*)hNtrackVsVtxZCorr[i]->ProfileX(Form("%s_%d","hProfCorr",i));
    hProfCorr[i]->SetLineColor(kBlack);
    hProfCorr[i]->Draw("same");
    cNtrVsZvtx->Update();
  }

  TH1F *hNtrAxis = (TH1F*)hNtrackVsVtxZ[0]->ProjectionY("hNtrAxis");
  TH1F *hZvtx[nFiles];
  Int_t firstbin = hNtrAxis->FindBin( multlims[0] );
  Int_t lastbin = hNtrAxis->FindBin( multlims[nMultbins] ) -1;
  TCanvas *cZvtx = new TCanvas("cZvtx","Zvtx projections");
  cZvtx->Divide(2,2);
  for(Int_t i=0; i<nFiles; i++){
    cZvtx->cd(i+1);
    hZvtx[i] = (TH1F*)hNtrackVsVtxZ[i]->ProjectionX(Form("hZvtx_%d",i),firstbin,lastbin);
    hZvtx[i]->Draw();
  }
  TH1F *hZvtxCorr[nFiles];
  TCanvas *cZvtxCorr = new TCanvas("cZvtxCorr","Zvtx projections Corr");
  cZvtxCorr->Divide(2,2);
  for(Int_t i=0; i<nFiles; i++){
    cZvtxCorr->cd(i+1);
    hZvtxCorr[i] = (TH1F*)hNtrackVsVtxZCorr[i]->ProjectionX(Form("hZvtxCorr_%d",i),firstbin,lastbin);
    hZvtxCorr[i]->Draw();
  }

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