ROOT logo
#if !defined(__CINT__) || defined(__MAKECINT__)
   #include <TMath.h>
   #include <TROOT.h>
   #include <Riostream.h>
   #include <TCanvas.h>
   #include <TStyle.h>
   #include <TString.h>
   #include <TLegend.h>
   #include <TFile.h>
   #include <TList.h>
   #include <TH1F.h>
   #include <TH1D.h>
   #include <TF2.h>
   #include <TFitResult.h>
   #include <TFitResultPtr.h>
   #include <TH2F.h>
   #include <TH3F.h>
#endif

TFile *fAss;
TFile *fGen;
TFile *fRaw;

void Generated();
void Corrections(Float_t cMin, Float_t cMax, TString centr);
void RawYields(Float_t cMin, Float_t cMax, TString centr);
void Spectra(TString centr);

void SpectraV0CutVariations(Float_t cMin, Float_t cMax, TString centr) {

  fRaw=TFile::Open((centr+"/AliV0CutVariations.root").Data());
  fAss=TFile::Open((centr+"/AliV0CutVariationsMC.root").Data());
  fGen=TFile::Open("Generated.root");
  if (!fGen) {
     Generated();
     fGen=TFile::Open("Generated.root");
  }

  Corrections(cMin,cMax,centr);
  RawYields(cMin,cMax,centr);
  Spectra(centr);

  fAss->Close();
  fGen->Close();
  fRaw->Close();
}

TH1 *GetEfficiency(Float_t, Float_t, const Char_t *, const Char_t *);
TH1 *GetFeedDown(Float_t, Float_t, TString);

void Corrections(Float_t cmin, Float_t cmax, TString centr) {

  TString name;

  TH1 *effK0s=
  GetEfficiency(cmin, cmax, "fK0sAs","f3dHistPrimRawPtVsYVsMultK0Short");
  name="eff_K0s_";
  name+=centr;
  effK0s->SetName(name.Data());

  TH1 *effLambda=
  GetEfficiency(cmin, cmax, "fLambdaAs","f3dHistPrimRawPtVsYVsMultLambda");
  name="eff_Lambda_";
  name+=centr;
  effLambda->SetName(name.Data());
    TH1 *fdLambda=GetFeedDown(cmin, cmax, centr);
    name="fd_Lambda_";
    name+=centr;
    fdLambda->SetName(name.Data());


  TH1 *effLambdaBar=
  GetEfficiency(cmin,cmax,"fLambdaBarAs","f3dHistPrimRawPtVsYVsMultAntiLambda");
  name="eff_LambdaBar_";
  name+=centr;
  effLambdaBar->SetName(name.Data());

  TFile *f=TFile::Open("SpectraV0CutVariations.root","update");
    effK0s->Write();
    effLambda->Write();    fdLambda->Write();
    effLambdaBar->Write();
  f->Close();
}

TH1 *GetEfficiency(Float_t cMin, Float_t cMax, 
		   const Char_t *chis, const Char_t *znam) {
  Double_t xbins[]={
   0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,
   1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0,
   2.2,2.4,2.6,2.8,3.0,3.2,3.4,3.6,3.8,4.0,
   4.5,5.0,5.5,6.5,8.0,10.0,12.0
  };
  Int_t nb=sizeof(xbins)/sizeof(Double_t);
  Int_t nb1=nb-1;

  // Numerator
  fAss->cd();
  TH2F *f2d=(TH2F*)gDirectory->Get(chis); f2d->Sumw2();
  TH1D *hAs=f2d->ProjectionX("hAs",0,-1,"e"); 

  // Denominator
  fGen->cd();
  TH3F *f3d = (TH3F*)gDirectory->Get(znam);
  f3d->Sumw2();

  TH1D *fpt = f3d->ProjectionX("fpt",
                  f3d->GetYaxis()->FindBin(-0.5+1e-2),
                  f3d->GetYaxis()->FindBin(+0.5-1e-2),
                  f3d->GetZaxis()->FindBin(cMin+1e-2),
                  f3d->GetZaxis()->FindBin(cMax-1e-2)
              );
   TH1 *hMc=fpt->Rebin(nb1,"hMc",xbins);
  
  //Efficiency 
  TH1 *eff = (TH1*)hAs->Clone();
  eff->Divide(hAs,hMc,1,1,"b");

  return eff;
}

Bool_t GetBinContentError(const TH1 *h, Double_t x, Double_t &c, Double_t &e) {
   Int_t i1=h->GetXaxis()->FindFixBin(x);
   if (i1 <=0) return kFALSE;
   Int_t nb=h->GetNbinsX();
   if (i1 >nb) return kFALSE;

   Double_t x1=h->GetBinCenter(i1);

   if (TMath::Abs(x1-x) < 1e-13) {
     c=h->GetBinContent(i1);
     e=h->GetBinError(i1);
     return kTRUE;
   }

   Int_t i2 = (x1 < x) ? i1+1 : i1-1;
   if (i2 <=0) i2=i1+1;
   if (i2 >nb) i2=i1-1;
   Double_t x2=h->GetBinCenter(i2);

   Double_t c1=h->GetBinContent(i1);
   Double_t c2=h->GetBinContent(i2);
   c = c1 + (x - x1)*(c2 - c1)/(x2 - x1);
   e = 0.5*(h->GetBinError(i1) + h->GetBinError(i2));

   return kTRUE;
}

