ROOT logo
#ifndef __CINT__
#include <TTree.h>
#include <TFile.h>
#include <TClonesArray.h>
#include <TStyle.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TProfile.h>
#include <TGraph.h>
#include <TCanvas.h>
#include <TLegend.h>
#include "AliCDBManager.h"
#include "AliCDBEntry.h"
#include "AliRawReader.h"
#include <AliTPCRawStreamV3.h>
#include "AliFMDRawReader.h"
#include "AliFMDParameters.h"
#include "AliFMDDigit.h"
#include "AliTPCAltroMapping.h"
#include "AliTriggerConfiguration.h"
#include "TAlienCollection.h"
#include "AliTriggerClass.h"
#include "TGrid.h"
#include "TPRegexp.h"
#include "AliVZERORawStream.h"

#include "AliITSsegmentationUpgrade.h"
#include "AliRunLoader.h"
#include "AliStack.h"
#include "AliITSRecPointU.h"
#include "AliITSDigitUpgrade.h"
#include "TParticle.h"
#include "AliESDtrack.h"
#include "AliESDEvent.h"
#include "AliTrackReference.h"
#include <TROOT.h>
#include <TStyle.h>
#include "TGraphErrors.h"
#include <TF1.h>
#include <TGeoManager.h>

#endif
#include <iostream>
#include <iomanip>
#include <cstdio>

/*
 .L ~/ITSupgrade/CDRpics/FastVsSlowSim.C
 ExtractOutputHistos(0,1);


 .L ~/ITSupgrade/BuildDetector/DetectorK.cxx++
 .L FastVsSlowSim.C

 FastVsSlowSimRes();
 FastVsSlowSimPtRes();
 FastVsSlowSimEff(0,1);
 FastVsSlowSimEff(1,1);
 FastVsSlowSimEff(2,1);
 FastVsSlowSimEff(3,1);

 FastVsSlowSimEff(0);

*/


Int_t atLeastcorr = 3;


void FastVsSlowSim(Bool_t extract=1) {

  if (extract)
    ExtractOutputHistos(0,1);
  else
    plotMerged();
}

TGraph *gr[5];
Int_t colors[5]={1,2,3,4,6};
Int_t width =2;


// new ideal Pixel properties?

Double_t etaCut = 0.9;
Double_t X0     = 0.003;
Double_t resRPhi = 0.0004;
Double_t resZ   = 0.0004;

void FastVsSlowSimRes() {

  Int_t plusTPC =0;

  gROOT->LoadMacro("~/fig_template.C"); // figure style
  myOptions(0);
  gROOT->ForceStyle();

  TCanvas *myCan = new TCanvas("myCan");
  myCan->Draw();
  myCan->cd();
  
  TPad *myPad = new TPad("myPad", "The pad",0,0,1,1);
  myPadSetUp(myPad,0.15,0.04,0.04,0.15);
  myPad->Draw();   myPad->cd();
  myPad->SetGridx();   myPad->SetGridy();  myPad->SetLogx(); 

  //  TLegend *leg = new TLegend(0.7,160,20,290,"","brCDN"); 
  TLegend *leg = new TLegend(0.44,160,1.7,290,"","brCDN"); 
 
  leg->SetFillColor(0);

  
  // Current ITS +++++++++++++++++++++++++++++++++++++++++

  DetectorK its("ALICE","ITS");
  its.MakeAliceCurrent(0,plusTPC);
  its.SetMaxRadiusOfSlowDetectors(0.1);
  its.SolveViaBilloir(0);
  Int_t color=1; Int_t linewidth=2;

  TGraph *c[6];
  TGraph *d[6];

  Int_t pi =0;
  d[pi] = its.GetGraphPointingResolution(1,color,linewidth);
  d[pi]->SetLineStyle(2);
  //  d[pi]->GetYaxis()->SetTitle("Pointing resolution #sigma [#mum]");
  //  d[pi]->SetTitle("Pointing resolution .vs. Pt");
  //  d[pi]->Draw("AC");
  
  c[pi] = its.GetGraphPointingResolution(0,color,linewidth);
  c[pi]->SetMinimum(-1);
  c[pi]->Draw("AC");

  leg->AddEntry(c[pi],"FastTool:  Current ITS","l");
  //  leg->AddEntry(d[pi],"in z  - Current ITS","l");

 

 
  // Current ITS +++++++++++++++++++++++++++++++++++++++++

  Int_t color=3; Int_t linewidth=2;
  Int_t pi =2;

  DetectorK its("ALICE","ITS");
  its.MakeAliceCurrent(0,plusTPC);
  
  its.SetRadius("bpipe",2.0);
  its.AddLayer("spd0", 2.2,1,1,1);  

  its.SetRadius("spd0",2.2); its.SetRadiationLength("spd0",X0); its.SetResolution("spd0",resRPhi,resZ);
  its.SetRadius("spd1",4.8);   its.SetRadiationLength("spd1",X0); its.SetResolution("spd1",resRPhi,resZ);
  its.SetRadius("spd2",9.1);   its.SetRadiationLength("spd2",X0); its.SetResolution("spd2",resRPhi,resZ);

  its.SetMaxRadiusOfSlowDetectors(0.1);
  its.SolveViaBilloir(0);

  d[pi] = its.GetGraphPointingResolution(1,color,linewidth);
  d[pi]->SetLineStyle(2);
  //  d[pi]->Draw("C");

  c[pi] = its.GetGraphPointingResolution(0,color,linewidth);
  c[pi]->Draw("C");

  leg->AddEntry(c[pi],"FastTool: \"New SPDs\"","l");
  //  leg->AddEntry(d[pi],"in z  - \"New SPDs\"","l");



  // ALL NEW +++++++++++++++++++++++++++++++++++++++++++

  color=2; Int_t linewidth=2;
  Int_t pi =1; 


  // for a 0.8,0.2 weight configuration
  
  DetectorK *itsU = new DetectorK((char*)"ALICE",(char*)"ITS");
  
  itsU->AddLayer((char*)"bpipe", 2.0,0.0022); // beam pipe
  itsU->AddLayer((char*)"vertex",  0,     0); // dummy vertex for matrix calculation
  
  itsU->AddLayer("ddd1",  2.2 ,  X0, resRPhi, resZ); 
  itsU->AddLayer("ddd2",  3.8 ,  X0, resRPhi, resZ); 
  itsU->AddLayer("ddd3",  6.8 ,  X0, resRPhi, resZ); 
  itsU->AddLayer("ddd4", 12.4 ,  X0, resRPhi, resZ); 
  itsU->AddLayer("ddd5", 23.5 ,  X0, resRPhi, resZ); 
  itsU->AddLayer("ddd6", 39.6 ,  X0, resRPhi, resZ); 
  itsU->AddLayer("ddd7", 43.0 ,  X0, resRPhi, resZ); 
 
  if(plusTPC) itsU->AddTPC(0.1,0.1);
  itsU->SetMaxRadiusOfSlowDetectors(0.1);
  itsU->SolveViaBilloir(0);
  itsU->PrintLayout();

  
  d[pi] = itsU->GetGraphPointingResolution(1,color,linewidth);
  d[pi]->SetLineStyle(2);
  //  d[pi]->Draw("C");

  c[pi] = itsU->GetGraphPointingResolution(0,color,linewidth);
  c[pi]->SetMaximum(150);
  c[pi]->Draw("C");

  leg->AddEntry(c[pi],"FastTool: \"All New\" ","l");
  //  leg->AddEntry(d[pi],"in z  - \"All New\" ","l");


  // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


 
  TFile f1("root/FastVsSlow_CurrentITS-PbPb-fran.root");
  TFile f2("root/FastVsSlow_NewSPDs-PbPb-fran.root");
  TFile f3("root/FastVsSlow_AllNew-PbPb-fran.root");
  TGraphErrors *dca1 = (TGraphErrors*)f1.Get("dca");
  TGraphErrors *dca2 = (TGraphErrors*)f2.Get("dca");
  TGraphErrors *dca3 = (TGraphErrors*)f3.Get("dca");
  
  dca1->SetMarkerStyle(21); dca1->SetMarkerColor(1);
  dca2->SetMarkerStyle(21); dca2->SetMarkerColor(3);
  dca3->SetMarkerStyle(21); dca3->SetMarkerColor(2);

  leg->AddEntry(dca1,"FullMC: Current ITS","PE");
  leg->AddEntry(dca2,"FullMC: \"New SPDs\"","PE");
  leg->AddEntry(dca3,"FullMC: \"All New\" ","PE");

  dca1->Draw("APE"); dca1->SetMinimum(-1); dca1->SetMaximum(300);
  dca2->Draw("PE");
  dca3->Draw("PE");
  c[0]->Draw("C");
  c[1]->Draw("C");
  c[2]->Draw("C");

  leg->Draw();

  myCan->SaveAs(Form("FastVsSlowSim-Res-%d.pdf",plusTPC));
  myCan->SaveAs(Form("FastVsSlowSim-Res-%d.eps",plusTPC));


}

