ROOT logo
#define AliV0CutVariations_cxx
// The class definition in AliV0CutVariations.h has been generated automatically
// by the ROOT utility TTree::MakeSelector(). This class is derived
// from the ROOT class TSelector. For more information on the TSelector
// framework see $ROOTSYS/README/README.SELECTOR or the ROOT User Manual.

// The following methods are defined in this file:
//    Begin():        called every time a loop on the tree starts,
//                    a convenient place to create your histograms.
//    SlaveBegin():   called after Begin(), when on PROOF called only on the
//                    slave servers.
//    Process():      called for each event, in this function you decide what
//                    to read and fill your histograms.
//    SlaveTerminate: called at the end of the loop on the tree, when on PROOF
//                    called only on the slave servers.
//    Terminate():    called at the end of the loop on the tree,
//                    a convenient place to draw/fit your histograms.
//
// To use this file, try the following session on your Tree T:
//
// Root > T->Process("AliV0CutVariations.C")
// Root > T->Process("AliV0CutVariations.C","some options")
// Root > T->Process("AliV0CutVariations.C+")
//

#include "AliV0CutVariations.h"

#include "Riostream.h"
#include "TCanvas.h"
#include "TPDGCode.h"
#include <TDatabasePDG.h>
#include <TH2.h>
#include <TStyle.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TH3F.h>

AliV0CutVariations::AliV0CutVariations(TTree * /*tree*/ ) : 
fChain(0), 
fIsMC(kFALSE),
fSelectNonInjected(kFALSE),
fCMin(0.),
fCMax(90.),
fCPA(0.9975),
fDCA(1.0),
fTPCcr(70.),
fTPCcrfd(0.8),
fDCApv(0.1),
fMult(0),
fdEdx(0),
fdEdxPid(0),
fCosPA(0),
fDtrDCA(0),
fTPCrows(0),
fTPCratio(0),
fPrimDCA(0),

fK0sM(0),
fK0sSi(0),
fK0sMC(0),
fK0sAs(0),

fLambdaM(0),
fLambdaSi(0),
fLambdaMC(0),
fLambdaAs(0),

fLambdaEff(0),
fLambdaPt(0),

fLambdaBarM(0),
fLambdaBarSi(0),
fLambdaBarMC(0),
fLambdaBarAs(0),

fLambdaBarEff(0),
fLambdaBarPt(0),

fLambdaFromXi(0),
fXiM(0),
fXiSiP(0),

fLambdaBarFromXiBar(0),
fXiBarM(0),
fXiBarSiP(0)
{ }

void AliV0CutVariations::Begin(TTree * /*tree*/)
{
   // The Begin() function is called at the start of the query.
   // When running with PROOF Begin() is only called on the client.
   // The tree argument is deprecated (on PROOF 0 is passed).

   TString option = GetOption();

}

