ROOT logo
#include <TROOT.h>
#include <TStyle.h>
#include <TH1D.h>
#include <TObjArray.h>
#include <TCanvas.h>
#include <TMath.h>
#include <TAxis.h>
#include <TLatex.h>
#include <TFile.h>
#include <TString.h>
#include <TLegend.h>
#include <TList.h>

#include "AliDielectronSignalExt.h"
#include "AliDielectronCFdraw.h"
#include "AliDielectron.h"

AliDielectronSignalBase* GetSignalLS(AliDielectronCFdraw &d, Int_t step,
                                     AliDielectronSignalBase::EBackgroundMethod type=AliDielectronSignalBase::kLikeSign);
AliDielectronSignalBase* GetSignalRot(AliDielectronCFdraw &d, Int_t step);
void SetStyle(AliDielectronSignalBase *sig, const char* nameAdd);
void DrawSpectra(AliDielectronSignalBase *sig, const char* cname, TH1  *hEventStat=0x0, Bool_t save=kFALSE);
void FitMCshape(AliDielectronSignalBase *sig);

const char *mcLineShapeFile="$ALICE_ROOT/PWGDQ/dielectron/macros/mcMinv_LHC10f7a.root";
TString addToName="";

//_______________________________________
void PlotDataResults(const char* filenameData, const char* filenameMC="", Bool_t save=kFALSE)
{
  if (!addToName.IsNull()) addToName.Prepend("-");
  AliDielectronCFdraw d(filenameData);
  AliDielectronCFdraw dCorr("corrCont","corrCont");
  TString nameCorr(filenameMC);
  if (!nameCorr.IsNull()) d.SetCFContainers(nameCorr.Data());
  TFile f(filenameData);
  TH1 *hStats=(TH1*)f.Get("hEventStat");
  if (!f.IsOpen() || f.IsZombie() || !hStats) return;
  hStats->SetDirectory(0);
  f.Close();
  
  Int_t stepFirst=0, stepAny=1, stepTOFmix=2;
  
  gStyle->SetOptStat(0);
  //Set common Ranges
  d.SetRangeUser("Leg1_NclsTPC",70.,170.);
  d.SetRangeUser("Leg2_NclsTPC",70.,170.);
  d.SetRangeUser("Leg1_Pt",1.01,100000);
  d.SetRangeUser("Leg2_Pt",1.01,100000);
  d.SetRangeUser("Leg1_Eta",-0.899,0.899);
  d.SetRangeUser("Leg2_Eta",-0.899,0.899);

  d.SetRangeUser("Leg1_TPC_nSigma_Electrons",-3.,2.99);
  d.SetRangeUser("Leg2_TPC_nSigma_Electrons",-3.,2.99);
  d.SetRangeUser("Leg1_TPC_nSigma_Pions",3.51,20); 
  d.SetRangeUser("Leg2_TPC_nSigma_Pions",3.51,20); 
  d.SetRangeUser("Leg1_TPC_nSigma_Protons",3.01,20); 
  d.SetRangeUser("Leg2_TPC_nSigma_Protons",3.01,20);

//   d.SetRangeUser("Pt",0,1000);
  
  d.SetRangeUser("M",0.5,5.);
  //============================
  //SPD first
  //
  
  //--- Like sign subtraction
  AliDielectronSignalBase *sigFirst=GetSignalLS(d,stepFirst);
  SetStyle(sigFirst,"ITS First - Like Sign subtraction");
  DrawSpectra(sigFirst,"cFirst",hStats,save);
  //--- Like sign subtraction Arithmetic mean
  AliDielectronSignalBase *sigFirstArith=GetSignalLS(d,stepFirst,AliDielectronSignalBase::kLikeSignArithm);
  SetStyle(sigFirstArith,"ITS FirstArith - Like Sign subtraction");
  DrawSpectra(sigFirstArith,"cFirstArith",hStats,save);
  
  //============================
  //SPD any
  //
  AliDielectronSignalBase *sigAny=GetSignalLS(d,stepAny);
  SetStyle(sigAny,"ITS Any - Like Sign subtraction");
  DrawSpectra(sigAny,"cAny",hStats,save);
  //--- like sign with arithmetic mean
  AliDielectronSignalBase *sigAnyArith=GetSignalLS(d,stepAny,AliDielectronSignalBase::kLikeSignArithm);
  SetStyle(sigAnyArith,"ITS Any - Like Sign subtraction (Arithm. mean)");
  DrawSpectra(sigAnyArith,"cAnyArith",hStats,save);
  
  if (hStats) delete hStats;
}


