ROOT logo
/**************************************************************************
 * Copyright(c) 1998-2011, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

/* $Id$ */ 

//-----------------------------------------------------------------------
// Class for HF corrections as a function of many variables and steps
// For Lc->V0+bachelor
// 
// - Based on AliCFVertexingHFCascade -
//
// Contact : A.De Caro - decaro@sa.infn.it
//           Centro 'E.Fermi' - Rome (Italy)
//           INFN and University of Salerno (Italy)
//
//-----------------------------------------------------------------------

#include "TDatabasePDG.h"
#include "TClonesArray.h"
#include "AliAODv0.h"
#include "AliAODMCParticle.h"
#include "AliAODRecoDecayHF.h"
#include "AliAODRecoCascadeHF.h"
#include "AliCFTaskVertexingHF.h"
#include "AliCFContainer.h"
#include "AliCFVertexingHF.h"
#include "AliCFVertexingHFLctoV0bachelor.h"

#include <Riostream.h>

using std::cout;
using std::endl;

ClassImp(AliCFVertexingHFLctoV0bachelor)

//_________________________________________
AliCFVertexingHFLctoV0bachelor::AliCFVertexingHFLctoV0bachelor():
fGenLcOption(0)
{
  // standard constructor
}

//_____________________________________
AliCFVertexingHFLctoV0bachelor::AliCFVertexingHFLctoV0bachelor(TClonesArray *mcArray, UShort_t originDselection, Int_t lcDecay):
AliCFVertexingHF(mcArray, originDselection),
  fGenLcOption(lcDecay)
{
  // standard constructor

  SetNProngs(3);
  fPtAccCut=new Float_t[fProngs];
  fEtaAccCut=new Float_t[fProngs];
  for(Int_t iP=0; iP<fProngs; iP++){
    fPtAccCut[iP]=0.1;
    fEtaAccCut[iP]=0.9;
  }

}


//_____________________________________
AliCFVertexingHFLctoV0bachelor& AliCFVertexingHFLctoV0bachelor::operator=(const AliCFVertexingHFLctoV0bachelor& c)
{
  // operator =
 
  if  (this != &c) {
    AliCFVertexingHF::operator=(c);
  }

  return *this;

}

//__________________________________________
Bool_t AliCFVertexingHFLctoV0bachelor::SetRecoCandidateParam(AliAODRecoDecayHF *recoCand)
{
  // set the AliAODRecoDecay candidate
  
  Bool_t bSignAssoc = kFALSE;
 
  fRecoCandidate = recoCand;
  if (!fRecoCandidate) {
    AliError("fRecoCandidate not found, problem in assignement\n");
    return bSignAssoc;
  }
  
  if (fRecoCandidate->GetPrimaryVtx()) AliDebug(4,"fReco Candidate has a pointer to PrimVtx\n");
  
  AliAODRecoCascadeHF* lcV0bachelor = dynamic_cast<AliAODRecoCascadeHF*>(fRecoCandidate);
  if (!lcV0bachelor) {
    AliDebug(2,"cascade doesn't exist, skipped!");
    return bSignAssoc;
  }

  if (!lcV0bachelor->GetSecondaryVtx()) {
    AliDebug(2,"No secondary vertex for cascade");
    return bSignAssoc;
  }

  if (lcV0bachelor->GetNDaughters()!=2) {
    AliDebug(2,Form("No 2 daughters for current cascade (nDaughters=%d)",lcV0bachelor->GetNDaughters()));
    return bSignAssoc;
  }

  AliVTrack *cascTrk0 = dynamic_cast<AliVTrack*>(lcV0bachelor->GetDaughter(0));
  AliVTrack *cascTrk1 = dynamic_cast<AliVTrack*>(lcV0bachelor->GetDaughter(1));
  if (!cascTrk0 || !cascTrk1) {
    AliDebug(2,"At least one of V0daughters doesn't exist");
    return bSignAssoc;
  }

  AliAODv0 * v0part = dynamic_cast<AliAODv0*>(lcV0bachelor->Getv0());
  AliAODTrack * bachPart = dynamic_cast<AliAODTrack*>(lcV0bachelor->GetBachelor());
  if (!v0part || !bachPart) {
    AliDebug(2,"No V0 or no bachelor for current cascade");
    return bSignAssoc;
  }

  if (bachPart->GetID()<0) {
    AliDebug(2,Form("Bachelor has negative ID %d",bachPart->GetID()));
    return bSignAssoc;
  }

  if (!v0part->GetSecondaryVtx()) {
    AliDebug(2,"No secondary vertex for V0 by cascade");
    return bSignAssoc;
  }

  if (v0part->GetNDaughters()!=2) {
    AliDebug(2,Form("No 2 daughters for V0 of current cascade (onTheFly=%d, nDaughters=%d)",v0part->GetOnFlyStatus(),v0part->GetNDaughters()));
    return bSignAssoc;
  }

  AliVTrack *trk0 = dynamic_cast<AliVTrack*>(v0part->GetDaughter(0));
  AliVTrack *trk1 = dynamic_cast<AliVTrack*>(v0part->GetDaughter(1));
  if (!trk0 || !trk1) {
    AliDebug(2,"At least one of V0daughters doesn't exist");
    return bSignAssoc;
  }

  //if (trk0->GetLabel()<0 || trk1->GetLabel()<0) {
  //AliDebug(2,Form("At least one of V0daughters has label negative (%d %d)",trk0->GetLabel(),trk1->GetLabel()));
  //return bSignAssoc;
  //}

 if (trk0->GetID()<0 || trk1->GetID()<0) {
    AliDebug(2,Form("At least one of V0 daughters has negative ID %d %d",trk0->GetID(),trk1->GetID()));
    return bSignAssoc;
  }

  Int_t pdgCand = 4122;
  Int_t mcLabel = -1;
  Int_t mcLabelK0S = -1;
  Int_t mcLabelLambda = -1;

  // Lc->K0S+p and cc
  Int_t pdgDgLctoV0bachelor[2]={2212,310}; // first bachelor, second V0
  Int_t pdgDgV0toDaughters[2]={211,211};
  mcLabelK0S = lcV0bachelor->MatchToMC(pdgCand,pdgDgLctoV0bachelor[1],pdgDgLctoV0bachelor,pdgDgV0toDaughters,fmcArray,kTRUE);

  // Lc->Lambda+pi and cc
  pdgDgLctoV0bachelor[0]=211, pdgDgLctoV0bachelor[1]=3122; // first bachelor, second V0
  pdgDgV0toDaughters[0]=2212,  pdgDgV0toDaughters[1]=211;
  mcLabelLambda = lcV0bachelor->MatchToMC(pdgCand,pdgDgLctoV0bachelor[1],pdgDgLctoV0bachelor,pdgDgV0toDaughters,fmcArray,kTRUE);

  if (mcLabelK0S!=-1 && mcLabelLambda!=-1)
    AliDebug(2,"Strange: current Lc->V0+bachelor candidate has two MC different labels!");

  if (fGenLcOption==kCountK0Sp) {
    if (mcLabelK0S!=-1) mcLabel=mcLabelK0S;
    if (mcLabelLambda!=-1) {
      mcLabel=-1;
      fFake = 0;    // fake candidate
      if (fFakeSelection==1) return bSignAssoc;
    }
  }
  else if (fGenLcOption==kCountLambdapi) {
    if (mcLabelLambda!=-1) mcLabel=mcLabelLambda;
    if (mcLabelK0S!=-1) {
      mcLabel=-1;
      fFake = 0;    // fake candidate
      if (fFakeSelection==1) return bSignAssoc;
    }
  }

  if (mcLabel==-1) {
    AliDebug(4,"No mcLabel found for current candidate");
    return bSignAssoc;
  }
  AliDebug(1,Form("Found mcLabel (%d) for current candidate (onTheFly=%1d)",mcLabel,v0part->GetOnFlyStatus()));

  if (fRecoCandidate->NumberOfFakeDaughters()>0){
    fFake = 0;    // fake candidate
    if (fFakeSelection==1) return bSignAssoc;
  }
  if (fRecoCandidate->NumberOfFakeDaughters()==0){
    fFake = 2;    // non-fake candidate
    if (fFakeSelection==2) return bSignAssoc;
  }
  
  SetMCLabel(mcLabel); // fmcLabel=mcLabel
  fmcPartCandidate = dynamic_cast<AliAODMCParticle*>(fmcArray->At(fmcLabel)); 
  if (!fmcPartCandidate){
    AliDebug(3,"No MC object for current candidate");
    return bSignAssoc;
  }
 
  bSignAssoc = kTRUE;
  return bSignAssoc;

}

//______________________________________________
Bool_t AliCFVertexingHFLctoV0bachelor::GetGeneratedValuesFromMCParticle(Double_t* vectorMC) 
{
  // 
  // collecting all the necessary info (pt, y, invMassV0, cosPAwrtPVxV0, onTheFlyStatusV0) from MC particle
  // (additional infos: pTbachelor, pTV0pos, pTV0neg, phi, dcaV0, cTV0, cT, cosPA)
  //

  Bool_t bGenValues = kFALSE;

  if (fmcPartCandidate->GetNDaughters()!=2) {
    AliDebug(2,"Lc MC particle doesn't decay in 2 daughters");
    return bGenValues;
  }

  Int_t daughter0lc = fmcPartCandidate->GetDaughter(0);
  Int_t daughter1lc = fmcPartCandidate->GetDaughter(1);
  if (daughter0lc<=0 || daughter1lc<=0) {
    AliDebug(2,"Lc daughters are not in MC array");
    return bGenValues;
  }

  AliAODMCParticle* mcPartDaughter0 = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughter0lc));
  AliAODMCParticle* mcPartDaughter1 = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughter1lc));
  if (!mcPartDaughter0 || !mcPartDaughter1) {
    AliDebug(2,"Problems in the MC Daughters\n");
    return bGenValues;
  }

  if ( fGenLcOption==kCountLambdapi &&
       !(TMath::Abs(mcPartDaughter0->GetPdgCode())==3122 &&
	 TMath::Abs(mcPartDaughter1->GetPdgCode())==211) &&
       !(TMath::Abs(mcPartDaughter1->GetPdgCode())==3122 &&
	 TMath::Abs(mcPartDaughter0->GetPdgCode())==211) ) return bGenValues;
  if ( fGenLcOption==kCountK0Sp &&
       !(TMath::Abs(mcPartDaughter0->GetPdgCode())==2212 &&
	 TMath::Abs(mcPartDaughter1->GetPdgCode())==311) &&
       !(TMath::Abs(mcPartDaughter1->GetPdgCode())==2212 &&
	 TMath::Abs(mcPartDaughter0->GetPdgCode())==311) ) return bGenValues;

  if ( (TMath::Abs(mcPartDaughter0->GetPdgCode())==311   &&
	TMath::Abs(mcPartDaughter1->GetPdgCode())==2212) ||
       (TMath::Abs(mcPartDaughter0->GetPdgCode())==3122  &&
	TMath::Abs(mcPartDaughter1->GetPdgCode())==211) )
    bGenValues = FillVectorFromMCarray(mcPartDaughter1,mcPartDaughter0,vectorMC);
  else if ( (TMath::Abs(mcPartDaughter1->GetPdgCode())==311   &&
	     TMath::Abs(mcPartDaughter0->GetPdgCode())==2212) ||
	    (TMath::Abs(mcPartDaughter1->GetPdgCode())==3122  &&
	     TMath::Abs(mcPartDaughter0->GetPdgCode())==211) )
    bGenValues = FillVectorFromMCarray(mcPartDaughter0,mcPartDaughter1,vectorMC);

  if (!bGenValues)
    AliDebug(2,"There is something wrong in filling MC vector");

  return bGenValues;

}

//____________________________________________
Bool_t AliCFVertexingHFLctoV0bachelor::GetRecoValuesFromCandidate(Double_t *vectorReco) const
{ 
  // read the variables for the container

  Bool_t bFillRecoValues = kFALSE;

  //Get the Lc and the V0 from Lc
  AliAODRecoCascadeHF* lcV0bachelor = dynamic_cast<AliAODRecoCascadeHF*>(fRecoCandidate);

  if (!lcV0bachelor) {
    AliDebug(2,"Current cascade doesn't exist, skipped");
    return bFillRecoValues;
  }

  if (!lcV0bachelor->GetSecondaryVtx()) {
    AliDebug(2,"No secondary vertex for cascade");
    return bFillRecoValues;
  }

  if (lcV0bachelor->GetNDaughters()!=2) {
    AliDebug(2,Form("No 2 daughters for current cascade (nDaughters=%d)",lcV0bachelor->GetNDaughters()));
    return bFillRecoValues;
  }

  AliAODTrack* bachelor = dynamic_cast<AliAODTrack*>(lcV0bachelor->GetBachelor());
  AliAODv0* v0toDaughters = dynamic_cast<AliAODv0*>(lcV0bachelor->Getv0());
  if (!bachelor || !v0toDaughters) {
    AliDebug(2,"No V0 or bachelor in this reco candidate, skipping!");
    return bFillRecoValues;
  }

  if (!v0toDaughters->GetSecondaryVtx()) {
    AliDebug(2,"No secondary vertex for V0 by cascade");
    return bFillRecoValues;
  }

  if (v0toDaughters->GetNDaughters()!=2) {
    AliDebug(2,Form("current V0 has not 2 daughters (onTheFly=%d, nDaughters=%d)",v0toDaughters->GetOnFlyStatus(),v0toDaughters->GetNDaughters()));
    return bFillRecoValues;
  }

  Bool_t onTheFlyStatus = v0toDaughters->GetOnFlyStatus();
  AliAODTrack* v0positiveTrack;
  AliAODTrack* v0negativeTrack;
  if (onTheFlyStatus) {
    v0positiveTrack = dynamic_cast<AliAODTrack*>(lcV0bachelor->Getv0NegativeTrack());
    v0negativeTrack = dynamic_cast<AliAODTrack*>(lcV0bachelor->Getv0PositiveTrack());
  } else {
    v0positiveTrack = dynamic_cast<AliAODTrack*>(lcV0bachelor->Getv0PositiveTrack());
    v0negativeTrack = dynamic_cast<AliAODTrack*>(lcV0bachelor->Getv0NegativeTrack());
  }

  if (!v0positiveTrack || !v0negativeTrack) {
    AliDebug(2,"No V0daughters in this reco candidate, skipping!");
    return bFillRecoValues;
  }

  Double_t pt = lcV0bachelor->Pt();
  Double_t rapidity = lcV0bachelor->Y(4122);

  Double_t cosPAwrtPrimVtxV0 = lcV0bachelor->CosV0PointingAngle();

  //Double_t pTbachelor = bachelor->Pt();
  Double_t pbachelor = bachelor->P();
  //Double_t pTV0pos = v0positiveTrack->Pt();
  //Double_t pTV0neg = v0negativeTrack->Pt();
  Double_t phi = lcV0bachelor->Phi();
  Double_t dcaV0 = v0toDaughters->GetDCA();
  //Double_t cTLc = lcV0bachelor->Ct(4122); // wrt PrimVtx
  //Double_t dcaLc = lcV0bachelor->GetDCA();
  Double_t cosPointingAngleLc = lcV0bachelor->CosPointingAngle();

  /*
  Double_t cTV0 = 0.;
  AliAODVertex *vtx0 = (AliAODVertex*)lcV0bachelor->GetPrimaryVtx();
  if (!vtx0) {
    AliDebug(2,"Candidate has not primary vtx");
  } else {
    Double_t primVtxPos[3] = {0.,0.,0.}; vtx0->GetXYZ(primVtxPos);
    if (fGenLcOption==kCountK0Sp) {
      cTV0 = v0toDaughters->Ct(310,primVtxPos);
    } else if (fGenLcOption==kCountLambdapi) {
      cTV0 = v0toDaughters->Ct(3122,primVtxPos);
    }
  }
  */

  Double_t invMassV0 = 0.;
  if (fGenLcOption==kCountLambdapi) {

    Short_t bachelorCharge = bachelor->Charge();
    if (bachelorCharge==1) {
      invMassV0 = v0toDaughters->MassLambda();
    } else if (bachelorCharge==-1) {
      invMassV0 = v0toDaughters->MassAntiLambda();
    }

  } else if (fGenLcOption==kCountK0Sp) {

    invMassV0 = v0toDaughters->MassK0Short();

  }

  vectorReco[0]  = pt;
  vectorReco[1]  = rapidity;
  vectorReco[2]  = phi;
  vectorReco[3]  = onTheFlyStatus;
  vectorReco[4]  = fzPrimVertex;
  vectorReco[5]  = fCentValue;
  vectorReco[6]  = fFake; // whether the reconstructed candidate was a fake (fFake = 0) or not (fFake = 2) 
  vectorReco[7]  = fMultiplicity;

  if (fConfiguration==AliCFTaskVertexingHF::kSnail) {
    //vectorReco[8]  = pTbachelor;
    vectorReco[8]  = pbachelor;
    vectorReco[9]  = v0toDaughters->Pt();
    if (fGenLcOption==kCountLambdapi) {
      vectorReco[10] = v0toDaughters->Y(3122);
    } else if (fGenLcOption==kCountK0Sp) {
      vectorReco[10] = v0toDaughters->Y(310);
    }
    vectorReco[11] = v0toDaughters->Phi();
    vectorReco[12] = invMassV0;
    vectorReco[13] = dcaV0;
    vectorReco[14] = cosPAwrtPrimVtxV0;
    vectorReco[15] = cosPointingAngleLc;
    //vectorReco[16] = cTV0*1.E4; // in micron
    //vectorReco[17] = cTLc*1.E4; // in micron
  }

  bFillRecoValues = kTRUE;

  return bFillRecoValues;
}