void AliV0CutVariations::SlaveBegin(TTree * tree)
{
   // The SlaveBegin() function is called after the Begin() function.
   // When running with PROOF SlaveBegin() is called on each slave server.
   // The tree argument is deprecated (on PROOF 0 is passed).

  Init(tree);

  //cout<<tree->GetEntries()<<endl;

  TString option = GetOption();

  Int_t    lbins=100;  // number of bins in lt
  Int_t    kbins=33;  // number of bins in pt of Xi
  Double_t ltMax=100.;
  Double_t ptMax=12.;

  const 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
  };
  const Int_t nBins=sizeof(xBins)/sizeof(Double_t) - 1;

  Double_t yBins[lbins+1]; 
  for (Int_t i=0; i<=(lbins+1); i++) yBins[i]=i*ltMax/lbins;
  Double_t zBins[kbins+1]; 
  for (Int_t i=0; i<=(kbins+1); i++) zBins[i]=i*(ptMax+2)/kbins; 


  //fMult=new TH1F("fMult","Multiplicity",1100,0.,3300);
  //fMult->GetXaxis()->SetTitle("N tracks"); 
  fMult=new TH1F("fMult","Centrality",100,0.,100);
  fMult->GetXaxis()->SetTitle("Centrality (%)"); 
  fOutput->Add(fMult);


  fCosPA=new TH1F("fCosPA","Cos(PA) distribution",50,0.9975,1.0005);
  fCosPA->GetXaxis()->SetTitle("Cos(PA)"); 
  fOutput->Add(fCosPA);

  fDtrDCA=new TH1F("fDtrDCA","DCA between V0 daughters",50,0.0,1.5);
  fDtrDCA->GetXaxis()->SetTitle("DCA (rel. u.)"); 
  fOutput->Add(fDtrDCA);

  fTPCrows=new TH1F("fTPCrows","TPC crossed pad rows",180,0.,180.);
  fTPCrows->GetXaxis()->SetTitle("TPC crossed pad rows"); 
  fOutput->Add(fTPCrows);

  fTPCratio=new TH1F("fTPCratio","TPC crossed/findable pad rows",50,0.0,1.5);
  fTPCratio->GetXaxis()->SetTitle("TPC crossed/findable pad rows"); 
  fOutput->Add(fTPCratio);

  fPrimDCA=new TH1F("fPrimDCA","DCA wrt the primary vertex",50,0.0,1.5);
  fPrimDCA->GetXaxis()->SetTitle("DCA wrt the PV (cm)"); 
  fOutput->Add(fPrimDCA);


  fdEdx=new TH2F("fdEdx","dE/dx",50,0.2,3,50,0.,6.);
  fOutput->Add(fdEdx);

  fdEdxPid=new TH2F("fdEdxPid","dE/dx with PID",50,0.2,3,50,0.,6.);
  fOutput->Add(fdEdxPid);

  fK0sM = 
  new TH2F("fK0sM", "Mass for K^{0}_{s}", 50,0.448,0.548,nBins,xBins);
  fK0sM->GetXaxis()->SetTitle("Mass (GeV/c)"); 
  fOutput->Add(fK0sM);

  fK0sSi = 
  new TH2F("fK0sSi","L_{T} vs p_{T} for K^{0}_{s}, side-band subtracted",
  nBins,xBins,lbins,0.,ltMax);
  fK0sSi->GetXaxis()->SetTitle("p_{T} (GeV/c)"); 
  fK0sSi->GetYaxis()->SetTitle("L_{T} (cm)"); 
  fOutput->Add(fK0sSi);

  fK0sMC = 
  new TH2F("fK0sMC","L_{T} vs p_{T} for K^{0}_{s}, from MC stack", 
  nBins,xBins,lbins,0.,ltMax);
  fK0sMC->GetXaxis()->SetTitle("p_{T} (GeV/c)"); 
  fK0sMC->GetYaxis()->SetTitle("L_{T} (cm)"); 
  fOutput->Add(fK0sMC);

  fK0sAs = 
  new TH2F("fK0sAs", "L_{T} vs p_{T} for K^{0}_{s}, associated", 
  nBins,xBins,lbins,0.,ltMax);
  fK0sAs->GetXaxis()->SetTitle("p_{T} (GeV/c)"); 
  fK0sAs->GetYaxis()->SetTitle("L_{T} (cm)"); 
  fOutput->Add(fK0sAs);

  //----------------------

  fLambdaM = 
  new TH2F("fLambdaM","Mass for \\Lambda", 100, 1.065, 1.165,nBins,xBins);
  fLambdaM->GetXaxis()->SetTitle("Mass (GeV/c)"); 
  fOutput->Add(fLambdaM);

 fLambdaSi = 
  new TH2F("fLambdaSi","L_{T} vs p_{T} for \\Lambda, side-band subtructed",
  nBins,xBins,lbins,0.,ltMax);
  fLambdaSi->GetXaxis()->SetTitle("p_{T} (GeV/c)"); 
  fLambdaSi->GetYaxis()->SetTitle("L_{T} (cm)"); 
  fOutput->Add(fLambdaSi);

  fLambdaMC = 
  new TH2F("fLambdaMC","L_{T} vs p_{T} for \\Lambda, from MC stack", 
  nBins,xBins,lbins,0.,ltMax);
  fLambdaMC->GetXaxis()->SetTitle("p_{T} (GeV/c)"); 
  fLambdaMC->GetYaxis()->SetTitle("L_{T} (cm)"); 
  fOutput->Add(fLambdaMC);

  fLambdaAs = 
  new TH2F("fLambdaAs","L_{T} vs p_{T} for \\Lambda, associated",
  nBins,xBins,lbins,0.,ltMax);
  fLambdaAs->GetXaxis()->SetTitle("p_{T} (GeV/c)"); 
  fLambdaAs->GetYaxis()->SetTitle("L_{T} (cm)"); 
  fOutput->Add(fLambdaAs);

  //----------------------

  fLambdaEff=fLambdaAs->ProjectionX();
  fLambdaEff->SetName("fLambdaEff");
  fLambdaEff->SetTitle("Efficiency for #Lambda");
  fOutput->Add(fLambdaEff);

  fLambdaPt=fLambdaAs->ProjectionX();
  fLambdaPt->SetName("fLambdaPt");
  fLambdaPt->SetTitle("Raw #Lambda pT spectrum");
  fOutput->Add(fLambdaPt);
  //----------------------

  fLambdaBarM = 
  new TH2F("fLambdaBarM","Mass for anti-\\Lambda",100,1.065,1.165,nBins,xBins);
  fLambdaBarM->GetXaxis()->SetTitle("Mass (GeV/c)"); 
  fOutput->Add(fLambdaBarM);

  fLambdaBarSi = 
  new TH2F("fLambdaBarSi","L_{T} vs p_{T} for anti-\\Lambda, side-band subtructed",
  nBins,xBins,lbins,0.,ltMax);
  fLambdaBarSi->GetXaxis()->SetTitle("p_{T} (GeV/c)"); 
  fLambdaBarSi->GetYaxis()->SetTitle("L_{T} (cm)"); 
  fOutput->Add(fLambdaBarSi);

  fLambdaBarMC = 
  new TH2F("fLambdaBarMC","L_{T} vs p_{T} for anti-\\Lambda, from MC stack", 
  nBins,xBins,lbins,0.,ltMax);
  fLambdaBarMC->GetXaxis()->SetTitle("p_{T} (GeV/c)"); 
  fLambdaBarMC->GetYaxis()->SetTitle("L_{T} (cm)"); 
  fOutput->Add(fLambdaBarMC);

  fLambdaBarAs = 
  new TH2F("fLambdaBarAs","L_{T} vs p_{T} for anti-\\Lambda, associated",
  nBins,xBins,lbins,0.,ltMax);
  fLambdaBarAs->GetXaxis()->SetTitle("p_{T} (GeV/c)"); 
  fLambdaBarAs->GetYaxis()->SetTitle("L_{T} (cm)"); 
  fOutput->Add(fLambdaBarAs);


  //----------------------

  fLambdaBarEff=fLambdaBarAs->ProjectionX();
  fLambdaBarEff->SetName("fLambdaBarEff");
  fLambdaBarEff->SetTitle("Efficiency for anti-#Lambda");
  fOutput->Add(fLambdaBarEff);

  fLambdaBarPt=fLambdaBarAs->ProjectionX();
  fLambdaBarPt->SetName("fLambdaBarPt");
  fLambdaBarPt->SetTitle("Raw anti-#Lambda pT spectrum");
  fOutput->Add(fLambdaBarPt);

  //----------------------
  fLambdaFromXi=new TH3F("fLambdaFromXi","L_{T} vs p_{T} vs p_{T} of \\Xi for \\Lambda from \\Xi",
  nBins,xBins,lbins,yBins,kbins,zBins);
  fOutput->Add(fLambdaFromXi);

  fXiM  = 
  new TH2F("fXiM", "\\Xi mass distribution", 50, 1.271, 1.371,33,0.,ptMax+2);
  fOutput->Add(fXiM);

  fXiSiP  = new TH1F("fXiSiP", "Pt for \\Xi, side-band subracted",
  33,0.,ptMax+2);
  fOutput->Add(fXiSiP);


  fLambdaBarFromXiBar=new TH3F("fLambdaBarFromXiBar","L_{T} vs p_{T} vs p_{T} of anti-\\Xi for anti-\\Lambda from anti-\\Xi",
  nBins,xBins,lbins,yBins,kbins,zBins);
  fOutput->Add(fLambdaBarFromXiBar);

  fXiBarM  = 
  new TH2F("fXiBarM", "anti-\\Xi mass distribution", 50, 1.271, 1.371,33,0.,ptMax+2);
  fOutput->Add(fXiBarM);

  fXiBarSiP  = new TH1F("fXiBarSiP", "Pt for anti-\\Xi, side-band subracted",
  33,0.,ptMax+2);
  fOutput->Add(fXiBarSiP);

}