//_______________________________________
AliDielectronSignalBase *GetSignalLS(AliDielectronCFdraw &d, Int_t step, AliDielectronSignalBase::EBackgroundMethod type)
{
  //
  // Get Extracted signal from likesign method
  //
  
  TObjArray *arr=new TObjArray;
  arr->SetOwner();
  
  for (Int_t iType=0;iType<3;++iType){
    d.SetRangeUser("PairType",iType,iType);
    arr->AddAt(d.Project("M",step),iType);
  }
  
  AliDielectronSignalExt *sig=new AliDielectronSignalExt;
  sig->SetScaleRawToBackground(3.2,4.9);
  sig->SetIntegralRange(2.92,3.15);
  sig->SetMethod(type);
  sig->Process(arr);
  
  delete arr;
  return sig;
}

//_______________________________________
AliDielectronSignalBase *GetSignalRot(AliDielectronCFdraw &d, Int_t step)
{
  //
  // Get Extracted signal from likesign method
  //
  
  TObjArray *arr=new TObjArray;
  arr->SetOwner();
  
  Int_t iType=AliDielectron::kEv1PM;
  d.SetRangeUser("PairType",iType,iType);
  arr->AddAt(d.Project("M",step),iType);
  
  iType=AliDielectron::kEv1PMRot;
  d.SetRangeUser("PairType",iType,iType);
  arr->AddAt(d.Project("M",step),iType);
  
  AliDielectronSignalExt *sig=new AliDielectronSignalExt;
  sig->SetScaleRawToBackground(3.2,4.9);
  sig->SetIntegralRange(2.93,3.15);
  sig->SetMethod(AliDielectronSignalBase::kRotation);
  sig->Process(arr);
  
  
  delete arr;
  return sig;
}

//_______________________________________
void SetStyle(AliDielectronSignalBase *sig, const char* nameAdd)
{
  //
  //
  //
  TH1 *hUS=sig->GetUnlikeSignHistogram();
  hUS->SetMarkerStyle(20);
  hUS->SetMarkerSize(0.7);
  hUS->SetMarkerColor(kRed);
  hUS->SetLineColor(kRed);
  hUS->SetStats(0);
  hUS->SetTitle(Form("Like sign spectrum %s;M inv. ee;counts per %.4g MeV",
                     nameAdd,1000*hUS->GetXaxis()->GetBinWidth(1)));
  
  TH1* hBackground=sig->GetBackgroundHistogram();
  hBackground->SetMarkerStyle(24);
  hBackground->SetMarkerSize(0.7);
  hBackground->SetStats(0);
  hBackground->SetMarkerColor(kBlue);
  hBackground->SetLineColor(kBlue);
  hBackground->SetTitle(Form("Like sign spectrum %s;M inv. ee;counts per %.4g MeV",
                             nameAdd,1000*hBackground->GetXaxis()->GetBinWidth(1)));
  
  TH1* hSignal=sig->GetSignalHistogram();
  hSignal->SetMarkerStyle(20);
  hSignal->SetMarkerSize(0.7);
  hSignal->SetMarkerColor(kRed);
  hSignal->SetLineColor(kRed);
  hSignal->SetTitle(Form("Like sign spectrum %s;M inv. ee;counts per %.4g MeV",
                         nameAdd,1000*hSignal->GetXaxis()->GetBinWidth(1)));
  
  
}