//_____________________________________________________________
Bool_t AliCFVertexingHFLctoV0bachelor::CheckMCChannelDecay() const
{ 
  // check the required decay channel

  Bool_t checkCD = kFALSE;
  Double_t sumPxDau=0.;
  Double_t sumPyDau=0.;
  Double_t sumPzDau=0.;

 
  if (fmcPartCandidate->GetNDaughters()!=2) {
    AliDebug(2, Form("The MC particle doesn't decay in 2 particles, skipping!!"));
    return checkCD;
  }

  Int_t daughter0 = fmcPartCandidate->GetDaughter(0);
  Int_t daughter1 = fmcPartCandidate->GetDaughter(1);
  if (daughter0<=0 || daughter1<=0){
    AliDebug(2, Form("The MC particle doesn't have correct daughters, skipping!!"));
    return checkCD;
  }
  AliAODMCParticle* mcPartDaughter0 = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughter0));
  AliAODMCParticle* mcPartDaughter1 = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughter1));
  if (!mcPartDaughter0 || !mcPartDaughter1) {
    AliDebug(2,"Problems in the MC Daughters\n");
    return checkCD;
  }

  // Lc -> Lambda + pion AND cc
  if (fGenLcOption==kCountLambdapi) {

    if (!(TMath::Abs(mcPartDaughter0->GetPdgCode())==3122 &&
	  TMath::Abs(mcPartDaughter1->GetPdgCode())==211) && 
	!(TMath::Abs(mcPartDaughter0->GetPdgCode())==211  &&
	  TMath::Abs(mcPartDaughter1->GetPdgCode())==3122)) {
      AliDebug(2, "The Lc MC doesn't decay in Lambda+pion (or cc), skipping!!");
      return checkCD;  
    }

    if (TMath::Abs(mcPartDaughter0->GetPdgCode())==3122) {
      mcPartDaughter0 = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughter1)); // the bachelor
      mcPartDaughter1 = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughter0)); // the V0
    }
    if (!mcPartDaughter0 || !mcPartDaughter1) {
      AliDebug(2,"Problems in the MC Daughters\n");
      return checkCD;
    }
    // momentum of the bachelor
    sumPxDau+=mcPartDaughter0->Px();
    sumPyDau+=mcPartDaughter0->Py();
    sumPzDau+=mcPartDaughter0->Pz();

    if (mcPartDaughter1->GetNDaughters()!=2) {
      AliDebug(2, "The Lambda MC particle doesn't decay in 2 particles, skipping!!");
      return checkCD;
    }

    Int_t daughter1D0 = mcPartDaughter1->GetDaughter(0);
    Int_t daughter1D1 = mcPartDaughter1->GetDaughter(1);
    if (daughter1D0<=0 || daughter1D1<=0) {
      AliDebug(2, Form("The Lambda MC particle doesn't have correct daughters, skipping!!"));
      return checkCD;
    }

    AliAODMCParticle* mcPartDaughter1D0 = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughter1D0));
    AliAODMCParticle* mcPartDaughter1D1 = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughter1D1));
    if(!mcPartDaughter1D0 || !mcPartDaughter1D1) {
      AliError("The Lambda daughter particle not found in MC array");
      return checkCD;
    }

    if (!(TMath::Abs(mcPartDaughter1D0->GetPdgCode())==211   &&
	  TMath::Abs(mcPartDaughter1D1->GetPdgCode())==2212) &&
	!(TMath::Abs(mcPartDaughter1D0->GetPdgCode())==2212  &&
	  TMath::Abs(mcPartDaughter1D1->GetPdgCode())==211)) {
      AliDebug(2, "The Lambda MC doesn't decay in pi+proton (or cc), skipping!!");
      return checkCD;
    }

    // momentum of the V0 daughters
    sumPxDau+=mcPartDaughter1D0->Px();
    sumPyDau+=mcPartDaughter1D0->Py();
    sumPzDau+=mcPartDaughter1D0->Pz();
    sumPxDau+=mcPartDaughter1D1->Px();
    sumPyDau+=mcPartDaughter1D1->Py();
    sumPzDau+=mcPartDaughter1D1->Pz();

  } else if (fGenLcOption==kCountK0Sp) { // Lc -> K0bar + proton AND cc

    if (!(TMath::Abs(mcPartDaughter0->GetPdgCode())==311   &&
	  TMath::Abs(mcPartDaughter1->GetPdgCode())==2212) &&
	!(TMath::Abs(mcPartDaughter0->GetPdgCode())==2212  &&
	  TMath::Abs(mcPartDaughter1->GetPdgCode())==311)) {
      AliDebug(2, "The Lc MC doesn't decay in K0+proton (or cc), skipping!!");
      return checkCD;  
    }
    
    if (TMath::Abs(mcPartDaughter0->GetPdgCode())==311) {
      mcPartDaughter0 = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughter1)); // the bachelor
      mcPartDaughter1 = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughter0)); // the V0
    }
    if (!mcPartDaughter0 || !mcPartDaughter1) {
      AliDebug(2,"Problems in the MC Daughters after swapping V0 and bachelor\n");
      return checkCD;
    }

    // momentum of the bachelor
    sumPxDau+=mcPartDaughter0->Px();
    sumPyDau+=mcPartDaughter0->Py();
    sumPzDau+=mcPartDaughter0->Pz();

    if (mcPartDaughter1->GetNDaughters()!=1) {
      AliDebug(2, "The K0/K0bar MC particle doesn't decay in 1 particles, skipping!!");
      return checkCD;
    }

    Int_t daughter = mcPartDaughter1->GetDaughter(0);
    if (daughter<=0) {
      AliDebug(2, Form("The K0/K0bar MC particle doesn't have correct daughter, skipping!!"));
      return checkCD;
    }

    AliAODMCParticle* mcPartDaughter = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughter));
    if(!mcPartDaughter){
      AliError("The K0/K0bar daughter particle not found in MC array");
      return checkCD;
    }

    if (!(TMath::Abs(mcPartDaughter->GetPdgCode())==310)) {
      AliDebug(2, "The K0/K0bar MC doesn't go in K0S, skipping!!");
      return checkCD;
    }

    if (mcPartDaughter->GetNDaughters()!=2) {
      AliDebug(2, "The K0S MC doesn't decay in 2 particles, skipping!!");
      return checkCD;
    }

    Int_t daughterD0 = mcPartDaughter->GetDaughter(0);
    Int_t daughterD1 = mcPartDaughter->GetDaughter(1);
    if (daughterD0<=0 || daughterD1<=0) {
      AliDebug(2, Form("The K0S MC particle doesn't have correct daughters, skipping!!"));
      return checkCD;
    }

    AliAODMCParticle* mcPartDaughterD0 = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughterD0));
    AliAODMCParticle* mcPartDaughterD1 = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughterD1));
    if (!mcPartDaughterD0 || !mcPartDaughterD1) {
      AliError("Daughter particle not found in MC array");
      return checkCD;
    }

    if (! ( TMath::Abs(mcPartDaughterD0->GetPdgCode())==211 &&
	    TMath::Abs(mcPartDaughterD1->GetPdgCode())==211 ) ) {
      AliDebug(2, "The K0S MC doesn't decay in pi+ pi-, skipping!!");
      return checkCD;
    }

    // momentum of the V0 daughters
    sumPxDau+=mcPartDaughterD0->Px();
    sumPyDau+=mcPartDaughterD0->Py();
    sumPzDau+=mcPartDaughterD0->Pz();
    sumPxDau+=mcPartDaughterD1->Px();
    sumPyDau+=mcPartDaughterD1->Py();
    sumPzDau+=mcPartDaughterD1->Pz();

  }
  
  Double_t pxMother=fmcPartCandidate->Px();
  Double_t pyMother=fmcPartCandidate->Py();
  Double_t pzMother=fmcPartCandidate->Pz();
  if(TMath::Abs(pxMother-sumPxDau)/(TMath::Abs(pxMother)+1.e-13)>0.00001 ||
     TMath::Abs(pyMother-sumPyDau)/(TMath::Abs(pyMother)+1.e-13)>0.00001 ||
     TMath::Abs(pzMother-sumPzDau)/(TMath::Abs(pzMother)+1.e-13)>0.00001){
    AliDebug(2, "Momentum conservation violated, skipping!!");
    return checkCD;  
  }

  checkCD = kTRUE;
  return checkCD;
  
}

//_____________________________________________________________
Double_t AliCFVertexingHFLctoV0bachelor::GetEtaProng(Int_t iProng) const 
{
  //
  // getting eta of the prong - overload the mother class method
  //

  Double_t etaProng =-9999;

  if (!fRecoCandidate) {
    AliDebug(2,"No reco candidate selected");
    return etaProng;
  }

  AliAODRecoCascadeHF* lcV0bachelor = (AliAODRecoCascadeHF*)fRecoCandidate;
  AliAODTrack* bachelor = (AliAODTrack*)lcV0bachelor->GetBachelor();
  AliAODTrack* v0Pos = (AliAODTrack*)lcV0bachelor->Getv0PositiveTrack();
  AliAODTrack* v0Neg = (AliAODTrack*)lcV0bachelor->Getv0NegativeTrack();
  if (!(lcV0bachelor->Getv0()) || !bachelor || !v0Pos || !v0Neg) {
    AliDebug(2,"No V0 for this reco candidate selected");
    return etaProng;
  }

  if (iProng==0) etaProng = bachelor->Eta();
  else if (iProng==1) etaProng = v0Pos->Eta();
  else if (iProng==2) etaProng = v0Neg->Eta();

  AliDebug(4,Form("Eta value for prong number %1d = %f",iProng,etaProng));

  return etaProng;

}

//_____________________________________________________________

Double_t AliCFVertexingHFLctoV0bachelor::GetPtProng(Int_t iProng) const 
{
  //
  // getting pt of the prong
  //

  Double_t ptProng=-9999.;

  if (!fRecoCandidate) {
    AliDebug(2,"No reco candidate selected");
    return ptProng;
  }

  AliAODRecoCascadeHF* lcV0bachelor = (AliAODRecoCascadeHF*)fRecoCandidate;
  AliAODTrack* bachelor = (AliAODTrack*)lcV0bachelor->GetBachelor();
  AliAODTrack* v0Pos = (AliAODTrack*)lcV0bachelor->Getv0PositiveTrack();
  AliAODTrack* v0Neg = (AliAODTrack*)lcV0bachelor->Getv0NegativeTrack();
  if (!(lcV0bachelor->Getv0()) || !bachelor || !v0Pos || !v0Neg) {
    AliDebug(2,"No V0 for this reco candidate selected");
    return ptProng;
  }

  if (iProng==0) ptProng = bachelor->Pt();
  else if (iProng==1) ptProng = v0Pos->Pt();
  else if (iProng==2) ptProng = v0Neg->Pt();
    
  AliDebug(4,Form("Pt value for prong number %1d = %f",iProng,ptProng));

  return ptProng;
  
}

//_____________________________________________________________

Double_t AliCFVertexingHFLctoV0bachelor::Ctau(AliAODMCParticle *mcPartCandidate)
{

  Double_t cTau = 999999.;

  Int_t daughterD0 = mcPartCandidate->GetDaughter(0);
  Int_t daughterD1 = mcPartCandidate->GetDaughter(1);
  if (daughterD0<=0 || daughterD1<=0) {
    AliDebug(2, Form("The Lc MC particle doesn't have correct daughters, skipping!!"));
    return cTau;
  }

  AliAODMCParticle *mcPartDaughter0 = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughterD0));
  AliAODMCParticle *mcPartDaughter1 = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughterD1));
  if (!mcPartDaughter0 || !mcPartDaughter1) {
    AliDebug(2,"The candidate daughter particles not found in MC array");
    return cTau;
  }

  Double_t vtx1[3] = {0,0,0};   // primary vertex		
  Bool_t hasProdVertex = mcPartCandidate->XvYvZv(vtx1);  // cm

  Double_t vtx1daughter[3] = {0,0,0};   // secondary vertex
  Bool_t v0Vertex = mcPartDaughter0->XvYvZv(vtx1daughter);  //cm
  Double_t vtx2daughter[3] = {0,0,0};   // secondary vertex
  Bool_t bachVertex = hasProdVertex && mcPartDaughter1->XvYvZv(vtx2daughter);  //cm

  if (!hasProdVertex || !v0Vertex || !bachVertex) {
    AliDebug(2,"At least one of Prim.vtx, V0vtx, BachelorVtx doesn't exist!");
    return cTau;
  }

  if (TMath::Abs(vtx1daughter[0]-vtx2daughter[0])>1E-5 ||
      TMath::Abs(vtx1daughter[1]-vtx2daughter[1])>1E-5 ||
      TMath::Abs(vtx1daughter[2]-vtx2daughter[2])>1E-5) {
    AliDebug(2,"Bachelor and V0 haven't common vtx!");
    return cTau;
  }

  Double_t decayLength = 0.;
  for (Int_t ii=0; ii<3; ii++) decayLength += (vtx1daughter[ii]-vtx1[ii])*(vtx1daughter[ii]-vtx1[ii]);
  decayLength = TMath::Sqrt(decayLength);

  cTau = decayLength * mcPartCandidate->M()/mcPartCandidate->P();

  AliDebug(2,Form(" cTau(4122)=%f",cTau));

  return cTau;

}