// ==============================================================================================
// ==============================================================================================

void FastVsSlowSimPtRes() {

  Int_t plusTPC =0;

  gROOT->LoadMacro("~/fig_template.C"); // figure style
  myOptions(0);
  gROOT->ForceStyle();

  TCanvas *myCan = new TCanvas("myCan");
  myCan->Draw();
  myCan->cd();
  
  TPad *myPad = new TPad("myPad", "The pad",0,0,1,1);
  myPadSetUp(myPad,0.15,0.04,0.04,0.15);
  myPad->Draw();   myPad->cd();
  myPad->SetGridx();   myPad->SetGridy();  myPad->SetLogx(); myPad->SetLogy();


  TLegend *leg = new TLegend(0.44,0.13,0.1.7,0.9,"","brCDN"); 
  leg->SetFillColor(0);

  TGraph *c[6];
  
  // Current ITS +++++++++++++++++++++++++++++++++++++++++
  Int_t color=1; Int_t linewidth=2;

  Int_t pi =0;
 
  DetectorK its("ALICE","ITS");
  its.MakeAliceCurrent(0,plusTPC);
  its.SetMaxRadiusOfSlowDetectors(0.1);
  its.SolveViaBilloir(0);
  Int_t color=1; Int_t linewidth=2;

  c[pi] = its.GetGraphMomentumResolution(color,linewidth);
  c[pi]->Draw("AC");

  leg->AddEntry(c[pi],"FastTool: Current ITS","l");


  // Current ITS +++++++++++++++++++++++++++++++++++++++++

  Int_t color=3; Int_t linewidth=2;
  Int_t pi =2;

  DetectorK its("ALICE","ITS");
  its.MakeAliceCurrent(0,plusTPC);
  
  its.SetRadius("bpipe",2.0);
  its.AddLayer("spd0", 2.2,1,1,1);  

  its.SetRadius("spd0",2.2); its.SetRadiationLength("spd0",X0); its.SetResolution("spd0",resRPhi,resZ);
  its.SetRadius("spd1",4.8);   its.SetRadiationLength("spd1",X0); its.SetResolution("spd1",resRPhi,resZ);
  its.SetRadius("spd2",9.1);   its.SetRadiationLength("spd2",X0); its.SetResolution("spd2",resRPhi,resZ);

  its.SetMaxRadiusOfSlowDetectors(0.1);
  its.SolveViaBilloir(0);

  c[pi] = its.GetGraphMomentumResolution(color,linewidth);
  c[pi]->Draw("C");

  leg->AddEntry(c[pi],"FastTool: \"New SPDs\"","l");


  // ALL NEW +++++++++++++++++++++++++++++++++++++++++++

  color=2; Int_t linewidth=2;
  Int_t pi =1; 


  // for a 0.8,0.2 weight configuration
  
  DetectorK *itsU = new DetectorK((char*)"ALICE",(char*)"ITS");
  
  itsU->AddLayer((char*)"bpipe", 2.0,0.0022); // beam pipe
  itsU->AddLayer((char*)"vertex",  0,     0); // dummy vertex for matrix calculation
  
  itsU->AddLayer("ddd1",  2.2 ,  X0, resRPhi, resZ); 
  itsU->AddLayer("ddd2",  3.8 ,  X0, resRPhi, resZ); 
  itsU->AddLayer("ddd3",  6.8 ,  X0, resRPhi, resZ); 
  itsU->AddLayer("ddd4", 12.4 ,  X0, resRPhi, resZ); 
  itsU->AddLayer("ddd5", 23.5 ,  X0, resRPhi, resZ); 
  itsU->AddLayer("ddd6", 39.6 ,  X0, resRPhi, resZ); 
  itsU->AddLayer("ddd7", 43.0 ,  X0, resRPhi, resZ); 
 
  if(plusTPC) itsU->AddTPC(0.1,0.1);
  itsU->SetMaxRadiusOfSlowDetectors(0.1);
  itsU->SolveViaBilloir(0);
  itsU->PrintLayout();

  
  c[pi] = itsU->GetGraphMomentumResolution(color,linewidth);
  c[pi]->Draw("C");

  leg->AddEntry(c[pi],"FastTool: \"All New\" ","l");

  // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



  TFile f1("root/FastVsSlow_CurrentITS-PbPb-fran.root");
  TFile f2("root/FastVsSlow_NewSPDs-PbPb-fran.root");
  TFile f3("root/FastVsSlow_AllNew-PbPb-fran.root");

  TGraphErrors *gpt1 = (TGraphErrors*)f1.Get("dPt");
  TGraphErrors *gpt2 = (TGraphErrors*)f2.Get("dPt");
  TGraphErrors *gpt3 = (TGraphErrors*)f3.Get("dPt");
  
  gpt1->SetMarkerStyle(21); gpt1->SetMarkerColor(1);
  gpt2->SetMarkerStyle(21); gpt2->SetMarkerColor(3);
  gpt3->SetMarkerStyle(21); gpt3->SetMarkerColor(2);

  leg->AddEntry(gpt1,"FullMC: Current ITS","PE");
  leg->AddEntry(gpt2,"FullMC: \"New SPDs\"","PE");
  leg->AddEntry(gpt3,"FullMC: \"All New\" ","PE");

  gpt1->Draw("APE"); gpt1->SetMinimum(0.1); gpt1->SetMaximum(20);
  gpt2->Draw("PE");
  gpt3->Draw("PE");
  c[0]->Draw("C");
  c[1]->Draw("C");
  c[2]->Draw("C");

  leg->Draw();
 
  myCan->SaveAs(Form("FastVsSlowSim-PtRes-%d.pdf",plusTPC));
  myCan->SaveAs(Form("FastVsSlowSim-PtRes-%d.eps",plusTPC));



}