TH1 *GetFeedDown(Float_t cMin, Float_t cMax, TString cent) {
  // Get the FD matrix
  fAss->cd();
  TH3F *f3d = (TH3F*)gDirectory->Get("fLambdaFromXi");
  f3d->Sumw2();
  TH2D *fdMat = (TH2D*)f3d->Project3D("zxe");
  const Int_t nbx=fdMat->GetNbinsX();
  const Int_t nby=fdMat->GetNbinsY();
  TAxis *xiPtAxis=fdMat->GetYaxis();

  // Re-normalise the FD matrix with MC Xi spectrum
  fGen->cd();
  f3d = (TH3F*)gDirectory->Get("f3dHistGenPtVsYVsMultXiMinus");
  f3d->Sumw2();

  TH1D *hMcXi = f3d->ProjectionX("fpt",
                  f3d->GetYaxis()->FindBin(-0.5+1e-2),
                  f3d->GetYaxis()->FindBin(+0.5-1e-2),
                  f3d->GetZaxis()->FindBin(cMin+1e-2),
                  f3d->GetZaxis()->FindBin(cMax-1e-2)
              );

  TH2D *h2McXi=new TH2D(*fdMat); 
  h2McXi->Reset();
  h2McXi->Sumw2();

  for (Int_t i=1; i<=nbx; i++) {
      for (Int_t j=1; j<=nby; j++) {
	  Double_t pt=xiPtAxis->GetBinCenter(j);
          Double_t c=0.,e=0.;
          if (!GetBinContentError(hMcXi,pt,c,e)) continue;
          h2McXi->SetBinContent(i,j,c);
          h2McXi->SetBinError(i,j,e);
      }
  }
  fdMat->Divide(h2McXi);
  delete h2McXi;


  // Multiply the re-normalised matrix with the real Xi spectrum
  TString fileName("systcorrectedpt_cent");
     //*** "Dictionary" ***
     if (cent=="0005") cent="0010";
     if (cent=="6080") cent="6090";
     if (cent=="8090") cent="6090";
  TFile *f=TFile::Open((fileName+cent+".root").Data());
     TH1F *hReXi=(TH1F*)gDirectory->Get("correctedpt_0");

     TH2D *h2ReXi=new TH2D(*fdMat); 
     h2ReXi->Reset();
     h2ReXi->Sumw2();

     for (Int_t i=1; i<=nbx; i++) {
         for (Int_t j=1; j<=nby; j++) {
	    Double_t pt=xiPtAxis->GetBinCenter(j);
            Double_t c=0.,e=0.;
            if (!GetBinContentError(hReXi,pt,c,e)) continue;
            h2ReXi->SetBinContent(i,j,c);
            h2ReXi->SetBinError(i,j,e);
         }
     }
     fdMat->Multiply(h2ReXi);
     delete h2ReXi;
     f->Close();

  TH1 *fd=fdMat->ProjectionX("_px",0,-1,"e");
  fd->Scale(0.1,"width");
  return fd;
}


void RawYields(Float_t cMin, Float_t cMax, TString centr) {
  TString name;
  TH2F *f2d=0;

  //+++ Number of events for normalisation
  TFile *file=TFile::Open("LHC10h_pass2/Merged.root");
    TList *v0list=(TList *)gFile->Get("PWGLFExtractV0_PP/clistV0");
    TH1F *fMult=(TH1F*)v0list->FindObject("fHistMultiplicity");
    Int_t i1=fMult->GetXaxis()->FindBin(cMin+1e-2);
    Int_t i2=fMult->GetXaxis()->FindBin(cMax-1e-2);
    Float_t nEvents=fMult->Integral(i1,i2);
  file->Close();

  fRaw->cd();

  name="raw_K0s_";
  name+=centr;  
  f2d=(TH2F*)gDirectory->Get("fK0sSi"); f2d->Sumw2();
  TH1D *rawK0s=f2d->ProjectionX(name,0,-1,"e");
  rawK0s->Scale(1/nEvents,"width");
 
  name="raw_Lambda_";
  name+=centr;  
  f2d=(TH2F*)gDirectory->Get("fLambdaSi"); f2d->Sumw2();
  TH1D *rawLambda=f2d->ProjectionX(name,0,-1,"e");
  rawLambda->Scale(1/nEvents,"width");
 
  name="raw_LambdaBar_";
  name+=centr;  
  f2d=(TH2F*)gDirectory->Get("fLambdaBarSi"); f2d->Sumw2();
  TH1D *rawLambdaBar=f2d->ProjectionX(name,0,-1,"e");
  rawLambdaBar->Scale(1/nEvents,"width");
 
  TFile *f=TFile::Open("SpectraV0CutVariations.root","update");
    rawK0s->Write();
    rawLambda->Write();
    rawLambdaBar->Write();
  f->Close();
}

Double_t fd(Double_t x) {
  //Effective FD correction
   return 0.219901 + 0.0322588*x - 0.0173934*x*x + 0.00179039*x*x*x - 5.67881e-05*x*x*x*x;
}