//------------
Bool_t AliCFVertexingHFLctoV0bachelor::SetLabelArray()
{
  //
  // setting the label arrays
  //

  Bool_t checkCD = kFALSE;
  
  if (fmcPartCandidate->GetNDaughters()!=2) {
    AliDebug(2, Form("The MC particle have %d daughters (not 2), skipping!!",fmcPartCandidate->GetNDaughters()));
    //    fmcPartCandidate->Print();
    return checkCD;
  }

  Int_t daughter0 = fmcPartCandidate->GetDaughter(0);
  Int_t daughter1 = fmcPartCandidate->GetDaughter(1);
  if (daughter0<=0 || daughter1<=0){
    AliDebug(2, Form("The MC particle doesn't have correct daughters, skipping!!"));
    return checkCD;
  }

  AliAODMCParticle* mcPartDaughter0 = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughter0));
  AliAODMCParticle* mcPartDaughter1 = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughter1));
  if (!mcPartDaughter0 || !mcPartDaughter1) {
    AliDebug(2,"Problems in the MC Daughters\n");
    return checkCD;
  }


  fLabelArray = new Int_t[fProngs];

  if (fGenLcOption==kCountLambdapi) { // Lc -> Lambda + pion OR cc

    if (!(TMath::Abs(mcPartDaughter0->GetPdgCode())==3122 &&
	  TMath::Abs(mcPartDaughter1->GetPdgCode())==211) && 
	!(TMath::Abs(mcPartDaughter0->GetPdgCode())==211  &&
	  TMath::Abs(mcPartDaughter1->GetPdgCode())==3122)) {
      AliDebug(2, "The Lc MC doesn't decay in Lambda+pion (or cc), skipping!!");
      delete [] fLabelArray;
      fLabelArray = 0x0;
      return checkCD;  
    }

    // it is Lc -> Lambda + pion OR cc
    if (TMath::Abs(mcPartDaughter0->GetPdgCode())==3122) {
      mcPartDaughter0 = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughter1)); // the bachelor
      mcPartDaughter1 = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughter0)); // the V0
      Int_t daughterTemp = daughter0;
      daughter0 = daughter1; // the bachelor label
      daughter1 = daughterTemp; // the V0 label
    }

    if (mcPartDaughter1->GetNDaughters()!=2) {
      AliDebug(2, "The Lambda MC particle doesn't decay in 2 particles, skipping!!");
      delete [] fLabelArray;
      fLabelArray = 0x0;
      return checkCD;
    }

    Int_t daughter1D0 = mcPartDaughter1->GetDaughter(0);
    Int_t daughter1D1 = mcPartDaughter1->GetDaughter(1);
    if (daughter1D0<=0 || daughter1D1<=0) {
      AliDebug(2, Form("The Lambda MC particle doesn't have correct daughters, skipping!!"));
      delete [] fLabelArray;
      fLabelArray = 0x0;
      return checkCD;
    }

    AliAODMCParticle* mcPartDaughter1D0 = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughter1D0));
    AliAODMCParticle* mcPartDaughter1D1 = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughter1D1));
    if (!mcPartDaughter1D0 || !mcPartDaughter1D1) {
      AliError("The Lambda daughter particles not found in MC array");
      delete [] fLabelArray;
      fLabelArray = 0x0;
      return checkCD;
    }

    if (!(TMath::Abs(mcPartDaughter1D0->GetPdgCode())==211   &&
	  TMath::Abs(mcPartDaughter1D1->GetPdgCode())==2212) &&
	!(TMath::Abs(mcPartDaughter1D0->GetPdgCode())==2212  &&
	  TMath::Abs(mcPartDaughter1D1->GetPdgCode())==211)) {
      AliDebug(2, "The Lambda MC doesn't decay in pi+proton (or cc), skipping!!");
      delete [] fLabelArray;
      fLabelArray = 0x0;
      return checkCD;
    }

    // Lambda -> p+pi OR cc

    fLabelArray[0] = daughter0;//mcPartDaughter0->GetLabel(); // bachelor

    if (fmcPartCandidate->Charge()>0) {

      if (mcPartDaughter1D0->GetPdgCode()==2212) {
	fLabelArray[1] = daughter1D0;//mcPartDaughter1D0->GetLabel(); // proton
	fLabelArray[2] = daughter1D1;//mcPartDaughter1D1->GetLabel(); // pion
      } else if (mcPartDaughter1D1->GetPdgCode()==2212) {
	fLabelArray[1] = daughter1D1;//mcPartDaughter1D1->GetLabel(); // proton
	fLabelArray[2] = daughter1D0;//mcPartDaughter1D0->GetLabel(); // pion
      }

    } else if (fmcPartCandidate->Charge()<0) {

      if (mcPartDaughter1D0->GetPdgCode()==211) {
	fLabelArray[1] = daughter1D0;//mcPartDaughter1D0->GetLabel(); // pion
	fLabelArray[2] = daughter1D1;//mcPartDaughter1D1->GetLabel(); // proton
      } else if (mcPartDaughter1D1->GetPdgCode()==211) {
	fLabelArray[1] = daughter1D1;//mcPartDaughter1D1->GetLabel(); // pion
	fLabelArray[2] = daughter1D0;//mcPartDaughter1D0->GetLabel(); // proton
      }

    }

  } else if (fGenLcOption==kCountK0Sp) { // Lc -> K0bar + proton OR cc

    if (!(TMath::Abs(mcPartDaughter0->GetPdgCode())==311   &&
	  TMath::Abs(mcPartDaughter1->GetPdgCode())==2212) &&
	!(TMath::Abs(mcPartDaughter0->GetPdgCode())==2212  &&
	  TMath::Abs(mcPartDaughter1->GetPdgCode())==311)) {
      AliDebug(2, "The Lc MC doesn't decay in K0bar+proton (or cc), skipping!!");
      delete [] fLabelArray;
      fLabelArray = 0x0;
      return checkCD;  
    }

    if (TMath::Abs(mcPartDaughter0->GetPdgCode())==311) {
      mcPartDaughter0 = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughter1)); // the bachelor
      mcPartDaughter1 = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughter0)); // the V0
      Int_t daughterTemp = daughter0;
      daughter0 = daughter1; // the bachelor label
      daughter1 = daughterTemp; // the V0 label
    }

    if (mcPartDaughter1->GetNDaughters()!=1) {
      AliDebug(2, "The K0/K0bar MC particle doesn't decay in 1 particles, skipping!!");
      delete [] fLabelArray;
      fLabelArray = 0x0;
      return checkCD;
    }

    Int_t daughter = mcPartDaughter1->GetDaughter(0);
    if (daughter<=0) {
      AliDebug(2, Form("The K0/K0bar MC particle doesn't have correct daughter, skipping!!"));
      delete [] fLabelArray;
      fLabelArray = 0x0;
      return checkCD;
    }

    AliAODMCParticle* mcPartDaughter = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughter));
    if (!mcPartDaughter) {
      AliError("The K0/K0bar daughter particle not found in MC array");
      delete [] fLabelArray;
      fLabelArray = 0x0;
      return checkCD;
    }

    if (!(TMath::Abs(mcPartDaughter->GetPdgCode())==310)) {
      AliDebug(2, "The K0/K0bar MC doesn't go in K0S, skipping!!");
      delete [] fLabelArray;
      fLabelArray = 0x0;
      return checkCD;
    }

    if (mcPartDaughter->GetNDaughters()!=2) {
      AliDebug(2, "The K0S MC doesn't decay in 2 particles, skipping!!");
      delete [] fLabelArray;
      fLabelArray = 0x0;
      return checkCD;
    }

    Int_t daughterD0 = mcPartDaughter->GetDaughter(0);
    Int_t daughterD1 = mcPartDaughter->GetDaughter(1);
    if (daughterD0<=0 || daughterD1<=0) {
      AliDebug(2, Form("The K0S MC particle doesn't have correct daughters, skipping!!"));
      delete [] fLabelArray;
      fLabelArray = 0x0;
      return checkCD;
    }

    AliAODMCParticle* mcPartDaughterD0 = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughterD0));
    AliAODMCParticle* mcPartDaughterD1 = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughterD1));
    if (!mcPartDaughterD0 || !mcPartDaughterD1) {
      AliError("The K0S daughter particles not found in MC array");
      delete [] fLabelArray;
      fLabelArray = 0x0;
      return checkCD;
    }

    if (! ( TMath::Abs(mcPartDaughterD0->GetPdgCode())==211 &&
	    TMath::Abs(mcPartDaughterD1->GetPdgCode())==211 ) ) {
      AliDebug(2, "The K0S MC doesn't decay in pi+ pi-, skipping!!");
      delete [] fLabelArray;
      fLabelArray = 0x0;
      return checkCD;
    }

    // K0S -> pi+ pi-

    fLabelArray[0] = daughter0;//mcPartDaughter0->GetLabel(); // bachelor

    if (mcPartDaughterD0->GetPdgCode()==211) {
      fLabelArray[1] = daughterD0;//mcPartDaughterD0->GetLabel(); // pi+
      fLabelArray[2] = daughterD1;//mcPartDaughterD1->GetLabel(); // pi-
      AliDebug(2,Form(" daughter0=%d ------ daughter1=%d ------ dg0->GetLabel()=%d ------ dg1->GetLabel()=%d ",daughterD0,daughterD1,mcPartDaughterD0->GetLabel(),mcPartDaughterD1->GetLabel()));
    } else if (mcPartDaughterD1->GetPdgCode()==211) {
      fLabelArray[1] = daughterD1;//mcPartDaughterD1->GetLabel(); // pi+
      fLabelArray[2] = daughterD0;//mcPartDaughterD0->GetLabel(); // pi-
      AliDebug(2,Form(" daughter0=%d ------ daughter1=%d ------ dg0->GetLabel()=%d ------ dg1->GetLabel()=%d ",daughterD1,daughterD0,mcPartDaughterD1->GetLabel(),mcPartDaughterD0->GetLabel()));
    }
  }

  AliDebug(2,Form(" label0=%d, label1=%d, label2=%d",fLabelArray[0],fLabelArray[1],fLabelArray[2]));
  
  SetAccCut(); // setting the pt and eta acceptance cuts

  checkCD = kTRUE;
  return checkCD;

}
//____________________________________________
Bool_t AliCFVertexingHFLctoV0bachelor::FillVectorFromMCarray(AliAODMCParticle *mcPartDaughterBachelor,
							     AliAODMCParticle *mcPartDaughterK0,
							     Double_t *vectorMC)
{
  // fill the vector

  Bool_t bGenValues = kFALSE;

  AliAODMCParticle *mcPartV0DaughterPos = dynamic_cast<AliAODMCParticle*>(fmcArray->At(fLabelArray[1]));
  AliAODMCParticle *mcPartV0DaughterNeg = dynamic_cast<AliAODMCParticle*>(fmcArray->At(fLabelArray[2]));
  AliAODMCParticle *mcPartDaughterV0 = 0x0;

  if(!mcPartV0DaughterPos || !mcPartV0DaughterNeg) return bGenValues;

  if (TMath::Abs(mcPartDaughterK0->GetPdgCode())==311) {
    Int_t daughterK0 = mcPartDaughterK0->GetDaughter(0);
    if (daughterK0<=0) {
      AliDebug(2, Form("The K0/K0bar particle doesn't have correct daughter, skipping!!"));
      return bGenValues;
    }
    mcPartDaughterV0 = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughterK0));
    if (!mcPartDaughterV0) {
      AliDebug(2,"The K0/K0bar daughter particle not found in MC array");
      return bGenValues;
    }
    if (TMath::Abs(mcPartDaughterV0->GetPdgCode())!=310) {
      AliDebug(2,"The K0/K0bar daughter particle is not a K0S");
      return bGenValues;
    }
  } else if (TMath::Abs(mcPartDaughterK0->GetPdgCode())==3122) {
    mcPartDaughterV0 = dynamic_cast<AliAODMCParticle*>(mcPartDaughterK0);
    if (!mcPartDaughterV0) {
      AliDebug(2,"The Lambda particle not found in MC array");
      return bGenValues;
    }
  }

  if (!mcPartDaughterV0) {
    AliDebug(2,"V0 particle not found in MC array");
    return bGenValues;
  }

  //Double_t cTLc = Ctau(fmcPartCandidate); // by default wrt Primary Vtx
  //Double_t pTbach = mcPartDaughterBachelor->Pt(); // get the bachelor pT
  Double_t pbach = mcPartDaughterBachelor->P(); // get the bachelor p

  Double_t vtx1[3] = {0,0,0};   // primary vertex		
  Bool_t hasPrimVtx = fmcPartCandidate->XvYvZv(vtx1);  // cm

  // getting vertex from daughters
  Double_t vtx1daughter0[3] = {0,0,0};   // secondary vertex from daughter 0
  Bool_t hasSecVtx1 = mcPartDaughterBachelor->XvYvZv(vtx1daughter0);  //cm
  Double_t vtx1daughter1[3] = {0,0,0};   // secondary vertex from daughter 1
  Bool_t hasSecVtx2 = mcPartDaughterV0->XvYvZv(vtx1daughter1);  //cm
  if (!hasPrimVtx || !hasSecVtx1 || !hasSecVtx2) {
    AliDebug(2,"At least one of Prim.vtx, V0vtx, BachelorVtx doesn't exist!");
    //return bGenValues;
  }

  if (TMath::Abs(vtx1daughter0[0]-vtx1daughter1[0])>1E-5 ||
      TMath::Abs(vtx1daughter0[1]-vtx1daughter1[1])>1E-5 ||
      TMath::Abs(vtx1daughter0[2]-vtx1daughter1[2])>1E-5) {
    AliError("Daughters have different secondary vertex, skipping the track");
    //return bGenValues;
  }

  // getting the momentum from the daughters
  Double_t px1[2] = {mcPartDaughterBachelor->Px(), mcPartDaughterV0->Px()};
  Double_t py1[2] = {mcPartDaughterBachelor->Py(), mcPartDaughterV0->Py()};
  Double_t pz1[2] = {mcPartDaughterBachelor->Pz(), mcPartDaughterV0->Pz()};

  Int_t nprongs = 2;
  Short_t charge = mcPartDaughterBachelor->Charge();
  Double_t d0[2] = {0.,0.};
  AliAODRecoDecayHF* decayLc = new AliAODRecoDecayHF(vtx1,vtx1daughter0,nprongs,charge,px1,py1,pz1,d0);
  Double_t cosPAwrtPrimVtxLc = decayLc->CosPointingAngle();
  delete decayLc;

  // getting vertex from daughters
  Double_t vtx2daughter0[3] = {0,0,0};   // secondary vertex from daughter 0
  Bool_t hasSecVtx3 = mcPartV0DaughterPos->XvYvZv(vtx2daughter0);  //cm
  Double_t vtx2daughter1[3] = {0,0,0};   // secondary vertex from daughter 1
  Bool_t hasSecVtx4 = mcPartV0DaughterNeg->XvYvZv(vtx2daughter1);  //cm
  if (!hasSecVtx3 || !hasSecVtx4) {
    AliDebug(2,"At least one of V0Posvtx, V0Negtx doesn't exist!");
    //return bGenValues;
  }

  if (TMath::Abs(vtx2daughter0[0]-vtx2daughter1[0])>1E-5 ||
      TMath::Abs(vtx2daughter0[1]-vtx2daughter1[1])>1E-5 ||
      TMath::Abs(vtx2daughter0[2]-vtx2daughter1[2])>1E-5) {
    AliError("Daughters have different secondary vertex, skipping the track");
    //return bGenValues;
  }

  // getting the momentum from the daughters
  Double_t px[2] = {mcPartV0DaughterPos->Px(), mcPartV0DaughterNeg->Px()};		
  Double_t py[2] = {mcPartV0DaughterPos->Py(), mcPartV0DaughterNeg->Py()};		
  Double_t pz[2] = {mcPartV0DaughterPos->Pz(), mcPartV0DaughterNeg->Pz()};

  nprongs = 2;
  charge = 0;
  AliAODRecoDecayHF* decay = new AliAODRecoDecayHF(vtx1,vtx2daughter0,nprongs,charge,px,py,pz,d0);
  Double_t cosPAwrtPrimVtxV0 = decay->CosPointingAngle();
  /*
  Double_t cTV0 = 0.; //ct
  if (fGenLcOption==kCountK0Sp) {
    cTV0 = decay->Ct(310); // by default wrt Primary Vtx
  } else if (fGenLcOption==kCountLambdapi) {
    cTV0 = decay->Ct(3122); // by default wrt Primary Vtx
  }
  */

  Double_t invMass = 0.; //invMass
  if (fGenLcOption==kCountK0Sp) {
    invMass = decay->InvMass2Prongs(0,1,211,211);
  } else if (fGenLcOption==kCountLambdapi) {
    if (fmcPartCandidate->GetPdgCode() == 4122)
      invMass = decay->InvMass2Prongs(0,1,2212,211);
    else if (fmcPartCandidate->GetPdgCode() ==-4122)
      invMass = decay->InvMass2Prongs(0,1,211,2212);
  }
  delete decay;

  vectorMC[0]  = fmcPartCandidate->Pt();
  vectorMC[1]  = fmcPartCandidate->Y() ;
  vectorMC[2]  = fmcPartCandidate->Phi();
  vectorMC[3]  = 0; // dummy value x MC, onTheFlyStatus
  vectorMC[4]  = fzMCVertex;
  vectorMC[5]  = fCentValue; // reconstructed centrality
  vectorMC[6]  = 1; // dummy value x MC, fFake
  vectorMC[7]  = fMultiplicity; // reconstructed multiplicity

  if (fConfiguration==AliCFTaskVertexingHF::kSnail) {
    //vectorMC[8]  = pTbach;
    vectorMC[8]  = pbach;
    vectorMC[9]  = mcPartDaughterV0->Pt();
    vectorMC[10] = mcPartDaughterV0->Y();
    vectorMC[11] = mcPartDaughterV0->Phi();
    vectorMC[12] = invMass;
    vectorMC[13] = 0; // dummy value x MC, V0 DCA
    vectorMC[14] = cosPAwrtPrimVtxV0;
    vectorMC[15] = cosPAwrtPrimVtxLc;
    //vectorMC[16] = cTV0*1.E4; // in micron
    //vectorMC[17] = cTLc*1.E4; // in micron
  }

  bGenValues = kTRUE;
  return bGenValues;

}
 AliCFVertexingHFLctoV0bachelor.cxx:1
 AliCFVertexingHFLctoV0bachelor.cxx:2
 AliCFVertexingHFLctoV0bachelor.cxx:3
 AliCFVertexingHFLctoV0bachelor.cxx:4
 AliCFVertexingHFLctoV0bachelor.cxx:5
 AliCFVertexingHFLctoV0bachelor.cxx:6
 AliCFVertexingHFLctoV0bachelor.cxx:7
 AliCFVertexingHFLctoV0bachelor.cxx:8
 AliCFVertexingHFLctoV0bachelor.cxx:9
 AliCFVertexingHFLctoV0bachelor.cxx:10
 AliCFVertexingHFLctoV0bachelor.cxx:11
 AliCFVertexingHFLctoV0bachelor.cxx:12
 AliCFVertexingHFLctoV0bachelor.cxx:13
 AliCFVertexingHFLctoV0bachelor.cxx:14
 AliCFVertexingHFLctoV0bachelor.cxx:15
 AliCFVertexingHFLctoV0bachelor.cxx:16
 AliCFVertexingHFLctoV0bachelor.cxx:17
 AliCFVertexingHFLctoV0bachelor.cxx:18
 AliCFVertexingHFLctoV0bachelor.cxx:19
 AliCFVertexingHFLctoV0bachelor.cxx:20
 AliCFVertexingHFLctoV0bachelor.cxx:21
 AliCFVertexingHFLctoV0bachelor.cxx:22
 AliCFVertexingHFLctoV0bachelor.cxx:23
 AliCFVertexingHFLctoV0bachelor.cxx:24
 AliCFVertexingHFLctoV0bachelor.cxx:25
 AliCFVertexingHFLctoV0bachelor.cxx:26
 AliCFVertexingHFLctoV0bachelor.cxx:27
 AliCFVertexingHFLctoV0bachelor.cxx:28
 AliCFVertexingHFLctoV0bachelor.cxx:29
 AliCFVertexingHFLctoV0bachelor.cxx:30
 AliCFVertexingHFLctoV0bachelor.cxx:31
 AliCFVertexingHFLctoV0bachelor.cxx:32
 AliCFVertexingHFLctoV0bachelor.cxx:33
 AliCFVertexingHFLctoV0bachelor.cxx:34
 AliCFVertexingHFLctoV0bachelor.cxx:35
 AliCFVertexingHFLctoV0bachelor.cxx:36
 AliCFVertexingHFLctoV0bachelor.cxx:37
 AliCFVertexingHFLctoV0bachelor.cxx:38
 AliCFVertexingHFLctoV0bachelor.cxx:39
 AliCFVertexingHFLctoV0bachelor.cxx:40
 AliCFVertexingHFLctoV0bachelor.cxx:41
 AliCFVertexingHFLctoV0bachelor.cxx:42
 AliCFVertexingHFLctoV0bachelor.cxx:43
 AliCFVertexingHFLctoV0bachelor.cxx:44
 AliCFVertexingHFLctoV0bachelor.cxx:45
 AliCFVertexingHFLctoV0bachelor.cxx:46
 AliCFVertexingHFLctoV0bachelor.cxx:47
 AliCFVertexingHFLctoV0bachelor.cxx:48
 AliCFVertexingHFLctoV0bachelor.cxx:49
 AliCFVertexingHFLctoV0bachelor.cxx:50
 AliCFVertexingHFLctoV0bachelor.cxx:51
 AliCFVertexingHFLctoV0bachelor.cxx:52
 AliCFVertexingHFLctoV0bachelor.cxx:53
 AliCFVertexingHFLctoV0bachelor.cxx:54
 AliCFVertexingHFLctoV0bachelor.cxx:55
 AliCFVertexingHFLctoV0bachelor.cxx:56
 AliCFVertexingHFLctoV0bachelor.cxx:57
 AliCFVertexingHFLctoV0bachelor.cxx:58
 AliCFVertexingHFLctoV0bachelor.cxx:59
 AliCFVertexingHFLctoV0bachelor.cxx:60
 AliCFVertexingHFLctoV0bachelor.cxx:61
 AliCFVertexingHFLctoV0bachelor.cxx:62
 AliCFVertexingHFLctoV0bachelor.cxx:63
 AliCFVertexingHFLctoV0bachelor.cxx:64
 AliCFVertexingHFLctoV0bachelor.cxx:65
 AliCFVertexingHFLctoV0bachelor.cxx:66
 AliCFVertexingHFLctoV0bachelor.cxx:67
 AliCFVertexingHFLctoV0bachelor.cxx:68
 AliCFVertexingHFLctoV0bachelor.cxx:69
 AliCFVertexingHFLctoV0bachelor.cxx:70
 AliCFVertexingHFLctoV0bachelor.cxx:71
 AliCFVertexingHFLctoV0bachelor.cxx:72
 AliCFVertexingHFLctoV0bachelor.cxx:73
 AliCFVertexingHFLctoV0bachelor.cxx:74
 AliCFVertexingHFLctoV0bachelor.cxx:75
 AliCFVertexingHFLctoV0bachelor.cxx:76
 AliCFVertexingHFLctoV0bachelor.cxx:77
 AliCFVertexingHFLctoV0bachelor.cxx:78
 AliCFVertexingHFLctoV0bachelor.cxx:79
 AliCFVertexingHFLctoV0bachelor.cxx:80
 AliCFVertexingHFLctoV0bachelor.cxx:81
 AliCFVertexingHFLctoV0bachelor.cxx:82
 AliCFVertexingHFLctoV0bachelor.cxx:83
 AliCFVertexingHFLctoV0bachelor.cxx:84
 AliCFVertexingHFLctoV0bachelor.cxx:85
 AliCFVertexingHFLctoV0bachelor.cxx:86
 AliCFVertexingHFLctoV0bachelor.cxx:87
 AliCFVertexingHFLctoV0bachelor.cxx:88
 AliCFVertexingHFLctoV0bachelor.cxx:89
 AliCFVertexingHFLctoV0bachelor.cxx:90
 AliCFVertexingHFLctoV0bachelor.cxx:91
 AliCFVertexingHFLctoV0bachelor.cxx:92
 AliCFVertexingHFLctoV0bachelor.cxx:93
 AliCFVertexingHFLctoV0bachelor.cxx:94
 AliCFVertexingHFLctoV0bachelor.cxx:95
 AliCFVertexingHFLctoV0bachelor.cxx:96
 AliCFVertexingHFLctoV0bachelor.cxx:97
 AliCFVertexingHFLctoV0bachelor.cxx:98
 AliCFVertexingHFLctoV0bachelor.cxx:99
 AliCFVertexingHFLctoV0bachelor.cxx:100
 AliCFVertexingHFLctoV0bachelor.cxx:101
 AliCFVertexingHFLctoV0bachelor.cxx:102
 AliCFVertexingHFLctoV0bachelor.cxx:103
 AliCFVertexingHFLctoV0bachelor.cxx:104
 AliCFVertexingHFLctoV0bachelor.cxx:105
 AliCFVertexingHFLctoV0bachelor.cxx:106
 AliCFVertexingHFLctoV0bachelor.cxx:107
 AliCFVertexingHFLctoV0bachelor.cxx:108
 AliCFVertexingHFLctoV0bachelor.cxx:109
 AliCFVertexingHFLctoV0bachelor.cxx:110
 AliCFVertexingHFLctoV0bachelor.cxx:111
 AliCFVertexingHFLctoV0bachelor.cxx:112
 AliCFVertexingHFLctoV0bachelor.cxx:113
 AliCFVertexingHFLctoV0bachelor.cxx:114
 AliCFVertexingHFLctoV0bachelor.cxx:115
 AliCFVertexingHFLctoV0bachelor.cxx:116
 AliCFVertexingHFLctoV0bachelor.cxx:117
 AliCFVertexingHFLctoV0bachelor.cxx:118
 AliCFVertexingHFLctoV0bachelor.cxx:119
 AliCFVertexingHFLctoV0bachelor.cxx:120
 AliCFVertexingHFLctoV0bachelor.cxx:121
 AliCFVertexingHFLctoV0bachelor.cxx:122
 AliCFVertexingHFLctoV0bachelor.cxx:123
 AliCFVertexingHFLctoV0bachelor.cxx:124
 AliCFVertexingHFLctoV0bachelor.cxx:125
 AliCFVertexingHFLctoV0bachelor.cxx:126
 AliCFVertexingHFLctoV0bachelor.cxx:127
 AliCFVertexingHFLctoV0bachelor.cxx:128
 AliCFVertexingHFLctoV0bachelor.cxx:129
 AliCFVertexingHFLctoV0bachelor.cxx:130
 AliCFVertexingHFLctoV0bachelor.cxx:131
 AliCFVertexingHFLctoV0bachelor.cxx:132
 AliCFVertexingHFLctoV0bachelor.cxx:133
 AliCFVertexingHFLctoV0bachelor.cxx:134
 AliCFVertexingHFLctoV0bachelor.cxx:135
 AliCFVertexingHFLctoV0bachelor.cxx:136
 AliCFVertexingHFLctoV0bachelor.cxx:137
 AliCFVertexingHFLctoV0bachelor.cxx:138
 AliCFVertexingHFLctoV0bachelor.cxx:139
 AliCFVertexingHFLctoV0bachelor.cxx:140
 AliCFVertexingHFLctoV0bachelor.cxx:141
 AliCFVertexingHFLctoV0bachelor.cxx:142
 AliCFVertexingHFLctoV0bachelor.cxx:143
 AliCFVertexingHFLctoV0bachelor.cxx:144
 AliCFVertexingHFLctoV0bachelor.cxx:145
 AliCFVertexingHFLctoV0bachelor.cxx:146
 AliCFVertexingHFLctoV0bachelor.cxx:147
 AliCFVertexingHFLctoV0bachelor.cxx:148
 AliCFVertexingHFLctoV0bachelor.cxx:149
 AliCFVertexingHFLctoV0bachelor.cxx:150
 AliCFVertexingHFLctoV0bachelor.cxx:151
 AliCFVertexingHFLctoV0bachelor.cxx:152
 AliCFVertexingHFLctoV0bachelor.cxx:153
 AliCFVertexingHFLctoV0bachelor.cxx:154
 AliCFVertexingHFLctoV0bachelor.cxx:155
 AliCFVertexingHFLctoV0bachelor.cxx:156
 AliCFVertexingHFLctoV0bachelor.cxx:157
 AliCFVertexingHFLctoV0bachelor.cxx:158
 AliCFVertexingHFLctoV0bachelor.cxx:159
 AliCFVertexingHFLctoV0bachelor.cxx:160
 AliCFVertexingHFLctoV0bachelor.cxx:161
 AliCFVertexingHFLctoV0bachelor.cxx:162
 AliCFVertexingHFLctoV0bachelor.cxx:163
 AliCFVertexingHFLctoV0bachelor.cxx:164
 AliCFVertexingHFLctoV0bachelor.cxx:165
 AliCFVertexingHFLctoV0bachelor.cxx:166
 AliCFVertexingHFLctoV0bachelor.cxx:167
 AliCFVertexingHFLctoV0bachelor.cxx:168
 AliCFVertexingHFLctoV0bachelor.cxx:169
 AliCFVertexingHFLctoV0bachelor.cxx:170
 AliCFVertexingHFLctoV0bachelor.cxx:171
 AliCFVertexingHFLctoV0bachelor.cxx:172
 AliCFVertexingHFLctoV0bachelor.cxx:173
 AliCFVertexingHFLctoV0bachelor.cxx:174
 AliCFVertexingHFLctoV0bachelor.cxx:175
 AliCFVertexingHFLctoV0bachelor.cxx:176
 AliCFVertexingHFLctoV0bachelor.cxx:177
 AliCFVertexingHFLctoV0bachelor.cxx:178
 AliCFVertexingHFLctoV0bachelor.cxx:179
 AliCFVertexingHFLctoV0bachelor.cxx:180
 AliCFVertexingHFLctoV0bachelor.cxx:181
 AliCFVertexingHFLctoV0bachelor.cxx:182
 AliCFVertexingHFLctoV0bachelor.cxx:183
 AliCFVertexingHFLctoV0bachelor.cxx:184
 AliCFVertexingHFLctoV0bachelor.cxx:185
 AliCFVertexingHFLctoV0bachelor.cxx:186
 AliCFVertexingHFLctoV0bachelor.cxx:187
 AliCFVertexingHFLctoV0bachelor.cxx:188
 AliCFVertexingHFLctoV0bachelor.cxx:189
 AliCFVertexingHFLctoV0bachelor.cxx:190
 AliCFVertexingHFLctoV0bachelor.cxx:191
 AliCFVertexingHFLctoV0bachelor.cxx:192
 AliCFVertexingHFLctoV0bachelor.cxx:193
 AliCFVertexingHFLctoV0bachelor.cxx:194
 AliCFVertexingHFLctoV0bachelor.cxx:195
 AliCFVertexingHFLctoV0bachelor.cxx:196
 AliCFVertexingHFLctoV0bachelor.cxx:197
 AliCFVertexingHFLctoV0bachelor.cxx:198
 AliCFVertexingHFLctoV0bachelor.cxx:199
 AliCFVertexingHFLctoV0bachelor.cxx:200
 AliCFVertexingHFLctoV0bachelor.cxx:201
 AliCFVertexingHFLctoV0bachelor.cxx:202
 AliCFVertexingHFLctoV0bachelor.cxx:203
 AliCFVertexingHFLctoV0bachelor.cxx:204
 AliCFVertexingHFLctoV0bachelor.cxx:205
 AliCFVertexingHFLctoV0bachelor.cxx:206
 AliCFVertexingHFLctoV0bachelor.cxx:207
 AliCFVertexingHFLctoV0bachelor.cxx:208
 AliCFVertexingHFLctoV0bachelor.cxx:209
 AliCFVertexingHFLctoV0bachelor.cxx:210
 AliCFVertexingHFLctoV0bachelor.cxx:211
 AliCFVertexingHFLctoV0bachelor.cxx:212
 AliCFVertexingHFLctoV0bachelor.cxx:213
 AliCFVertexingHFLctoV0bachelor.cxx:214
 AliCFVertexingHFLctoV0bachelor.cxx:215
 AliCFVertexingHFLctoV0bachelor.cxx:216
 AliCFVertexingHFLctoV0bachelor.cxx:217
 AliCFVertexingHFLctoV0bachelor.cxx:218
 AliCFVertexingHFLctoV0bachelor.cxx:219
 AliCFVertexingHFLctoV0bachelor.cxx:220
 AliCFVertexingHFLctoV0bachelor.cxx:221
 AliCFVertexingHFLctoV0bachelor.cxx:222
 AliCFVertexingHFLctoV0bachelor.cxx:223
 AliCFVertexingHFLctoV0bachelor.cxx:224
 AliCFVertexingHFLctoV0bachelor.cxx:225
 AliCFVertexingHFLctoV0bachelor.cxx:226
 AliCFVertexingHFLctoV0bachelor.cxx:227
 AliCFVertexingHFLctoV0bachelor.cxx:228
 AliCFVertexingHFLctoV0bachelor.cxx:229
 AliCFVertexingHFLctoV0bachelor.cxx:230
 AliCFVertexingHFLctoV0bachelor.cxx:231
 AliCFVertexingHFLctoV0bachelor.cxx:232
 AliCFVertexingHFLctoV0bachelor.cxx:233
 AliCFVertexingHFLctoV0bachelor.cxx:234
 AliCFVertexingHFLctoV0bachelor.cxx:235
 AliCFVertexingHFLctoV0bachelor.cxx:236
 AliCFVertexingHFLctoV0bachelor.cxx:237
 AliCFVertexingHFLctoV0bachelor.cxx:238
 AliCFVertexingHFLctoV0bachelor.cxx:239
 AliCFVertexingHFLctoV0bachelor.cxx:240
 AliCFVertexingHFLctoV0bachelor.cxx:241
 AliCFVertexingHFLctoV0bachelor.cxx:242
 AliCFVertexingHFLctoV0bachelor.cxx:243
 AliCFVertexingHFLctoV0bachelor.cxx:244
 AliCFVertexingHFLctoV0bachelor.cxx:245
 AliCFVertexingHFLctoV0bachelor.cxx:246
 AliCFVertexingHFLctoV0bachelor.cxx:247
 AliCFVertexingHFLctoV0bachelor.cxx:248
 AliCFVertexingHFLctoV0bachelor.cxx:249
 AliCFVertexingHFLctoV0bachelor.cxx:250
 AliCFVertexingHFLctoV0bachelor.cxx:251
 AliCFVertexingHFLctoV0bachelor.cxx:252
 AliCFVertexingHFLctoV0bachelor.cxx:253
 AliCFVertexingHFLctoV0bachelor.cxx:254
 AliCFVertexingHFLctoV0bachelor.cxx:255
 AliCFVertexingHFLctoV0bachelor.cxx:256
 AliCFVertexingHFLctoV0bachelor.cxx:257
 AliCFVertexingHFLctoV0bachelor.cxx:258
 AliCFVertexingHFLctoV0bachelor.cxx:259
 AliCFVertexingHFLctoV0bachelor.cxx:260
 AliCFVertexingHFLctoV0bachelor.cxx:261
 AliCFVertexingHFLctoV0bachelor.cxx:262
 AliCFVertexingHFLctoV0bachelor.cxx:263
 AliCFVertexingHFLctoV0bachelor.cxx:264
 AliCFVertexingHFLctoV0bachelor.cxx:265
 AliCFVertexingHFLctoV0bachelor.cxx:266
 AliCFVertexingHFLctoV0bachelor.cxx:267
 AliCFVertexingHFLctoV0bachelor.cxx:268
 AliCFVertexingHFLctoV0bachelor.cxx:269
 AliCFVertexingHFLctoV0bachelor.cxx:270
 AliCFVertexingHFLctoV0bachelor.cxx:271
 AliCFVertexingHFLctoV0bachelor.cxx:272
 AliCFVertexingHFLctoV0bachelor.cxx:273
 AliCFVertexingHFLctoV0bachelor.cxx:274
 AliCFVertexingHFLctoV0bachelor.cxx:275
 AliCFVertexingHFLctoV0bachelor.cxx:276
 AliCFVertexingHFLctoV0bachelor.cxx:277
 AliCFVertexingHFLctoV0bachelor.cxx:278
 AliCFVertexingHFLctoV0bachelor.cxx:279
 AliCFVertexingHFLctoV0bachelor.cxx:280
 AliCFVertexingHFLctoV0bachelor.cxx:281
 AliCFVertexingHFLctoV0bachelor.cxx:282
 AliCFVertexingHFLctoV0bachelor.cxx:283
 AliCFVertexingHFLctoV0bachelor.cxx:284
 AliCFVertexingHFLctoV0bachelor.cxx:285
 AliCFVertexingHFLctoV0bachelor.cxx:286
 AliCFVertexingHFLctoV0bachelor.cxx:287
 AliCFVertexingHFLctoV0bachelor.cxx:288
 AliCFVertexingHFLctoV0bachelor.cxx:289
 AliCFVertexingHFLctoV0bachelor.cxx:290
 AliCFVertexingHFLctoV0bachelor.cxx:291
 AliCFVertexingHFLctoV0bachelor.cxx:292
 AliCFVertexingHFLctoV0bachelor.cxx:293
 AliCFVertexingHFLctoV0bachelor.cxx:294
 AliCFVertexingHFLctoV0bachelor.cxx:295
 AliCFVertexingHFLctoV0bachelor.cxx:296
 AliCFVertexingHFLctoV0bachelor.cxx:297
 AliCFVertexingHFLctoV0bachelor.cxx:298
 AliCFVertexingHFLctoV0bachelor.cxx:299
 AliCFVertexingHFLctoV0bachelor.cxx:300
 AliCFVertexingHFLctoV0bachelor.cxx:301
 AliCFVertexingHFLctoV0bachelor.cxx:302
 AliCFVertexingHFLctoV0bachelor.cxx:303
 AliCFVertexingHFLctoV0bachelor.cxx:304
 AliCFVertexingHFLctoV0bachelor.cxx:305
 AliCFVertexingHFLctoV0bachelor.cxx:306
 AliCFVertexingHFLctoV0bachelor.cxx:307
 AliCFVertexingHFLctoV0bachelor.cxx:308
 AliCFVertexingHFLctoV0bachelor.cxx:309
 AliCFVertexingHFLctoV0bachelor.cxx:310
 AliCFVertexingHFLctoV0bachelor.cxx:311
 AliCFVertexingHFLctoV0bachelor.cxx:312
 AliCFVertexingHFLctoV0bachelor.cxx:313
 AliCFVertexingHFLctoV0bachelor.cxx:314
 AliCFVertexingHFLctoV0bachelor.cxx:315
 AliCFVertexingHFLctoV0bachelor.cxx:316
 AliCFVertexingHFLctoV0bachelor.cxx:317
 AliCFVertexingHFLctoV0bachelor.cxx:318
 AliCFVertexingHFLctoV0bachelor.cxx:319
 AliCFVertexingHFLctoV0bachelor.cxx:320
 AliCFVertexingHFLctoV0bachelor.cxx:321
 AliCFVertexingHFLctoV0bachelor.cxx:322
 AliCFVertexingHFLctoV0bachelor.cxx:323
 AliCFVertexingHFLctoV0bachelor.cxx:324
 AliCFVertexingHFLctoV0bachelor.cxx:325
 AliCFVertexingHFLctoV0bachelor.cxx:326
 AliCFVertexingHFLctoV0bachelor.cxx:327
 AliCFVertexingHFLctoV0bachelor.cxx:328
 AliCFVertexingHFLctoV0bachelor.cxx:329
 AliCFVertexingHFLctoV0bachelor.cxx:330
 AliCFVertexingHFLctoV0bachelor.cxx:331
 AliCFVertexingHFLctoV0bachelor.cxx:332
 AliCFVertexingHFLctoV0bachelor.cxx:333
 AliCFVertexingHFLctoV0bachelor.cxx:334
 AliCFVertexingHFLctoV0bachelor.cxx:335
 AliCFVertexingHFLctoV0bachelor.cxx:336
 AliCFVertexingHFLctoV0bachelor.cxx:337
 AliCFVertexingHFLctoV0bachelor.cxx:338
 AliCFVertexingHFLctoV0bachelor.cxx:339
 AliCFVertexingHFLctoV0bachelor.cxx:340
 AliCFVertexingHFLctoV0bachelor.cxx:341
 AliCFVertexingHFLctoV0bachelor.cxx:342
 AliCFVertexingHFLctoV0bachelor.cxx:343
 AliCFVertexingHFLctoV0bachelor.cxx:344
 AliCFVertexingHFLctoV0bachelor.cxx:345
 AliCFVertexingHFLctoV0bachelor.cxx:346
 AliCFVertexingHFLctoV0bachelor.cxx:347
 AliCFVertexingHFLctoV0bachelor.cxx:348
 AliCFVertexingHFLctoV0bachelor.cxx:349
 AliCFVertexingHFLctoV0bachelor.cxx:350
 AliCFVertexingHFLctoV0bachelor.cxx:351
 AliCFVertexingHFLctoV0bachelor.cxx:352
 AliCFVertexingHFLctoV0bachelor.cxx:353
 AliCFVertexingHFLctoV0bachelor.cxx:354
 AliCFVertexingHFLctoV0bachelor.cxx:355
 AliCFVertexingHFLctoV0bachelor.cxx:356
 AliCFVertexingHFLctoV0bachelor.cxx:357
 AliCFVertexingHFLctoV0bachelor.cxx:358
 AliCFVertexingHFLctoV0bachelor.cxx:359
 AliCFVertexingHFLctoV0bachelor.cxx:360
 AliCFVertexingHFLctoV0bachelor.cxx:361
 AliCFVertexingHFLctoV0bachelor.cxx:362
 AliCFVertexingHFLctoV0bachelor.cxx:363
 AliCFVertexingHFLctoV0bachelor.cxx:364
 AliCFVertexingHFLctoV0bachelor.cxx:365
 AliCFVertexingHFLctoV0bachelor.cxx:366
 AliCFVertexingHFLctoV0bachelor.cxx:367
 AliCFVertexingHFLctoV0bachelor.cxx:368
 AliCFVertexingHFLctoV0bachelor.cxx:369
 AliCFVertexingHFLctoV0bachelor.cxx:370
 AliCFVertexingHFLctoV0bachelor.cxx:371
 AliCFVertexingHFLctoV0bachelor.cxx:372
 AliCFVertexingHFLctoV0bachelor.cxx:373
 AliCFVertexingHFLctoV0bachelor.cxx:374
 AliCFVertexingHFLctoV0bachelor.cxx:375
 AliCFVertexingHFLctoV0bachelor.cxx:376
 AliCFVertexingHFLctoV0bachelor.cxx:377
 AliCFVertexingHFLctoV0bachelor.cxx:378
 AliCFVertexingHFLctoV0bachelor.cxx:379
 AliCFVertexingHFLctoV0bachelor.cxx:380
 AliCFVertexingHFLctoV0bachelor.cxx:381
 AliCFVertexingHFLctoV0bachelor.cxx:382
 AliCFVertexingHFLctoV0bachelor.cxx:383
 AliCFVertexingHFLctoV0bachelor.cxx:384
 AliCFVertexingHFLctoV0bachelor.cxx:385
 AliCFVertexingHFLctoV0bachelor.cxx:386
 AliCFVertexingHFLctoV0bachelor.cxx:387
 AliCFVertexingHFLctoV0bachelor.cxx:388
 AliCFVertexingHFLctoV0bachelor.cxx:389
 AliCFVertexingHFLctoV0bachelor.cxx:390
 AliCFVertexingHFLctoV0bachelor.cxx:391
 AliCFVertexingHFLctoV0bachelor.cxx:392
 AliCFVertexingHFLctoV0bachelor.cxx:393
 AliCFVertexingHFLctoV0bachelor.cxx:394
 AliCFVertexingHFLctoV0bachelor.cxx:395
 AliCFVertexingHFLctoV0bachelor.cxx:396
 AliCFVertexingHFLctoV0bachelor.cxx:397
 AliCFVertexingHFLctoV0bachelor.cxx:398
 AliCFVertexingHFLctoV0bachelor.cxx:399
 AliCFVertexingHFLctoV0bachelor.cxx:400
 AliCFVertexingHFLctoV0bachelor.cxx:401
 AliCFVertexingHFLctoV0bachelor.cxx:402
 AliCFVertexingHFLctoV0bachelor.cxx:403
 AliCFVertexingHFLctoV0bachelor.cxx:404
 AliCFVertexingHFLctoV0bachelor.cxx:405
 AliCFVertexingHFLctoV0bachelor.cxx:406
 AliCFVertexingHFLctoV0bachelor.cxx:407
 AliCFVertexingHFLctoV0bachelor.cxx:408
 AliCFVertexingHFLctoV0bachelor.cxx:409
 AliCFVertexingHFLctoV0bachelor.cxx:410
 AliCFVertexingHFLctoV0bachelor.cxx:411
 AliCFVertexingHFLctoV0bachelor.cxx:412
 AliCFVertexingHFLctoV0bachelor.cxx:413
 AliCFVertexingHFLctoV0bachelor.cxx:414
 AliCFVertexingHFLctoV0bachelor.cxx:415
 AliCFVertexingHFLctoV0bachelor.cxx:416
 AliCFVertexingHFLctoV0bachelor.cxx:417
 AliCFVertexingHFLctoV0bachelor.cxx:418
 AliCFVertexingHFLctoV0bachelor.cxx:419
 AliCFVertexingHFLctoV0bachelor.cxx:420
 AliCFVertexingHFLctoV0bachelor.cxx:421
 AliCFVertexingHFLctoV0bachelor.cxx:422
 AliCFVertexingHFLctoV0bachelor.cxx:423
 AliCFVertexingHFLctoV0bachelor.cxx:424
 AliCFVertexingHFLctoV0bachelor.cxx:425
 AliCFVertexingHFLctoV0bachelor.cxx:426
 AliCFVertexingHFLctoV0bachelor.cxx:427
 AliCFVertexingHFLctoV0bachelor.cxx:428
 AliCFVertexingHFLctoV0bachelor.cxx:429
 AliCFVertexingHFLctoV0bachelor.cxx:430
 AliCFVertexingHFLctoV0bachelor.cxx:431
 AliCFVertexingHFLctoV0bachelor.cxx:432
 AliCFVertexingHFLctoV0bachelor.cxx:433
 AliCFVertexingHFLctoV0bachelor.cxx:434
 AliCFVertexingHFLctoV0bachelor.cxx:435
 AliCFVertexingHFLctoV0bachelor.cxx:436
 AliCFVertexingHFLctoV0bachelor.cxx:437
 AliCFVertexingHFLctoV0bachelor.cxx:438
 AliCFVertexingHFLctoV0bachelor.cxx:439
 AliCFVertexingHFLctoV0bachelor.cxx:440
 AliCFVertexingHFLctoV0bachelor.cxx:441
 AliCFVertexingHFLctoV0bachelor.cxx:442
 AliCFVertexingHFLctoV0bachelor.cxx:443
 AliCFVertexingHFLctoV0bachelor.cxx:444
 AliCFVertexingHFLctoV0bachelor.cxx:445
 AliCFVertexingHFLctoV0bachelor.cxx:446
 AliCFVertexingHFLctoV0bachelor.cxx:447
 AliCFVertexingHFLctoV0bachelor.cxx:448
 AliCFVertexingHFLctoV0bachelor.cxx:449
 AliCFVertexingHFLctoV0bachelor.cxx:450
 AliCFVertexingHFLctoV0bachelor.cxx:451
 AliCFVertexingHFLctoV0bachelor.cxx:452
 AliCFVertexingHFLctoV0bachelor.cxx:453
 AliCFVertexingHFLctoV0bachelor.cxx:454
 AliCFVertexingHFLctoV0bachelor.cxx:455
 AliCFVertexingHFLctoV0bachelor.cxx:456
 AliCFVertexingHFLctoV0bachelor.cxx:457
 AliCFVertexingHFLctoV0bachelor.cxx:458
 AliCFVertexingHFLctoV0bachelor.cxx:459
 AliCFVertexingHFLctoV0bachelor.cxx:460
 AliCFVertexingHFLctoV0bachelor.cxx:461
 AliCFVertexingHFLctoV0bachelor.cxx:462
 AliCFVertexingHFLctoV0bachelor.cxx:463
 AliCFVertexingHFLctoV0bachelor.cxx:464
 AliCFVertexingHFLctoV0bachelor.cxx:465
 AliCFVertexingHFLctoV0bachelor.cxx:466
 AliCFVertexingHFLctoV0bachelor.cxx:467
 AliCFVertexingHFLctoV0bachelor.cxx:468
 AliCFVertexingHFLctoV0bachelor.cxx:469
 AliCFVertexingHFLctoV0bachelor.cxx:470
 AliCFVertexingHFLctoV0bachelor.cxx:471
 AliCFVertexingHFLctoV0bachelor.cxx:472
 AliCFVertexingHFLctoV0bachelor.cxx:473
 AliCFVertexingHFLctoV0bachelor.cxx:474
 AliCFVertexingHFLctoV0bachelor.cxx:475
 AliCFVertexingHFLctoV0bachelor.cxx:476
 AliCFVertexingHFLctoV0bachelor.cxx:477
 AliCFVertexingHFLctoV0bachelor.cxx:478
 AliCFVertexingHFLctoV0bachelor.cxx:479
 AliCFVertexingHFLctoV0bachelor.cxx:480
 AliCFVertexingHFLctoV0bachelor.cxx:481
 AliCFVertexingHFLctoV0bachelor.cxx:482
 AliCFVertexingHFLctoV0bachelor.cxx:483
 AliCFVertexingHFLctoV0bachelor.cxx:484
 AliCFVertexingHFLctoV0bachelor.cxx:485
 AliCFVertexingHFLctoV0bachelor.cxx:486
 AliCFVertexingHFLctoV0bachelor.cxx:487
 AliCFVertexingHFLctoV0bachelor.cxx:488
 AliCFVertexingHFLctoV0bachelor.cxx:489
 AliCFVertexingHFLctoV0bachelor.cxx:490
 AliCFVertexingHFLctoV0bachelor.cxx:491
 AliCFVertexingHFLctoV0bachelor.cxx:492
 AliCFVertexingHFLctoV0bachelor.cxx:493
 AliCFVertexingHFLctoV0bachelor.cxx:494
 AliCFVertexingHFLctoV0bachelor.cxx:495
 AliCFVertexingHFLctoV0bachelor.cxx:496
 AliCFVertexingHFLctoV0bachelor.cxx:497
 AliCFVertexingHFLctoV0bachelor.cxx:498
 AliCFVertexingHFLctoV0bachelor.cxx:499
 AliCFVertexingHFLctoV0bachelor.cxx:500
 AliCFVertexingHFLctoV0bachelor.cxx:501
 AliCFVertexingHFLctoV0bachelor.cxx:502
 AliCFVertexingHFLctoV0bachelor.cxx:503
 AliCFVertexingHFLctoV0bachelor.cxx:504
 AliCFVertexingHFLctoV0bachelor.cxx:505
 AliCFVertexingHFLctoV0bachelor.cxx:506
 AliCFVertexingHFLctoV0bachelor.cxx:507
 AliCFVertexingHFLctoV0bachelor.cxx:508
 AliCFVertexingHFLctoV0bachelor.cxx:509
 AliCFVertexingHFLctoV0bachelor.cxx:510
 AliCFVertexingHFLctoV0bachelor.cxx:511
 AliCFVertexingHFLctoV0bachelor.cxx:512
 AliCFVertexingHFLctoV0bachelor.cxx:513
 AliCFVertexingHFLctoV0bachelor.cxx:514
 AliCFVertexingHFLctoV0bachelor.cxx:515
 AliCFVertexingHFLctoV0bachelor.cxx:516
 AliCFVertexingHFLctoV0bachelor.cxx:517
 AliCFVertexingHFLctoV0bachelor.cxx:518
 AliCFVertexingHFLctoV0bachelor.cxx:519
 AliCFVertexingHFLctoV0bachelor.cxx:520
 AliCFVertexingHFLctoV0bachelor.cxx:521
 AliCFVertexingHFLctoV0bachelor.cxx:522
 AliCFVertexingHFLctoV0bachelor.cxx:523
 AliCFVertexingHFLctoV0bachelor.cxx:524
 AliCFVertexingHFLctoV0bachelor.cxx:525
 AliCFVertexingHFLctoV0bachelor.cxx:526
 AliCFVertexingHFLctoV0bachelor.cxx:527
 AliCFVertexingHFLctoV0bachelor.cxx:528
 AliCFVertexingHFLctoV0bachelor.cxx:529
 AliCFVertexingHFLctoV0bachelor.cxx:530
 AliCFVertexingHFLctoV0bachelor.cxx:531
 AliCFVertexingHFLctoV0bachelor.cxx:532
 AliCFVertexingHFLctoV0bachelor.cxx:533
 AliCFVertexingHFLctoV0bachelor.cxx:534
 AliCFVertexingHFLctoV0bachelor.cxx:535
 AliCFVertexingHFLctoV0bachelor.cxx:536
 AliCFVertexingHFLctoV0bachelor.cxx:537
 AliCFVertexingHFLctoV0bachelor.cxx:538
 AliCFVertexingHFLctoV0bachelor.cxx:539
 AliCFVertexingHFLctoV0bachelor.cxx:540
 AliCFVertexingHFLctoV0bachelor.cxx:541
 AliCFVertexingHFLctoV0bachelor.cxx:542
 AliCFVertexingHFLctoV0bachelor.cxx:543
 AliCFVertexingHFLctoV0bachelor.cxx:544
 AliCFVertexingHFLctoV0bachelor.cxx:545
 AliCFVertexingHFLctoV0bachelor.cxx:546
 AliCFVertexingHFLctoV0bachelor.cxx:547
 AliCFVertexingHFLctoV0bachelor.cxx:548
 AliCFVertexingHFLctoV0bachelor.cxx:549
 AliCFVertexingHFLctoV0bachelor.cxx:550
 AliCFVertexingHFLctoV0bachelor.cxx:551
 AliCFVertexingHFLctoV0bachelor.cxx:552
 AliCFVertexingHFLctoV0bachelor.cxx:553
 AliCFVertexingHFLctoV0bachelor.cxx:554
 AliCFVertexingHFLctoV0bachelor.cxx:555
 AliCFVertexingHFLctoV0bachelor.cxx:556
 AliCFVertexingHFLctoV0bachelor.cxx:557
 AliCFVertexingHFLctoV0bachelor.cxx:558
 AliCFVertexingHFLctoV0bachelor.cxx:559
 AliCFVertexingHFLctoV0bachelor.cxx:560
 AliCFVertexingHFLctoV0bachelor.cxx:561
 AliCFVertexingHFLctoV0bachelor.cxx:562
 AliCFVertexingHFLctoV0bachelor.cxx:563
 AliCFVertexingHFLctoV0bachelor.cxx:564
 AliCFVertexingHFLctoV0bachelor.cxx:565
 AliCFVertexingHFLctoV0bachelor.cxx:566
 AliCFVertexingHFLctoV0bachelor.cxx:567
 AliCFVertexingHFLctoV0bachelor.cxx:568
 AliCFVertexingHFLctoV0bachelor.cxx:569
 AliCFVertexingHFLctoV0bachelor.cxx:570
 AliCFVertexingHFLctoV0bachelor.cxx:571
 AliCFVertexingHFLctoV0bachelor.cxx:572
 AliCFVertexingHFLctoV0bachelor.cxx:573
 AliCFVertexingHFLctoV0bachelor.cxx:574
 AliCFVertexingHFLctoV0bachelor.cxx:575
 AliCFVertexingHFLctoV0bachelor.cxx:576
 AliCFVertexingHFLctoV0bachelor.cxx:577
 AliCFVertexingHFLctoV0bachelor.cxx:578
 AliCFVertexingHFLctoV0bachelor.cxx:579
 AliCFVertexingHFLctoV0bachelor.cxx:580
 AliCFVertexingHFLctoV0bachelor.cxx:581
 AliCFVertexingHFLctoV0bachelor.cxx:582
 AliCFVertexingHFLctoV0bachelor.cxx:583
 AliCFVertexingHFLctoV0bachelor.cxx:584
 AliCFVertexingHFLctoV0bachelor.cxx:585
 AliCFVertexingHFLctoV0bachelor.cxx:586
 AliCFVertexingHFLctoV0bachelor.cxx:587
 AliCFVertexingHFLctoV0bachelor.cxx:588
 AliCFVertexingHFLctoV0bachelor.cxx:589
 AliCFVertexingHFLctoV0bachelor.cxx:590
 AliCFVertexingHFLctoV0bachelor.cxx:591
 AliCFVertexingHFLctoV0bachelor.cxx:592
 AliCFVertexingHFLctoV0bachelor.cxx:593
 AliCFVertexingHFLctoV0bachelor.cxx:594
 AliCFVertexingHFLctoV0bachelor.cxx:595
 AliCFVertexingHFLctoV0bachelor.cxx:596
 AliCFVertexingHFLctoV0bachelor.cxx:597
 AliCFVertexingHFLctoV0bachelor.cxx:598
 AliCFVertexingHFLctoV0bachelor.cxx:599
 AliCFVertexingHFLctoV0bachelor.cxx:600
 AliCFVertexingHFLctoV0bachelor.cxx:601
 AliCFVertexingHFLctoV0bachelor.cxx:602
 AliCFVertexingHFLctoV0bachelor.cxx:603
 AliCFVertexingHFLctoV0bachelor.cxx:604
 AliCFVertexingHFLctoV0bachelor.cxx:605
 AliCFVertexingHFLctoV0bachelor.cxx:606
 AliCFVertexingHFLctoV0bachelor.cxx:607
 AliCFVertexingHFLctoV0bachelor.cxx:608
 AliCFVertexingHFLctoV0bachelor.cxx:609
 AliCFVertexingHFLctoV0bachelor.cxx:610
 AliCFVertexingHFLctoV0bachelor.cxx:611
 AliCFVertexingHFLctoV0bachelor.cxx:612
 AliCFVertexingHFLctoV0bachelor.cxx:613
 AliCFVertexingHFLctoV0bachelor.cxx:614
 AliCFVertexingHFLctoV0bachelor.cxx:615
 AliCFVertexingHFLctoV0bachelor.cxx:616
 AliCFVertexingHFLctoV0bachelor.cxx:617
 AliCFVertexingHFLctoV0bachelor.cxx:618
 AliCFVertexingHFLctoV0bachelor.cxx:619
 AliCFVertexingHFLctoV0bachelor.cxx:620
 AliCFVertexingHFLctoV0bachelor.cxx:621
 AliCFVertexingHFLctoV0bachelor.cxx:622
 AliCFVertexingHFLctoV0bachelor.cxx:623
 AliCFVertexingHFLctoV0bachelor.cxx:624
 AliCFVertexingHFLctoV0bachelor.cxx:625
 AliCFVertexingHFLctoV0bachelor.cxx:626
 AliCFVertexingHFLctoV0bachelor.cxx:627
 AliCFVertexingHFLctoV0bachelor.cxx:628
 AliCFVertexingHFLctoV0bachelor.cxx:629
 AliCFVertexingHFLctoV0bachelor.cxx:630
 AliCFVertexingHFLctoV0bachelor.cxx:631
 AliCFVertexingHFLctoV0bachelor.cxx:632
 AliCFVertexingHFLctoV0bachelor.cxx:633
 AliCFVertexingHFLctoV0bachelor.cxx:634
 AliCFVertexingHFLctoV0bachelor.cxx:635
 AliCFVertexingHFLctoV0bachelor.cxx:636
 AliCFVertexingHFLctoV0bachelor.cxx:637
 AliCFVertexingHFLctoV0bachelor.cxx:638
 AliCFVertexingHFLctoV0bachelor.cxx:639
 AliCFVertexingHFLctoV0bachelor.cxx:640
 AliCFVertexingHFLctoV0bachelor.cxx:641
 AliCFVertexingHFLctoV0bachelor.cxx:642
 AliCFVertexingHFLctoV0bachelor.cxx:643
 AliCFVertexingHFLctoV0bachelor.cxx:644
 AliCFVertexingHFLctoV0bachelor.cxx:645
 AliCFVertexingHFLctoV0bachelor.cxx:646
 AliCFVertexingHFLctoV0bachelor.cxx:647
 AliCFVertexingHFLctoV0bachelor.cxx:648
 AliCFVertexingHFLctoV0bachelor.cxx:649
 AliCFVertexingHFLctoV0bachelor.cxx:650
 AliCFVertexingHFLctoV0bachelor.cxx:651
 AliCFVertexingHFLctoV0bachelor.cxx:652
 AliCFVertexingHFLctoV0bachelor.cxx:653
 AliCFVertexingHFLctoV0bachelor.cxx:654
 AliCFVertexingHFLctoV0bachelor.cxx:655
 AliCFVertexingHFLctoV0bachelor.cxx:656
 AliCFVertexingHFLctoV0bachelor.cxx:657
 AliCFVertexingHFLctoV0bachelor.cxx:658
 AliCFVertexingHFLctoV0bachelor.cxx:659
 AliCFVertexingHFLctoV0bachelor.cxx:660
 AliCFVertexingHFLctoV0bachelor.cxx:661
 AliCFVertexingHFLctoV0bachelor.cxx:662
 AliCFVertexingHFLctoV0bachelor.cxx:663
 AliCFVertexingHFLctoV0bachelor.cxx:664
 AliCFVertexingHFLctoV0bachelor.cxx:665
 AliCFVertexingHFLctoV0bachelor.cxx:666
 AliCFVertexingHFLctoV0bachelor.cxx:667
 AliCFVertexingHFLctoV0bachelor.cxx:668
 AliCFVertexingHFLctoV0bachelor.cxx:669
 AliCFVertexingHFLctoV0bachelor.cxx:670
 AliCFVertexingHFLctoV0bachelor.cxx:671
 AliCFVertexingHFLctoV0bachelor.cxx:672
 AliCFVertexingHFLctoV0bachelor.cxx:673
 AliCFVertexingHFLctoV0bachelor.cxx:674
 AliCFVertexingHFLctoV0bachelor.cxx:675
 AliCFVertexingHFLctoV0bachelor.cxx:676
 AliCFVertexingHFLctoV0bachelor.cxx:677
 AliCFVertexingHFLctoV0bachelor.cxx:678
 AliCFVertexingHFLctoV0bachelor.cxx:679
 AliCFVertexingHFLctoV0bachelor.cxx:680
 AliCFVertexingHFLctoV0bachelor.cxx:681
 AliCFVertexingHFLctoV0bachelor.cxx:682
 AliCFVertexingHFLctoV0bachelor.cxx:683
 AliCFVertexingHFLctoV0bachelor.cxx:684
 AliCFVertexingHFLctoV0bachelor.cxx:685
 AliCFVertexingHFLctoV0bachelor.cxx:686
 AliCFVertexingHFLctoV0bachelor.cxx:687
 AliCFVertexingHFLctoV0bachelor.cxx:688
 AliCFVertexingHFLctoV0bachelor.cxx:689
 AliCFVertexingHFLctoV0bachelor.cxx:690
 AliCFVertexingHFLctoV0bachelor.cxx:691
 AliCFVertexingHFLctoV0bachelor.cxx:692
 AliCFVertexingHFLctoV0bachelor.cxx:693
 AliCFVertexingHFLctoV0bachelor.cxx:694
 AliCFVertexingHFLctoV0bachelor.cxx:695
 AliCFVertexingHFLctoV0bachelor.cxx:696
 AliCFVertexingHFLctoV0bachelor.cxx:697
 AliCFVertexingHFLctoV0bachelor.cxx:698
 AliCFVertexingHFLctoV0bachelor.cxx:699
 AliCFVertexingHFLctoV0bachelor.cxx:700
 AliCFVertexingHFLctoV0bachelor.cxx:701
 AliCFVertexingHFLctoV0bachelor.cxx:702
 AliCFVertexingHFLctoV0bachelor.cxx:703
 AliCFVertexingHFLctoV0bachelor.cxx:704
 AliCFVertexingHFLctoV0bachelor.cxx:705
 AliCFVertexingHFLctoV0bachelor.cxx:706
 AliCFVertexingHFLctoV0bachelor.cxx:707
 AliCFVertexingHFLctoV0bachelor.cxx:708
 AliCFVertexingHFLctoV0bachelor.cxx:709
 AliCFVertexingHFLctoV0bachelor.cxx:710
 AliCFVertexingHFLctoV0bachelor.cxx:711
 AliCFVertexingHFLctoV0bachelor.cxx:712
 AliCFVertexingHFLctoV0bachelor.cxx:713
 AliCFVertexingHFLctoV0bachelor.cxx:714
 AliCFVertexingHFLctoV0bachelor.cxx:715
 AliCFVertexingHFLctoV0bachelor.cxx:716
 AliCFVertexingHFLctoV0bachelor.cxx:717
 AliCFVertexingHFLctoV0bachelor.cxx:718
 AliCFVertexingHFLctoV0bachelor.cxx:719
 AliCFVertexingHFLctoV0bachelor.cxx:720
 AliCFVertexingHFLctoV0bachelor.cxx:721
 AliCFVertexingHFLctoV0bachelor.cxx:722
 AliCFVertexingHFLctoV0bachelor.cxx:723
 AliCFVertexingHFLctoV0bachelor.cxx:724
 AliCFVertexingHFLctoV0bachelor.cxx:725
 AliCFVertexingHFLctoV0bachelor.cxx:726
 AliCFVertexingHFLctoV0bachelor.cxx:727
 AliCFVertexingHFLctoV0bachelor.cxx:728
 AliCFVertexingHFLctoV0bachelor.cxx:729
 AliCFVertexingHFLctoV0bachelor.cxx:730
 AliCFVertexingHFLctoV0bachelor.cxx:731
 AliCFVertexingHFLctoV0bachelor.cxx:732
 AliCFVertexingHFLctoV0bachelor.cxx:733
 AliCFVertexingHFLctoV0bachelor.cxx:734
 AliCFVertexingHFLctoV0bachelor.cxx:735
 AliCFVertexingHFLctoV0bachelor.cxx:736
 AliCFVertexingHFLctoV0bachelor.cxx:737
 AliCFVertexingHFLctoV0bachelor.cxx:738
 AliCFVertexingHFLctoV0bachelor.cxx:739
 AliCFVertexingHFLctoV0bachelor.cxx:740
 AliCFVertexingHFLctoV0bachelor.cxx:741
 AliCFVertexingHFLctoV0bachelor.cxx:742
 AliCFVertexingHFLctoV0bachelor.cxx:743
 AliCFVertexingHFLctoV0bachelor.cxx:744
 AliCFVertexingHFLctoV0bachelor.cxx:745
 AliCFVertexingHFLctoV0bachelor.cxx:746
 AliCFVertexingHFLctoV0bachelor.cxx:747
 AliCFVertexingHFLctoV0bachelor.cxx:748
 AliCFVertexingHFLctoV0bachelor.cxx:749
 AliCFVertexingHFLctoV0bachelor.cxx:750
 AliCFVertexingHFLctoV0bachelor.cxx:751
 AliCFVertexingHFLctoV0bachelor.cxx:752
 AliCFVertexingHFLctoV0bachelor.cxx:753
 AliCFVertexingHFLctoV0bachelor.cxx:754
 AliCFVertexingHFLctoV0bachelor.cxx:755
 AliCFVertexingHFLctoV0bachelor.cxx:756
 AliCFVertexingHFLctoV0bachelor.cxx:757
 AliCFVertexingHFLctoV0bachelor.cxx:758
 AliCFVertexingHFLctoV0bachelor.cxx:759
 AliCFVertexingHFLctoV0bachelor.cxx:760
 AliCFVertexingHFLctoV0bachelor.cxx:761
 AliCFVertexingHFLctoV0bachelor.cxx:762
 AliCFVertexingHFLctoV0bachelor.cxx:763
 AliCFVertexingHFLctoV0bachelor.cxx:764
 AliCFVertexingHFLctoV0bachelor.cxx:765
 AliCFVertexingHFLctoV0bachelor.cxx:766
 AliCFVertexingHFLctoV0bachelor.cxx:767
 AliCFVertexingHFLctoV0bachelor.cxx:768
 AliCFVertexingHFLctoV0bachelor.cxx:769
 AliCFVertexingHFLctoV0bachelor.cxx:770
 AliCFVertexingHFLctoV0bachelor.cxx:771
 AliCFVertexingHFLctoV0bachelor.cxx:772
 AliCFVertexingHFLctoV0bachelor.cxx:773
 AliCFVertexingHFLctoV0bachelor.cxx:774
 AliCFVertexingHFLctoV0bachelor.cxx:775
 AliCFVertexingHFLctoV0bachelor.cxx:776
 AliCFVertexingHFLctoV0bachelor.cxx:777
 AliCFVertexingHFLctoV0bachelor.cxx:778
 AliCFVertexingHFLctoV0bachelor.cxx:779
 AliCFVertexingHFLctoV0bachelor.cxx:780
 AliCFVertexingHFLctoV0bachelor.cxx:781
 AliCFVertexingHFLctoV0bachelor.cxx:782
 AliCFVertexingHFLctoV0bachelor.cxx:783
 AliCFVertexingHFLctoV0bachelor.cxx:784
 AliCFVertexingHFLctoV0bachelor.cxx:785
 AliCFVertexingHFLctoV0bachelor.cxx:786
 AliCFVertexingHFLctoV0bachelor.cxx:787
 AliCFVertexingHFLctoV0bachelor.cxx:788
 AliCFVertexingHFLctoV0bachelor.cxx:789
 AliCFVertexingHFLctoV0bachelor.cxx:790
 AliCFVertexingHFLctoV0bachelor.cxx:791
 AliCFVertexingHFLctoV0bachelor.cxx:792
 AliCFVertexingHFLctoV0bachelor.cxx:793
 AliCFVertexingHFLctoV0bachelor.cxx:794
 AliCFVertexingHFLctoV0bachelor.cxx:795
 AliCFVertexingHFLctoV0bachelor.cxx:796
 AliCFVertexingHFLctoV0bachelor.cxx:797
 AliCFVertexingHFLctoV0bachelor.cxx:798
 AliCFVertexingHFLctoV0bachelor.cxx:799
 AliCFVertexingHFLctoV0bachelor.cxx:800
 AliCFVertexingHFLctoV0bachelor.cxx:801
 AliCFVertexingHFLctoV0bachelor.cxx:802
 AliCFVertexingHFLctoV0bachelor.cxx:803
 AliCFVertexingHFLctoV0bachelor.cxx:804
 AliCFVertexingHFLctoV0bachelor.cxx:805
 AliCFVertexingHFLctoV0bachelor.cxx:806
 AliCFVertexingHFLctoV0bachelor.cxx:807
 AliCFVertexingHFLctoV0bachelor.cxx:808
 AliCFVertexingHFLctoV0bachelor.cxx:809
 AliCFVertexingHFLctoV0bachelor.cxx:810
 AliCFVertexingHFLctoV0bachelor.cxx:811
 AliCFVertexingHFLctoV0bachelor.cxx:812
 AliCFVertexingHFLctoV0bachelor.cxx:813
 AliCFVertexingHFLctoV0bachelor.cxx:814
 AliCFVertexingHFLctoV0bachelor.cxx:815
 AliCFVertexingHFLctoV0bachelor.cxx:816
 AliCFVertexingHFLctoV0bachelor.cxx:817
 AliCFVertexingHFLctoV0bachelor.cxx:818
 AliCFVertexingHFLctoV0bachelor.cxx:819
 AliCFVertexingHFLctoV0bachelor.cxx:820
 AliCFVertexingHFLctoV0bachelor.cxx:821
 AliCFVertexingHFLctoV0bachelor.cxx:822
 AliCFVertexingHFLctoV0bachelor.cxx:823
 AliCFVertexingHFLctoV0bachelor.cxx:824
 AliCFVertexingHFLctoV0bachelor.cxx:825
 AliCFVertexingHFLctoV0bachelor.cxx:826
 AliCFVertexingHFLctoV0bachelor.cxx:827
 AliCFVertexingHFLctoV0bachelor.cxx:828
 AliCFVertexingHFLctoV0bachelor.cxx:829
 AliCFVertexingHFLctoV0bachelor.cxx:830
 AliCFVertexingHFLctoV0bachelor.cxx:831
 AliCFVertexingHFLctoV0bachelor.cxx:832
 AliCFVertexingHFLctoV0bachelor.cxx:833
 AliCFVertexingHFLctoV0bachelor.cxx:834
 AliCFVertexingHFLctoV0bachelor.cxx:835
 AliCFVertexingHFLctoV0bachelor.cxx:836
 AliCFVertexingHFLctoV0bachelor.cxx:837
 AliCFVertexingHFLctoV0bachelor.cxx:838
 AliCFVertexingHFLctoV0bachelor.cxx:839
 AliCFVertexingHFLctoV0bachelor.cxx:840
 AliCFVertexingHFLctoV0bachelor.cxx:841
 AliCFVertexingHFLctoV0bachelor.cxx:842
 AliCFVertexingHFLctoV0bachelor.cxx:843
 AliCFVertexingHFLctoV0bachelor.cxx:844
 AliCFVertexingHFLctoV0bachelor.cxx:845
 AliCFVertexingHFLctoV0bachelor.cxx:846
 AliCFVertexingHFLctoV0bachelor.cxx:847
 AliCFVertexingHFLctoV0bachelor.cxx:848
 AliCFVertexingHFLctoV0bachelor.cxx:849
 AliCFVertexingHFLctoV0bachelor.cxx:850
 AliCFVertexingHFLctoV0bachelor.cxx:851
 AliCFVertexingHFLctoV0bachelor.cxx:852
 AliCFVertexingHFLctoV0bachelor.cxx:853
 AliCFVertexingHFLctoV0bachelor.cxx:854
 AliCFVertexingHFLctoV0bachelor.cxx:855
 AliCFVertexingHFLctoV0bachelor.cxx:856
 AliCFVertexingHFLctoV0bachelor.cxx:857
 AliCFVertexingHFLctoV0bachelor.cxx:858
 AliCFVertexingHFLctoV0bachelor.cxx:859
 AliCFVertexingHFLctoV0bachelor.cxx:860
 AliCFVertexingHFLctoV0bachelor.cxx:861
 AliCFVertexingHFLctoV0bachelor.cxx:862
 AliCFVertexingHFLctoV0bachelor.cxx:863
 AliCFVertexingHFLctoV0bachelor.cxx:864
 AliCFVertexingHFLctoV0bachelor.cxx:865
 AliCFVertexingHFLctoV0bachelor.cxx:866
 AliCFVertexingHFLctoV0bachelor.cxx:867
 AliCFVertexingHFLctoV0bachelor.cxx:868
 AliCFVertexingHFLctoV0bachelor.cxx:869
 AliCFVertexingHFLctoV0bachelor.cxx:870
 AliCFVertexingHFLctoV0bachelor.cxx:871
 AliCFVertexingHFLctoV0bachelor.cxx:872
 AliCFVertexingHFLctoV0bachelor.cxx:873
 AliCFVertexingHFLctoV0bachelor.cxx:874
 AliCFVertexingHFLctoV0bachelor.cxx:875
 AliCFVertexingHFLctoV0bachelor.cxx:876
 AliCFVertexingHFLctoV0bachelor.cxx:877
 AliCFVertexingHFLctoV0bachelor.cxx:878
 AliCFVertexingHFLctoV0bachelor.cxx:879
 AliCFVertexingHFLctoV0bachelor.cxx:880
 AliCFVertexingHFLctoV0bachelor.cxx:881
 AliCFVertexingHFLctoV0bachelor.cxx:882
 AliCFVertexingHFLctoV0bachelor.cxx:883
 AliCFVertexingHFLctoV0bachelor.cxx:884
 AliCFVertexingHFLctoV0bachelor.cxx:885
 AliCFVertexingHFLctoV0bachelor.cxx:886
 AliCFVertexingHFLctoV0bachelor.cxx:887
 AliCFVertexingHFLctoV0bachelor.cxx:888
 AliCFVertexingHFLctoV0bachelor.cxx:889
 AliCFVertexingHFLctoV0bachelor.cxx:890
 AliCFVertexingHFLctoV0bachelor.cxx:891
 AliCFVertexingHFLctoV0bachelor.cxx:892
 AliCFVertexingHFLctoV0bachelor.cxx:893
 AliCFVertexingHFLctoV0bachelor.cxx:894
 AliCFVertexingHFLctoV0bachelor.cxx:895
 AliCFVertexingHFLctoV0bachelor.cxx:896
 AliCFVertexingHFLctoV0bachelor.cxx:897
 AliCFVertexingHFLctoV0bachelor.cxx:898
 AliCFVertexingHFLctoV0bachelor.cxx:899
 AliCFVertexingHFLctoV0bachelor.cxx:900
 AliCFVertexingHFLctoV0bachelor.cxx:901
 AliCFVertexingHFLctoV0bachelor.cxx:902
 AliCFVertexingHFLctoV0bachelor.cxx:903
 AliCFVertexingHFLctoV0bachelor.cxx:904
 AliCFVertexingHFLctoV0bachelor.cxx:905
 AliCFVertexingHFLctoV0bachelor.cxx:906
 AliCFVertexingHFLctoV0bachelor.cxx:907
 AliCFVertexingHFLctoV0bachelor.cxx:908
 AliCFVertexingHFLctoV0bachelor.cxx:909
 AliCFVertexingHFLctoV0bachelor.cxx:910
 AliCFVertexingHFLctoV0bachelor.cxx:911
 AliCFVertexingHFLctoV0bachelor.cxx:912
 AliCFVertexingHFLctoV0bachelor.cxx:913
 AliCFVertexingHFLctoV0bachelor.cxx:914
 AliCFVertexingHFLctoV0bachelor.cxx:915
 AliCFVertexingHFLctoV0bachelor.cxx:916
 AliCFVertexingHFLctoV0bachelor.cxx:917
 AliCFVertexingHFLctoV0bachelor.cxx:918
 AliCFVertexingHFLctoV0bachelor.cxx:919
 AliCFVertexingHFLctoV0bachelor.cxx:920
 AliCFVertexingHFLctoV0bachelor.cxx:921
 AliCFVertexingHFLctoV0bachelor.cxx:922
 AliCFVertexingHFLctoV0bachelor.cxx:923
 AliCFVertexingHFLctoV0bachelor.cxx:924
 AliCFVertexingHFLctoV0bachelor.cxx:925
 AliCFVertexingHFLctoV0bachelor.cxx:926
 AliCFVertexingHFLctoV0bachelor.cxx:927
 AliCFVertexingHFLctoV0bachelor.cxx:928
 AliCFVertexingHFLctoV0bachelor.cxx:929
 AliCFVertexingHFLctoV0bachelor.cxx:930
 AliCFVertexingHFLctoV0bachelor.cxx:931
 AliCFVertexingHFLctoV0bachelor.cxx:932
 AliCFVertexingHFLctoV0bachelor.cxx:933
 AliCFVertexingHFLctoV0bachelor.cxx:934
 AliCFVertexingHFLctoV0bachelor.cxx:935
 AliCFVertexingHFLctoV0bachelor.cxx:936
 AliCFVertexingHFLctoV0bachelor.cxx:937
 AliCFVertexingHFLctoV0bachelor.cxx:938
 AliCFVertexingHFLctoV0bachelor.cxx:939
 AliCFVertexingHFLctoV0bachelor.cxx:940
 AliCFVertexingHFLctoV0bachelor.cxx:941
 AliCFVertexingHFLctoV0bachelor.cxx:942
 AliCFVertexingHFLctoV0bachelor.cxx:943
 AliCFVertexingHFLctoV0bachelor.cxx:944
 AliCFVertexingHFLctoV0bachelor.cxx:945
 AliCFVertexingHFLctoV0bachelor.cxx:946
 AliCFVertexingHFLctoV0bachelor.cxx:947
 AliCFVertexingHFLctoV0bachelor.cxx:948
 AliCFVertexingHFLctoV0bachelor.cxx:949
 AliCFVertexingHFLctoV0bachelor.cxx:950
 AliCFVertexingHFLctoV0bachelor.cxx:951
 AliCFVertexingHFLctoV0bachelor.cxx:952
 AliCFVertexingHFLctoV0bachelor.cxx:953
 AliCFVertexingHFLctoV0bachelor.cxx:954
 AliCFVertexingHFLctoV0bachelor.cxx:955
 AliCFVertexingHFLctoV0bachelor.cxx:956
 AliCFVertexingHFLctoV0bachelor.cxx:957
 AliCFVertexingHFLctoV0bachelor.cxx:958
 AliCFVertexingHFLctoV0bachelor.cxx:959
 AliCFVertexingHFLctoV0bachelor.cxx:960
 AliCFVertexingHFLctoV0bachelor.cxx:961
 AliCFVertexingHFLctoV0bachelor.cxx:962
 AliCFVertexingHFLctoV0bachelor.cxx:963
 AliCFVertexingHFLctoV0bachelor.cxx:964
 AliCFVertexingHFLctoV0bachelor.cxx:965
 AliCFVertexingHFLctoV0bachelor.cxx:966
 AliCFVertexingHFLctoV0bachelor.cxx:967
 AliCFVertexingHFLctoV0bachelor.cxx:968
 AliCFVertexingHFLctoV0bachelor.cxx:969
 AliCFVertexingHFLctoV0bachelor.cxx:970
 AliCFVertexingHFLctoV0bachelor.cxx:971
 AliCFVertexingHFLctoV0bachelor.cxx:972
 AliCFVertexingHFLctoV0bachelor.cxx:973
 AliCFVertexingHFLctoV0bachelor.cxx:974
 AliCFVertexingHFLctoV0bachelor.cxx:975
 AliCFVertexingHFLctoV0bachelor.cxx:976
 AliCFVertexingHFLctoV0bachelor.cxx:977
 AliCFVertexingHFLctoV0bachelor.cxx:978
 AliCFVertexingHFLctoV0bachelor.cxx:979
 AliCFVertexingHFLctoV0bachelor.cxx:980
 AliCFVertexingHFLctoV0bachelor.cxx:981
 AliCFVertexingHFLctoV0bachelor.cxx:982
 AliCFVertexingHFLctoV0bachelor.cxx:983
 AliCFVertexingHFLctoV0bachelor.cxx:984
 AliCFVertexingHFLctoV0bachelor.cxx:985
 AliCFVertexingHFLctoV0bachelor.cxx:986
 AliCFVertexingHFLctoV0bachelor.cxx:987
 AliCFVertexingHFLctoV0bachelor.cxx:988
 AliCFVertexingHFLctoV0bachelor.cxx:989
 AliCFVertexingHFLctoV0bachelor.cxx:990
 AliCFVertexingHFLctoV0bachelor.cxx:991
 AliCFVertexingHFLctoV0bachelor.cxx:992
 AliCFVertexingHFLctoV0bachelor.cxx:993
 AliCFVertexingHFLctoV0bachelor.cxx:994
 AliCFVertexingHFLctoV0bachelor.cxx:995
 AliCFVertexingHFLctoV0bachelor.cxx:996
 AliCFVertexingHFLctoV0bachelor.cxx:997
 AliCFVertexingHFLctoV0bachelor.cxx:998
 AliCFVertexingHFLctoV0bachelor.cxx:999
 AliCFVertexingHFLctoV0bachelor.cxx:1000
 AliCFVertexingHFLctoV0bachelor.cxx:1001
 AliCFVertexingHFLctoV0bachelor.cxx:1002
 AliCFVertexingHFLctoV0bachelor.cxx:1003
 AliCFVertexingHFLctoV0bachelor.cxx:1004
 AliCFVertexingHFLctoV0bachelor.cxx:1005
 AliCFVertexingHFLctoV0bachelor.cxx:1006
 AliCFVertexingHFLctoV0bachelor.cxx:1007
 AliCFVertexingHFLctoV0bachelor.cxx:1008
 AliCFVertexingHFLctoV0bachelor.cxx:1009
 AliCFVertexingHFLctoV0bachelor.cxx:1010
 AliCFVertexingHFLctoV0bachelor.cxx:1011
 AliCFVertexingHFLctoV0bachelor.cxx:1012
 AliCFVertexingHFLctoV0bachelor.cxx:1013
 AliCFVertexingHFLctoV0bachelor.cxx:1014
 AliCFVertexingHFLctoV0bachelor.cxx:1015
 AliCFVertexingHFLctoV0bachelor.cxx:1016
 AliCFVertexingHFLctoV0bachelor.cxx:1017
 AliCFVertexingHFLctoV0bachelor.cxx:1018
 AliCFVertexingHFLctoV0bachelor.cxx:1019
 AliCFVertexingHFLctoV0bachelor.cxx:1020
 AliCFVertexingHFLctoV0bachelor.cxx:1021
 AliCFVertexingHFLctoV0bachelor.cxx:1022
 AliCFVertexingHFLctoV0bachelor.cxx:1023
 AliCFVertexingHFLctoV0bachelor.cxx:1024
 AliCFVertexingHFLctoV0bachelor.cxx:1025
 AliCFVertexingHFLctoV0bachelor.cxx:1026
 AliCFVertexingHFLctoV0bachelor.cxx:1027
 AliCFVertexingHFLctoV0bachelor.cxx:1028
 AliCFVertexingHFLctoV0bachelor.cxx:1029
 AliCFVertexingHFLctoV0bachelor.cxx:1030
 AliCFVertexingHFLctoV0bachelor.cxx:1031
 AliCFVertexingHFLctoV0bachelor.cxx:1032
 AliCFVertexingHFLctoV0bachelor.cxx:1033
 AliCFVertexingHFLctoV0bachelor.cxx:1034
 AliCFVertexingHFLctoV0bachelor.cxx:1035
 AliCFVertexingHFLctoV0bachelor.cxx:1036
 AliCFVertexingHFLctoV0bachelor.cxx:1037
 AliCFVertexingHFLctoV0bachelor.cxx:1038
 AliCFVertexingHFLctoV0bachelor.cxx:1039
 AliCFVertexingHFLctoV0bachelor.cxx:1040
 AliCFVertexingHFLctoV0bachelor.cxx:1041
 AliCFVertexingHFLctoV0bachelor.cxx:1042
 AliCFVertexingHFLctoV0bachelor.cxx:1043
 AliCFVertexingHFLctoV0bachelor.cxx:1044
 AliCFVertexingHFLctoV0bachelor.cxx:1045
 AliCFVertexingHFLctoV0bachelor.cxx:1046
 AliCFVertexingHFLctoV0bachelor.cxx:1047
 AliCFVertexingHFLctoV0bachelor.cxx:1048
 AliCFVertexingHFLctoV0bachelor.cxx:1049
 AliCFVertexingHFLctoV0bachelor.cxx:1050
 AliCFVertexingHFLctoV0bachelor.cxx:1051
 AliCFVertexingHFLctoV0bachelor.cxx:1052
 AliCFVertexingHFLctoV0bachelor.cxx:1053
 AliCFVertexingHFLctoV0bachelor.cxx:1054
 AliCFVertexingHFLctoV0bachelor.cxx:1055
 AliCFVertexingHFLctoV0bachelor.cxx:1056
 AliCFVertexingHFLctoV0bachelor.cxx:1057
 AliCFVertexingHFLctoV0bachelor.cxx:1058
 AliCFVertexingHFLctoV0bachelor.cxx:1059
 AliCFVertexingHFLctoV0bachelor.cxx:1060
 AliCFVertexingHFLctoV0bachelor.cxx:1061
 AliCFVertexingHFLctoV0bachelor.cxx:1062
 AliCFVertexingHFLctoV0bachelor.cxx:1063
 AliCFVertexingHFLctoV0bachelor.cxx:1064
 AliCFVertexingHFLctoV0bachelor.cxx:1065
 AliCFVertexingHFLctoV0bachelor.cxx:1066
 AliCFVertexingHFLctoV0bachelor.cxx:1067
 AliCFVertexingHFLctoV0bachelor.cxx:1068
 AliCFVertexingHFLctoV0bachelor.cxx:1069
 AliCFVertexingHFLctoV0bachelor.cxx:1070
 AliCFVertexingHFLctoV0bachelor.cxx:1071
 AliCFVertexingHFLctoV0bachelor.cxx:1072
 AliCFVertexingHFLctoV0bachelor.cxx:1073
 AliCFVertexingHFLctoV0bachelor.cxx:1074
 AliCFVertexingHFLctoV0bachelor.cxx:1075
 AliCFVertexingHFLctoV0bachelor.cxx:1076
 AliCFVertexingHFLctoV0bachelor.cxx:1077
 AliCFVertexingHFLctoV0bachelor.cxx:1078
 AliCFVertexingHFLctoV0bachelor.cxx:1079
 AliCFVertexingHFLctoV0bachelor.cxx:1080
 AliCFVertexingHFLctoV0bachelor.cxx:1081
 AliCFVertexingHFLctoV0bachelor.cxx:1082
 AliCFVertexingHFLctoV0bachelor.cxx:1083
 AliCFVertexingHFLctoV0bachelor.cxx:1084
 AliCFVertexingHFLctoV0bachelor.cxx:1085
 AliCFVertexingHFLctoV0bachelor.cxx:1086
 AliCFVertexingHFLctoV0bachelor.cxx:1087
 AliCFVertexingHFLctoV0bachelor.cxx:1088
 AliCFVertexingHFLctoV0bachelor.cxx:1089
 AliCFVertexingHFLctoV0bachelor.cxx:1090
 AliCFVertexingHFLctoV0bachelor.cxx:1091
 AliCFVertexingHFLctoV0bachelor.cxx:1092
 AliCFVertexingHFLctoV0bachelor.cxx:1093
 AliCFVertexingHFLctoV0bachelor.cxx:1094