Bool_t AliV0CutVariations::AcceptTracks() {
  //if (!t->IsOn(AliAODTrack::kTPCrefit)) return kFALSE;
  //if (t->GetKinkIndex(0)>0) return kFALSE;

  /* 
  if (fTreeVariableLeastNbrCrossedRows < fTPCcr) return kFALSE;
  if (fTreeVariableLeastRatioCrossedRowsOverFindable < fTPCcrfd) return kFALSE;
  */
  if (TMath::Abs(fTreeVariableNegEta) > 0.8) return kFALSE;
  if (TMath::Abs(fTreeVariablePosEta) > 0.8) return kFALSE;

  fTPCrows->Fill(fTreeVariableLeastNbrCrossedRows);
  fTPCratio->Fill(fTreeVariableLeastRatioCrossedRowsOverFindable);

  return kTRUE;   
}

Bool_t AliV0CutVariations::AcceptV0()
{
  //if (v0->GetOnFlyStatus()) return kFALSE;

  if (fTreeVariableV0CosineOfPointingAngle < fCPA) return kFALSE;
  if (fTreeVariableDcaV0Daughters > fDCA) return kFALSE;

  if (!AcceptTracks()) return kFALSE;

  if (TMath::Abs(fTreeVariableDcaNegToPrimVertex) < fDCApv) return kFALSE;
  if (TMath::Abs(fTreeVariableDcaPosToPrimVertex) < fDCApv) return kFALSE;

  if (fTreeVariableV0Radius < 0.9) return kFALSE;
  if (fTreeVariableV0Radius > 100) return kFALSE;

  fCosPA->Fill(fTreeVariableV0CosineOfPointingAngle);
  fDtrDCA->Fill(fTreeVariableDcaV0Daughters);
  fPrimDCA->Fill(fTreeVariableDcaNegToPrimVertex); 
  fPrimDCA->Fill(fTreeVariableDcaPosToPrimVertex);

  return kTRUE;
}