// ==============================================================================================
// ==============================================================================================

void FastVsSlowSimEff(Int_t id=0,Int_t PbPb=0) {

  Int_t mult = 2400; // 2800  // deducted from "Frackable"
  if (PbPb) mult=2800;


  Int_t plusTPC =0;

  gROOT->LoadMacro("~/fig_template.C"); // figure style
  myOptions(0);
  gROOT->ForceStyle();

  TCanvas *myCan = new TCanvas("myCan");
  myCan->Draw();
  myCan->cd();
  
  TPad *myPad = new TPad("myPad", "The pad",0,0,1,1);
  myPadSetUp(myPad,0.15,0.04,0.04,0.15);
  myPad->Draw();   myPad->cd();
  myPad->SetGridx();   myPad->SetGridy();//  myPad->SetLogx();


  TLegend *leg = new TLegend(0.9,30,1.7,70,"","brCDN"); 
  leg->SetFillColor(0);

  TGraph *c[6];
  if (id!=2) {
  
  
    // Current ITS +++++++++++++++++++++++++++++++++++++++++
    Int_t color=1; Int_t linewidth=2;

    Int_t pi =0;
 
    DetectorK its("ALICE","ITS");
    its.MakeAliceCurrent(0,plusTPC);
    its.SetMaxRadiusOfSlowDetectors(0.01);
    its.SetAtLeastCorr(atLeastcorr);
    if (PbPb) its.SetdNdEtaCent(mult);
    its.SolveViaBilloir(0);
    Int_t color=1; Int_t linewidth=2;

    if (id==0)
      c[pi] = its.GetGraphRecoEfficiency(0,color,linewidth);
    else if (id==1)
      c[pi] = its.GetGraphRecoPurity(0,color,linewidth);
    else 
      c[pi] = its.GetGraphRecoFakes(0,color,linewidth);

    c[pi]->Draw("AC");

    leg->AddEntry(c[pi],"FastTool: Current ITS","l");


    // NEW SPD  +++++++++++++++++++++++++++++++++++++++++

    Int_t color=3; Int_t linewidth=2;
    Int_t pi =2;

    DetectorK its("ALICE","ITS");
    its.MakeAliceCurrent(0,plusTPC);
    its.SetAtLeastCorr(atLeastcorr);
    if (PbPb) its.SetdNdEtaCent(mult);
    its.SetRadius("bpipe",2.0);
    its.AddLayer("spd0", 2.2,1,1,1);  

    its.SetRadius("spd0",2.2); its.SetRadiationLength("spd0",X0); its.SetResolution("spd0",resRPhi,resZ);
    its.SetRadius("spd1",4.8);   its.SetRadiationLength("spd1",X0); its.SetResolution("spd1",resRPhi,resZ);
    its.SetRadius("spd2",9.1);   its.SetRadiationLength("spd2",X0); its.SetResolution("spd2",resRPhi,resZ);

    its.SetMaxRadiusOfSlowDetectors(0.1);
    its.SolveViaBilloir(0);

    if (id==0)
      c[pi] = its.GetGraphRecoEfficiency(0,color,linewidth);
    else if (id==1)
      c[pi] = its.GetGraphRecoPurity(0,color,linewidth);
    else 
      c[pi] = its.GetGraphRecoFakes(0,color,linewidth);
   
    c[pi]->Draw("C");

    leg->AddEntry(c[pi],"FastTool: \"New SPDs\"","l");


    // ALL NEW +++++++++++++++++++++++++++++++++++++++++++

    color=4; Int_t linewidth=2;
    Int_t pi =1; 


    // for a 0.8,0.2 weight configuration
  
    DetectorK *itsU = new DetectorK((char*)"ALICE",(char*)"ITS");
    itsU->SetAtLeastCorr(atLeastcorr);
    itsU->AddLayer((char*)"bpipe", 2.0,0.0022); // beam pipe
    itsU->AddLayer((char*)"vertex",  0,     0); // dummy vertex for matrix calculation
  
    itsU->AddLayer("ddd1",  2.2 ,  X0, resRPhi, resZ); 
    itsU->AddLayer("ddd2",  3.8 ,  X0, resRPhi, resZ); 
    itsU->AddLayer("ddd3",  6.8 ,  X0, resRPhi, resZ); 
    itsU->AddLayer("ddd4", 12.4 ,  X0, resRPhi, resZ); 
    itsU->AddLayer("ddd5", 23.5 ,  X0, resRPhi, resZ); 
    itsU->AddLayer("ddd6", 39.6 ,  X0, resRPhi, resZ); 
    //    itsU->AddLayer("ddd6", 42.6 ,  X0, resRPhi, resZ); 
    itsU->AddLayer("ddd7", 43.0 ,  X0, resRPhi, resZ); 
    //    itsU->AddLayer("ddd8", 43.4 ,  X0, resRPhi, resZ); 


    if (PbPb) itsU->SetdNdEtaCent(mult);
    if(plusTPC) itsU->AddTPC(0.1,0.1);
    itsU->SetMaxRadiusOfSlowDetectors(0.1);
    itsU->SolveViaBilloir(0);
    itsU->PrintLayout();

    if (id==0)
      c[pi] = itsU->GetGraphRecoEfficiency(0,color,linewidth);
    else if (id==1)
      c[pi] = itsU->GetGraphRecoPurity(0,color,linewidth);
    else 
      c[pi] = itsU->GetGraphRecoFakes(0,color,linewidth);
    c[pi]->Draw("C");

    leg->AddEntry(c[pi],"FastTool: \"All New\" ","l");

    // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 // ALL NEW - double outer layer +++++++++++++++++++++++++++++++++++++

    color=2; Int_t linewidth=2;
    Int_t pi =3; 


    // for a 0.8,0.2 weight configuration
  
    DetectorK *itsU = new DetectorK((char*)"ALICE",(char*)"ITS");
    itsU->SetAtLeastCorr(atLeastcorr);
    itsU->AddLayer((char*)"bpipe", 2.0,0.0022); // beam pipe
    itsU->AddLayer((char*)"vertex",  0,     0); // dummy vertex for matrix calculation
  
    itsU->AddLayer("ddd1",  2.2 ,  X0, resRPhi, resZ); 
    itsU->AddLayer("ddd2",  3.8 ,  X0, resRPhi, resZ); 
    itsU->AddLayer("ddd3",  6.8 ,  X0, resRPhi, resZ); 
    itsU->AddLayer("ddd4", 12.4 ,  X0, resRPhi, resZ); 
    itsU->AddLayer("ddd5", 23.5 ,  X0, resRPhi, resZ); 
    itsU->AddLayer("ddd6", 39.6 ,  X0, resRPhi, resZ); 
    itsU->AddLayer("ddd8", 40.0 ,  X0, resRPhi, resZ); 
    itsU->AddLayer("ddd7", 43.0 ,  X0, resRPhi, resZ); 
    itsU->AddLayer("ddd9", 43.4 ,  X0, resRPhi, resZ); 


    if (PbPb) itsU->SetdNdEtaCent(mult);
    if(plusTPC) itsU->AddTPC(0.1,0.1);
    itsU->SetMaxRadiusOfSlowDetectors(0.1);
    itsU->SolveViaBilloir(0);
    itsU->PrintLayout();

    if (id==0)
      c[pi] = itsU->GetGraphRecoEfficiency(0,color,linewidth);
    else if (id==1)
      c[pi] = itsU->GetGraphRecoPurity(0,color,linewidth);
    else 
      c[pi] = itsU->GetGraphRecoFakes(0,color,linewidth);
    c[pi]->Draw("C");

    leg->AddEntry(c[pi],"FastTool: \"All New\" (2x double layer)","l");

    // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


  }

  char h[100];
  if (PbPb==0) 
    sprintf(h,"-fran");
  else 
    sprintf(h,"-Anna");

  TFile f1(Form("root/FastVsSlow_CurrentITS-PbPb%s.root",h));
  TFile f2(Form("root/FastVsSlow_NewSPDs-PbPb%s.root",h));
  TFile f3(Form("root/FastVsSlow_AllNew-PbPb%s.root",h));
  TFile f4(Form("root/FastVsSlow_AllNew-9-PbPb%s.root",h));

  //  TFile f1(Form("root/FastVsSlow_CurrentITS%s-fran.root",h));
  //  TFile f2(Form("root/FastVsSlow_NewSPDs%s-fran.root",h));
  //  TFile f3(Form("root/FastVsSlow_AllNew%s-fran.root",h));

  TH1F *eff1 = 0;
  TH1F *eff2 = 0;
  TH1F *eff3 = 0;
  TH1F *eff4 = 0;
  if (id==0) {
    eff1 = (TH1F*)f1.Get("efficiency");
    eff2 = (TH1F*)f2.Get("efficiency");
    eff3 = (TH1F*)f3.Get("efficiency");
    eff4 = (TH1F*)f4.Get("efficiency");
    eff1->GetYaxis()->SetTitle("efficiency (%)");
  } else if (id==1) {
    eff1 = (TH1F*)f1.Get("purity");
    eff2 = (TH1F*)f2.Get("purity");
    eff3 = (TH1F*)f3.Get("purity");
    eff4 = (TH1F*)f4.Get("purity");
      eff1->GetYaxis()->SetTitle("purity (%)");
  } else if (id==2) {
    eff1 = (TH1F*)f1.Get("annaEff");
    eff2 = (TH1F*)f2.Get("annaEff");
    eff3 = (TH1F*)f3.Get("annaEff");
    eff4 = (TH1F*)f4.Get("annaEff");
    eff1->GetYaxis()->SetTitle("Overall efficiency (%)");
  } else if (id==3) {
    eff1 = (TH1F*)f1.Get("fake");
    eff2 = (TH1F*)f2.Get("fake");
    eff3 = (TH1F*)f3.Get("fake");
    eff4 = (TH1F*)f4.Get("fake");
    eff1->GetYaxis()->SetTitle("Fake ratio (%)");
  }

  eff1->SetMarkerStyle(21); eff1->SetMarkerColor(1);
  eff2->SetMarkerStyle(21); eff2->SetMarkerColor(3);
  eff3->SetMarkerStyle(21); eff3->SetMarkerColor(4);
  eff4->SetMarkerStyle(21); eff4->SetMarkerColor(2);

  leg->AddEntry(eff1,"FullMC: Current ITS","PE");
  leg->AddEntry(eff2,"FullMC: \"New SPDs\"","PE");
  leg->AddEntry(eff3,"FullMC: \"All New\" ","PE");
  leg->AddEntry(eff4,"FullMC: \"All New\" (2x double layer)","PE");

  eff1->SetMinimum(0.4); eff1->SetMaximum(100);
  eff1->DrawCopy("E");
  eff2->DrawCopy("sameE");
  eff4->DrawCopy("sameE");
  eff3->DrawCopy("sameE");
  if (id!=2) {
    c[0]->Draw("C");
    c[1]->Draw("C");
    c[2]->Draw("C");
    c[3]->Draw("C");
  }
  eff2->DrawCopy("sameE");
  eff4->DrawCopy("sameE");
  eff3->DrawCopy("sameE");

  
  leg->Draw();
 



  TPaveText *pt = 0;
  if (id!=3) 
   pt = new TPaveText(0.4,0.1,1.76,30);
  else
   pt = new TPaveText(0.4,70,1.76,100);
    
  pt->SetBorderSize(1); // no shadow
  pt->SetTextFont(12);
  TText *t1 = pt->AddText("FastTool settings: "); t1->SetTextFont(32); // bold

  pt->AddText(Form("   Tracked particles: Pions;   Average rapidity: 0.45; dN_{ch}/d#eta = %d ",mult));

  //  pt->AddText("\"New SPDs\": layer radii: r = {2.2,4.8,9.1} cm");
  //  pt->AddText("\"All New\: layer radii: r = {2.2,3.8,6.8,...} cm");
  //  pt->AddText(Form("    New layer prop.: X/X_{0}=%1.1lf%%;  #sigma_{r#phi,z}=%1.0lf#mum",X0*100,resZ*1e4));
  
  TText *t2 = pt->AddText("FullMC settings: "); t2->SetTextFont(32); // bold
  if (PbPb==0) {
    pt->AddText("   Generator: AliGenHIJINGpara (parametrized PbPb event)");
    pt->AddText("   dN_{ch.pr.}/d#eta = 2070");
    pt->AddText("   Track selection: Pions, |#eta|<0.9");
  } else {
    pt->AddText("   Generator: AliGenHijing (modified);  #sqrt{s_{NN}} = 5.5 TeV");
    pt->AddText("   dN_{ch.pr.}/d#eta = 2410; Impactparameter range: b#in(0,5)  #rightarrow central PbPb ");
    pt->AddText("   Track selection: Pions, |#eta|<0.9");
  }
  //  pt->SetLabel("Settings");
  pt->SetTextAlign(12);
  pt->SetFillColor(0);
  pt->Draw();





  if (PbPb==0) {    
    myCan->SaveAs(Form("FastVsSlowSim-Eff-%d.pdf",id));
    myCan->SaveAs(Form("FastVsSlowSim-Eff-%d.eps",id));
  }else{
    myCan->SaveAs(Form("FastVsSlowSim-Eff-PbPb-%d.pdf",id));
    myCan->SaveAs(Form("FastVsSlowSim-Eff-PbPb-%d.eps",id));
  }




}



// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Extraction


void GetDetectorRadii(TArrayD *rmin,TArrayD *rmax) {
  // Loads geometry of the ITS upgrade
  AliITSsegmentationUpgrade *seg=new AliITSsegmentationUpgrade();
  Int_t nlayers = seg->GetNLayers();
  rmin->Set(nlayers);   rmax->Set(nlayers);
  for (Int_t i=0; i<nlayers; i++) {
    rmin->AddAt(seg->GetRadius(i),i);
    rmax->AddAt(seg->GetRadius(i)+seg->GetThickness(i),i);
  }
}  

void PrintDetectorGeometry() {
  gSystem->Load("libITSUpgradeBase");
  gSystem->Load("libITSUpgradeSim");
  
  TArrayD rmin(0); 
  TArrayD rmax(0); 
  GetDetectorRadii(&rmin,&rmax);
  for (Int_t i=0; i<rmin.GetSize(); i++) {
    cout<<i<<": (rmin,rmax)=("<<rmin.At(i)<<","<<rmax.At(i)<<")cm"<<endl;
  }
}


void CountTrackableMCs(TH1F *hAllMC=0, Bool_t onlyPrims=0,Bool_t onlyPion=0);
void CountPrimaries(TH1F *hMultCount);


void ExtractOutputHistos(Bool_t onlyPrims=0,Bool_t onlyPion=0,Int_t plotFlag=0) {

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

  const Int_t nbins=20;
  Double_t ptmin=0.06;//04;
  Double_t ptmax=2.0;//GeV
  Double_t logxmin = TMath::Log10(ptmin);
  Double_t logxmax = TMath::Log10(ptmax);
  Double_t binwidth = (logxmax-logxmin)/(nbins+1);
  enum {nb=nbins+1};
  Double_t xbins[nb];
  xbins[0] = ptmin;
  for (Int_t i=1;i<=nbins;i++) {
    xbins[i] = ptmin + TMath::Power(10,logxmin+(i)*binwidth);
    //    cout<<xbins[i]<<endl;
  }
  //  TH1F *h = new TH1F("h","hist with log x axis",nbins,xbins);

  TH1F *hMultCount = new TH1F("mult","averaged multiplicity (charg. prim)",80,-4.,4.);
  hMultCount->GetXaxis()->SetTitle("eta");
  hMultCount->GetYaxis()->SetTitle("N/d#eta");

  TH1F *hAllMC = new TH1F("allMC","All Tracks MC primaries",nbins,xbins);
  TH1F *hAllFound = new TH1F("allFound","All Tracks found",nbins,xbins);
  TH1F *hImperfect = new TH1F("imperfect","Imperfect tracks",nbins,xbins);
  TH1F *hPerfect = new TH1F("perfect","Perfect tracks",nbins,xbins);
  TH1F *hEff = new TH1F("efficiency","Efficiency (Perfect tracks in \"ALL MC\")",nbins,xbins);
  TH1F *hFake = new TH1F("fake","Fake tracks (Inperfect tracks in \"ALL MC\")",nbins,xbins);
  TH1F *hPurity = new TH1F("purity","Purity (Perfect tracks in \"All Found\")",nbins,xbins);
  TH1F *hAnna = new TH1F("annaEff","AnnalisaEff ",nbins,xbins);
  TH1F *hNoMCTrack = new TH1F("noMCtrack","noMCtrack ",nbins,xbins);

  TH1F *hEta = new TH1F("","",50,-2,2);
  //  TH1F *hEtaMC = new TH1F("","",50,-2,2);

  TH2D *h2Ddca = new TH2D("dca2D","DCAvsPt2D",nbins,xbins,50,-0.05,0.05);
  TH2D *h2Dpt = new TH2D("dPt2D","dPtdvsPt2D",nbins,xbins,50,-25,25);

  // open run loader and load gAlice, kinematics and header
  AliRunLoader* runLoader = AliRunLoader::Open("galice.root");
  if (!runLoader) {
    Error("Check kine", "getting run loader from file %s failed",
          "galice.root");
    return;
  }
  runLoader->LoadgAlice();
  gAlice = runLoader->GetAliRun();
  if (!gAlice) {
    Error("Check kine", "no galice object found");
    return;
  }
  runLoader->LoadHeader();
  runLoader->LoadKinematics();

  TFile* esdFile = TFile::Open("AliESDs.root");
  if (!esdFile || !esdFile->IsOpen()) {
    Error("CheckESD", "opening ESD file %s failed", "AliESDs.root");
    return;
  }
  AliESDEvent *esd = new AliESDEvent();
  TTree* tree = (TTree*) esdFile->Get("esdTree");
  if (!tree) {
    Error("CheckESD", "no ESD tree found");
    return;
  }
  esd->ReadFromTree(tree);
  
  Int_t nTrackTotalMC = 0;
  Int_t nTrackFound = 0;
  Int_t nTrackImperfect = 0;
  Int_t nTrackPerfect = 0;
  Int_t nNoMCTrack = 0;

  
  for(Int_t iEv =0; iEv<tree->GetEntries(); iEv++){
    tree->GetEvent(iEv);
    runLoader->GetEvent(iEv);
    
    printf("+++ event %i (of %lld) +++++++++++++++++++++++  # ESDtracks: %d \n",iEv,tree->GetEntries()-1,esd->GetNumberOfTracks());
    Int_t nESDtracks = esd->GetNumberOfTracks();
    for (Int_t iTrack = 0; iTrack < nESDtracks; iTrack++) {
      AliESDtrack* track = esd->GetTrack(iTrack);
      if (!(iTrack%1000)) printf("event %i: ESD track count %d (of %d)\n",iEv,iTrack,nESDtracks);

      Int_t label = track->GetLabel();
  
      Int_t idx[12];
      //      Int_t ncl = track->GetITSclusters(idx);
   
      if(label<0) {
	//	cout<< " ESD track label " << label;
	//	cout<<"  ---> imperfect track (label "<<label<<"<0) !! -> track Pt: "<< track->Pt() << endl;
      }

      AliStack* stack = runLoader->Stack();
      //     nTrackTotalMC += stack->GetNprimary();
    

      TParticle* particle = stack->Particle(TMath::Abs(label)); 
      Double_t pt = track->Pt();
      
      if(particle) {

	if (TMath::Abs(particle->Eta())>etaCut) continue;

	Double_t ptMC = particle->Pt();

	// Efficiencies
	if (onlyPion && TMath::Abs(particle->GetPdgCode())!=211) continue;

	if ( (!onlyPrims) || stack->IsPhysicalPrimary(TMath::Abs(label))) {
	  //  cout<<" # clusters "<<ncl<<endl;

	  nTrackFound++;
	  hAllFound->Fill(ptMC);
	  hEta->Fill(track->Eta());
	  
	  if (label<0) {
	    nTrackImperfect++;
	    hImperfect->Fill(ptMC);
	  } else {
	    nTrackPerfect++;
	    hPerfect->Fill(ptMC);
	  }

	}


	// following only for "true tracks, pions

	if(particle->Pt() < 0.001)continue;
	if (TMath::Abs(particle->GetPdgCode())!=211) continue;
	if (label>0) {
	  
	  // Impact parameters for Pions only
	  Double_t dca = track->GetD(0,0,0.5);
	  h2Ddca->Fill(ptMC,dca);
	  
	  // Pt resolution for Pions only
	  Double_t dPt = (pt-ptMC)/ptMC*100;
	  h2Dpt->Fill(ptMC,dPt);
	}

      } else {
	nNoMCTrackFound++;
	hNoMCTrack->Fill(pt);
	cout<<" according MC particle not found"<<endl;
      }
      
    } //entries track esd
  

  }//entries tree
  runLoader->UnloadHeader();
  runLoader->UnloadKinematics();
  delete runLoader;

 
  // Count trackable MC tracks
  CountTrackableMCs(hAllMC, onlyPrims, onlyPion);


  // Count trackable MC tracks
  CountPrimaries(hMultCount);

 


  // Get Errors right
  hMultCount->Sumw2();
  hAllMC->Sumw2();   
  hAllFound->Sumw2();
  hPerfect->Sumw2(); 
  hImperfect->Sumw2(); 
  h2Dpt->Sumw2();
  h2Ddca->Sumw2();

  // -- Global efficienies

  nTrackTotalMC = hAllMC->GetEntries();
  Double_t eff = ((Double_t)nTrackPerfect)/nTrackTotalMC;
  printf("-> Total number of events: %lld -> MCtracks %d -> nPerfect %d  -> Eff: %3.2lf \n",
	 tree->GetEntries(),nTrackTotalMC,nTrackPerfect,eff);

  Double_t purity = ((Double_t)nTrackPerfect)/nTrackFound;
  printf("-> Total number of events: %lld -> FoundTracks %d -> nPerfect %d  -> Purity: %3.2lf \n",
	 tree->GetEntries(),nTrackFound,nTrackPerfect,purity);

  // Efficiencies - and normalize to 100%

  TF1 f1("f1","100+x*0",0.,1.e3);

  hPurity->Divide(hPerfect,hAllFound,1,1,"b"); 
  hPurity->Multiply(&f1);
  hPurity->SetMarkerColor(kGreen);
  hPurity->SetMarkerStyle(21);
  hPurity->GetXaxis()->SetTitle("transverse momentum p_{t} (GeV)");
  hPurity->SetStats(0);

  hPurity->GetYaxis()->SetRangeUser(0,100);
  hPurity->SetTitle("Efficiency & Purity");

  hEff->Divide(hPerfect,hAllMC,1,1,"b");
  hEff->Multiply(&f1);
  hEff->GetXaxis()->SetTitle("transverse momentum p_{t} (GeV)");
  hEff->SetMarkerColor(kBlue);
  hEff->SetMarkerStyle(21);
  hEff->SetStats(0);

  hFake->Divide(hImperfect,hAllMC,1,1,"b");
  hFake->Multiply(&f1);
  hFake->GetXaxis()->SetTitle("transverse momentum p_{t} (GeV)");
  hFake->SetMarkerColor(kRed);
  hFake->SetMarkerStyle(21);
  hFake->SetStats(0);


  hAnna->Divide(hAllFound,hAllMC,1,1,"b");
  hAnna->Multiply(&f1);
  hAnna->GetXaxis()->SetTitle("transverse momentum p_{t} (GeV)");
  hAnna->SetMarkerColor(kBlack);
  hAnna->SetMarkerStyle(21);
  hAnna->SetStats(0);

  TCanvas *c1 = new TCanvas("c1","NoMCTrackFound");//,200,10,900,900);
  TVirtualPad *pad =   c1->cd();
  pad->SetGridx();   pad->SetGridy();
  hNoMCTrack->Draw();

  TCanvas *c2 = new TCanvas("c2","Eff&Purity");//,200,10,900,900);
  TVirtualPad *pad =   c2->cd();
  pad->SetGridx();   pad->SetGridy();
  //  pad->SetLogx();

  hPurity->Draw("E");
  hEff->Draw("Same E");
  hFake->Draw("Same E");
  hAnna->Draw("Same E");

  TLegend *leg = new TLegend(0.1,0.8,0.6,0.9);leg->SetFillColor(0);
  leg->AddEntry(hPurity,"Purity (\"Perfect tracks\" within \"Found Tracks\")","PE");
  leg->AddEntry(hEff,"Efficiency (\"Perfect tracks\" within \"MC findable Tracks\")","PE");
  leg->AddEntry(hFake,"Fake (\"Inperfect tracks\" within \"MC findable Tracks\")","PE");
  leg->AddEntry(hAnna,"AnnaLisa - Efficiency (\"Found tracks\" within \"MC findable Tracks\")","PE");
  leg->Draw();


  if (plotFlag==1){
    hAllMC->GetXaxis()->SetTitle("transverse momentum p_{t} (GeV)");
    hAllMC->Draw();  // MC pt distribution
    hAllFound->SetLineColor(2);
    hAllFound->Draw("same");  // MC pt distribution
  }
 
 
  /*

  .L ~/ITSupgrade/BuildDetector/DetectorK.cxx+
  
  // All NEW
  DetectorK its("ALICE","ITS");
  its.MakeAliceAllNew(0);
  its.SetMaxRadiusOfSlowDetectors(0.01);
  its.SolveViaBilloir(0);
  TGraph *c = its.GetGraphRecoEfficiency(0,3,2);
  c->Draw("C");


  // Current
  DetectorK its("ALICE","ITS");
  its.MakeAliceCurrent(0,0);
  its.SetMaxRadiusOfSlowDetectors(0.01);
  its.SolveViaBilloir(0);
  TGraph *c = its.GetGraphRecoEfficiency(0,4,2);
  c->Draw("C");

  */

  TCanvas *c3 = new TCanvas("c3","impact");//,200,10,900,900);
  c3->Divide(2,1); c3->cd(1);
  // Impact parameter

  // Impact parameter resolution ---------------
  h2Ddca->Draw("colz");
  h2Ddca->FitSlicesY() ;
  TH2D *dcaM = (TH2D*)gDirectory->Get("dca2D_1"); dcaM->Draw("same");
  TH2D *dcaRMS = (TH2D*)gDirectory->Get("dca2D_2"); //dcaRMS->Draw();
  TGraphErrors *d0 = new TGraphErrors(); 
  for (Int_t ibin =1; ibin<=dcaRMS->GetXaxis()->GetNbins(); ibin++) {
    d0->SetPoint(     ibin-1,dcaRMS->GetBinCenter(ibin),dcaRMS->GetBinContent(ibin)*1e4); // microns
    d0->SetPointError(ibin-1,0,dcaRMS->GetBinError(ibin)*1e4); // microns
  }
  d0->SetMarkerStyle(21);
  d0->SetMaximum(200);  d0->SetMinimum(0);
  d0->GetXaxis()->SetTitle("transverse momentum p_{t} (GeV)");
  d0->GetYaxis()->SetTitle("R-#phi Pointing Resolution (#mum)");
  d0->SetName("dca");  d0->SetTitle("DCAvsPt");

  c3->cd(1);  h2Ddca->Draw("surf2");
  c3->cd(2);  d0->Draw("APE");

  // PT RESOLUTION ------------
  TCanvas *c4 = new TCanvas("c4","pt resolution");//,200,10,900,900);
  c4->Divide(2,1); c4->cd(1);
  // Impact parameter
  h2Dpt->Draw("colz");
  h2Dpt->FitSlicesY() ;
  TH2D *dPtM = (TH2D*)gDirectory->Get("dPt2D_1"); dPtM->Draw("same");
  TH2D *dPtRMS = (TH2D*)gDirectory->Get("dPt2D_2"); // dPtRMS->Draw("");
  TGraphErrors *gPt = new TGraphErrors(); 
  for (Int_t ibin =1; ibin<=dPtRMS->GetXaxis()->GetNbins(); ibin++) {
    gPt->SetPoint(     ibin-1,dPtRMS->GetBinCenter(ibin),dPtRMS->GetBinContent(ibin)); 
    gPt->SetPointError(ibin-1,0,dPtRMS->GetBinError(ibin)); 
  }
  gPt->SetMarkerStyle(21);
  gPt->SetMaximum(20);  gPt->SetMinimum(0);
  gPt->GetXaxis()->SetTitle("transverse momentum p_{t} (GeV)");
  gPt->GetYaxis()->SetTitle("relative momentum resolution (%)");
  gPt->SetName("dPt");  gPt->SetTitle("DPTvsPt");

  c4->cd(1);  h2Dpt->Draw("surf2");
  c4->cd(2);  gPt->Draw("APE");


  // EXPORT --------

  TFile f("histos.root","RECREATE");

  hMultCount->Write();
  hAllMC->Write();
  hAllFound->Write();
  hImperfect->Write();
  hPerfect->Write();
  hNoMCTrack->Write();

  hPurity->Write();
  hEff->Write();
  hFake->Write();
  hAnna->Write();

  h2Ddca->Write();
  d0->Write();

  h2Dpt->Write();
  gPt->Write();

  f.Close();

  return;

}