void Spectra(TString centr) {
  TString name;
  TH1 *eff=0;
  TH1D *raw=0;
  TH1D *spe=0;

  TFile *f=TFile::Open("SpectraV0CutVariations.root","update");
    name="eff_K0s_";
    name+=centr;
    eff = (TH1*)gDirectory->Get(name.Data());
    name="raw_K0s_";
    name+=centr;
    raw = (TH1D*)gDirectory->Get(name.Data());
    spe = new TH1D(*raw);
    spe->Divide(eff);
    name="K0s_";
    name+=centr;
    spe->SetName(name.Data());
    spe->Write();  

    name="eff_Lambda_";
    name+=centr;
    eff = (TH1*)gDirectory->Get(name.Data());
    name="raw_Lambda_";
    name+=centr;
    raw = (TH1D*)gDirectory->Get(name.Data());
    spe = new TH1D(*raw);
    for (Int_t i=1; i<=spe->GetNbinsX(); i++) {
        Double_t pt=spe->GetBinCenter(i);
        Double_t c=spe->GetBinContent(i);
        c -= (c*fd(pt));
        spe->SetBinContent(i,c);
    }
    spe->Divide(eff);
    name="Lambda_";
    name+=centr;
    spe->SetName(name.Data());
    spe->Write();  

    name="eff_LambdaBar_";
    name+=centr;
    eff = (TH1*)gDirectory->Get(name.Data());
    name="raw_LambdaBar_";
    name+=centr;
    raw = (TH1D*)gDirectory->Get(name.Data());
    spe = new TH1D(*raw);
    for (Int_t i=1; i<=spe->GetNbinsX(); i++) {
        Double_t pt=spe->GetBinCenter(i);
        Double_t c=spe->GetBinContent(i);
        c -= (c*fd(pt));
        spe->SetBinContent(i,c);
    }
    spe->Divide(eff);
    name="LambdaBar_";
    name+=centr;
    spe->SetName(name.Data());
    spe->Write();  
  f->Close();
}

void Generated() {
  TList *v0listMC=0;
  TH3F *h3=0;
  //
  TFile::Open("LHC11a10b_plus/Merged.root");  
  v0listMC=(TList *)gFile->Get("PWGLFExtractPerformanceV0_PP_MC/clistV0MC");

  TH3F *k0s = 
    (TH3F*)v0listMC->FindObject("f3dHistPrimRawPtVsYVsMultK0Short");
  TH3F *k0s_nonInj = 
    (TH3F*)v0listMC->FindObject("f3dHistPrimRawPtVsYVsMultNonInjK0Short");

  TH3F *lam = 
    (TH3F*)v0listMC->FindObject("f3dHistPrimRawPtVsYVsMultLambda");
  TH3F *lam_nonInj = 
    (TH3F*)v0listMC->FindObject("f3dHistPrimRawPtVsYVsMultNonInjLambda");

  TH3F *alam = 
    (TH3F*)v0listMC->FindObject("f3dHistPrimRawPtVsYVsMultAntiLambda");
  TH3F *alam_nonInj = 
    (TH3F*)v0listMC->FindObject("f3dHistPrimRawPtVsYVsMultNonInjAntiLambda");

  TH3F *xiMinus = 
    (TH3F*)v0listMC->FindObject("f3dHistGenPtVsYVsMultXiMinus");
  TH3F *xiPlus = 
    (TH3F*)v0listMC->FindObject("f3dHistGenPtVsYVsMultXiPlus");


  //    
  TFile::Open("LHC11a10b_bis/Merged.root");  
  v0listMC=(TList *)gFile->Get("PWGLFExtractPerformanceV0_PP_MC/clistV0MC");

  h3 = (TH3F*)v0listMC->FindObject("f3dHistPrimRawPtVsYVsMultK0Short");
  k0s->Add(h3);
  h3 = (TH3F*)v0listMC->FindObject("f3dHistPrimRawPtVsYVsMultNonInjK0Short");
  k0s_nonInj->Add(h3); 

  h3 = (TH3F*)v0listMC->FindObject("f3dHistPrimRawPtVsYVsMultLambda");
  lam->Add(h3); 
  h3 = (TH3F*)v0listMC->FindObject("f3dHistPrimRawPtVsYVsMultNonInjLambda");
  lam_nonInj->Add(h3); 

  h3 = (TH3F*)v0listMC->FindObject("f3dHistPrimRawPtVsYVsMultAntiLambda");
  alam->Add(h3); 
  h3 = (TH3F*)v0listMC->FindObject("f3dHistPrimRawPtVsYVsMultNonInjAntiLambda");
  alam_nonInj->Add(h3); 

  h3 = (TH3F*)v0listMC->FindObject("f3dHistGenPtVsYVsMultXiMinus");
  xiMinus->Add(h3);
  h3 = (TH3F*)v0listMC->FindObject("f3dHistGenPtVsYVsMultXiPlus");
  xiPlus->Add(h3); 


  //
  TFile::Open("LHC11a10a_bis/Merged.root");
  v0listMC=(TList *)gFile->Get("PWGLFExtractPerformanceV0_PP_MC/clistV0MC");

  h3 = (TH3F*)v0listMC->FindObject("f3dHistPrimRawPtVsYVsMultK0Short");
  k0s_nonInj->Add(h3); 
  h3 = (TH3F*)v0listMC->FindObject("f3dHistPrimRawPtVsYVsMultLambda");
  lam_nonInj->Add(h3); 
  h3 = (TH3F*)v0listMC->FindObject("f3dHistPrimRawPtVsYVsMultAntiLambda");
  alam_nonInj->Add(h3); 
  h3 = (TH3F*)v0listMC->FindObject("f3dHistGenPtVsYVsMultXiMinus");
  xiMinus->Add(h3);
  h3 = (TH3F*)v0listMC->FindObject("f3dHistGenPtVsYVsMultXiPlus");
  xiPlus->Add(h3); 

  TFile *f=TFile::Open("Generated.root","new");
  k0s->Write(); k0s_nonInj->Write();
  lam->Write(); lam_nonInj->Write();
  alam->Write(); alam_nonInj->Write();
  xiMinus->Write();
  xiPlus->Write();
  f->Close();
}