//_______________________________________
void DrawSpectra(AliDielectronSignalBase *sig, const char* cname, TH1  *hEventStat, Bool_t save)
{
  //
  //
  //
  
  
  FitMCshape(sig);
  
  gStyle->SetOptTitle(0);
  TCanvas *c=(TCanvas*)gROOT->FindObject(cname);
  if (!c) c=new TCanvas(cname,cname,400*1.3,500*1.3);
  c->SetTopMargin(0.04);  c->SetRightMargin(0.04);
  c->SetLeftMargin(0.13); c->SetBottomMargin(0.14);
  c->Clear();
  c->Divide(1,2,0,0);
  c->cd(1);
  gPad->SetTopMargin(0.01);
  gPad->SetRightMargin(0.01);
  gPad->SetLeftMargin(0.15);
  gPad->SetBottomMargin(0.001);
  /*
  gPad->SetGridx();
  gPad->SetGridy();
*/
  gPad->SetTickx();
  gPad->SetTicky();
  
  TH1 *hUS=sig->GetUnlikeSignHistogram();
  
  TH1* hBackground=sig->GetBackgroundHistogram();
  
  hUS->GetXaxis()->CenterTitle();
  hUS->GetXaxis()->SetTitleSize(0.07); hUS->GetXaxis()->SetLabelSize(0.059);
//   hUS->GetXaxis()->SetLabelOffset(1.);
  hUS->GetXaxis()->SetTitleOffset(1.1);
  hUS->GetXaxis()->SetNdivisions(510);
  hUS->GetYaxis()->CenterTitle();
  hUS->GetYaxis()->SetTitleSize(0.07); hUS->GetYaxis()->SetLabelSize(0.059);
  hUS->GetYaxis()->SetTitleOffset(1.);
  hUS->GetXaxis()->SetLabelFont(42); hUS->GetYaxis()->SetLabelFont(42);
  hUS->GetXaxis()->SetTitleFont(42); hUS->GetYaxis()->SetTitleFont(42);
  hUS->GetYaxis()->SetNdivisions(510);
  //hUS->GetXaxis()->SetLimits(mMinPlot,mMmaxPlot);
  //hUS->SetLineWidth(.7);  
  hUS->SetMarkerSize(.8);
  hUS->SetMarkerColor(2); hUS->SetMarkerStyle(20); hUS->SetLineColor(2);
  hUS->Draw();
  hUS->SetMaximum(hUS->GetMaximum()*1.3);

  //hBackground->SetLineWidth(.4);  
  hBackground->SetMarkerSize(.7);
  hBackground->SetMarkerColor(4); hBackground->SetMarkerStyle(27); hBackground->SetLineColor(4);

  hBackground->Draw("same");
  
  TLatex *lat=new TLatex;
  lat->SetNDC(kTRUE);
  //  lat->DrawLatex(0.68, 0.67, "ALICE Performance");
  lat->SetTextColor(1);lat->SetTextFont(42);lat->SetTextSize(.045);
  
  Double_t sigN=sig->GetSignal();
  Double_t sigEr=sig->GetSignalError();
  Double_t sigS2B=sig->GetSB();
  Double_t sigS2Ber=sig->GetSBError();
  Double_t sigSignif= sig->GetSignificance();
  Double_t sigSignifEr= sig->GetSignificanceError();
  lat->DrawLatex(0.18, 0.92, Form("S: %3d#pm%4.1f, S/B: %3.1f#pm %4.2f, Signif.: %4.1f#pm%4.2f (%4.2f-%4.2f GeV) ",(int)sigN,sigEr,sigS2B,sigS2Ber,sigSignif,sigSignifEr,
                       hUS->GetBinLowEdge(hUS->FindBin(sig->GetIntegralMin())),
                       hUS->GetBinLowEdge(hUS->FindBin(sig->GetIntegralMax())+1)));
  
  TLegend *leg=new TLegend(0.17,0.72,0.42,0.88);
  leg->SetBorderSize(0); leg->SetFillColor(0); leg->SetTextFont(42);
  leg->SetFillStyle(0); leg->SetMargin(0.25); //separation symbol-text
  leg->SetEntrySeparation(0.15);
  leg->AddEntry(hUS,"OS", "p");
  leg->AddEntry(hBackground, Form("LS*%4.2f",sig->GetScaleFactor()), "p");
  leg->Draw();

  c->cd(2);
  gPad->SetRightMargin(0.01);
  gPad->SetTopMargin(0);
  gPad->SetLeftMargin(0.15);
  gPad->SetBottomMargin(.15);
  /*
  gPad->SetGridx();
  gPad->SetGridy();
  */
  gPad->SetTickx();
  gPad->SetTicky();
  
  TH1* hSignal=sig->GetSignalHistogram();
  hSignal->GetXaxis()->SetTitle("M_{ee} (GeV/c^{2})");
  hSignal->GetXaxis()->CenterTitle();
  hSignal->GetXaxis()->SetTitleSize(0.06); hSignal->GetXaxis()->SetLabelSize(0.05);
  hSignal->GetXaxis()->SetTitleOffset(1.1);
  hSignal->GetXaxis()->SetNdivisions(510);
  hSignal->GetYaxis()->CenterTitle();
  hSignal->GetYaxis()->SetTitleSize(0.06); hSignal->GetYaxis()->SetLabelSize(0.05);
  hSignal->GetYaxis()->SetTitleOffset(1.1);
  hSignal->GetXaxis()->SetLabelFont(42); hSignal->GetYaxis()->SetLabelFont(42);
  hSignal->GetXaxis()->SetTitleFont(42); hSignal->GetYaxis()->SetTitleFont(42);
  hSignal->GetYaxis()->SetNdivisions(510);
  //hSignal->GetXaxis()->SetLimits(mMinPlot,mMmaxPlot);
  //hSignal->SetLineWidth(.7);  
  hSignal->SetMarkerSize(.8);
  hSignal->SetMarkerColor(2); hSignal->SetMarkerStyle(20); hSignal->SetLineColor(2);

  hSignal->Draw();
  
  TLegend *leg2=new TLegend(0.16,0.8,0.57,0.93);
  leg2->SetBorderSize(0); leg2->SetFillColor(0); leg2->SetTextFont(42);
  leg2->SetFillStyle(0); leg2->SetMargin(0.25); //separation symbol-text
  leg2->SetEntrySeparation(0.15);
  leg2->AddEntry(hSignal, Form("OS-%4.2f*LS",sig->GetScaleFactor()), "p");
  TObject *hMmc=hSignal->GetListOfFunctions()->FindObject("mcMinv");
  if (hMmc) leg2->AddEntry(hMmc, Form("MC (#chi^{2}/dof=%3.1f)",TString(hMmc->GetTitle()).Atof()), "l");
  leg2->Draw();
  
  Double_t beforePhys=0;
  Double_t afterPhys=0;
  Double_t afterV0and=0;
  Double_t afterEventSel=0;
  Double_t afterPileupRej=0;

  if (hEventStat){
    Int_t beforePhysBin=hEventStat->GetXaxis()->FindBin("Before Phys. Sel.");
    Int_t afterPhysBin=hEventStat->GetXaxis()->FindBin("After Phys. Sel.");
    Int_t afterV0andBin=hEventStat->GetXaxis()->FindBin("V0and triggers");
    Int_t afterEventSelBin=hEventStat->GetXaxis()->FindBin("After Event Filter");
    Int_t afterPileupRejBin=hEventStat->GetXaxis()->FindBin("After Pileup rejection");
    
    beforePhys=hEventStat->GetBinContent(beforePhysBin);
    afterPhys=hEventStat->GetBinContent(afterPhysBin);
    afterV0and=hEventStat->GetBinContent(afterV0andBin);
    afterEventSel=hEventStat->GetBinContent(afterEventSelBin);
    afterPileupRej=hEventStat->GetBinContent(afterPileupRejBin);
    
    printf("Mevents: all: %4.1f, PhysSel: %4.1f, V0AND: %4.1f, EventSel: %4.1f, PileupRej: %4.1f\n",(Float_t)beforePhys/1.e+6,(Float_t)afterPhys/1.e+6,(Float_t)afterV0and/1.e+6,(Float_t)afterEventSel/1.e+6,(Float_t)afterPileupRej/1.e+6);
    
    lat->DrawLatex(0.18, 0.2, Form("%4.1f Mevents",(Float_t)afterPhys/1.e+6));
  }
  
  if (save){
//     c->SaveAs(Form("%s%s.eps",cname,addToName.Data()));
    c->SaveAs(Form("%s%s.png",cname,addToName.Data()));
/*
    FILE *out_file;
    if ( (out_file = fopen(Form("sig_%s.txt",cname), "w")) == NULL )
    {   fprintf(stderr, "Cannot open file %s\n", Form("sig_%s.txt",cname)); }
    fprintf(stdout, "Signal file: %s\n", Form("sig_%s.txt",cname));
    fprintf(out_file,"%3d %4.1f  %3.1f %4.2f  %4.1f %4.2f %d\n",(int)sigN,sigEr,sigS2B,sigS2Ber,sigSignif,sigSignifEr,(Int_t)afterPhys);
    fclose(out_file);

    TFile outMinv(Form("Minv_%s.root",cname), "RECREATE");
    hUS->Write();
    hBackground->Write();
    hSignal->Write();
    if (hMmc) hMmc->Write();
    outMinv.Close();*/

  }
  
  return;
}