Bool_t AliV0CutVariations::AcceptPID(Int_t code) 
{
  /*
  if (code > 0) {
     if (fTreeVariablePosTransvMomentum > 1.) return kTRUE;
  } else {
     if (fTreeVariableNegTransvMomentum > 1.) return kTRUE;
  }
  */
  if (fTreeVariablePt > 1.2) return kTRUE;

  if (fIsMC) {
    // MC PID

    if (fSelectNonInjected && (!fTreeVariableIsNonInjected)) return kFALSE;

    if (code > 0) {
      if (fTreeVariablePIDPositive == code) return kTRUE;
    } else {
      if (fTreeVariablePIDNegative == code) return kTRUE;
    }
  } else {
    // Real PID
    if (code > 0) {
       if (TMath::Abs(fTreeVariableNSigmasPosProton) < 3.) return kTRUE;
    } else {
       if (TMath::Abs(fTreeVariableNSigmasNegProton) < 3.) return kTRUE;
    }
  }
  
  return kFALSE; 
}


Bool_t AliV0CutVariations::Process(Long64_t entry)
{
   // The Process() function is called for each entry in the tree (or possibly
   // keyed object in the case of PROOF) to be processed. The entry argument
   // specifies which entry in the currently loaded tree is to be processed.
   // It can be passed to either AliV0CutVariations::GetEntry() or TBranch::GetEntry()
   // to read either all or the required parts of the data. When processing
   // keyed objects with PROOF, the object is already loaded and is available
   // via the fObject pointer.
   //
   // This function should contain the "body" of the analysis. It can contain
   // simple or elaborate selection criteria, run algorithms on the data
   // of the event and typically fill histograms.
   //
   // The processing can be stopped by calling Abort().
   //
   // Use fStatus to set the return value of TTree::Process().
   //
   // The return value is currently not used.

   const Double_t yMax=0.5;
   const Double_t pMin=0.0;
   //const Double_t lMax=0.001;

   fChain->GetTree()->GetEntry(entry);

   //cout<<entry<<'\r';

   if (fTreeVariableMultiplicity<fCMin) return kFALSE;
   if (fTreeVariableMultiplicity>fCMax) return kFALSE;

   fMult->Fill(fTreeVariableMultiplicity);

   Double_t pt=0;
   Double_t lt=0;
   //+++++++ MC
   if (fIsMC) {
      if (fSelectNonInjected && (!fTreeVariableIsNonInjected)) goto real;

      Int_t code=fTreeVariablePID;

      if (code != kK0Short)
	 if (code != kLambda0)
	    if (code != kLambda0Bar) goto real;

       pt=fTreeVariablePtMC;
       if (pt < pMin) goto real;

       if (TMath::Abs(fTreeVariableRapMC) > yMax) goto real;

       //if (TMath::Abs(fTreeVariableV0CreationRadius) > lMax) goto real;
       if (fTreeVariablePrimaryStatus != 1) goto real;

       lt=fTreeVariableV0Radius;
       switch (code) {
       case kK0Short:
          fK0sMC->Fill(pt,lt);
          break;
       case kLambda0:
          fLambdaMC->Fill(pt,lt);
          break;
       case kLambda0Bar:
          fLambdaBarMC->Fill(pt,lt);
          break;
       default: break;
       }

  }
   //+++++++

 real:

   pt=fTreeVariablePt;
   if (pt < pMin) return kFALSE;

   if (!AcceptV0()) return kFALSE;

   lt=fTreeVariableV0Radius;
   if (lt/pt > 3*7.89/1.1157) return kFALSE;  

   //--- V0 switches
   Bool_t isK0s=kTRUE;
   Bool_t isLambda=kTRUE;
   Bool_t isLambdaBar=kTRUE;

   if (0.4977*lt/pt > 3*2.68) isK0s=kFALSE;
   if (1.1157*lt/pt > 3*7.89) isLambdaBar=isLambda=kFALSE;

   if (fTreeVariablePtArmV0<0.2*TMath::Abs(fTreeVariableAlphaV0)) isK0s=kFALSE;

   if (!AcceptPID(kProton)) isLambda=kFALSE;
   if (!AcceptPID(kProtonBar)) isLambdaBar=kFALSE;

   Double_t yK0s=TMath::Abs(fTreeVariableRapK0Short);
   Double_t yLam=TMath::Abs(fTreeVariableRapLambda);
   if (yK0s > yMax) isK0s=kFALSE;
   if (yLam > yMax) isLambda=isLambdaBar=kFALSE;
   //---

   Double_t mass=0., m=0., s=0.;
   Double_t peakWidth=0;
   if (isK0s) {
      mass=fTreeVariableInvMassK0s;
      fK0sM->Fill(mass,pt);

      m=TDatabasePDG::Instance()->GetParticle(kK0Short)->Mass();
      //s=0.0029 + 0.00077*pt;
      s=0.0041 + 0.00056*pt;
      peakWidth=5*s;
      if (TMath::Abs(m-mass) < peakWidth) {
         fK0sSi->Fill(pt,lt);
      } else {
	 isK0s=kFALSE;
      }
      if (TMath::Abs(m-mass + 1.5*peakWidth) < 0.5*peakWidth) {
         fK0sSi->Fill(pt,lt,-1);
      }
      if (TMath::Abs(m-mass - 1.5*peakWidth) < 0.5*peakWidth) {
         fK0sSi->Fill(pt,lt,-1);
      }
   }

   if (isLambda) {
      mass=fTreeVariableInvMassLambda;
      fLambdaM->Fill(mass,pt);

      m=TDatabasePDG::Instance()->GetParticle(kLambda0)->Mass();
      //s=0.0021 + 0.00022*pt;
      s=0.0018 + 0.00030*pt;
      peakWidth = 3*s + 0.002;
      if (TMath::Abs(m-mass) < peakWidth) {
         fLambdaSi->Fill(pt,lt);
      } else {
	 isLambda=kFALSE;
      } 
      if (TMath::Abs(m-mass + 1.5*peakWidth) < 0.5*peakWidth) {
         fLambdaSi->Fill(pt,lt,-1);
      }
      if (TMath::Abs(m-mass - 1.5*peakWidth) < 0.5*peakWidth) {
         fLambdaSi->Fill(pt,lt,-1);
      }
   }

   if (isLambdaBar) {
      mass=fTreeVariableInvMassAntiLambda;
      fLambdaBarM->Fill(mass,pt);

      m=TDatabasePDG::Instance()->GetParticle(kLambda0Bar)->Mass();
      //s=0.0021 + 0.00022*pt;
      s=0.0018 + 0.00035*pt;
      peakWidth = 3*s + 0.002;
      if (TMath::Abs(m-mass) < peakWidth) {
         fLambdaBarSi->Fill(pt,lt);
      } else {
	 isLambdaBar=kFALSE;
      }
      if (TMath::Abs(m-mass + 1.5*peakWidth) < 0.5*peakWidth) {
         fLambdaBarSi->Fill(pt,lt,-1);
      }
      if (TMath::Abs(m-mass - 1.5*peakWidth) < 0.5*peakWidth) {
         fLambdaBarSi->Fill(pt,lt,-1);
      }
   }

   if (!fIsMC) return kFALSE;
   if (fSelectNonInjected && (!fTreeVariableIsNonInjected)) return kFALSE;


   //++++++ MC 
   if (!isK0s)
      if (!isLambda)
         if (!isLambdaBar) return kFALSE;//check MC only for the accepted V0s 

   Int_t code=fTreeVariablePID;
   if (code != kK0Short)
      if (code != kLambda0)
         if (code != kLambda0Bar) return kFALSE;

   Double_t ptAs=fTreeVariablePtMC;
   if (ptAs < pMin) return kFALSE;

   Double_t yAs=fTreeVariableRapMC;
   if (TMath::Abs(yAs) > yMax) return kFALSE;

   Double_t ltAs=fTreeVariableV0Radius;
      if (fTreeVariablePrimaryStatus == 1) {
	 switch (code) {
         case kK0Short:
            if (isK0s)       fK0sAs->Fill(ptAs,ltAs);
            break;
	 case kLambda0:
            if (isLambda)    fLambdaAs->Fill(ptAs,ltAs);
            break;
	 case kLambda0Bar:
            if (isLambdaBar) fLambdaBarAs->Fill(ptAs,ltAs);
            break;
         default: break;
	 }
      } else {
	 if (code==kK0Short) return kTRUE;

         Int_t xcode=fTreeVariablePIDMother;
         Double_t xpt=fTreeVariablePtXiMother;         

	 switch (code) {
	 case kLambda0:
            if (isLambda)
	    if ((xcode==kXiMinus) || (xcode==3322)) 
               fLambdaFromXi->Fill(ptAs,ltAs,xpt);
            break;
	 case kLambda0Bar:
            if (isLambdaBar)
	    if ((xcode==kXiPlusBar)||(xcode==-3322)) 
               fLambdaBarFromXiBar->Fill(ptAs,ltAs,xpt);
            break;
         default: break;
	 }
   }
 
   return kTRUE;
}