extern TStyle *gStyle;

void SetOptions(TH1 *h, const Char_t *t, Int_t c, Int_t m, Float_t s) {
   h->SetLineColor(c);
   h->SetMarkerColor(c); 
   h->SetMarkerStyle(m);
   h->SetMarkerSize(s);
   h->SetTitle(t);
   TAxis *x=h->GetXaxis();
   x->SetTitle("p_{T} (GeV/c)");
   x->SetTitleSize(0.05);   
   x->SetLabelSize(0.05);   
   TAxis *y=h->GetYaxis();
   y->SetTitle("1/N_{ev}dN/dp_{T}/dy (GeV/c)^{-1}");   
   y->SetTitleSize(0.05);   
   y->SetLabelSize(0.05);   
}
void DrawSpectra() {
  TH1 *h=0;
  TString name;

  const Char_t *title[]={
    "0-5 %",
    "0-10 %",
    "10-20 %",
    "20-40 %",
    "40-60 %",
    "60-80 %",
    "80-90 %"
  };
  const Int_t nCent=sizeof(title)/sizeof(const Char_t *);
  TString centr[nCent]={"0005","0010","1020","2040","4060","6080","8090"};
  const Int_t   colour[nCent]={2,   3,   635, 419, 4 , 6,  1  };
  const Int_t   marker[nCent]={22,  29,  34,  21,  23, 33, 20 };
  const Float_t masize[nCent]={1.6, 1.7, 1.3, 1.3, 1.6,2,  1.3};

  gStyle->SetOptStat(0);
  gStyle->SetOptTitle(0);
  gStyle->SetLegendFillColor(0);

  TCanvas *kc=new TCanvas(); kc->SetLogy();
  TCanvas *lc=new TCanvas(); lc->SetLogy();
  TCanvas *rc=new TCanvas();

  TFile::Open("SpectraV0CutVariations.root");
  
  for (Int_t i=0; i<nCent; i++) {
    name="Lambda_";
    h=(TH1*)gDirectory->Get((name+centr[i]).Data());
    SetOptions(h,title[i],colour[i],marker[i],masize[i]);
    lc->cd();
    if (i==0) h->Draw(); else h->Draw("same");

    TH1F *r=(TH1F*)h->Clone();
    r->GetYaxis()->SetTitle("#Lambda/K^{0}_{S}");

    name="K0s_";
    h=(TH1*)gDirectory->Get((name+centr[i]).Data());
    SetOptions(h,title[i],colour[i],marker[i],masize[i]);
    kc->cd();
    if (i==0) h->Draw(); else h->Draw("same");

    r->Divide(h);
    rc->cd();
    if (i==0) r->Draw(); else r->Draw("same");
  }

  TLegend *leg=0;
  kc->cd();
  leg=kc->BuildLegend(0.659,0.320,0.881,0.875,"K^{0}_{S} spectra:");
  leg->SetBorderSize(0);
  leg->SetFillColor(0);

  lc->cd();
  leg=lc->BuildLegend(0.659,0.320,0.881,0.875,"#Lambda spectra:");
  leg->SetBorderSize(0);
  leg->SetFillColor(0);

  rc->cd();
  leg=rc->BuildLegend(0.659,0.320,0.881,0.875,"#Lambda/K^{0}_{S} ratios:");
  leg->SetBorderSize(0);
  leg->SetFillColor(0);
}