void CountTrackableMCs(TH1F *hAllMC, Bool_t onlyPrims,Bool_t onlyPion) {
  
  gSystem->Load("libITSUpgradeBase");
  gSystem->Load("libITSUpgradeSim");

 // open run loader and load gAlice, kinematics and header
  AliRunLoader* runLoader = AliRunLoader::Open("galice.root");
  if (!runLoader) {
    Error("Check kine", "getting run loader from file %s failed",
          "galice.root");
    return;
  }
  runLoader->LoadHeader();
  runLoader->LoadKinematics();
  runLoader->LoadTrackRefs();

  AliLoader *dl = runLoader->GetDetectorLoader("ITS");

  //Trackf
  TTree *trackRefTree = 0x0; 
  TClonesArray *trackRef = new TClonesArray("AliTrackReference",1000);

  //  TH1F *hRef = new TH1F("","",100,0,100);
  TH1F *hR = new TH1F("","",100,0,100);
  if (hAllMC==0) hAllMC = new TH1F("","",100,0.1,2);
  Float_t ptmin = hAllMC->GetBinCenter(1)-hAllMC->GetBinWidth(1)/2;
  Float_t ptmax = hAllMC->GetBinCenter(hAllMC->GetNbinsX())+hAllMC->GetBinWidth(hAllMC->GetNbinsX())/2;
  //  Int_t nAllMC = 0;

  // Detector geometry
  TArrayD rmin(0);   TArrayD rmax(0); 
  GetDetectorRadii(&rmin,&rmax);
  TArrayI nLaySigs(rmin.GetSize());

  printf("Counting trackable MC tracks ...\n");
  
  for(Int_t iEv =0; iEv<runLoader->GetNumberOfEvents(); iEv++){
    Int_t nTrackableTracks = 0;
    runLoader->GetEvent(iEv);
    AliStack* stack = runLoader->Stack();  
    printf("+++ event %i (of %d) +++++++++++++++++++++++  # total MCtracks: %d \n",iEv,runLoader->GetNumberOfEvents()-1,stack->GetNtrack());

    trackRefTree=runLoader->TreeTR();
    TBranch *br = trackRefTree->GetBranch("TrackReferences");
    if(!br) {
      printf("no TR branch available , exiting \n");
      return;
    }
    br->SetAddress(&trackRef);

    // init the trackRef tree 
    trackRefTree=runLoader->TreeTR();
    trackRefTree->SetBranchAddress("TrackReferences",&trackRef);
 
    // Count trackable MC tracks
    for (Int_t iMC=0; iMC<stack->GetNtrack(); iMC++) {

      TParticle* particle = stack->Particle(iMC); 
      if (TMath::Abs(particle->Eta())>etaCut) continue;
      if (onlyPrims && !stack->IsPhysicalPrimary(iMC)) continue;
      if (onlyPion && TMath::Abs(particle->GetPdgCode())!=211) continue;


      Bool_t isTrackable = 0;
      nLaySigs.Reset(0);
 
      trackRefTree->GetEntry(stack->TreeKEntry(iMC));
      Int_t nref=trackRef->GetEntriesFast();
      for(Int_t iref =0; iref<nref; iref++){
	AliTrackReference *trR = (AliTrackReference*)trackRef->At(iref);
	if(!trR) continue;
	if(trR->DetectorId()!=AliTrackReference::kITS) continue;
	Float_t radPos = trR->R();
	hR->Fill(radPos);
	for (Int_t il=0; il<rmin.GetSize();il++) {
	  if (radPos>=rmin.At(il)-0.1 && radPos<=rmax.At(il)+0.1) {
	    //	    cout<<"  in Layer "<<il<<" "<<radPos;
	    nLaySigs.AddAt(1.,il);
	    //	    cout<<" "<<nLaySigs.At(il)<<endl;
	  }
	}
      }

      if (nLaySigs.GetSum()>=3) {
	isTrackable =1;
	//	cout<<nLaySigs.GetSum()<<endl;
      }
      
      if (isTrackable) {
	Double_t ptMC = particle->Pt();
	//	Double_t etaMC = particle->Eta();
	//	if (ptMC>ptmin&&ptMC<ptmax) {nTrackableTracks++;hAllMC->Fill(ptMC);}
	if (ptMC>ptmin) {nTrackableTracks++;hAllMC->Fill(ptMC);}

      }

      
    } // entries tracks MC
    printf(" -> trackable MC tracks: %d (%d)\n",nTrackableTracks,hAllMC->GetEntries());
  }//entries Events
  

  hR->DrawCopy();
  hAllMC->DrawCopy();
  runLoader->UnloadHeader();
  runLoader->UnloadKinematics();
  delete runLoader;

}