void AliV0CutVariations::SlaveTerminate()
{
   // The SlaveTerminate() function is called after all entries or objects
   // have been processed. When running with PROOF SlaveTerminate() is called
   // on each slave server.

}

void AliV0CutVariations::Terminate()
{
   // The Terminate() function is the last function to be called during
   // a query. It always runs on the client, it can be used to present
   // the results graphically or save the results to file.

  cout<<endl;

  if (!fOutput) {
     Printf("ERROR: fOutput not available");
     return;
  }
 
  fMult = dynamic_cast<TH1F*>(fOutput->FindObject("fMult")) ; 
  if (!fMult) {
     Printf("ERROR: fMult not available");
     return;
  }

  fdEdx = dynamic_cast<TH2F*>(fOutput->FindObject("fdEdx")) ; 
  if (!fdEdx) {
     Printf("ERROR: fdEdx not available");
     return;
  }

  fdEdxPid = dynamic_cast<TH2F*>(fOutput->FindObject("fdEdxPid")) ; 
  if (!fdEdxPid) {
     Printf("ERROR: fdEdxPid not available");
     return;
  }


  fK0sMC = dynamic_cast<TH2F*>(fOutput->FindObject("fK0sMC")) ; 
  if (!fK0sMC) {
     Printf("ERROR: fK0sMC not available");
     return;
  }
  TH1D *k0sMcPx=fK0sMC->ProjectionX(); k0sMcPx->Sumw2();
  fK0sAs = dynamic_cast<TH2F*>(fOutput->FindObject("fK0sAs")) ; 
  if (!fK0sAs) {
     Printf("ERROR: fK0sAs not available");
     return;
  }
  TH1D *k0sAsPx=fK0sAs->ProjectionX(); 
  k0sAsPx->Sumw2(); //k0sAsPx->Scale(0.69);



  // Lambda histograms 
  fLambdaFromXi = dynamic_cast<TH3F*>(fOutput->FindObject("fLambdaFromXi")) ; 
  if (!fLambdaFromXi) {
     Printf("ERROR: fLambdaFromXi not available");
     return;
  }
  TH1D *lambdaFromXiPx=fLambdaFromXi->ProjectionX(); lambdaFromXiPx->Sumw2();

  fLambdaMC = dynamic_cast<TH2F*>(fOutput->FindObject("fLambdaMC")) ; 
  if (!fLambdaMC) {
     Printf("ERROR: fLambdaMC not available");
     return;
  }
  TH1D *lambdaMcPx=fLambdaMC->ProjectionX(); lambdaMcPx->Sumw2();

  fLambdaAs = dynamic_cast<TH2F*>(fOutput->FindObject("fLambdaAs")) ; 
  if (!fLambdaAs) {
     Printf("ERROR: fLambdaAs not available");
     return;
  }
  TH1D *lambdaAsPx=fLambdaAs->ProjectionX(); 
  lambdaAsPx->Sumw2(); //lambdaAsPx->Scale(0.64);

  fLambdaSi = dynamic_cast<TH2F*>(fOutput->FindObject("fLambdaSi")) ; 
  if (!fLambdaSi) {
     Printf("ERROR: fLambdaSi not available");
     return;
  }
  TH1D *lambdaSiPx=fLambdaSi->ProjectionX(); 
  lambdaSiPx->SetName("fLambdaPt");
  lambdaSiPx->Sumw2();

  fLambdaEff = dynamic_cast<TH1D*>(fOutput->FindObject("fLambdaEff")) ; 
  if (!fLambdaEff) {
     Printf("ERROR: fLambdaEff not available");
     return;
  }
  fLambdaPt = dynamic_cast<TH1D*>(fOutput->FindObject("fLambdaPt")) ; 
  if (!fLambdaPt) {
     Printf("ERROR: fLambdaPt not available");
     return;
  }


  // anti-Lambda histograms 
  fLambdaBarFromXiBar = 
  dynamic_cast<TH3F*>(fOutput->FindObject("fLambdaBarFromXiBar")) ; 
  if (!fLambdaBarFromXiBar) {
     Printf("ERROR: fLambdaBarFromXiBar not available");
     return;
  }
  TH1D *lambdaBarFromXiBarPx=
  fLambdaBarFromXiBar->ProjectionX("Bar"); lambdaBarFromXiBarPx->Sumw2();

  fLambdaBarMC = dynamic_cast<TH2F*>(fOutput->FindObject("fLambdaBarMC")) ; 
  if (!fLambdaBarMC) {
     Printf("ERROR: fLambdaBarMC not available");
     return;
  }
  TH1D *lambdaBarMcPx=fLambdaBarMC->ProjectionX(); lambdaBarMcPx->Sumw2();

  fLambdaBarAs = dynamic_cast<TH2F*>(fOutput->FindObject("fLambdaBarAs")) ; 
  if (!fLambdaBarAs) {
     Printf("ERROR: fLambdaBarAs not available");
     return;
  }
  TH1D *lambdaBarAsPx=fLambdaBarAs->ProjectionX(); 
  lambdaBarAsPx->Sumw2(); //lambdaBarAsPx->Scale(0.64);

  fLambdaBarSi = dynamic_cast<TH2F*>(fOutput->FindObject("fLambdaBarSi")) ; 
  if (!fLambdaBarSi) {
     Printf("ERROR: fLambdaBarSi not available");
     return;
  }
  TH1D *lambdaBarSiPx=fLambdaBarSi->ProjectionX(); 
  lambdaBarSiPx->SetName("fLambdaBarPt");
  lambdaBarSiPx->Sumw2();

  fLambdaBarEff = dynamic_cast<TH1D*>(fOutput->FindObject("fLambdaBarEff")) ; 
  if (!fLambdaBarEff) {
     Printf("ERROR: fLambdaBarEff not available");
     return;
  }
  fLambdaBarPt = dynamic_cast<TH1D*>(fOutput->FindObject("fLambdaBarPt")) ; 
  if (!fLambdaBarPt) {
     Printf("ERROR: fLambdaBarPt not available");
     return;
  }


  if (!gROOT->IsBatch()) {

    TCanvas *c1 = new TCanvas("c1","Mulitplicity");
    c1->SetLogy();
    fMult->DrawCopy() ;

    new TCanvas("c2","dE/dx");
    fdEdx->DrawCopy() ;

    new TCanvas("c3","dE/dx with PID");
    fdEdxPid->DrawCopy() ;

    if (fIsMC) {
       /*
       TH1D effK(*k0sAsPx); effK.SetTitle("Efficiency for K0s");
       effK.Divide(k0sAsPx,k0sMcPx,1,1,"b");
       new TCanvas("c4","Efficiency for K0s");
       effK.DrawCopy("E") ;
       */

       //+++ Lambdas
       fLambdaEff->Divide(lambdaAsPx,lambdaMcPx,1,1,"b");
       new TCanvas("c5","Efficiency for #Lambda");
       fLambdaEff->DrawCopy("E") ;

       lambdaSiPx->Add(lambdaFromXiPx,-1);
       lambdaSiPx->Divide(fLambdaEff);

       new TCanvas("c6","Corrected #Lambda pt");
       lambdaSiPx->SetTitle("Corrected #Lambda pt");
      *fLambdaPt = *lambdaSiPx; 
       fLambdaPt->SetLineColor(2);
       fLambdaPt->DrawCopy("E");
    
       lambdaMcPx->DrawCopy("same");
 

       //+++ anti-Lambdas
       fLambdaBarEff->Divide(lambdaBarAsPx,lambdaBarMcPx,1,1,"b");
       new TCanvas("c7","Efficiency for anti-#Lambda");
       fLambdaBarEff->DrawCopy("E") ;

       lambdaBarSiPx->Add(lambdaBarFromXiBarPx,-1);
       lambdaBarSiPx->Divide(fLambdaBarEff);

       new TCanvas("c8","Corrected anti-#Lambda pt");
       lambdaBarSiPx->SetTitle("Corrected anti-#Lambda pt");
      *fLambdaBarPt = *lambdaBarSiPx; 
       fLambdaBarPt->SetLineColor(2);
       fLambdaBarPt->DrawCopy("E");
    
       lambdaBarMcPx->DrawCopy("same");
    } else {
       new TCanvas("c6","Raw #Lambda pt");
       lambdaSiPx->SetTitle("Raw #Lambda pt");
      *fLambdaPt = *lambdaSiPx; 
       fLambdaPt->SetLineColor(2);
       fLambdaPt->DrawCopy("E");


       new TCanvas("c7","Raw anti-#Lambda pt");
       lambdaBarSiPx->SetTitle("Raw anti-#Lambda pt");
      *fLambdaBarPt = *lambdaBarSiPx; 
       fLambdaBarPt->SetLineColor(2);
       fLambdaBarPt->DrawCopy("E");
    }
  }

  TFile *file = 0;
  if (fIsMC)
    if (fSelectNonInjected) 
       file=TFile::Open("AliV0CutVariationsMC_nonInj.root", "RECREATE");
    else  
       file=TFile::Open("AliV0CutVariationsMC.root", "RECREATE");
  else
     file=TFile::Open("AliV0CutVariations.root", "RECREATE");

  fOutput->Write() ; 
  file->Close() ;
  delete file ;

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