//_______________________________________
void FitMCshape(AliDielectronSignalBase *sig)
{
  TFile mcFile(mcLineShapeFile);
  if (!mcFile.IsOpen()) {
    printf("mcMinv_LHC10e2 not found!!!\n");
    return;
  }
  TH1D *hMmc = (TH1D*)mcFile.Get("mcMinv");
  if (!hMmc) {
    printf("mcMinv not found!!\n");
    return;
  }
  hMmc->SetDirectory(0);
  hMmc->SetName("mcMinv");
  mcFile.Close();
  
  TH1* hMsub=sig->GetSignalHistogram();
  Double_t mb1=sig->GetIntegralMin();
  Double_t mb2=sig->GetIntegralMax();
  
  Double_t effInt = 0.;
  for(Int_t iBin=hMmc->FindBin(mb1); iBin<hMmc->FindBin(mb2); iBin++) {
    effInt += hMmc->GetBinContent(iBin);
  }
  effInt/=hMmc->Integral();
  printf("MC signal fraction in range %4.2f-%4.2f GeV: %5.3f \n",hMmc->GetBinLowEdge(hMmc->FindBin(mb1)),hMmc->GetBinLowEdge(hMmc->FindBin(mb2)+1),effInt);
 
  Float_t mcScale1=(hMsub->GetXaxis()->GetBinWidth(1)/hMmc->GetXaxis()->GetBinWidth(1))*
    hMsub->Integral(hMsub->FindBin(mb1),hMsub->FindBin(mb2))/
    hMmc->Integral(hMmc->FindBin(mb1),hMmc->FindBin(mb2));
  
  printf("1st guess of MC scale factor: %6.3f\n",mcScale1);
  
  Float_t mcScale=0.;
  Float_t chi2_min=100000.;
  Int_t iMin=0;
  Int_t ndf=0;
  
  for(Int_t i=0; i<20; i++){
    Float_t chi2=0.;
    Float_t scale=(0.4+0.05*(Float_t)i)*mcScale1;
    ndf=0;
    for(Int_t ib=1; ib<=hMsub->GetXaxis()->GetNbins(); ib++){
      Float_t data=(Float_t)hMsub->GetBinContent(ib);
      Float_t err=(Float_t)hMsub->GetBinError(ib);
      Float_t mc=scale*((Float_t)hMmc->GetBinContent(hMmc->FindBin(hMsub->GetBinCenter(ib))));
      if (err>0) {
        chi2 += ((data-mc)*(data-mc))/(err*err);
        ndf++;
      } else {
        //printf("bin %d Err: %6.3f, chi2: %6.1f\n",ib,err,chi2);
      }
    }
      //printf("%d scale factor: %6.3f, chi2: %6.1f\n",i,scale,chi2);
    if(chi2 < chi2_min){
      chi2_min = chi2;
      mcScale = scale;
      iMin=i;
    }
  }
  //Float_t chi2dof=chi2_min/(Float_t)(hMinv->GetXaxis()->GetNbins()-1);
  Float_t chi2dof=chi2_min/((Float_t)(ndf-1));
  printf("MC fit (i=%d): chi2/dof: %6.3f/%d, Scale: %7.4f \n",iMin,chi2_min,(ndf-1),mcScale);
  hMmc->SetTitle(Form("%f",chi2dof));
  
  //mcScale=IntData/IntMC;printf("Int Data, MC: %10.1f %10.1f, MC scale: %6.3f\n",IntData,IntMC,mcScale);
  
  hMmc->Scale(mcScale);
  hMmc->SetOption("sameHISTC");
  hMsub->GetListOfFunctions()->Add(hMmc);
}
 PlotDataResults.C:1
 PlotDataResults.C:2
 PlotDataResults.C:3
 PlotDataResults.C:4
 PlotDataResults.C:5
 PlotDataResults.C:6
 PlotDataResults.C:7
 PlotDataResults.C:8
 PlotDataResults.C:9
 PlotDataResults.C:10
 PlotDataResults.C:11
 PlotDataResults.C:12
 PlotDataResults.C:13
 PlotDataResults.C:14
 PlotDataResults.C:15
 PlotDataResults.C:16
 PlotDataResults.C:17
 PlotDataResults.C:18
 PlotDataResults.C:19
 PlotDataResults.C:20
 PlotDataResults.C:21
 PlotDataResults.C:22
 PlotDataResults.C:23
 PlotDataResults.C:24
 PlotDataResults.C:25
 PlotDataResults.C:26
 PlotDataResults.C:27
 PlotDataResults.C:28
 PlotDataResults.C:29
 PlotDataResults.C:30
 PlotDataResults.C:31
 PlotDataResults.C:32
 PlotDataResults.C:33
 PlotDataResults.C:34
 PlotDataResults.C:35
 PlotDataResults.C:36
 PlotDataResults.C:37
 PlotDataResults.C:38
 PlotDataResults.C:39
 PlotDataResults.C:40
 PlotDataResults.C:41
 PlotDataResults.C:42
 PlotDataResults.C:43
 PlotDataResults.C:44
 PlotDataResults.C:45
 PlotDataResults.C:46
 PlotDataResults.C:47
 PlotDataResults.C:48
 PlotDataResults.C:49
 PlotDataResults.C:50
 PlotDataResults.C:51
 PlotDataResults.C:52
 PlotDataResults.C:53
 PlotDataResults.C:54
 PlotDataResults.C:55
 PlotDataResults.C:56
 PlotDataResults.C:57
 PlotDataResults.C:58
 PlotDataResults.C:59
 PlotDataResults.C:60
 PlotDataResults.C:61
 PlotDataResults.C:62
 PlotDataResults.C:63
 PlotDataResults.C:64
 PlotDataResults.C:65
 PlotDataResults.C:66
 PlotDataResults.C:67
 PlotDataResults.C:68
 PlotDataResults.C:69
 PlotDataResults.C:70
 PlotDataResults.C:71
 PlotDataResults.C:72
 PlotDataResults.C:73
 PlotDataResults.C:74
 PlotDataResults.C:75
 PlotDataResults.C:76
 PlotDataResults.C:77
 PlotDataResults.C:78
 PlotDataResults.C:79
 PlotDataResults.C:80
 PlotDataResults.C:81
 PlotDataResults.C:82
 PlotDataResults.C:83
 PlotDataResults.C:84
 PlotDataResults.C:85
 PlotDataResults.C:86
 PlotDataResults.C:87
 PlotDataResults.C:88
 PlotDataResults.C:89
 PlotDataResults.C:90
 PlotDataResults.C:91
 PlotDataResults.C:92
 PlotDataResults.C:93
 PlotDataResults.C:94
 PlotDataResults.C:95
 PlotDataResults.C:96
 PlotDataResults.C:97
 PlotDataResults.C:98
 PlotDataResults.C:99
 PlotDataResults.C:100
 PlotDataResults.C:101
 PlotDataResults.C:102
 PlotDataResults.C:103
 PlotDataResults.C:104
 PlotDataResults.C:105
 PlotDataResults.C:106
 PlotDataResults.C:107
 PlotDataResults.C:108
 PlotDataResults.C:109
 PlotDataResults.C:110
 PlotDataResults.C:111
 PlotDataResults.C:112
 PlotDataResults.C:113
 PlotDataResults.C:114
 PlotDataResults.C:115
 PlotDataResults.C:116
 PlotDataResults.C:117
 PlotDataResults.C:118
 PlotDataResults.C:119
 PlotDataResults.C:120
 PlotDataResults.C:121
 PlotDataResults.C:122
 PlotDataResults.C:123
 PlotDataResults.C:124
 PlotDataResults.C:125
 PlotDataResults.C:126
 PlotDataResults.C:127
 PlotDataResults.C:128
 PlotDataResults.C:129
 PlotDataResults.C:130
 PlotDataResults.C:131
 PlotDataResults.C:132
 PlotDataResults.C:133
 PlotDataResults.C:134
 PlotDataResults.C:135
 PlotDataResults.C:136
 PlotDataResults.C:137
 PlotDataResults.C:138
 PlotDataResults.C:139
 PlotDataResults.C:140
 PlotDataResults.C:141
 PlotDataResults.C:142
 PlotDataResults.C:143
 PlotDataResults.C:144
 PlotDataResults.C:145
 PlotDataResults.C:146
 PlotDataResults.C:147
 PlotDataResults.C:148
 PlotDataResults.C:149
 PlotDataResults.C:150
 PlotDataResults.C:151
 PlotDataResults.C:152
 PlotDataResults.C:153
 PlotDataResults.C:154
 PlotDataResults.C:155
 PlotDataResults.C:156
 PlotDataResults.C:157
 PlotDataResults.C:158
 PlotDataResults.C:159
 PlotDataResults.C:160
 PlotDataResults.C:161
 PlotDataResults.C:162
 PlotDataResults.C:163
 PlotDataResults.C:164
 PlotDataResults.C:165
 PlotDataResults.C:166
 PlotDataResults.C:167
 PlotDataResults.C:168
 PlotDataResults.C:169
 PlotDataResults.C:170
 PlotDataResults.C:171
 PlotDataResults.C:172
 PlotDataResults.C:173
 PlotDataResults.C:174
 PlotDataResults.C:175
 PlotDataResults.C:176
 PlotDataResults.C:177
 PlotDataResults.C:178
 PlotDataResults.C:179
 PlotDataResults.C:180
 PlotDataResults.C:181
 PlotDataResults.C:182
 PlotDataResults.C:183
 PlotDataResults.C:184
 PlotDataResults.C:185
 PlotDataResults.C:186
 PlotDataResults.C:187
 PlotDataResults.C:188
 PlotDataResults.C:189
 PlotDataResults.C:190
 PlotDataResults.C:191
 PlotDataResults.C:192
 PlotDataResults.C:193
 PlotDataResults.C:194
 PlotDataResults.C:195
 PlotDataResults.C:196
 PlotDataResults.C:197
 PlotDataResults.C:198
 PlotDataResults.C:199
 PlotDataResults.C:200
 PlotDataResults.C:201
 PlotDataResults.C:202
 PlotDataResults.C:203
 PlotDataResults.C:204
 PlotDataResults.C:205
 PlotDataResults.C:206
 PlotDataResults.C:207
 PlotDataResults.C:208
 PlotDataResults.C:209
 PlotDataResults.C:210
 PlotDataResults.C:211
 PlotDataResults.C:212
 PlotDataResults.C:213
 PlotDataResults.C:214
 PlotDataResults.C:215
 PlotDataResults.C:216
 PlotDataResults.C:217
 PlotDataResults.C:218
 PlotDataResults.C:219
 PlotDataResults.C:220
 PlotDataResults.C:221
 PlotDataResults.C:222
 PlotDataResults.C:223
 PlotDataResults.C:224
 PlotDataResults.C:225
 PlotDataResults.C:226
 PlotDataResults.C:227
 PlotDataResults.C:228
 PlotDataResults.C:229
 PlotDataResults.C:230
 PlotDataResults.C:231
 PlotDataResults.C:232
 PlotDataResults.C:233
 PlotDataResults.C:234
 PlotDataResults.C:235
 PlotDataResults.C:236
 PlotDataResults.C:237
 PlotDataResults.C:238
 PlotDataResults.C:239
 PlotDataResults.C:240
 PlotDataResults.C:241
 PlotDataResults.C:242
 PlotDataResults.C:243
 PlotDataResults.C:244
 PlotDataResults.C:245
 PlotDataResults.C:246
 PlotDataResults.C:247
 PlotDataResults.C:248
 PlotDataResults.C:249
 PlotDataResults.C:250
 PlotDataResults.C:251
 PlotDataResults.C:252
 PlotDataResults.C:253
 PlotDataResults.C:254
 PlotDataResults.C:255
 PlotDataResults.C:256
 PlotDataResults.C:257
 PlotDataResults.C:258
 PlotDataResults.C:259
 PlotDataResults.C:260
 PlotDataResults.C:261
 PlotDataResults.C:262
 PlotDataResults.C:263
 PlotDataResults.C:264
 PlotDataResults.C:265
 PlotDataResults.C:266
 PlotDataResults.C:267
 PlotDataResults.C:268
 PlotDataResults.C:269
 PlotDataResults.C:270
 PlotDataResults.C:271
 PlotDataResults.C:272
 PlotDataResults.C:273
 PlotDataResults.C:274
 PlotDataResults.C:275
 PlotDataResults.C:276
 PlotDataResults.C:277
 PlotDataResults.C:278
 PlotDataResults.C:279
 PlotDataResults.C:280
 PlotDataResults.C:281
 PlotDataResults.C:282
 PlotDataResults.C:283
 PlotDataResults.C:284
 PlotDataResults.C:285
 PlotDataResults.C:286
 PlotDataResults.C:287
 PlotDataResults.C:288
 PlotDataResults.C:289
 PlotDataResults.C:290
 PlotDataResults.C:291
 PlotDataResults.C:292
 PlotDataResults.C:293
 PlotDataResults.C:294
 PlotDataResults.C:295
 PlotDataResults.C:296
 PlotDataResults.C:297
 PlotDataResults.C:298
 PlotDataResults.C:299
 PlotDataResults.C:300
 PlotDataResults.C:301
 PlotDataResults.C:302
 PlotDataResults.C:303
 PlotDataResults.C:304
 PlotDataResults.C:305
 PlotDataResults.C:306
 PlotDataResults.C:307
 PlotDataResults.C:308
 PlotDataResults.C:309
 PlotDataResults.C:310
 PlotDataResults.C:311
 PlotDataResults.C:312
 PlotDataResults.C:313
 PlotDataResults.C:314
 PlotDataResults.C:315
 PlotDataResults.C:316
 PlotDataResults.C:317
 PlotDataResults.C:318
 PlotDataResults.C:319
 PlotDataResults.C:320
 PlotDataResults.C:321
 PlotDataResults.C:322
 PlotDataResults.C:323
 PlotDataResults.C:324
 PlotDataResults.C:325
 PlotDataResults.C:326
 PlotDataResults.C:327
 PlotDataResults.C:328
 PlotDataResults.C:329
 PlotDataResults.C:330
 PlotDataResults.C:331
 PlotDataResults.C:332
 PlotDataResults.C:333
 PlotDataResults.C:334
 PlotDataResults.C:335
 PlotDataResults.C:336
 PlotDataResults.C:337
 PlotDataResults.C:338
 PlotDataResults.C:339
 PlotDataResults.C:340
 PlotDataResults.C:341
 PlotDataResults.C:342
 PlotDataResults.C:343
 PlotDataResults.C:344
 PlotDataResults.C:345
 PlotDataResults.C:346
 PlotDataResults.C:347
 PlotDataResults.C:348
 PlotDataResults.C:349
 PlotDataResults.C:350
 PlotDataResults.C:351
 PlotDataResults.C:352
 PlotDataResults.C:353
 PlotDataResults.C:354
 PlotDataResults.C:355
 PlotDataResults.C:356
 PlotDataResults.C:357
 PlotDataResults.C:358
 PlotDataResults.C:359
 PlotDataResults.C:360
 PlotDataResults.C:361
 PlotDataResults.C:362
 PlotDataResults.C:363
 PlotDataResults.C:364
 PlotDataResults.C:365
 PlotDataResults.C:366
 PlotDataResults.C:367
 PlotDataResults.C:368
 PlotDataResults.C:369
 PlotDataResults.C:370
 PlotDataResults.C:371
 PlotDataResults.C:372
 PlotDataResults.C:373
 PlotDataResults.C:374
 PlotDataResults.C:375
 PlotDataResults.C:376
 PlotDataResults.C:377
 PlotDataResults.C:378
 PlotDataResults.C:379
 PlotDataResults.C:380
 PlotDataResults.C:381
 PlotDataResults.C:382
 PlotDataResults.C:383
 PlotDataResults.C:384
 PlotDataResults.C:385
 PlotDataResults.C:386
 PlotDataResults.C:387
 PlotDataResults.C:388
 PlotDataResults.C:389
 PlotDataResults.C:390
 PlotDataResults.C:391
 PlotDataResults.C:392
 PlotDataResults.C:393
 PlotDataResults.C:394
 PlotDataResults.C:395
 PlotDataResults.C:396
 PlotDataResults.C:397
 PlotDataResults.C:398
 PlotDataResults.C:399
 PlotDataResults.C:400
 PlotDataResults.C:401
 PlotDataResults.C:402
 PlotDataResults.C:403
 PlotDataResults.C:404
 PlotDataResults.C:405
 PlotDataResults.C:406
 PlotDataResults.C:407
 PlotDataResults.C:408
 PlotDataResults.C:409
 PlotDataResults.C:410
 PlotDataResults.C:411
 PlotDataResults.C:412
 PlotDataResults.C:413
 PlotDataResults.C:414
 PlotDataResults.C:415
 PlotDataResults.C:416
 PlotDataResults.C:417
 PlotDataResults.C:418
 PlotDataResults.C:419