void CountPrimaries(TH1F *hMultCount) {

  if (hMultCount==0) hMultCount = new TH1F("mult","averaged multiplicity (charg. prim)",80,-4.,4.);
  
  AliRunLoader *rl = AliRunLoader::Open("galice.root");
  rl->SetKineFileName("Kinematics.root");
  rl->LoadHeader();
  rl->LoadKinematics(); 
  Int_t nEvents = rl->GetNumberOfEvents();
  cout<< "N events "<<nEvents<<endl;
  for(Int_t iEv=0; iEv<nEvents; iEv++){
    rl->GetEvent(iEv);
    AliStack *s = rl->Stack();
    for(Int_t iP=0; iP<s->GetNtrack(); iP++ ){
      TParticle *p = s->Particle(iP);
      if (!(s->IsPhysicalPrimary(iP))) continue;
      Float_t eta = p->Eta();
      if (p->Pt()>0.06) {
	hMultCount->Fill(eta);
      }
    }
  }

  hMultCount->DrawCopy();
  rl->UnloadHeader();
  rl->UnloadKinematics();
  delete rl;



}


void plotMerged(Bool_t onlyPlot=0) {

  gStyle->SetPalette(1);
 
  TFile f("histoSum.root","UPDATE");

  TH1F* hAllMC = f.Get("allMC");
  TH1F* hAllFound= f.Get("allFound");
  TH1F* hImperfect= f.Get("imperfect");
  TH1F* hPerfect= f.Get("perfect");
  TH1F* hNoMCTrack= f.Get("noMCtrack");
  
  
  // have to be recalculated
  TH1F* hPurity = f.Get("purity");
  TH1F* hEff= f.Get("efficiency");
  TH1F* hFake= f.Get("fake");
  TH1F* hAnna= f.Get("annaEff");

  TH2D* h2Ddca= f.Get("dca2D");
  TGraphErrors *d0= f.Get("dca");

  TH2D* h2Dpt= f.Get("dPt2D");
  TGraphErrors *gPt= f.Get("dPt");


  if (!onlyPlot) {
    /*    // Get Errors right
    hAllMC->Sumw2();   
    hAllFound->Sumw2();
    hPerfect->Sumw2(); 
    hImperfect->Sumw2(); 
    h2Dpt->Sumw2();
    h2Ddca->Sumw2();
    */

    // Efficiencies - and normalize to 100%
    
    TF1 f1("f1","100+x*0",0.,1.e3);
    
    hPurity->Divide(hPerfect,hAllFound,1,1,"b"); 
    hPurity->Multiply(&f1);
    hPurity->SetMarkerColor(kGreen);
    hPurity->SetMarkerStyle(21);
    hPurity->GetXaxis()->SetTitle("transverse momentum p_{t} (GeV)");
    hPurity->SetStats(0);
    
    hPurity->GetYaxis()->SetRangeUser(0,100);
    hPurity->SetTitle("Efficiency & Purity");
    
    hEff->Divide(hPerfect,hAllMC,1,1,"b");
    hEff->Multiply(&f1);
    hEff->GetXaxis()->SetTitle("transverse momentum p_{t} (GeV)");
    hEff->SetMarkerColor(kBlue);
    hEff->SetMarkerStyle(21);
    hEff->SetStats(0);
    
    hFake->Divide(hImperfect,hAllMC,1,1,"b");
    hFake->Multiply(&f1);
    hFake->GetXaxis()->SetTitle("transverse momentum p_{t} (GeV)");
    hFake->SetMarkerColor(kRed);
    hFake->SetMarkerStyle(21);
    hFake->SetStats(0);
    
    hAnna->Divide(hAllFound,hAllMC,1,1,"b");
    hAnna->Multiply(&f1);
    hAnna->GetXaxis()->SetTitle("transverse momentum p_{t} (GeV)");
    hAnna->SetMarkerColor(kBlack);
    hAnna->SetMarkerStyle(21);
    hAnna->SetStats(0);
    
    
    // Impact parameter resolution ---------------
    TCanvas *c3 = new TCanvas("c3","impact");//,200,10,900,900);
    c3->Divide(2,1); c3->cd(1);
    h2Ddca->DrawCopy("colz");
    h2Ddca->FitSlicesY() ;
    TH2D *dcaM = (TH2D*)gDirectory->Get("dca2D_1"); dcaM->Draw("same");
    TH2D *dcaRMS = (TH2D*)gDirectory->Get("dca2D_2"); //dcaRMS->Draw();
    TGraphErrors *d0 = new TGraphErrors(); 
    for (Int_t ibin =1; ibin<=dcaRMS->GetXaxis()->GetNbins(); ibin++) {
      d0->SetPoint(     ibin-1,dcaRMS->GetBinCenter(ibin),dcaRMS->GetBinContent(ibin)*1e4); // microns
      d0->SetPointError(ibin-1,0,dcaRMS->GetBinError(ibin)*1e4); // microns
    }
    d0->SetMarkerStyle(21);
    d0->SetMaximum(200);  d0->SetMinimum(0);
    d0->GetXaxis()->SetTitle("transverse momentum p_{t} (GeV)");
    d0->GetYaxis()->SetTitle("R-#phi Pointing Resolution (#mum)");
    d0->SetName("dca");  d0->SetTitle("DCAvsPt");
    //  c3->cd(1);  h2Ddca->Draw("surf2");
    c3->cd(2);  d0->Draw("APE");
    
    // PT RESOLUTION ------------
    TCanvas *c4 = new TCanvas("c4","pt resolution");//,200,10,900,900);  
    c4->Divide(2,1); c4->cd(1);
    h2Dpt->DrawCopy("colz");
    h2Dpt->FitSlicesY() ;
    TH2D *dPtM = (TH2D*)gDirectory->Get("dPt2D_1"); dPtM->Draw("same");
    TH2D *dPtRMS = (TH2D*)gDirectory->Get("dPt2D_2"); // dPtRMS->Draw("");
    TGraphErrors *gPt = new TGraphErrors(); 
    for (Int_t ibin =1; ibin<=dPtRMS->GetXaxis()->GetNbins(); ibin++) {
      gPt->SetPoint(     ibin-1,dPtRMS->GetBinCenter(ibin),dPtRMS->GetBinContent(ibin)); 
      gPt->SetPointError(ibin-1,0,dPtRMS->GetBinError(ibin)); 
    }
    gPt->SetMarkerStyle(21);
    gPt->SetMaximum(20);  gPt->SetMinimum(0);
    gPt->GetXaxis()->SetTitle("transverse momentum p_{t} (GeV)");
    gPt->GetYaxis()->SetTitle("relative momentum resolution (%)");
    gPt->SetName("dPt");  gPt->SetTitle("DPTvsPt");
    //  c4->cd(1);  h2Dpt->Draw("surf2");
    c4->cd(2);  gPt->Draw("APE");


    // overwrite with normalized graphs
    hPurity->Write();
    hEff->Write();
    hFake->Write();
    hAnna->Write();
    h2Ddca->Write();
    d0->Write();
    h2Dpt->Write();
    gPt->Write();
   
  }
  
  // Plots

  TCanvas *c2 = new TCanvas("c2","Eff&Purity");//,200,10,900,900);
  TVirtualPad *pad =   c2->cd();
  pad->SetGridx();   pad->SetGridy();
  //  pad->SetLogx();

  TLegend *leg = new TLegend(0.1,0.8,0.6,0.9);leg->SetFillColor(0);
  leg->AddEntry(hPurity,"Purity (\"Perfect tracks\" within \"Found Tracks\")","PE");
  leg->AddEntry(hEff,"Efficiency (\"Perfect tracks\" within \"MC findable Tracks\")","PE");
  leg->AddEntry(hFake,"Fake (\"Inperfect tracks\" within \"MC findable Tracks\")","PE");
  leg->AddEntry(hAnna,"AnnaLisa - Efficiency (\"Found tracks\" within \"MC findable Tracks\")","PE");
 

  hPurity->DrawCopy("E");
  hEff->DrawCopy("Same E");
  hFake->DrawCopy("Same E");
  hAnna->DrawCopy("Same E");
  leg->Draw();

  c2->SaveAs("EffPlot.png");

  f.Close();



}

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