void Loop() {
  const Char_t *cent[]={"0005","0010","1020","2040","4060","6080","8090"};
  Int_t nCent=sizeof(cent)/sizeof(const Char_t *);
  const Int_t cmin[]={0, 0,  10, 20, 40, 60, 80};
  const Int_t cmax[]={5, 10, 20, 40, 60, 80, 90};

  for (Int_t i=0; i<nCent; i++) {
    cout<<cent[i]<<endl;
    SpectraV0CutVariations(cmin[i],cmax[i],cent[i]);
  }
}
 SpectraV0CutVariations.C:1
 SpectraV0CutVariations.C:2
 SpectraV0CutVariations.C:3
 SpectraV0CutVariations.C:4
 SpectraV0CutVariations.C:5
 SpectraV0CutVariations.C:6
 SpectraV0CutVariations.C:7
 SpectraV0CutVariations.C:8
 SpectraV0CutVariations.C:9
 SpectraV0CutVariations.C:10
 SpectraV0CutVariations.C:11
 SpectraV0CutVariations.C:12
 SpectraV0CutVariations.C:13
 SpectraV0CutVariations.C:14
 SpectraV0CutVariations.C:15
 SpectraV0CutVariations.C:16
 SpectraV0CutVariations.C:17
 SpectraV0CutVariations.C:18
 SpectraV0CutVariations.C:19
 SpectraV0CutVariations.C:20
 SpectraV0CutVariations.C:21
 SpectraV0CutVariations.C:22
 SpectraV0CutVariations.C:23
 SpectraV0CutVariations.C:24
 SpectraV0CutVariations.C:25
 SpectraV0CutVariations.C:26
 SpectraV0CutVariations.C:27
 SpectraV0CutVariations.C:28
 SpectraV0CutVariations.C:29
 SpectraV0CutVariations.C:30
 SpectraV0CutVariations.C:31
 SpectraV0CutVariations.C:32
 SpectraV0CutVariations.C:33
 SpectraV0CutVariations.C:34
 SpectraV0CutVariations.C:35
 SpectraV0CutVariations.C:36
 SpectraV0CutVariations.C:37
 SpectraV0CutVariations.C:38
 SpectraV0CutVariations.C:39
 SpectraV0CutVariations.C:40
 SpectraV0CutVariations.C:41
 SpectraV0CutVariations.C:42
 SpectraV0CutVariations.C:43
 SpectraV0CutVariations.C:44
 SpectraV0CutVariations.C:45
 SpectraV0CutVariations.C:46
 SpectraV0CutVariations.C:47
 SpectraV0CutVariations.C:48
 SpectraV0CutVariations.C:49
 SpectraV0CutVariations.C:50
 SpectraV0CutVariations.C:51
 SpectraV0CutVariations.C:52
 SpectraV0CutVariations.C:53
 SpectraV0CutVariations.C:54
 SpectraV0CutVariations.C:55
 SpectraV0CutVariations.C:56
 SpectraV0CutVariations.C:57
 SpectraV0CutVariations.C:58
 SpectraV0CutVariations.C:59
 SpectraV0CutVariations.C:60
 SpectraV0CutVariations.C:61
 SpectraV0CutVariations.C:62
 SpectraV0CutVariations.C:63
 SpectraV0CutVariations.C:64
 SpectraV0CutVariations.C:65
 SpectraV0CutVariations.C:66
 SpectraV0CutVariations.C:67
 SpectraV0CutVariations.C:68
 SpectraV0CutVariations.C:69
 SpectraV0CutVariations.C:70
 SpectraV0CutVariations.C:71
 SpectraV0CutVariations.C:72
 SpectraV0CutVariations.C:73
 SpectraV0CutVariations.C:74
 SpectraV0CutVariations.C:75
 SpectraV0CutVariations.C:76
 SpectraV0CutVariations.C:77
 SpectraV0CutVariations.C:78
 SpectraV0CutVariations.C:79
 SpectraV0CutVariations.C:80
 SpectraV0CutVariations.C:81
 SpectraV0CutVariations.C:82
 SpectraV0CutVariations.C:83
 SpectraV0CutVariations.C:84
 SpectraV0CutVariations.C:85
 SpectraV0CutVariations.C:86
 SpectraV0CutVariations.C:87
 SpectraV0CutVariations.C:88
 SpectraV0CutVariations.C:89
 SpectraV0CutVariations.C:90
 SpectraV0CutVariations.C:91
 SpectraV0CutVariations.C:92
 SpectraV0CutVariations.C:93
 SpectraV0CutVariations.C:94
 SpectraV0CutVariations.C:95
 SpectraV0CutVariations.C:96
 SpectraV0CutVariations.C:97
 SpectraV0CutVariations.C:98
 SpectraV0CutVariations.C:99
 SpectraV0CutVariations.C:100
 SpectraV0CutVariations.C:101
 SpectraV0CutVariations.C:102
 SpectraV0CutVariations.C:103
 SpectraV0CutVariations.C:104
 SpectraV0CutVariations.C:105
 SpectraV0CutVariations.C:106
 SpectraV0CutVariations.C:107
 SpectraV0CutVariations.C:108
 SpectraV0CutVariations.C:109
 SpectraV0CutVariations.C:110
 SpectraV0CutVariations.C:111
 SpectraV0CutVariations.C:112
 SpectraV0CutVariations.C:113
 SpectraV0CutVariations.C:114
 SpectraV0CutVariations.C:115
 SpectraV0CutVariations.C:116
 SpectraV0CutVariations.C:117
 SpectraV0CutVariations.C:118
 SpectraV0CutVariations.C:119
 SpectraV0CutVariations.C:120
 SpectraV0CutVariations.C:121
 SpectraV0CutVariations.C:122
 SpectraV0CutVariations.C:123
 SpectraV0CutVariations.C:124
 SpectraV0CutVariations.C:125
 SpectraV0CutVariations.C:126
 SpectraV0CutVariations.C:127
 SpectraV0CutVariations.C:128
 SpectraV0CutVariations.C:129
 SpectraV0CutVariations.C:130
 SpectraV0CutVariations.C:131
 SpectraV0CutVariations.C:132
 SpectraV0CutVariations.C:133
 SpectraV0CutVariations.C:134
 SpectraV0CutVariations.C:135
 SpectraV0CutVariations.C:136
 SpectraV0CutVariations.C:137
 SpectraV0CutVariations.C:138
 SpectraV0CutVariations.C:139
 SpectraV0CutVariations.C:140
 SpectraV0CutVariations.C:141
 SpectraV0CutVariations.C:142
 SpectraV0CutVariations.C:143
 SpectraV0CutVariations.C:144
 SpectraV0CutVariations.C:145
 SpectraV0CutVariations.C:146
 SpectraV0CutVariations.C:147
 SpectraV0CutVariations.C:148
 SpectraV0CutVariations.C:149
 SpectraV0CutVariations.C:150
 SpectraV0CutVariations.C:151
 SpectraV0CutVariations.C:152
 SpectraV0CutVariations.C:153
 SpectraV0CutVariations.C:154
 SpectraV0CutVariations.C:155
 SpectraV0CutVariations.C:156
 SpectraV0CutVariations.C:157
 SpectraV0CutVariations.C:158
 SpectraV0CutVariations.C:159
 SpectraV0CutVariations.C:160
 SpectraV0CutVariations.C:161
 SpectraV0CutVariations.C:162
 SpectraV0CutVariations.C:163
 SpectraV0CutVariations.C:164
 SpectraV0CutVariations.C:165
 SpectraV0CutVariations.C:166
 SpectraV0CutVariations.C:167
 SpectraV0CutVariations.C:168
 SpectraV0CutVariations.C:169
 SpectraV0CutVariations.C:170
 SpectraV0CutVariations.C:171
 SpectraV0CutVariations.C:172
 SpectraV0CutVariations.C:173
 SpectraV0CutVariations.C:174
 SpectraV0CutVariations.C:175
 SpectraV0CutVariations.C:176
 SpectraV0CutVariations.C:177
 SpectraV0CutVariations.C:178
 SpectraV0CutVariations.C:179
 SpectraV0CutVariations.C:180
 SpectraV0CutVariations.C:181
 SpectraV0CutVariations.C:182
 SpectraV0CutVariations.C:183
 SpectraV0CutVariations.C:184
 SpectraV0CutVariations.C:185
 SpectraV0CutVariations.C:186
 SpectraV0CutVariations.C:187
 SpectraV0CutVariations.C:188
 SpectraV0CutVariations.C:189
 SpectraV0CutVariations.C:190
 SpectraV0CutVariations.C:191
 SpectraV0CutVariations.C:192
 SpectraV0CutVariations.C:193
 SpectraV0CutVariations.C:194
 SpectraV0CutVariations.C:195
 SpectraV0CutVariations.C:196
 SpectraV0CutVariations.C:197
 SpectraV0CutVariations.C:198
 SpectraV0CutVariations.C:199
 SpectraV0CutVariations.C:200
 SpectraV0CutVariations.C:201
 SpectraV0CutVariations.C:202
 SpectraV0CutVariations.C:203
 SpectraV0CutVariations.C:204
 SpectraV0CutVariations.C:205
 SpectraV0CutVariations.C:206
 SpectraV0CutVariations.C:207
 SpectraV0CutVariations.C:208
 SpectraV0CutVariations.C:209
 SpectraV0CutVariations.C:210
 SpectraV0CutVariations.C:211
 SpectraV0CutVariations.C:212
 SpectraV0CutVariations.C:213
 SpectraV0CutVariations.C:214
 SpectraV0CutVariations.C:215
 SpectraV0CutVariations.C:216
 SpectraV0CutVariations.C:217
 SpectraV0CutVariations.C:218
 SpectraV0CutVariations.C:219
 SpectraV0CutVariations.C:220
 SpectraV0CutVariations.C:221
 SpectraV0CutVariations.C:222
 SpectraV0CutVariations.C:223
 SpectraV0CutVariations.C:224
 SpectraV0CutVariations.C:225
 SpectraV0CutVariations.C:226
 SpectraV0CutVariations.C:227
 SpectraV0CutVariations.C:228
 SpectraV0CutVariations.C:229
 SpectraV0CutVariations.C:230
 SpectraV0CutVariations.C:231
 SpectraV0CutVariations.C:232
 SpectraV0CutVariations.C:233
 SpectraV0CutVariations.C:234
 SpectraV0CutVariations.C:235
 SpectraV0CutVariations.C:236
 SpectraV0CutVariations.C:237
 SpectraV0CutVariations.C:238
 SpectraV0CutVariations.C:239
 SpectraV0CutVariations.C:240
 SpectraV0CutVariations.C:241
 SpectraV0CutVariations.C:242
 SpectraV0CutVariations.C:243
 SpectraV0CutVariations.C:244
 SpectraV0CutVariations.C:245
 SpectraV0CutVariations.C:246
 SpectraV0CutVariations.C:247
 SpectraV0CutVariations.C:248
 SpectraV0CutVariations.C:249
 SpectraV0CutVariations.C:250
 SpectraV0CutVariations.C:251
 SpectraV0CutVariations.C:252
 SpectraV0CutVariations.C:253
 SpectraV0CutVariations.C:254
 SpectraV0CutVariations.C:255
 SpectraV0CutVariations.C:256
 SpectraV0CutVariations.C:257
 SpectraV0CutVariations.C:258
 SpectraV0CutVariations.C:259
 SpectraV0CutVariations.C:260
 SpectraV0CutVariations.C:261
 SpectraV0CutVariations.C:262
 SpectraV0CutVariations.C:263
 SpectraV0CutVariations.C:264
 SpectraV0CutVariations.C:265
 SpectraV0CutVariations.C:266
 SpectraV0CutVariations.C:267
 SpectraV0CutVariations.C:268
 SpectraV0CutVariations.C:269
 SpectraV0CutVariations.C:270
 SpectraV0CutVariations.C:271
 SpectraV0CutVariations.C:272
 SpectraV0CutVariations.C:273
 SpectraV0CutVariations.C:274
 SpectraV0CutVariations.C:275
 SpectraV0CutVariations.C:276
 SpectraV0CutVariations.C:277
 SpectraV0CutVariations.C:278
 SpectraV0CutVariations.C:279
 SpectraV0CutVariations.C:280
 SpectraV0CutVariations.C:281
 SpectraV0CutVariations.C:282
 SpectraV0CutVariations.C:283
 SpectraV0CutVariations.C:284
 SpectraV0CutVariations.C:285
 SpectraV0CutVariations.C:286
 SpectraV0CutVariations.C:287
 SpectraV0CutVariations.C:288
 SpectraV0CutVariations.C:289
 SpectraV0CutVariations.C:290
 SpectraV0CutVariations.C:291
 SpectraV0CutVariations.C:292
 SpectraV0CutVariations.C:293
 SpectraV0CutVariations.C:294
 SpectraV0CutVariations.C:295
 SpectraV0CutVariations.C:296
 SpectraV0CutVariations.C:297
 SpectraV0CutVariations.C:298
 SpectraV0CutVariations.C:299
 SpectraV0CutVariations.C:300
 SpectraV0CutVariations.C:301
 SpectraV0CutVariations.C:302
 SpectraV0CutVariations.C:303
 SpectraV0CutVariations.C:304
 SpectraV0CutVariations.C:305
 SpectraV0CutVariations.C:306
 SpectraV0CutVariations.C:307
 SpectraV0CutVariations.C:308
 SpectraV0CutVariations.C:309
 SpectraV0CutVariations.C:310
 SpectraV0CutVariations.C:311
 SpectraV0CutVariations.C:312
 SpectraV0CutVariations.C:313
 SpectraV0CutVariations.C:314
 SpectraV0CutVariations.C:315
 SpectraV0CutVariations.C:316
 SpectraV0CutVariations.C:317
 SpectraV0CutVariations.C:318
 SpectraV0CutVariations.C:319
 SpectraV0CutVariations.C:320
 SpectraV0CutVariations.C:321
 SpectraV0CutVariations.C:322
 SpectraV0CutVariations.C:323
 SpectraV0CutVariations.C:324
 SpectraV0CutVariations.C:325
 SpectraV0CutVariations.C:326
 SpectraV0CutVariations.C:327
 SpectraV0CutVariations.C:328
 SpectraV0CutVariations.C:329
 SpectraV0CutVariations.C:330
 SpectraV0CutVariations.C:331
 SpectraV0CutVariations.C:332
 SpectraV0CutVariations.C:333
 SpectraV0CutVariations.C:334
 SpectraV0CutVariations.C:335
 SpectraV0CutVariations.C:336
 SpectraV0CutVariations.C:337
 SpectraV0CutVariations.C:338
 SpectraV0CutVariations.C:339
 SpectraV0CutVariations.C:340
 SpectraV0CutVariations.C:341
 SpectraV0CutVariations.C:342
 SpectraV0CutVariations.C:343
 SpectraV0CutVariations.C:344
 SpectraV0CutVariations.C:345
 SpectraV0CutVariations.C:346
 SpectraV0CutVariations.C:347
 SpectraV0CutVariations.C:348
 SpectraV0CutVariations.C:349
 SpectraV0CutVariations.C:350
 SpectraV0CutVariations.C:351
 SpectraV0CutVariations.C:352
 SpectraV0CutVariations.C:353
 SpectraV0CutVariations.C:354
 SpectraV0CutVariations.C:355
 SpectraV0CutVariations.C:356
 SpectraV0CutVariations.C:357
 SpectraV0CutVariations.C:358
 SpectraV0CutVariations.C:359
 SpectraV0CutVariations.C:360
 SpectraV0CutVariations.C:361
 SpectraV0CutVariations.C:362
 SpectraV0CutVariations.C:363
 SpectraV0CutVariations.C:364
 SpectraV0CutVariations.C:365
 SpectraV0CutVariations.C:366
 SpectraV0CutVariations.C:367
 SpectraV0CutVariations.C:368
 SpectraV0CutVariations.C:369
 SpectraV0CutVariations.C:370
 SpectraV0CutVariations.C:371
 SpectraV0CutVariations.C:372
 SpectraV0CutVariations.C:373
 SpectraV0CutVariations.C:374
 SpectraV0CutVariations.C:375
 SpectraV0CutVariations.C:376
 SpectraV0CutVariations.C:377
 SpectraV0CutVariations.C:378
 SpectraV0CutVariations.C:379
 SpectraV0CutVariations.C:380
 SpectraV0CutVariations.C:381
 SpectraV0CutVariations.C:382
 SpectraV0CutVariations.C:383
 SpectraV0CutVariations.C:384
 SpectraV0CutVariations.C:385
 SpectraV0CutVariations.C:386
 SpectraV0CutVariations.C:387
 SpectraV0CutVariations.C:388
 SpectraV0CutVariations.C:389
 SpectraV0CutVariations.C:390
 SpectraV0CutVariations.C:391
 SpectraV0CutVariations.C:392
 SpectraV0CutVariations.C:393
 SpectraV0CutVariations.C:394
 SpectraV0CutVariations.C:395
 SpectraV0CutVariations.C:396
 SpectraV0CutVariations.C:397
 SpectraV0CutVariations.C:398
 SpectraV0CutVariations.C:399
 SpectraV0CutVariations.C:400
 SpectraV0CutVariations.C:401
 SpectraV0CutVariations.C:402
 SpectraV0CutVariations.C:403
 SpectraV0CutVariations.C:404
 SpectraV0CutVariations.C:405
 SpectraV0CutVariations.C:406
 SpectraV0CutVariations.C:407
 SpectraV0CutVariations.C:408
 SpectraV0CutVariations.C:409
 SpectraV0CutVariations.C:410
 SpectraV0CutVariations.C:411
 SpectraV0CutVariations.C:412
 SpectraV0CutVariations.C:413
 SpectraV0CutVariations.C:414
 SpectraV0CutVariations.C:415
 SpectraV0CutVariations.C:416
 SpectraV0CutVariations.C:417
 SpectraV0CutVariations.C:418
 SpectraV0CutVariations.C:419
 SpectraV0CutVariations.C:420
 SpectraV0CutVariations.C:421
 SpectraV0CutVariations.C:422
 SpectraV0CutVariations.C:423
 SpectraV0CutVariations.C:424
 SpectraV0CutVariations.C:425
 SpectraV0CutVariations.C:426
 SpectraV0CutVariations.C:427
 SpectraV0CutVariations.C:428
 SpectraV0CutVariations.C:429
 SpectraV0CutVariations.C:430
 SpectraV0CutVariations.C:431
 SpectraV0CutVariations.C:432
 SpectraV0CutVariations.C:433
 SpectraV0CutVariations.C:434
 SpectraV0CutVariations.C:435
 SpectraV0CutVariations.C:436
 SpectraV0CutVariations.C:437
 SpectraV0CutVariations.C:438
 SpectraV0CutVariations.C:439
 SpectraV0CutVariations.C:440
 SpectraV0CutVariations.C:441
 SpectraV0CutVariations.C:442
 SpectraV0CutVariations.C:443
 SpectraV0CutVariations.C:444
 SpectraV0CutVariations.C:445
 SpectraV0CutVariations.C:446
 SpectraV0CutVariations.C:447
 SpectraV0CutVariations.C:448
 SpectraV0CutVariations.C:449
 SpectraV0CutVariations.C:450
 SpectraV0CutVariations.C:451
 SpectraV0CutVariations.C:452
 SpectraV0CutVariations.C:453
 SpectraV0CutVariations.C:454
 SpectraV0CutVariations.C:455
 SpectraV0CutVariations.C:456
 SpectraV0CutVariations.C:457
 SpectraV0CutVariations.C:458
 SpectraV0CutVariations.C:459
 SpectraV0CutVariations.C:460
 SpectraV0CutVariations.C:461
 SpectraV0CutVariations.C:462
 SpectraV0CutVariations.C:463
 SpectraV0CutVariations.C:464
 SpectraV0CutVariations.C:465
 SpectraV0CutVariations.C:466
 SpectraV0CutVariations.C:467
 SpectraV0CutVariations.C:468
 SpectraV0CutVariations.C:469
 SpectraV0CutVariations.C:470
 SpectraV0CutVariations.C:471
 SpectraV0CutVariations.C:472
 SpectraV0CutVariations.C:473
 SpectraV0CutVariations.C:474
 SpectraV0CutVariations.C:475
 SpectraV0CutVariations.C:476
 SpectraV0CutVariations.C:477
 SpectraV0CutVariations.C:478
 SpectraV0CutVariations.C:479
 SpectraV0CutVariations.C:480
 SpectraV0CutVariations.C:481
 SpectraV0CutVariations.C:482
 SpectraV0CutVariations.C:483
 SpectraV0CutVariations.C:484
 SpectraV0CutVariations.C:485
 SpectraV0CutVariations.C:486
 SpectraV0CutVariations.C:487
 SpectraV0CutVariations.C:488
 SpectraV0CutVariations.C:489
 SpectraV0CutVariations.C:490
 SpectraV0CutVariations.C:491
 SpectraV0CutVariations.C:492
 SpectraV0CutVariations.C:493
 SpectraV0CutVariations.C:494
 SpectraV0CutVariations.C:495
 SpectraV0CutVariations.C:496