#include "AliAODRecoDecayHF2Prong.h"
#include "AliAODMCParticle.h"
#include "AliAODEvent.h"
#include "TClonesArray.h"
#include "AliCFVertexingHF.h"
#include "AliESDtrack.h"
#include "TDatabasePDG.h"
#include "AliAODRecoCascadeHF.h"
#include "AliCFVertexingHFCascade.h"
#include "AliCFContainer.h"
#include "AliCFTaskVertexingHF.h"
#include "AliPIDResponse.h"
#include "AliPID.h"
ClassImp(AliCFVertexingHFCascade)
AliCFVertexingHFCascade::AliCFVertexingHFCascade():
AliCFVertexingHF(),
fPDGcascade(0),
fPDGbachelor(0),
fPDGneutrDaugh(0),
fPDGneutrDaughForMC(0),
fPDGneutrDaughPositive(0),
fPDGneutrDaughNegative(0),
fPrimVtx(0x0),
fUseCutsForTMVA(kFALSE),
fCutOnMomConservation(0.00001)
{
SetNProngs(3);
fPtAccCut = new Float_t[fProngs];
fEtaAccCut = new Float_t[fProngs];
fPtAccCut[0] = 0.;
fEtaAccCut[0] = 0.;
for(Int_t iP=1; iP<fProngs; iP++){
fPtAccCut[iP] = 0.1;
fEtaAccCut[iP] = 0.9;
}
}
AliCFVertexingHFCascade::AliCFVertexingHFCascade(TClonesArray *mcArray, UShort_t originDselection):
AliCFVertexingHF(mcArray, originDselection),
fPDGcascade(0),
fPDGbachelor(0),
fPDGneutrDaugh(0),
fPDGneutrDaughForMC(0),
fPDGneutrDaughPositive(0),
fPDGneutrDaughNegative(0),
fPrimVtx(0x0),
fUseCutsForTMVA(kFALSE),
fCutOnMomConservation(0.00001)
{
SetNProngs(3);
fPtAccCut = new Float_t[fProngs];
fEtaAccCut = new Float_t[fProngs];
fPtAccCut[0] = 0.;
fEtaAccCut[0] = 0.;
for(Int_t iP=1; iP<fProngs; iP++){
fPtAccCut[iP] = 0.1;
fEtaAccCut[iP] = 0.9;
}
}
AliCFVertexingHFCascade& AliCFVertexingHFCascade::operator=(const AliCFVertexingHFCascade& c)
{
if (this != &c) {
AliCFVertexingHF::operator=(c);
}
return *this;
}
Bool_t AliCFVertexingHFCascade::SetRecoCandidateParam(AliAODRecoDecayHF *recoCand)
{
Bool_t bSignAssoc = kFALSE;
fRecoCandidate = recoCand;
AliAODRecoCascadeHF* cascade = (AliAODRecoCascadeHF*)recoCand;
if (!fRecoCandidate) {
AliError("fRecoCandidate not found, problem in assignement\n");
return bSignAssoc;
}
if ( fRecoCandidate->GetPrimaryVtx()) AliDebug(3,"fReco Candidate has a pointer to PrimVtx\n");
Int_t pdgDgCascade[2] = {fPDGneutrDaugh, fPDGbachelor};
Int_t pdgDgNeutrDaugh[2] = {fPDGneutrDaughPositive, fPDGneutrDaughNegative};
Int_t nentries = fmcArray->GetEntriesFast();
AliDebug(3,Form("nentries = %d\n", nentries));
Bool_t isV0 = kFALSE;
if (fPDGcascade == 4122) {
isV0 = kTRUE;
pdgDgCascade[0] = fPDGbachelor;
pdgDgCascade[1] = fPDGneutrDaugh;
}
AliDebug(3, Form("calling MatchToMC with: fPDGcascade = %d, fPDGneutrDaugh = %d, pdgDgCascade[0] = %d, pdgDgCascade[1] = %d, pdgDgNeutrDaugh[0] = %d, pdgDgNeutrDaugh[1] = %d, fmcArray = %p", fPDGcascade, fPDGneutrDaugh, pdgDgCascade[0], pdgDgCascade[1], pdgDgNeutrDaugh[0], pdgDgNeutrDaugh[1], fmcArray));
Int_t mcLabel = cascade->MatchToMC(fPDGcascade, fPDGneutrDaugh, pdgDgCascade, pdgDgNeutrDaugh, fmcArray, isV0);
if (mcLabel == -1) return bSignAssoc;
if (fRecoCandidate->NumberOfFakeDaughters()>0){
fFake = 0;
if (fFakeSelection == 1) return bSignAssoc;
}
if (fRecoCandidate->NumberOfFakeDaughters()==0){
fFake = 2;
if (fFakeSelection == 2) return bSignAssoc;
}
SetMCLabel(mcLabel);
fmcPartCandidate = dynamic_cast<AliAODMCParticle*>(fmcArray->At(fmcLabel));
if (!fmcPartCandidate){
AliDebug(3,"No part candidate");
return bSignAssoc;
}
bSignAssoc = kTRUE;
return bSignAssoc;
}
Bool_t AliCFVertexingHFCascade::GetGeneratedValuesFromMCParticle(Double_t* vectorMC)
{
Bool_t bGenValues = kFALSE;
Int_t daughter0cascade = fmcPartCandidate->GetDaughter(0);
Int_t daughter1cascade = fmcPartCandidate->GetDaughter(1);
AliAODMCParticle* mcPartDaughter0 = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughter0cascade));
AliAODMCParticle* mcPartDaughter1 = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughter1cascade));
AliAODMCParticle* mcPartDaughterNeutrDaugh = NULL;
AliAODMCParticle* mcPartDaughterBachelor = NULL;
if (mcPartDaughter0->Charge()/3 == 0){
mcPartDaughterNeutrDaugh = mcPartDaughter0;
mcPartDaughterBachelor = mcPartDaughter1;
}
else {
mcPartDaughterNeutrDaugh = mcPartDaughter1;
mcPartDaughterBachelor = mcPartDaughter0;
}
if (!mcPartDaughterNeutrDaugh || !mcPartDaughterBachelor) return kFALSE;
Double_t vtx1[3] = {0,0,0};
Double_t vtx2daughter0[3] = {0,0,0};
Double_t vtx2daughter1[3] = {0,0,0};
fmcPartCandidate->XvYvZv(vtx1);
Int_t daughter0 = mcPartDaughterNeutrDaugh->GetDaughter(0);
Int_t daughter1 = mcPartDaughterNeutrDaugh->GetDaughter(1);
AliAODMCParticle* mcPartNeutrDaughter0 = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughter0));
AliAODMCParticle* mcPartNeutrDaughter1 = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughter1));
if (!mcPartNeutrDaughter0 || !mcPartNeutrDaughter1) return kFALSE;
mcPartNeutrDaughter0->XvYvZv(vtx2daughter0);
mcPartNeutrDaughter1->XvYvZv(vtx2daughter1);
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;
}
Int_t nprongs = 2;
Short_t charge = 0;
AliAODMCParticle* positiveDaugh = mcPartNeutrDaughter0;
AliAODMCParticle* negativeDaugh = mcPartNeutrDaughter1;
if (mcPartNeutrDaughter0->GetPdgCode() < 0 && mcPartNeutrDaughter1->GetPdgCode() > 0){
positiveDaugh = mcPartNeutrDaughter1;
negativeDaugh = mcPartNeutrDaughter0;
}
Double_t px[2] = {positiveDaugh->Px(), negativeDaugh->Px()};
Double_t py[2] = {positiveDaugh->Py(), negativeDaugh->Py()};
Double_t pz[2] = {positiveDaugh->Pz(), negativeDaugh->Pz()};
Double_t d0[2] = {0.,0.};
AliAODRecoDecayHF* decay = new AliAODRecoDecayHF(vtx1, vtx2daughter0, nprongs, charge, px, py, pz, d0);
Double_t cosThetaStar = 0.;
Double_t cosThetaStarNeutrDaugh = 0.;
Double_t cosThetaStarNeutrDaughBar = 0.;
cosThetaStarNeutrDaugh = decay->CosThetaStar(1, fPDGneutrDaugh, fPDGneutrDaughPositive, fPDGneutrDaughNegative);
cosThetaStarNeutrDaughBar = decay->CosThetaStar(0, fPDGneutrDaugh, fPDGneutrDaughNegative, fPDGneutrDaughPositive);
if (mcPartDaughterNeutrDaugh->GetPdgCode() == fPDGneutrDaughForMC){
AliDebug(3, Form("Neutral Daughter, with pdgprong0 = %d, pdgprong1 = %d", mcPartDaughter0->GetPdgCode(), mcPartDaughter1->GetPdgCode()));
cosThetaStar = cosThetaStarNeutrDaugh;
}
else if (mcPartDaughterNeutrDaugh->GetPdgCode() == -fPDGneutrDaughForMC){
AliDebug(3, Form("Neutral Daughter, with pdgprong0 = %d, pdgprong1 = %d",mcPartDaughter0->GetPdgCode(),mcPartDaughter1->GetPdgCode()));
cosThetaStar = cosThetaStarNeutrDaughBar;
}
else{
AliWarning(Form("There are problems!! particle was expected to be either with pdg = %d or its antiparticle with pdg = %d, while we have a %d, check...", fPDGneutrDaughForMC, -fPDGneutrDaughForMC, mcPartDaughterNeutrDaugh->GetPdgCode()));
delete decay;
return vectorMC;
}
if (cosThetaStar < -1 || cosThetaStar > 1) {
AliWarning(Form("Invalid value for cosine Theta star %f, returning", cosThetaStar));
delete decay;
return bGenValues;
}
Double_t vectorNeutrDaugh[2] = {0.,0.};
if (!EvaluateIfCorrectNeutrDaugh(mcPartDaughterNeutrDaugh, vectorNeutrDaugh)) {
AliDebug(2, "Error! the Neutral Daughter MC doesn't have correct daughters!!");
delete decay;
return bGenValues;
}
Double_t cT = decay->Ct(fPDGneutrDaugh);
AliDebug(3, Form("The candidate has pt = %f, y = %f", fmcPartCandidate->Pt(), fmcPartCandidate->Y()));
switch (fConfiguration){
case AliCFTaskVertexingHF::kSnail:
vectorMC[0] = fmcPartCandidate->Pt();
vectorMC[1] = fmcPartCandidate->Y() ;
vectorMC[2] = cosThetaStar ;
vectorMC[3] = vectorNeutrDaugh[0];
vectorMC[4] = vectorNeutrDaugh[1];
vectorMC[5] = cT*1.E4 ;
vectorMC[6] = 0.;
vectorMC[7] = -100000.;
vectorMC[8] = 1.01;
vectorMC[9] = fmcPartCandidate->Phi();
vectorMC[10] = fzMCVertex;
vectorMC[11] = fCentValue;
vectorMC[12] = 1.;
vectorMC[13] = 1.01;
vectorMC[14] = 0.;
vectorMC[15] = fMultiplicity;
break;
case AliCFTaskVertexingHF::kCheetah:
vectorMC[0] = fmcPartCandidate->Pt();
vectorMC[1] = fmcPartCandidate->Y() ;
vectorMC[2] = cT*1.E4;
vectorMC[3] = fmcPartCandidate->Phi();
vectorMC[4] = fzMCVertex;
vectorMC[5] = fCentValue;
vectorMC[6] = 1. ;
vectorMC[7] = fMultiplicity;
break;
}
delete decay;
bGenValues = kTRUE;
return bGenValues;
}
Bool_t AliCFVertexingHFCascade::GetRecoValuesFromCandidate(Double_t *vectorReco) const
{
Bool_t bFillRecoValues = kFALSE;
AliAODRecoCascadeHF* cascade = (AliAODRecoCascadeHF*)fRecoCandidate;
AliAODRecoDecay* neutrDaugh = NULL;
if (fPDGcascade == 413) neutrDaugh = cascade->Get2Prong();
else if (fPDGcascade == 4122) neutrDaugh = cascade->Getv0();
else {
return kFALSE;
}
Double_t pt = cascade->Pt();
Double_t rapidity = cascade->Y(fPDGcascade);
Double_t cosThetaStar = 9999.;
Double_t pTneutrDaughPos = 0.;
Double_t pTneutrDaughNeg = 0.;
Double_t dca = neutrDaugh->GetDCA();
Double_t d0xd0 = neutrDaugh->Prodd0d0();
Double_t cosPointingAngle = neutrDaugh->CosPointingAngle(fPrimVtx);
Double_t phi = cascade->Phi();
Double_t cosPointingAngleXY = neutrDaugh->CosPointingAngleXY(fPrimVtx);
Double_t normDecayLengthXY = neutrDaugh->NormalizedDecayLengthXY(fPrimVtx);
Int_t pdgCode = fmcPartCandidate->GetPdgCode();
if (pdgCode > 0){
cosThetaStar = neutrDaugh->CosThetaStar(1, fPDGneutrDaugh, fPDGneutrDaughPositive, fPDGneutrDaughNegative);
pTneutrDaughPos = neutrDaugh->PtProng(0);
pTneutrDaughNeg = neutrDaugh->PtProng(1);
}
else {
cosThetaStar = neutrDaugh->CosThetaStar(0, fPDGneutrDaugh, fPDGneutrDaughPositive, fPDGneutrDaughNegative);
pTneutrDaughPos = neutrDaugh->PtProng(1);
pTneutrDaughNeg = neutrDaugh->PtProng(0);
}
Double_t cT = neutrDaugh->Ct(fPDGneutrDaugh, fPrimVtx);
switch (fConfiguration){
case AliCFTaskVertexingHF::kSnail:
vectorReco[0] = pt;
vectorReco[1] = rapidity;
vectorReco[2] = cosThetaStar;
vectorReco[3] = pTneutrDaughPos;
vectorReco[4] = pTneutrDaughNeg;
vectorReco[5] = cT*1.E4;
vectorReco[6] = dca*1.E4;
vectorReco[7] = d0xd0*1.E8;
vectorReco[8] = cosPointingAngle;
vectorReco[9] = phi;
vectorReco[10] = fzPrimVertex;
vectorReco[11] = fCentValue;
vectorReco[12] = fFake;
vectorReco[13] = cosPointingAngleXY;
vectorReco[14] = normDecayLengthXY;
vectorReco[15] = fMultiplicity;
break;
case AliCFTaskVertexingHF::kCheetah:
vectorReco[0] = pt;
vectorReco[1] = rapidity;
vectorReco[2] = cT*1.E4;
vectorReco[3] = phi;
vectorReco[4] = fzPrimVertex;
vectorReco[5] = fCentValue;
vectorReco[6] = fFake;
vectorReco[7] = fMultiplicity;
break;
}
bFillRecoValues = kTRUE;
return bFillRecoValues;
}
Bool_t AliCFVertexingHFCascade::CheckMCChannelDecay() const
{
Bool_t checkCD = kFALSE;
Int_t daughter0 = fmcPartCandidate->GetDaughter(0);
Int_t daughter1 = fmcPartCandidate->GetDaughter(1);
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;
}
if(TMath::Abs(fmcPartCandidate->GetPdgCode()) == 4122 && (daughter1 - daughter0 != 1)) {
AliDebug(2, Form("The MC particle doesn't have the correct daughters!!"));
return checkCD;
}
if (!(TMath::Abs(mcPartDaughter0->GetPdgCode()) == fPDGneutrDaughForMC &&
TMath::Abs(mcPartDaughter1->GetPdgCode()) == fPDGbachelor) &&
!(TMath::Abs(mcPartDaughter0->GetPdgCode()) == fPDGbachelor &&
TMath::Abs(mcPartDaughter1->GetPdgCode()) == fPDGneutrDaughForMC)) {
AliDebug(2, Form("The cascade MC doesn't come from a the decay under study, skipping!! (Pdg codes of daughters = %d, %d)", mcPartDaughter0->GetPdgCode(), mcPartDaughter1->GetPdgCode()));
return checkCD;
}
AliAODMCParticle* mcPartDaughterNeutrDaugh = NULL;
AliDebug(3, Form("Charge0 = %d, Charge1 = %d", mcPartDaughter0->Charge()/3, mcPartDaughter1->Charge()/3));
if (mcPartDaughter0->Charge()/3 != 0){
mcPartDaughterNeutrDaugh = mcPartDaughter1;
}
else {
mcPartDaughterNeutrDaugh = mcPartDaughter0;
}
Double_t vectorNeutrDaugh[2] ={0., 0.};
if (!EvaluateIfCorrectNeutrDaugh(mcPartDaughterNeutrDaugh, vectorNeutrDaugh)) {
AliDebug(2, "Error! the NeutrDaugh MC doesn't have correct daughters!!");
return checkCD;
}
checkCD = kTRUE;
return checkCD;
}
Bool_t AliCFVertexingHFCascade::EvaluateIfCorrectNeutrDaugh(AliAODMCParticle* neutralDaugh, Double_t* vectorNeutrDaugh)const
{
Bool_t isHadronic = kFALSE;
AliDebug(2, Form("neutralDaugh = %p, pdg = %d", neutralDaugh, neutralDaugh->GetPdgCode()));
if (fPDGcascade == 4122) {
Int_t labelresonanceDaugh = neutralDaugh->GetDaughter(0);
AliAODMCParticle* resonanceDaugh = dynamic_cast<AliAODMCParticle*>(fmcArray->At(labelresonanceDaugh));
if (!resonanceDaugh){
return kFALSE;
}
else {
AliDebug(3, Form("The daughter of the resonant particle is a %d (we are looking for a %d)", resonanceDaugh->GetPdgCode(), fPDGneutrDaugh));
if (TMath::Abs(resonanceDaugh->GetPdgCode()) != fPDGneutrDaugh){
return kFALSE;
}
else {
neutralDaugh = resonanceDaugh;
}
}
}
Int_t daughterNeutrDaugh0 = neutralDaugh->GetDaughter(0);
Int_t daughterNeutrDaugh1 = neutralDaugh->GetDaughter(1);
AliDebug(2, Form("daughter0 = %d and daughter1 = %d", daughterNeutrDaugh0, daughterNeutrDaugh1));
if (daughterNeutrDaugh0 == 0 || daughterNeutrDaugh1 == 0) {
AliDebug(2, "Error! the D0 MC doesn't have correct daughters!!");
return isHadronic;
}
Int_t numberOfExpectedDaughters = 2;
if (TMath::Abs(daughterNeutrDaugh1 - daughterNeutrDaugh0) != numberOfExpectedDaughters-1) {
AliDebug(2, "The D0 MC doesn't come from a 2-prong decay, skipping!!");
return isHadronic;
}
AliAODMCParticle* mcPartDaughterNeutrDaugh0 = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughterNeutrDaugh0));
AliAODMCParticle* mcPartDaughterNeutrDaugh1 = dynamic_cast<AliAODMCParticle*>(fmcArray->At(daughterNeutrDaugh1));
if (!mcPartDaughterNeutrDaugh0 || !mcPartDaughterNeutrDaugh1) {
AliWarning("D0 MC analysis: At least one Daughter Particle not found in tree, skipping");
return isHadronic;
}
AliDebug(3, Form("Daughter 0 has pdg = %d, daughter 1 has pdg = %d", mcPartDaughterNeutrDaugh0->GetPdgCode(), mcPartDaughterNeutrDaugh1->GetPdgCode()));
if (!(TMath::Abs(mcPartDaughterNeutrDaugh0->GetPdgCode()) == fPDGneutrDaughPositive &&
TMath::Abs(mcPartDaughterNeutrDaugh1->GetPdgCode()) == fPDGneutrDaughNegative) &&
!(TMath::Abs(mcPartDaughterNeutrDaugh0->GetPdgCode()) == fPDGneutrDaughNegative &&
TMath::Abs(mcPartDaughterNeutrDaugh1->GetPdgCode()) == fPDGneutrDaughPositive)) {
AliDebug(2, "The neutral particle (MC) doesn't come from the required decay, skipping!!");
return isHadronic;
}
Double_t sumPxDau = mcPartDaughterNeutrDaugh0->Px()+mcPartDaughterNeutrDaugh1->Px();
Double_t sumPyDau = mcPartDaughterNeutrDaugh0->Py()+mcPartDaughterNeutrDaugh1->Py();
Double_t sumPzDau = mcPartDaughterNeutrDaugh0->Pz()+mcPartDaughterNeutrDaugh1->Pz();
Double_t pxMother = neutralDaugh->Px();
Double_t pyMother = neutralDaugh->Py();
Double_t pzMother = neutralDaugh->Pz();
AliDebug(3, Form("pxMother = %f, pyMother = %f, pzMother = %f", pxMother, pyMother, pzMother));
AliDebug(3, Form("sumPxDau = %f, sumPyDau = %f, sumPzDau = %f", sumPxDau, sumPyDau, sumPzDau));
if(TMath::Abs(pxMother-sumPxDau)/(TMath::Abs(pxMother)+1.e-13)>fCutOnMomConservation ||
TMath::Abs(pyMother-sumPyDau)/(TMath::Abs(pyMother)+1.e-13)>fCutOnMomConservation ||
TMath::Abs(pzMother-sumPzDau)/(TMath::Abs(pzMother)+1.e-13)>fCutOnMomConservation){
AliDebug(2, "Momentum conservation violated, skipping!!");
return isHadronic;
}
Double_t pTNeutrDaughPositive = 0;
Double_t pTNeutrDaughNegative = 0;
if (mcPartDaughterNeutrDaugh0->GetPdgCode() > 0 ) {
pTNeutrDaughPositive = mcPartDaughterNeutrDaugh0->Pt();
pTNeutrDaughNegative = mcPartDaughterNeutrDaugh1->Pt();
}
else {
pTNeutrDaughPositive = mcPartDaughterNeutrDaugh1->Pt();
pTNeutrDaughNegative = mcPartDaughterNeutrDaugh0->Pt();
}
isHadronic = kTRUE;
vectorNeutrDaugh[0] = pTNeutrDaughPositive;
vectorNeutrDaugh[1] = pTNeutrDaughNegative;
return isHadronic;
}
void AliCFVertexingHFCascade::SetPtAccCut(Float_t* ptAccCut)
{
AliDebug(3, "The 3rd element of the pt cut array will correspond to the cut applied to the soft pion - please check that it is correct");
if (fProngs>0){
for (Int_t iP=0; iP<fProngs; iP++){
fPtAccCut[iP]=ptAccCut[iP];
}
}
return;
}
void AliCFVertexingHFCascade::SetEtaAccCut(Float_t* etaAccCut)
{
AliDebug(3, "The 3rd element of the eta cut array will correspond to the cut applied to the soft pion - please check that it is correct");
if (fProngs>0){
for (Int_t iP=0; iP<fProngs; iP++){
fEtaAccCut[iP] = etaAccCut[iP];
}
}
return;
}
void AliCFVertexingHFCascade::SetAccCut(Float_t* ptAccCut, Float_t* etaAccCut)
{
AliDebug(3, "The 3rd element of the pt and cut array will correspond to the cut applied to the soft pion - please check that they are correct");
if (fProngs>0){
for (Int_t iP=0; iP<fProngs; iP++){
fPtAccCut[iP]=ptAccCut[iP];
fEtaAccCut[iP]=etaAccCut[iP];
}
}
return;
}
void AliCFVertexingHFCascade::SetAccCut()
{
Int_t bachelorPosition = 2;
if (fPDGcascade == 4122) bachelorPosition = 0;
AliAODMCParticle* mcPartDaughter = dynamic_cast<AliAODMCParticle*>(fmcArray->At(fLabelArray[bachelorPosition]));
if(!mcPartDaughter) return;
Int_t mother = mcPartDaughter->GetMother();
AliAODMCParticle* mcMother = dynamic_cast<AliAODMCParticle*>(fmcArray->At(mother));
if(!mcMother) return;
if (TMath::Abs(mcPartDaughter->GetPdgCode()) != fPDGbachelor || TMath::Abs(mcMother->GetPdgCode()) != fPDGcascade){
AliError(Form("Apparently the expected bachelor is not in the third position, causing an error (pdg expected = %d, actual = %d)!!", fPDGbachelor, mcPartDaughter->GetPdgCode()));
AliError("This should be fixed when checking the MC part family in the CF task...");
return;
}
if (fProngs>0){
for (Int_t iP=0; iP<fProngs; iP++){
fPtAccCut[iP]=0.1;
fEtaAccCut[iP]=0.9;
}
if (fPDGcascade != 4122){
fPtAccCut[2]=0.06;
fEtaAccCut[2]=0.9;
}
}
return;
}
Double_t AliCFVertexingHFCascade::GetEtaProng(Int_t iProng) const
{
if (fRecoCandidate){
AliAODRecoCascadeHF* cascade = (AliAODRecoCascadeHF*)fRecoCandidate;
Double_t etaProng =-9999;
AliAODRecoDecay* neutrDaugh=0;
Int_t ibachelor = 1;
if (fPDGcascade == 413) {
neutrDaugh = cascade->Get2Prong();
}
else if (fPDGcascade == 4122) {
neutrDaugh = cascade->Getv0();
ibachelor = 0;
}
if (iProng==0) etaProng = neutrDaugh->EtaProng(0);
if (iProng==1) etaProng = neutrDaugh->EtaProng(1);
if (iProng==2) etaProng = cascade->EtaProng(ibachelor);
return etaProng;
}
return 999999;
}
Double_t AliCFVertexingHFCascade::GetPtProng(Int_t iProng) const
{
if (fRecoCandidate){
AliAODRecoCascadeHF* cascade = (AliAODRecoCascadeHF*)fRecoCandidate;
Double_t ptProng= -9999;
AliAODRecoDecay* neutrDaugh=0;
if (fPDGcascade == 413) neutrDaugh = cascade->Get2Prong();
else if (fPDGcascade == 4122) neutrDaugh = cascade->Getv0();
if (iProng == 0) ptProng = neutrDaugh->PtProng(0);
if (iProng == 1) ptProng = neutrDaugh->PtProng(1);
if (iProng == 2) ptProng = cascade->PtProng(1);
return ptProng;
}
return 999999;
}
Bool_t AliCFVertexingHFCascade::CheckAdditionalCuts(AliPIDResponse* pidResponse) const {
if (fPDGcascade == 4122){
AliAODRecoCascadeHF* cascade = (AliAODRecoCascadeHF*)fRecoCandidate;
AliAODv0 * v0part = cascade->Getv0();
AliAODTrack *bachelor = (AliAODTrack*)cascade->GetBachelor();
Double_t bachelorEta = bachelor->Eta();
AliAODTrack *v0pos = (AliAODTrack*)v0part->GetDaughter(0);
AliAODTrack *v0neg = (AliAODTrack*)v0part->GetDaughter(1);
Double_t v0posEta = v0pos->Eta();
Double_t v0negEta = v0neg->Eta();
Bool_t onFlyV0 = v0part->GetOnFlyStatus();
Double_t nSigmaTPCpr=-999.;
Double_t nSigmaTOFpr=-999.;
nSigmaTPCpr = pidResponse->NumberOfSigmasTPC(bachelor,(AliPID::kProton));
nSigmaTOFpr = pidResponse->NumberOfSigmasTOF(bachelor,(AliPID::kProton));
Double_t ptArm = v0part->PtArmV0();
Double_t invmassK0s = v0part->MassK0Short();
Double_t mK0SPDG = TDatabasePDG::Instance()->GetParticle(310)->Mass();
Bool_t cutsForTMVA = (TMath::Abs(bachelorEta) < 0.8 && TMath::Abs(v0posEta) < 0.8 && TMath::Abs(v0negEta) < 0.8) &&
((nSigmaTOFpr < -800) || (TMath::Abs(nSigmaTOFpr) < 3)) &&
((ptArm < 0.07) || (ptArm > 0.105)) &&
((TMath::Abs(invmassK0s - mK0SPDG)) < 0.01);
if (!fUseCutsForTMVA) cutsForTMVA = kTRUE;
Bool_t cutsForInvMassTask = !(onFlyV0) &&
(cascade->CosV0PointingAngle()>0.99) &&
(TMath::Abs(nSigmaTPCpr) <= 3) &&
(v0part->Getd0Prong(0) < 20) &&
(v0part->Getd0Prong(1) < 20);
if (cutsForTMVA && cutsForInvMassTask) {
return kTRUE;
}
}
return kFALSE;
}
AliCFVertexingHFCascade.cxx:1 AliCFVertexingHFCascade.cxx:2 AliCFVertexingHFCascade.cxx:3 AliCFVertexingHFCascade.cxx:4 AliCFVertexingHFCascade.cxx:5 AliCFVertexingHFCascade.cxx:6 AliCFVertexingHFCascade.cxx:7 AliCFVertexingHFCascade.cxx:8 AliCFVertexingHFCascade.cxx:9 AliCFVertexingHFCascade.cxx:10 AliCFVertexingHFCascade.cxx:11 AliCFVertexingHFCascade.cxx:12 AliCFVertexingHFCascade.cxx:13 AliCFVertexingHFCascade.cxx:14 AliCFVertexingHFCascade.cxx:15 AliCFVertexingHFCascade.cxx:16 AliCFVertexingHFCascade.cxx:17 AliCFVertexingHFCascade.cxx:18 AliCFVertexingHFCascade.cxx:19 AliCFVertexingHFCascade.cxx:20 AliCFVertexingHFCascade.cxx:21 AliCFVertexingHFCascade.cxx:22 AliCFVertexingHFCascade.cxx:23 AliCFVertexingHFCascade.cxx:24 AliCFVertexingHFCascade.cxx:25 AliCFVertexingHFCascade.cxx:26 AliCFVertexingHFCascade.cxx:27 AliCFVertexingHFCascade.cxx:28 AliCFVertexingHFCascade.cxx:29 AliCFVertexingHFCascade.cxx:30 AliCFVertexingHFCascade.cxx:31 AliCFVertexingHFCascade.cxx:32 AliCFVertexingHFCascade.cxx:33 AliCFVertexingHFCascade.cxx:34 AliCFVertexingHFCascade.cxx:35 AliCFVertexingHFCascade.cxx:36 AliCFVertexingHFCascade.cxx:37 AliCFVertexingHFCascade.cxx:38 AliCFVertexingHFCascade.cxx:39 AliCFVertexingHFCascade.cxx:40 AliCFVertexingHFCascade.cxx:41 AliCFVertexingHFCascade.cxx:42 AliCFVertexingHFCascade.cxx:43 AliCFVertexingHFCascade.cxx:44 AliCFVertexingHFCascade.cxx:45 AliCFVertexingHFCascade.cxx:46 AliCFVertexingHFCascade.cxx:47 AliCFVertexingHFCascade.cxx:48 AliCFVertexingHFCascade.cxx:49 AliCFVertexingHFCascade.cxx:50 AliCFVertexingHFCascade.cxx:51 AliCFVertexingHFCascade.cxx:52 AliCFVertexingHFCascade.cxx:53 AliCFVertexingHFCascade.cxx:54 AliCFVertexingHFCascade.cxx:55 AliCFVertexingHFCascade.cxx:56 AliCFVertexingHFCascade.cxx:57 AliCFVertexingHFCascade.cxx:58 AliCFVertexingHFCascade.cxx:59 AliCFVertexingHFCascade.cxx:60 AliCFVertexingHFCascade.cxx:61 AliCFVertexingHFCascade.cxx:62 AliCFVertexingHFCascade.cxx:63 AliCFVertexingHFCascade.cxx:64 AliCFVertexingHFCascade.cxx:65 AliCFVertexingHFCascade.cxx:66 AliCFVertexingHFCascade.cxx:67 AliCFVertexingHFCascade.cxx:68 AliCFVertexingHFCascade.cxx:69 AliCFVertexingHFCascade.cxx:70 AliCFVertexingHFCascade.cxx:71 AliCFVertexingHFCascade.cxx:72 AliCFVertexingHFCascade.cxx:73 AliCFVertexingHFCascade.cxx:74 AliCFVertexingHFCascade.cxx:75 AliCFVertexingHFCascade.cxx:76 AliCFVertexingHFCascade.cxx:77 AliCFVertexingHFCascade.cxx:78 AliCFVertexingHFCascade.cxx:79 AliCFVertexingHFCascade.cxx:80 AliCFVertexingHFCascade.cxx:81 AliCFVertexingHFCascade.cxx:82 AliCFVertexingHFCascade.cxx:83 AliCFVertexingHFCascade.cxx:84 AliCFVertexingHFCascade.cxx:85 AliCFVertexingHFCascade.cxx:86 AliCFVertexingHFCascade.cxx:87 AliCFVertexingHFCascade.cxx:88 AliCFVertexingHFCascade.cxx:89 AliCFVertexingHFCascade.cxx:90 AliCFVertexingHFCascade.cxx:91 AliCFVertexingHFCascade.cxx:92 AliCFVertexingHFCascade.cxx:93 AliCFVertexingHFCascade.cxx:94 AliCFVertexingHFCascade.cxx:95 AliCFVertexingHFCascade.cxx:96 AliCFVertexingHFCascade.cxx:97 AliCFVertexingHFCascade.cxx:98 AliCFVertexingHFCascade.cxx:99 AliCFVertexingHFCascade.cxx:100 AliCFVertexingHFCascade.cxx:101 AliCFVertexingHFCascade.cxx:102 AliCFVertexingHFCascade.cxx:103 AliCFVertexingHFCascade.cxx:104 AliCFVertexingHFCascade.cxx:105 AliCFVertexingHFCascade.cxx:106 AliCFVertexingHFCascade.cxx:107 AliCFVertexingHFCascade.cxx:108 AliCFVertexingHFCascade.cxx:109 AliCFVertexingHFCascade.cxx:110 AliCFVertexingHFCascade.cxx:111 AliCFVertexingHFCascade.cxx:112 AliCFVertexingHFCascade.cxx:113 AliCFVertexingHFCascade.cxx:114 AliCFVertexingHFCascade.cxx:115 AliCFVertexingHFCascade.cxx:116 AliCFVertexingHFCascade.cxx:117 AliCFVertexingHFCascade.cxx:118 AliCFVertexingHFCascade.cxx:119 AliCFVertexingHFCascade.cxx:120 AliCFVertexingHFCascade.cxx:121 AliCFVertexingHFCascade.cxx:122 AliCFVertexingHFCascade.cxx:123 AliCFVertexingHFCascade.cxx:124 AliCFVertexingHFCascade.cxx:125 AliCFVertexingHFCascade.cxx:126 AliCFVertexingHFCascade.cxx:127 AliCFVertexingHFCascade.cxx:128 AliCFVertexingHFCascade.cxx:129 AliCFVertexingHFCascade.cxx:130 AliCFVertexingHFCascade.cxx:131 AliCFVertexingHFCascade.cxx:132 AliCFVertexingHFCascade.cxx:133 AliCFVertexingHFCascade.cxx:134 AliCFVertexingHFCascade.cxx:135 AliCFVertexingHFCascade.cxx:136 AliCFVertexingHFCascade.cxx:137 AliCFVertexingHFCascade.cxx:138 AliCFVertexingHFCascade.cxx:139 AliCFVertexingHFCascade.cxx:140 AliCFVertexingHFCascade.cxx:141 AliCFVertexingHFCascade.cxx:142 AliCFVertexingHFCascade.cxx:143 AliCFVertexingHFCascade.cxx:144 AliCFVertexingHFCascade.cxx:145 AliCFVertexingHFCascade.cxx:146 AliCFVertexingHFCascade.cxx:147 AliCFVertexingHFCascade.cxx:148 AliCFVertexingHFCascade.cxx:149 AliCFVertexingHFCascade.cxx:150 AliCFVertexingHFCascade.cxx:151 AliCFVertexingHFCascade.cxx:152 AliCFVertexingHFCascade.cxx:153 AliCFVertexingHFCascade.cxx:154 AliCFVertexingHFCascade.cxx:155 AliCFVertexingHFCascade.cxx:156 AliCFVertexingHFCascade.cxx:157 AliCFVertexingHFCascade.cxx:158 AliCFVertexingHFCascade.cxx:159 AliCFVertexingHFCascade.cxx:160 AliCFVertexingHFCascade.cxx:161 AliCFVertexingHFCascade.cxx:162 AliCFVertexingHFCascade.cxx:163 AliCFVertexingHFCascade.cxx:164 AliCFVertexingHFCascade.cxx:165 AliCFVertexingHFCascade.cxx:166 AliCFVertexingHFCascade.cxx:167 AliCFVertexingHFCascade.cxx:168 AliCFVertexingHFCascade.cxx:169 AliCFVertexingHFCascade.cxx:170 AliCFVertexingHFCascade.cxx:171 AliCFVertexingHFCascade.cxx:172 AliCFVertexingHFCascade.cxx:173 AliCFVertexingHFCascade.cxx:174 AliCFVertexingHFCascade.cxx:175 AliCFVertexingHFCascade.cxx:176 AliCFVertexingHFCascade.cxx:177 AliCFVertexingHFCascade.cxx:178 AliCFVertexingHFCascade.cxx:179 AliCFVertexingHFCascade.cxx:180 AliCFVertexingHFCascade.cxx:181 AliCFVertexingHFCascade.cxx:182 AliCFVertexingHFCascade.cxx:183 AliCFVertexingHFCascade.cxx:184 AliCFVertexingHFCascade.cxx:185 AliCFVertexingHFCascade.cxx:186 AliCFVertexingHFCascade.cxx:187 AliCFVertexingHFCascade.cxx:188 AliCFVertexingHFCascade.cxx:189 AliCFVertexingHFCascade.cxx:190 AliCFVertexingHFCascade.cxx:191 AliCFVertexingHFCascade.cxx:192 AliCFVertexingHFCascade.cxx:193 AliCFVertexingHFCascade.cxx:194 AliCFVertexingHFCascade.cxx:195 AliCFVertexingHFCascade.cxx:196 AliCFVertexingHFCascade.cxx:197 AliCFVertexingHFCascade.cxx:198 AliCFVertexingHFCascade.cxx:199 AliCFVertexingHFCascade.cxx:200 AliCFVertexingHFCascade.cxx:201 AliCFVertexingHFCascade.cxx:202 AliCFVertexingHFCascade.cxx:203 AliCFVertexingHFCascade.cxx:204 AliCFVertexingHFCascade.cxx:205 AliCFVertexingHFCascade.cxx:206 AliCFVertexingHFCascade.cxx:207 AliCFVertexingHFCascade.cxx:208 AliCFVertexingHFCascade.cxx:209 AliCFVertexingHFCascade.cxx:210 AliCFVertexingHFCascade.cxx:211 AliCFVertexingHFCascade.cxx:212 AliCFVertexingHFCascade.cxx:213 AliCFVertexingHFCascade.cxx:214 AliCFVertexingHFCascade.cxx:215 AliCFVertexingHFCascade.cxx:216 AliCFVertexingHFCascade.cxx:217 AliCFVertexingHFCascade.cxx:218 AliCFVertexingHFCascade.cxx:219 AliCFVertexingHFCascade.cxx:220 AliCFVertexingHFCascade.cxx:221 AliCFVertexingHFCascade.cxx:222 AliCFVertexingHFCascade.cxx:223 AliCFVertexingHFCascade.cxx:224 AliCFVertexingHFCascade.cxx:225 AliCFVertexingHFCascade.cxx:226 AliCFVertexingHFCascade.cxx:227 AliCFVertexingHFCascade.cxx:228 AliCFVertexingHFCascade.cxx:229 AliCFVertexingHFCascade.cxx:230 AliCFVertexingHFCascade.cxx:231 AliCFVertexingHFCascade.cxx:232 AliCFVertexingHFCascade.cxx:233 AliCFVertexingHFCascade.cxx:234 AliCFVertexingHFCascade.cxx:235 AliCFVertexingHFCascade.cxx:236 AliCFVertexingHFCascade.cxx:237 AliCFVertexingHFCascade.cxx:238 AliCFVertexingHFCascade.cxx:239 AliCFVertexingHFCascade.cxx:240 AliCFVertexingHFCascade.cxx:241 AliCFVertexingHFCascade.cxx:242 AliCFVertexingHFCascade.cxx:243 AliCFVertexingHFCascade.cxx:244 AliCFVertexingHFCascade.cxx:245 AliCFVertexingHFCascade.cxx:246 AliCFVertexingHFCascade.cxx:247 AliCFVertexingHFCascade.cxx:248 AliCFVertexingHFCascade.cxx:249 AliCFVertexingHFCascade.cxx:250 AliCFVertexingHFCascade.cxx:251 AliCFVertexingHFCascade.cxx:252 AliCFVertexingHFCascade.cxx:253 AliCFVertexingHFCascade.cxx:254 AliCFVertexingHFCascade.cxx:255 AliCFVertexingHFCascade.cxx:256 AliCFVertexingHFCascade.cxx:257 AliCFVertexingHFCascade.cxx:258 AliCFVertexingHFCascade.cxx:259 AliCFVertexingHFCascade.cxx:260 AliCFVertexingHFCascade.cxx:261 AliCFVertexingHFCascade.cxx:262 AliCFVertexingHFCascade.cxx:263 AliCFVertexingHFCascade.cxx:264 AliCFVertexingHFCascade.cxx:265 AliCFVertexingHFCascade.cxx:266 AliCFVertexingHFCascade.cxx:267 AliCFVertexingHFCascade.cxx:268 AliCFVertexingHFCascade.cxx:269 AliCFVertexingHFCascade.cxx:270 AliCFVertexingHFCascade.cxx:271 AliCFVertexingHFCascade.cxx:272 AliCFVertexingHFCascade.cxx:273 AliCFVertexingHFCascade.cxx:274 AliCFVertexingHFCascade.cxx:275 AliCFVertexingHFCascade.cxx:276 AliCFVertexingHFCascade.cxx:277 AliCFVertexingHFCascade.cxx:278 AliCFVertexingHFCascade.cxx:279 AliCFVertexingHFCascade.cxx:280 AliCFVertexingHFCascade.cxx:281 AliCFVertexingHFCascade.cxx:282 AliCFVertexingHFCascade.cxx:283 AliCFVertexingHFCascade.cxx:284 AliCFVertexingHFCascade.cxx:285 AliCFVertexingHFCascade.cxx:286 AliCFVertexingHFCascade.cxx:287 AliCFVertexingHFCascade.cxx:288 AliCFVertexingHFCascade.cxx:289 AliCFVertexingHFCascade.cxx:290 AliCFVertexingHFCascade.cxx:291 AliCFVertexingHFCascade.cxx:292 AliCFVertexingHFCascade.cxx:293 AliCFVertexingHFCascade.cxx:294 AliCFVertexingHFCascade.cxx:295 AliCFVertexingHFCascade.cxx:296 AliCFVertexingHFCascade.cxx:297 AliCFVertexingHFCascade.cxx:298 AliCFVertexingHFCascade.cxx:299 AliCFVertexingHFCascade.cxx:300 AliCFVertexingHFCascade.cxx:301 AliCFVertexingHFCascade.cxx:302 AliCFVertexingHFCascade.cxx:303 AliCFVertexingHFCascade.cxx:304 AliCFVertexingHFCascade.cxx:305 AliCFVertexingHFCascade.cxx:306 AliCFVertexingHFCascade.cxx:307 AliCFVertexingHFCascade.cxx:308 AliCFVertexingHFCascade.cxx:309 AliCFVertexingHFCascade.cxx:310 AliCFVertexingHFCascade.cxx:311 AliCFVertexingHFCascade.cxx:312 AliCFVertexingHFCascade.cxx:313 AliCFVertexingHFCascade.cxx:314 AliCFVertexingHFCascade.cxx:315 AliCFVertexingHFCascade.cxx:316 AliCFVertexingHFCascade.cxx:317 AliCFVertexingHFCascade.cxx:318 AliCFVertexingHFCascade.cxx:319 AliCFVertexingHFCascade.cxx:320 AliCFVertexingHFCascade.cxx:321 AliCFVertexingHFCascade.cxx:322 AliCFVertexingHFCascade.cxx:323 AliCFVertexingHFCascade.cxx:324 AliCFVertexingHFCascade.cxx:325 AliCFVertexingHFCascade.cxx:326 AliCFVertexingHFCascade.cxx:327 AliCFVertexingHFCascade.cxx:328 AliCFVertexingHFCascade.cxx:329 AliCFVertexingHFCascade.cxx:330 AliCFVertexingHFCascade.cxx:331 AliCFVertexingHFCascade.cxx:332 AliCFVertexingHFCascade.cxx:333 AliCFVertexingHFCascade.cxx:334 AliCFVertexingHFCascade.cxx:335 AliCFVertexingHFCascade.cxx:336 AliCFVertexingHFCascade.cxx:337 AliCFVertexingHFCascade.cxx:338 AliCFVertexingHFCascade.cxx:339 AliCFVertexingHFCascade.cxx:340 AliCFVertexingHFCascade.cxx:341 AliCFVertexingHFCascade.cxx:342 AliCFVertexingHFCascade.cxx:343 AliCFVertexingHFCascade.cxx:344 AliCFVertexingHFCascade.cxx:345 AliCFVertexingHFCascade.cxx:346 AliCFVertexingHFCascade.cxx:347 AliCFVertexingHFCascade.cxx:348 AliCFVertexingHFCascade.cxx:349 AliCFVertexingHFCascade.cxx:350 AliCFVertexingHFCascade.cxx:351 AliCFVertexingHFCascade.cxx:352 AliCFVertexingHFCascade.cxx:353 AliCFVertexingHFCascade.cxx:354 AliCFVertexingHFCascade.cxx:355 AliCFVertexingHFCascade.cxx:356 AliCFVertexingHFCascade.cxx:357 AliCFVertexingHFCascade.cxx:358 AliCFVertexingHFCascade.cxx:359 AliCFVertexingHFCascade.cxx:360 AliCFVertexingHFCascade.cxx:361 AliCFVertexingHFCascade.cxx:362 AliCFVertexingHFCascade.cxx:363 AliCFVertexingHFCascade.cxx:364 AliCFVertexingHFCascade.cxx:365 AliCFVertexingHFCascade.cxx:366 AliCFVertexingHFCascade.cxx:367 AliCFVertexingHFCascade.cxx:368 AliCFVertexingHFCascade.cxx:369 AliCFVertexingHFCascade.cxx:370 AliCFVertexingHFCascade.cxx:371 AliCFVertexingHFCascade.cxx:372 AliCFVertexingHFCascade.cxx:373 AliCFVertexingHFCascade.cxx:374 AliCFVertexingHFCascade.cxx:375 AliCFVertexingHFCascade.cxx:376 AliCFVertexingHFCascade.cxx:377 AliCFVertexingHFCascade.cxx:378 AliCFVertexingHFCascade.cxx:379 AliCFVertexingHFCascade.cxx:380 AliCFVertexingHFCascade.cxx:381 AliCFVertexingHFCascade.cxx:382 AliCFVertexingHFCascade.cxx:383 AliCFVertexingHFCascade.cxx:384 AliCFVertexingHFCascade.cxx:385 AliCFVertexingHFCascade.cxx:386 AliCFVertexingHFCascade.cxx:387 AliCFVertexingHFCascade.cxx:388 AliCFVertexingHFCascade.cxx:389 AliCFVertexingHFCascade.cxx:390 AliCFVertexingHFCascade.cxx:391 AliCFVertexingHFCascade.cxx:392 AliCFVertexingHFCascade.cxx:393 AliCFVertexingHFCascade.cxx:394 AliCFVertexingHFCascade.cxx:395 AliCFVertexingHFCascade.cxx:396 AliCFVertexingHFCascade.cxx:397 AliCFVertexingHFCascade.cxx:398 AliCFVertexingHFCascade.cxx:399 AliCFVertexingHFCascade.cxx:400 AliCFVertexingHFCascade.cxx:401 AliCFVertexingHFCascade.cxx:402 AliCFVertexingHFCascade.cxx:403 AliCFVertexingHFCascade.cxx:404 AliCFVertexingHFCascade.cxx:405 AliCFVertexingHFCascade.cxx:406 AliCFVertexingHFCascade.cxx:407 AliCFVertexingHFCascade.cxx:408 AliCFVertexingHFCascade.cxx:409 AliCFVertexingHFCascade.cxx:410 AliCFVertexingHFCascade.cxx:411 AliCFVertexingHFCascade.cxx:412 AliCFVertexingHFCascade.cxx:413 AliCFVertexingHFCascade.cxx:414 AliCFVertexingHFCascade.cxx:415 AliCFVertexingHFCascade.cxx:416 AliCFVertexingHFCascade.cxx:417 AliCFVertexingHFCascade.cxx:418 AliCFVertexingHFCascade.cxx:419 AliCFVertexingHFCascade.cxx:420 AliCFVertexingHFCascade.cxx:421 AliCFVertexingHFCascade.cxx:422 AliCFVertexingHFCascade.cxx:423 AliCFVertexingHFCascade.cxx:424 AliCFVertexingHFCascade.cxx:425 AliCFVertexingHFCascade.cxx:426 AliCFVertexingHFCascade.cxx:427 AliCFVertexingHFCascade.cxx:428 AliCFVertexingHFCascade.cxx:429 AliCFVertexingHFCascade.cxx:430 AliCFVertexingHFCascade.cxx:431 AliCFVertexingHFCascade.cxx:432 AliCFVertexingHFCascade.cxx:433 AliCFVertexingHFCascade.cxx:434 AliCFVertexingHFCascade.cxx:435 AliCFVertexingHFCascade.cxx:436 AliCFVertexingHFCascade.cxx:437 AliCFVertexingHFCascade.cxx:438 AliCFVertexingHFCascade.cxx:439 AliCFVertexingHFCascade.cxx:440 AliCFVertexingHFCascade.cxx:441 AliCFVertexingHFCascade.cxx:442 AliCFVertexingHFCascade.cxx:443 AliCFVertexingHFCascade.cxx:444 AliCFVertexingHFCascade.cxx:445 AliCFVertexingHFCascade.cxx:446 AliCFVertexingHFCascade.cxx:447 AliCFVertexingHFCascade.cxx:448 AliCFVertexingHFCascade.cxx:449 AliCFVertexingHFCascade.cxx:450 AliCFVertexingHFCascade.cxx:451 AliCFVertexingHFCascade.cxx:452 AliCFVertexingHFCascade.cxx:453 AliCFVertexingHFCascade.cxx:454 AliCFVertexingHFCascade.cxx:455 AliCFVertexingHFCascade.cxx:456 AliCFVertexingHFCascade.cxx:457 AliCFVertexingHFCascade.cxx:458 AliCFVertexingHFCascade.cxx:459 AliCFVertexingHFCascade.cxx:460 AliCFVertexingHFCascade.cxx:461 AliCFVertexingHFCascade.cxx:462 AliCFVertexingHFCascade.cxx:463 AliCFVertexingHFCascade.cxx:464 AliCFVertexingHFCascade.cxx:465 AliCFVertexingHFCascade.cxx:466 AliCFVertexingHFCascade.cxx:467 AliCFVertexingHFCascade.cxx:468 AliCFVertexingHFCascade.cxx:469 AliCFVertexingHFCascade.cxx:470 AliCFVertexingHFCascade.cxx:471 AliCFVertexingHFCascade.cxx:472 AliCFVertexingHFCascade.cxx:473 AliCFVertexingHFCascade.cxx:474 AliCFVertexingHFCascade.cxx:475 AliCFVertexingHFCascade.cxx:476 AliCFVertexingHFCascade.cxx:477 AliCFVertexingHFCascade.cxx:478 AliCFVertexingHFCascade.cxx:479 AliCFVertexingHFCascade.cxx:480 AliCFVertexingHFCascade.cxx:481 AliCFVertexingHFCascade.cxx:482 AliCFVertexingHFCascade.cxx:483 AliCFVertexingHFCascade.cxx:484 AliCFVertexingHFCascade.cxx:485 AliCFVertexingHFCascade.cxx:486 AliCFVertexingHFCascade.cxx:487 AliCFVertexingHFCascade.cxx:488 AliCFVertexingHFCascade.cxx:489 AliCFVertexingHFCascade.cxx:490 AliCFVertexingHFCascade.cxx:491 AliCFVertexingHFCascade.cxx:492 AliCFVertexingHFCascade.cxx:493 AliCFVertexingHFCascade.cxx:494 AliCFVertexingHFCascade.cxx:495 AliCFVertexingHFCascade.cxx:496 AliCFVertexingHFCascade.cxx:497 AliCFVertexingHFCascade.cxx:498 AliCFVertexingHFCascade.cxx:499 AliCFVertexingHFCascade.cxx:500 AliCFVertexingHFCascade.cxx:501 AliCFVertexingHFCascade.cxx:502 AliCFVertexingHFCascade.cxx:503 AliCFVertexingHFCascade.cxx:504 AliCFVertexingHFCascade.cxx:505 AliCFVertexingHFCascade.cxx:506 AliCFVertexingHFCascade.cxx:507 AliCFVertexingHFCascade.cxx:508 AliCFVertexingHFCascade.cxx:509 AliCFVertexingHFCascade.cxx:510 AliCFVertexingHFCascade.cxx:511 AliCFVertexingHFCascade.cxx:512 AliCFVertexingHFCascade.cxx:513 AliCFVertexingHFCascade.cxx:514 AliCFVertexingHFCascade.cxx:515 AliCFVertexingHFCascade.cxx:516 AliCFVertexingHFCascade.cxx:517 AliCFVertexingHFCascade.cxx:518 AliCFVertexingHFCascade.cxx:519 AliCFVertexingHFCascade.cxx:520 AliCFVertexingHFCascade.cxx:521 AliCFVertexingHFCascade.cxx:522 AliCFVertexingHFCascade.cxx:523 AliCFVertexingHFCascade.cxx:524 AliCFVertexingHFCascade.cxx:525 AliCFVertexingHFCascade.cxx:526 AliCFVertexingHFCascade.cxx:527 AliCFVertexingHFCascade.cxx:528 AliCFVertexingHFCascade.cxx:529 AliCFVertexingHFCascade.cxx:530 AliCFVertexingHFCascade.cxx:531 AliCFVertexingHFCascade.cxx:532 AliCFVertexingHFCascade.cxx:533 AliCFVertexingHFCascade.cxx:534 AliCFVertexingHFCascade.cxx:535 AliCFVertexingHFCascade.cxx:536 AliCFVertexingHFCascade.cxx:537 AliCFVertexingHFCascade.cxx:538 AliCFVertexingHFCascade.cxx:539 AliCFVertexingHFCascade.cxx:540 AliCFVertexingHFCascade.cxx:541 AliCFVertexingHFCascade.cxx:542 AliCFVertexingHFCascade.cxx:543 AliCFVertexingHFCascade.cxx:544 AliCFVertexingHFCascade.cxx:545 AliCFVertexingHFCascade.cxx:546 AliCFVertexingHFCascade.cxx:547 AliCFVertexingHFCascade.cxx:548 AliCFVertexingHFCascade.cxx:549 AliCFVertexingHFCascade.cxx:550 AliCFVertexingHFCascade.cxx:551 AliCFVertexingHFCascade.cxx:552 AliCFVertexingHFCascade.cxx:553 AliCFVertexingHFCascade.cxx:554 AliCFVertexingHFCascade.cxx:555 AliCFVertexingHFCascade.cxx:556 AliCFVertexingHFCascade.cxx:557 AliCFVertexingHFCascade.cxx:558 AliCFVertexingHFCascade.cxx:559 AliCFVertexingHFCascade.cxx:560 AliCFVertexingHFCascade.cxx:561 AliCFVertexingHFCascade.cxx:562 AliCFVertexingHFCascade.cxx:563 AliCFVertexingHFCascade.cxx:564 AliCFVertexingHFCascade.cxx:565 AliCFVertexingHFCascade.cxx:566 AliCFVertexingHFCascade.cxx:567 AliCFVertexingHFCascade.cxx:568 AliCFVertexingHFCascade.cxx:569 AliCFVertexingHFCascade.cxx:570 AliCFVertexingHFCascade.cxx:571 AliCFVertexingHFCascade.cxx:572 AliCFVertexingHFCascade.cxx:573 AliCFVertexingHFCascade.cxx:574 AliCFVertexingHFCascade.cxx:575 AliCFVertexingHFCascade.cxx:576 AliCFVertexingHFCascade.cxx:577 AliCFVertexingHFCascade.cxx:578 AliCFVertexingHFCascade.cxx:579 AliCFVertexingHFCascade.cxx:580 AliCFVertexingHFCascade.cxx:581 AliCFVertexingHFCascade.cxx:582 AliCFVertexingHFCascade.cxx:583 AliCFVertexingHFCascade.cxx:584 AliCFVertexingHFCascade.cxx:585 AliCFVertexingHFCascade.cxx:586 AliCFVertexingHFCascade.cxx:587 AliCFVertexingHFCascade.cxx:588 AliCFVertexingHFCascade.cxx:589 AliCFVertexingHFCascade.cxx:590 AliCFVertexingHFCascade.cxx:591 AliCFVertexingHFCascade.cxx:592 AliCFVertexingHFCascade.cxx:593 AliCFVertexingHFCascade.cxx:594 AliCFVertexingHFCascade.cxx:595 AliCFVertexingHFCascade.cxx:596 AliCFVertexingHFCascade.cxx:597 AliCFVertexingHFCascade.cxx:598 AliCFVertexingHFCascade.cxx:599 AliCFVertexingHFCascade.cxx:600 AliCFVertexingHFCascade.cxx:601 AliCFVertexingHFCascade.cxx:602 AliCFVertexingHFCascade.cxx:603 AliCFVertexingHFCascade.cxx:604 AliCFVertexingHFCascade.cxx:605 AliCFVertexingHFCascade.cxx:606 AliCFVertexingHFCascade.cxx:607 AliCFVertexingHFCascade.cxx:608 AliCFVertexingHFCascade.cxx:609 AliCFVertexingHFCascade.cxx:610 AliCFVertexingHFCascade.cxx:611 AliCFVertexingHFCascade.cxx:612 AliCFVertexingHFCascade.cxx:613 AliCFVertexingHFCascade.cxx:614 AliCFVertexingHFCascade.cxx:615 AliCFVertexingHFCascade.cxx:616 AliCFVertexingHFCascade.cxx:617 AliCFVertexingHFCascade.cxx:618 AliCFVertexingHFCascade.cxx:619 AliCFVertexingHFCascade.cxx:620 AliCFVertexingHFCascade.cxx:621 AliCFVertexingHFCascade.cxx:622 AliCFVertexingHFCascade.cxx:623 AliCFVertexingHFCascade.cxx:624 AliCFVertexingHFCascade.cxx:625 AliCFVertexingHFCascade.cxx:626 AliCFVertexingHFCascade.cxx:627 AliCFVertexingHFCascade.cxx:628 AliCFVertexingHFCascade.cxx:629 AliCFVertexingHFCascade.cxx:630 AliCFVertexingHFCascade.cxx:631 AliCFVertexingHFCascade.cxx:632 AliCFVertexingHFCascade.cxx:633 AliCFVertexingHFCascade.cxx:634 AliCFVertexingHFCascade.cxx:635 AliCFVertexingHFCascade.cxx:636 AliCFVertexingHFCascade.cxx:637 AliCFVertexingHFCascade.cxx:638 AliCFVertexingHFCascade.cxx:639 AliCFVertexingHFCascade.cxx:640 AliCFVertexingHFCascade.cxx:641 AliCFVertexingHFCascade.cxx:642 AliCFVertexingHFCascade.cxx:643 AliCFVertexingHFCascade.cxx:644 AliCFVertexingHFCascade.cxx:645 AliCFVertexingHFCascade.cxx:646 AliCFVertexingHFCascade.cxx:647 AliCFVertexingHFCascade.cxx:648 AliCFVertexingHFCascade.cxx:649 AliCFVertexingHFCascade.cxx:650 AliCFVertexingHFCascade.cxx:651 AliCFVertexingHFCascade.cxx:652 AliCFVertexingHFCascade.cxx:653 AliCFVertexingHFCascade.cxx:654 AliCFVertexingHFCascade.cxx:655 AliCFVertexingHFCascade.cxx:656 AliCFVertexingHFCascade.cxx:657 AliCFVertexingHFCascade.cxx:658 AliCFVertexingHFCascade.cxx:659 AliCFVertexingHFCascade.cxx:660 AliCFVertexingHFCascade.cxx:661 AliCFVertexingHFCascade.cxx:662 AliCFVertexingHFCascade.cxx:663 AliCFVertexingHFCascade.cxx:664 AliCFVertexingHFCascade.cxx:665 AliCFVertexingHFCascade.cxx:666 AliCFVertexingHFCascade.cxx:667 AliCFVertexingHFCascade.cxx:668 AliCFVertexingHFCascade.cxx:669 AliCFVertexingHFCascade.cxx:670 AliCFVertexingHFCascade.cxx:671 AliCFVertexingHFCascade.cxx:672 AliCFVertexingHFCascade.cxx:673 AliCFVertexingHFCascade.cxx:674 AliCFVertexingHFCascade.cxx:675 AliCFVertexingHFCascade.cxx:676 AliCFVertexingHFCascade.cxx:677 AliCFVertexingHFCascade.cxx:678 AliCFVertexingHFCascade.cxx:679 AliCFVertexingHFCascade.cxx:680 AliCFVertexingHFCascade.cxx:681 AliCFVertexingHFCascade.cxx:682 AliCFVertexingHFCascade.cxx:683 AliCFVertexingHFCascade.cxx:684 AliCFVertexingHFCascade.cxx:685 AliCFVertexingHFCascade.cxx:686 AliCFVertexingHFCascade.cxx:687 AliCFVertexingHFCascade.cxx:688 AliCFVertexingHFCascade.cxx:689 AliCFVertexingHFCascade.cxx:690 AliCFVertexingHFCascade.cxx:691 AliCFVertexingHFCascade.cxx:692 AliCFVertexingHFCascade.cxx:693 AliCFVertexingHFCascade.cxx:694 AliCFVertexingHFCascade.cxx:695 AliCFVertexingHFCascade.cxx:696 AliCFVertexingHFCascade.cxx:697 AliCFVertexingHFCascade.cxx:698 AliCFVertexingHFCascade.cxx:699 AliCFVertexingHFCascade.cxx:700 AliCFVertexingHFCascade.cxx:701 AliCFVertexingHFCascade.cxx:702 AliCFVertexingHFCascade.cxx:703 AliCFVertexingHFCascade.cxx:704 AliCFVertexingHFCascade.cxx:705 AliCFVertexingHFCascade.cxx:706 AliCFVertexingHFCascade.cxx:707 AliCFVertexingHFCascade.cxx:708 AliCFVertexingHFCascade.cxx:709 AliCFVertexingHFCascade.cxx:710 AliCFVertexingHFCascade.cxx:711 AliCFVertexingHFCascade.cxx:712 AliCFVertexingHFCascade.cxx:713 AliCFVertexingHFCascade.cxx:714 AliCFVertexingHFCascade.cxx:715 AliCFVertexingHFCascade.cxx:716 AliCFVertexingHFCascade.cxx:717 AliCFVertexingHFCascade.cxx:718 AliCFVertexingHFCascade.cxx:719 AliCFVertexingHFCascade.cxx:720 AliCFVertexingHFCascade.cxx:721 AliCFVertexingHFCascade.cxx:722 AliCFVertexingHFCascade.cxx:723 AliCFVertexingHFCascade.cxx:724 AliCFVertexingHFCascade.cxx:725 AliCFVertexingHFCascade.cxx:726 AliCFVertexingHFCascade.cxx:727 AliCFVertexingHFCascade.cxx:728 AliCFVertexingHFCascade.cxx:729 AliCFVertexingHFCascade.cxx:730 AliCFVertexingHFCascade.cxx:731 AliCFVertexingHFCascade.cxx:732 AliCFVertexingHFCascade.cxx:733 AliCFVertexingHFCascade.cxx:734 AliCFVertexingHFCascade.cxx:735 AliCFVertexingHFCascade.cxx:736 AliCFVertexingHFCascade.cxx:737 AliCFVertexingHFCascade.cxx:738 AliCFVertexingHFCascade.cxx:739 AliCFVertexingHFCascade.cxx:740 AliCFVertexingHFCascade.cxx:741 AliCFVertexingHFCascade.cxx:742 AliCFVertexingHFCascade.cxx:743 AliCFVertexingHFCascade.cxx:744 AliCFVertexingHFCascade.cxx:745 AliCFVertexingHFCascade.cxx:746 AliCFVertexingHFCascade.cxx:747 AliCFVertexingHFCascade.cxx:748 AliCFVertexingHFCascade.cxx:749 AliCFVertexingHFCascade.cxx:750 AliCFVertexingHFCascade.cxx:751 AliCFVertexingHFCascade.cxx:752 AliCFVertexingHFCascade.cxx:753 AliCFVertexingHFCascade.cxx:754 AliCFVertexingHFCascade.cxx:755 AliCFVertexingHFCascade.cxx:756 AliCFVertexingHFCascade.cxx:757 AliCFVertexingHFCascade.cxx:758 AliCFVertexingHFCascade.cxx:759 AliCFVertexingHFCascade.cxx:760 AliCFVertexingHFCascade.cxx:761