ROOT logo
 /**************************************************************************
 * Copyright(c) 1998-1999, 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.                  *
 **************************************************************************/
//
// Secondary vertexing construction Class
//  Construct secondary vertex from Beauty hadron with electron and
//  hadrons, then apply selection criteria
//
// Authors:
//   MinJung Kweon <minjung@physi.uni-heidelberg.de>
//

#include <TH2F.h>
#include <TIterator.h>
#include <TParticle.h>

#include <AliESDVertex.h>
#include <AliESDEvent.h>
#include <AliAODEvent.h>
#include <AliVTrack.h>
#include <AliESDtrack.h>
#include <AliAODTrack.h>
#include "AliHFEsecVtx.h"
#include <AliKFParticle.h>
#include <AliKFVertex.h>
#include <AliLog.h>
#include <AliMCEvent.h>
#include <AliAODMCParticle.h>
#include "AliHFEpairs.h"
#include "AliHFEsecVtxs.h"
#include "AliHFEtrackFilter.h"
#include "AliHFEmcQA.h"
#include "AliHFEtools.h"

ClassImp(AliHFEsecVtx)

//_______________________________________________________________________________________________
AliHFEsecVtx::AliHFEsecVtx():
  fFilter(0x0)
  ,fESD1(0x0)
  ,fAOD1(0x0)
  ,fMCEvent(0x0)
  ,fMCQA(0x0)
  ,fUseMCPID(kFALSE)
  ,fkSourceLabel()
  ,fNparents(0)
  ,fParentSelect()
  ,fPtRng()
  ,fDcaCut()
  ,fNoOfHFEpairs(0)
  ,fNoOfHFEsecvtxs(0)
  ,fArethereSecVtx(0)
  ,fHFEpairs(0x0)
  ,fHFEsecvtxs(0x0)
  ,fMCArray(0x0)
  ,fPVx(-999)
  ,fPVy(-999)
  ,fPVx2(999)
  ,fPVy2(-999)
  ,fCosPhi(-1)
  ,fSignedLxy(-1)
  ,fSignedLxy2(-1)
  ,fKFchi2(-1)
  ,fInvmass(-1)
  ,fInvmassSigma(-1)
  ,fKFip(0)
  ,fKFip2(0)
  ,fNsectrk2prim(0)
  ,fVtxchi2Tightcut(3.)
  ,fVtxchi2Loosecut(5.)
  ,fPairQA(0x0)
  ,fSecvtxQA(0x0)
  ,fSecVtxList(0x0)
{ 
  //
  // Default constructor
  //

  Init();
}

//_______________________________________________________________________________________________
AliHFEsecVtx::AliHFEsecVtx(const AliHFEsecVtx &p):
  TObject(p)
  ,fFilter(0x0)
  ,fESD1(0x0)
  ,fAOD1(0x0)
  ,fMCEvent(0x0)
  ,fMCQA(0x0)
  ,fUseMCPID(p.fUseMCPID)
  ,fkSourceLabel()
  ,fNparents(p.fNparents)
  ,fParentSelect()
  ,fPtRng()
  ,fDcaCut()
  ,fNoOfHFEpairs(p.fNoOfHFEpairs)
  ,fNoOfHFEsecvtxs(p.fNoOfHFEsecvtxs)
  ,fArethereSecVtx(p.fArethereSecVtx)
  ,fHFEpairs(0x0)
  ,fHFEsecvtxs(0x0)
  ,fMCArray(0x0)
  ,fPVx(p.fPVx)
  ,fPVy(p.fPVy)
  ,fPVx2(p.fPVx2)
  ,fPVy2(p.fPVy2)
  ,fCosPhi(p.fCosPhi)
  ,fSignedLxy(p.fSignedLxy)
  ,fSignedLxy2(p.fSignedLxy2)
  ,fKFchi2(p.fKFchi2)
  ,fInvmass(p.fInvmass)
  ,fInvmassSigma(p.fInvmassSigma)
  ,fKFip(p.fKFip)
  ,fKFip2(p.fKFip2)
  ,fNsectrk2prim(p.fNsectrk2prim)
  ,fVtxchi2Tightcut(p.fVtxchi2Tightcut)
  ,fVtxchi2Loosecut(p.fVtxchi2Loosecut)
  ,fPairQA(0x0)
  ,fSecvtxQA(0x0)
  ,fSecVtxList(0x0)
{ 
  //
  // Copy constructor
  //
  fFilter = new AliHFEtrackFilter(*p.fFilter);
}

//_______________________________________________________________________________________________
AliHFEsecVtx&
AliHFEsecVtx::operator=(const AliHFEsecVtx &)
{
  //
  // Assignment operator
  //

  AliInfo("Not yet implemented.");
  return *this;
}

//_______________________________________________________________________________________________
AliHFEsecVtx::~AliHFEsecVtx()
{
  //
  // Destructor
  //

  //cout << "Analysis Done." << endl;
  delete fFilter;
}

//__________________________________________
void AliHFEsecVtx::Init()
{
  //
  // set pdg code and index
  //

  fNparents = 7;

  fParentSelect[0][0] =  411;
  fParentSelect[0][1] =  421;
  fParentSelect[0][2] =  431;
  fParentSelect[0][3] = 4122;
  fParentSelect[0][4] = 4132;
  fParentSelect[0][5] = 4232;
  fParentSelect[0][6] = 4332;

  fParentSelect[1][0] =  511;
  fParentSelect[1][1] =  521;
  fParentSelect[1][2] =  531;
  fParentSelect[1][3] = 5122;
  fParentSelect[1][4] = 5132;
  fParentSelect[1][5] = 5232;
  fParentSelect[1][6] = 5332;

  // momentum ranges to apply pt dependent cuts
  fPtRng[0] = 1.0;
  fPtRng[1] = 2.0;
  fPtRng[2] = 2.5;
  fPtRng[3] = 3.0;
  fPtRng[4] = 5.0;
  fPtRng[5] = 12.0;
  fPtRng[6] = 20.0;

  // momentum dependent DCA cut values (preliminary)
  fDcaCut[0] = 0.04;
  fDcaCut[1] = 0.03;
  fDcaCut[2] = 0.02;
  fDcaCut[3] = 0.015;
  fDcaCut[4] = 0.01;
  fDcaCut[5] = 0.005;

  fFilter = new AliHFEtrackFilter("SecVtxFilter");
  fFilter->MakeCutStepRecKineITSTPC();
  fFilter->MakeCutStepPrimary();
} 

Bool_t AliHFEsecVtx::Process(AliVTrack *signalTrack){ 
  //
  // Run Process
  //
  //if(signalTrack->Pt() < 1.0) return;
  

  AliESDtrack *track = dynamic_cast<AliESDtrack *>(signalTrack);

  if(!track){
    AliDebug(1, "no esd track pointer, return\n");
    return kFALSE;
  }

  Bool_t bTagged = kFALSE;

  FillHistos(0,track); // wo any cuts

  InitHFEpairs();
  InitHFEsecvtxs();
  AliESDtrack *htrack = 0x0; 
  fFilter->Flush();
  fFilter->FilterTracks(fESD1);
  TObjArray *candidates = fFilter->GetFilteredTracks();
  TIterator *trackIter = candidates->MakeIterator();
  while((htrack = dynamic_cast<AliESDtrack *>(trackIter->Next()))){
    if(track->GetID() == htrack->GetID()) continue; // since it is for tagging single electron, don't need additional condition
    if (htrack->Pt()<1.0) continue;
    PairAnalysis(track, htrack, htrack->GetID()); // e-h pairing
  }
  delete trackIter;
  for(int ip=0; ip<HFEpairs()->GetEntriesFast(); ip++){
    //if(HasMCData()){
    AliHFEpairs *pair = (AliHFEpairs*) (HFEpairs()->UncheckedAt(ip));
    //if(!(pair->GetPairCode()>1. && pair->GetPairCode()<4.))  // apply various cuts
    if(pair->GetKFChi2()>5.) // only apply vertex chi2 cut for the moment
      HFEpairs()->RemoveAt(ip);
    //}
  }
  HFEpairs()->Compress();
  if(HFEpairs()->GetEntriesFast()) FillHistos(1,track); // after paired 
  if(HFEpairs()->GetEntriesFast()) RunSECVTX(track); // secondary vertexing with e,h1,h2,.. tracks
  if(HFEsecvtxs()->GetEntriesFast()) FillHistos(2,track); // after secvtxing
  for(int ip=0; ip<HFEsecvtxs()->GetEntriesFast(); ip++){
    AliHFEsecVtxs *secvtx=0x0;
    secvtx = (AliHFEsecVtxs*) (HFEsecvtxs()->UncheckedAt(ip));
    // here you apply cuts, then if it doesn't pass the cut, remove it from the HFEsecvtxs() 
    if(!(secvtx->GetInvmass()>2.0 && secvtx->GetInvmass()<5.2) || !(secvtx->GetSignedLxy2()>0.08 && secvtx->GetSignedLxy2()<1.5) || !(secvtx->GetKFIP2()>-0.1 && secvtx->GetKFIP2()<0.1))
      HFEsecvtxs()->RemoveAt(ip);
  }

  // fill histos for raw spectra
  if(HFEsecvtxs()->GetEntriesFast()) {
    FillHistos(3,track); //after secvtx cut
    bTagged = kTRUE;
  }
    
  DeleteHFEpairs();
  DeleteHFEsecvtxs();

  return bTagged;
}

//_______________________________________________________________________________________________
void AliHFEsecVtx::CreateHistograms(TList * const qaList)
{ 
  //
  // create histograms
  //
  
  if(!qaList) return;

  fSecVtxList = qaList;
  fSecVtxList->SetName("SecVtx");

  MakeContainer();
  MakeHistos(0);
  MakeHistos(1);
  MakeHistos(2);
  MakeHistos(3);

  /*
  fkSourceLabel[kAll]="all";
  fkSourceLabel[kDirectCharm]="directCharm";
  fkSourceLabel[kDirectBeauty]="directBeauty";
  fkSourceLabel[kBeautyCharm]="beauty2charm";
  fkSourceLabel[kGamma]="gamma";
  fkSourceLabel[kPi0]="pi0";
  fkSourceLabel[kElse]="others";
  fkSourceLabel[kBeautyGamma]="beauty22gamma";
  fkSourceLabel[kBeautyPi0]="beauty22pi0";
  fkSourceLabel[kBeautyElse]="beauty22others";

  TString hname;
  TString hnopt="secvtx_";
  for (Int_t isource = 0; isource < 10; isource++ ){
  }
  */

  //qaList->AddLast(fSecVtxList);
}

//_______________________________________________________________________________________________
void AliHFEsecVtx::GetPrimaryCondition()
{
  //
  // get primary characteristics and set
  //

  if (fESD1) {
    AliKFVertex primVtxCopy(*(fESD1->GetPrimaryVertex()));
    if( primVtxCopy.GetNDF() <1 ) return;
    fPVx = primVtxCopy.GetX();
    fPVy = primVtxCopy.GetY();
  }
  else if(fAOD1) {
    AliKFVertex primVtxCopy(*(fAOD1->GetPrimaryVertex()));
    if( primVtxCopy.GetNDF() <1 ) return;
    fPVx = primVtxCopy.GetX();
    fPVy = primVtxCopy.GetY();
  }
}

//_______________________________________________________________________________________________
void AliHFEsecVtx::PairAnalysis(AliVTrack* track1, AliVTrack* track2, Int_t index2)
{
  //
  // calculate e-h pair characteristics and tag pair 
  //

  //later consider the below
  Float_t dca1[2]={-999.,-999.}, dca2[2]={-999.,-999.};
  Float_t cov1[3]={-999.,-999.,-999.}, cov2[3]={-999.,-999.,-999.};

  Double_t dca1aod[2]={-999.,-999.}, dca2aod[2]={-999.,-999.};
  Double_t cov1aod[3]={-999.,-999.,-999.}, cov2aod[3]={-999.,-999.,-999.};

  if (IsAODanalysis()){
    const AliAODVertex *primVtx = fAOD1->GetPrimaryVertex();
    AliESDtrack esdTrk1(track1);
    AliESDtrack esdTrk2(track2);
    esdTrk1.PropagateToDCA(primVtx,0.,10000.,dca1aod,cov1aod);
    esdTrk2.PropagateToDCA(primVtx,0.,10000.,dca2aod,cov2aod);
  }
  else {
    ((AliESDtrack*)track1)->GetImpactParameters(dca1,cov1);
    ((AliESDtrack*)track2)->GetImpactParameters(dca2,cov2);
  }

  // apply pt dependent dca cut on hadrons
  /*for(int ibin=0; ibin<6; ibin++){
    if((track2->Pt()>fPtRng[ibin] && track2->Pt()<fPtRng[ibin+1]) && TMath::Abs(dca2[0])<fDcaCut[ibin]) return;
  }*/

  // get KF particle input pid
  Int_t pdg1 = GetPDG(track1);
  Int_t pdg2 = GetPDG(track2);
        
  if(pdg1==-1 || pdg2==-1) {
    //printf("out if considered pid range \n");
    return;
  }

  // create KF particle of pair
  if(IsAODanalysis()) AliKFParticle::SetField(fAOD1->GetMagneticField());
  else AliKFParticle::SetField(fESD1->GetMagneticField()); 

  AliKFParticle kfTrack[2];
  kfTrack[0] = AliKFParticle(*track1, pdg1);
  kfTrack[1] = AliKFParticle(*track2, pdg2);
  
  AliKFParticle kfSecondary(kfTrack[0],kfTrack[1]);

  //secondary vertex point from kf particle
  Double_t kfx = kfSecondary.GetX();
  Double_t kfy = kfSecondary.GetY();
  //Double_t kfz = kfSecondary.GetZ();
        
  //momentum at the decay point from kf particle
  Double_t kfpx = kfSecondary.GetPx();
  Double_t kfpy = kfSecondary.GetPy();
  //Double_t kfpz = kfSecondary.GetPz();


/* //directly use of ESD vertex 
  const AliESDVertex *pvertex = fESD1->GetPrimaryVertex();
  Double_t xyzVtx[3];
  pvertex->GetXYZ(xyzVtx);

  Double_t dx = kfx-xyzVtx[0];
  Double_t dy = kfy-xyzVtx[1];*/

  AliKFVertex primVtxCopy(*(fESD1->GetPrimaryVertex()));
  if( primVtxCopy.GetNDF() <1 ) return;
  fPVx = primVtxCopy.GetX();
  fPVy = primVtxCopy.GetY();

 // printf("esdx= %lf kfx= %lf esdy= %lf kfy= %lf\n",xyzVtx[0],fPVx,xyzVtx[1],fPVy);

  Double_t dx = kfx-fPVx;
  Double_t dy = kfy-fPVy;

  // discriminating variables 
  // invariant mass of the KF particle
  Double_t invmass = -1;
  Double_t invmassSigma = -1;
  kfSecondary.GetMass(invmass,invmassSigma);

  // chi2 of the KF particle
  Double_t kfchi2 = -1;
  if(kfSecondary.GetNDF()>0) kfchi2 = TMath::Sqrt(TMath::Abs(kfSecondary.GetChi2()/kfSecondary.GetNDF()));

  // opening angle between two particles in XY plane
  Double_t phi = kfTrack[0].GetAngleXY(kfTrack[1]);
  Double_t cosphi = TMath::Cos(phi);

  // DCA from primary to e-h KF particle (impact parameter of KF particle)
  Double_t vtx[2]={fPVx, fPVy};
  Double_t kfip = kfSecondary.GetDistanceFromVertexXY(vtx);

  // projection of kf vertex vector to the kf momentum direction 
  Double_t signedLxy=-999.;
  if((dx*kfpx+dy*kfpy)>0) signedLxy = TMath::Sqrt(dx*dx+dy*dy);  
  if((dx*kfpx+dy*kfpy)<0) signedLxy = -1*TMath::Sqrt(dx*dx+dy*dy);  
  //[the other way to think about]
  //Double_t psqr = kfpx*kfpx+kfpy*kfpy;
  //if(psqr>0) signedLxy=(dx*kfpx+dy*kfpy)/TMath::Sqrt(psqr);  

  //recalculating primary vertex after removing secvtx tracks --------------------------
  Int_t trkid[2];
  trkid[0] = track1->GetID();
  trkid[1] = track2->GetID();

  RecalcPrimvtx(2, trkid, kfTrack);
  Double_t dx2 = kfx-fPVx2;
  Double_t dy2 = kfy-fPVy2;

  // IP of sec particle recalculated based on recalculated primary vertex
  Double_t vtx2[2]={fPVx2, fPVy2};
  Double_t kfip2 = kfSecondary.GetDistanceFromVertexXY(vtx2);
  // signed Lxy recalculated based on recalculated primary vertex
  Double_t signedLxy2=-999.;
  if((dx2*kfpx+dy2*kfpy)>0) signedLxy2 = TMath::Sqrt(dx2*dx2+dy2*dy2);
  if((dx2*kfpx+dy2*kfpy)<0) signedLxy2 = -1*TMath::Sqrt(dx2*dx2+dy2*dy2);
  //------------------------------------------------------------------------------------


  Int_t paircode = -1;
  if (HasMCData()) paircode = GetPairCode(track1,track2); 

  AliHFEpairs hfepair; 
  hfepair.SetTrkLabel(index2);
  hfepair.SetInvmass(invmass);
  hfepair.SetKFChi2(kfchi2);
  hfepair.SetOpenangle(phi);
  hfepair.SetCosOpenangle(cosphi);
  hfepair.SetSignedLxy(signedLxy);
  hfepair.SetSignedLxy2(signedLxy2);
  hfepair.SetKFIP(kfip);
  hfepair.SetKFIP2(kfip2);
  hfepair.SetPairCode(paircode);
  AddHFEpairToArray(&hfepair);
  fNoOfHFEpairs++; 

  // fill into container for later QA
  Double_t dataE[6];
  dataE[0]=invmass;
  dataE[1]=kfchi2;
  dataE[2]=phi;
  dataE[3]=signedLxy2;
  dataE[4]=kfip2;
  dataE[5]=paircode;
  //if(cov1[0]>0) dataE[6]=Double_t(dca1[0]/cov1[0]);
  //if(cov2[0]>0) dataE[7]=Double_t(dca2[0]/cov2[0]);
  //dataE[6]=track1->Pt();
  //dataE[7]=track2->Pt();
  //dataE[6]=dca1[0]; //mjtmp
  //dataE[7]=dca2[0]; //mjtmp
  //dataE[8]=TMath::Abs(dca1[0]);
  //dataE[9]=TMath::Abs(dca2[0]);

  fPairQA->Fill(dataE);

}

//_______________________________________________________________________________________________
void AliHFEsecVtx::RunSECVTX(AliVTrack *track)
{
  //
  // run secondary vertexing algorithm and do tagging
  //

  //printf("number of considered pairs= %d\n",HFEpairs()->GetEntriesFast());
  FindSECVTXCandid(track);         
}

//_______________________________________________________________________________________________
void AliHFEsecVtx::FindSECVTXCandid(AliVTrack *track) 
{
  //
  // find secondary vertex candidate and store them into container
  //

  AliVTrack *htrack[20];
  //Int_t htracklabel[20];
  //Int_t paircode[20];
  //Double_t vtxchi2[20]; 
  //Double_t dataE[7]={-999.,-999.,-999.,-999.,-1.,0,0};  

  fVtxchi2Tightcut=3.; // tight cut for pair
  fVtxchi2Loosecut=5.; // loose cut for secvtx 

  if (HFEpairs()->GetEntriesFast()>20){
    AliDebug(3, "number of paired hadron is over maximum(20)");
    return; 
  }
        
  // get paired track objects  
  AliHFEpairs *pair=0x0;
  if (IsAODanalysis()){
    for (int ip=0; ip<HFEpairs()->GetEntriesFast(); ip++){
       pair = (AliHFEpairs*) (HFEpairs()->UncheckedAt(ip));
       //htracklabel[ip] = pair->GetTrkLabel();
       htrack[ip] = fAOD1->GetTrack(pair->GetTrkLabel());
       //if(pair->GetPairCode()==2 || pair->GetPairCode()==3) paircode[ip]=1;
       //else paircode[ip]=0;
       //vtxchi2[ip] = pair->GetKFChi2();
    }
  }
  else{
    for (int ip=0; ip<HFEpairs()->GetEntriesFast(); ip++){
       pair = (AliHFEpairs*) (HFEpairs()->UncheckedAt(ip));
       //htracklabel[ip] = pair->GetTrkLabel();
       htrack[ip] = fESD1->GetTrack(pair->GetTrkLabel());
       //if(pair->GetPairCode()==2 || pair->GetPairCode()==3) paircode[ip]=1;
       //else paircode[ip]=0;
       //vtxchi2[ip] = pair->GetKFChi2();
    }
  }

  Int_t nPairs = HFEpairs()->GetEntriesFast(); 


  // 1 electron candidate + 1 track 
  if (nPairs == 1){
    if (pair->GetKFChi2() < fVtxchi2Tightcut) { // you can also put single track cut -> here you apply very tight cut for the pair
      Fill2TrkSECVTX(track, pair);
    }
    return;
  }
  //--------------------------------------------------------------

  // 1 electron candidate + 2 tracks 
  if (nPairs == 2){
    CalcSECVTXProperty(track, htrack[0], htrack[1]); // calculate secondary vertex property

    if (fKFchi2 < fVtxchi2Loosecut) { // -> here you apply rather loose cut
      Fill3TrkSECVTX(track, 0, 1);
    }
    else{ // if doesn't pass the sec vtx chi2 cut
      for(int jp=0; jp<2; jp++){
         pair = (AliHFEpairs*) (HFEpairs()->UncheckedAt(jp));
         if (pair->GetKFChi2() < fVtxchi2Tightcut){
           Fill2TrkSECVTX(track, pair);
         } 
      }  
    }
    return;
  }
  //--------------------------------------------------------------

  // 1 electron candidate + 3 tracks 
  if (nPairs == 3){
    CalcSECVTXProperty(track, htrack[0], htrack[1], htrack[2]); // calculate secondary vertex property

    if (fKFchi2 < fVtxchi2Loosecut) {
      Fill4TrkSECVTX(track, 0, 1, 2);
    }
    else {
      fArethereSecVtx=0;
      for (int i=0; i<nPairs-1; i++){
         for (int j=i+1; j<nPairs; j++){
            CalcSECVTXProperty(track, htrack[i], htrack[j]);
            if (fKFchi2 < fVtxchi2Loosecut) {
              fArethereSecVtx++;
              Fill3TrkSECVTX(track, i, j);
            }
         } 
      }
      if(!fArethereSecVtx){ 
        for(int jp=0; jp<nPairs; jp++){
           pair = (AliHFEpairs*) (HFEpairs()->UncheckedAt(jp));
           if (pair->GetKFChi2() < fVtxchi2Tightcut){
             Fill2TrkSECVTX(track, pair);
           }
        }  
      }
    }
    return;
  }
  //--------------------------------------------------------------

  // 1 electron candidate + more than 3 tracks 
  if (nPairs > 3){
    fArethereSecVtx=0;
    for (int ih1=0; ih1<nPairs-2; ih1++){
      for (int ih2=ih1+1; ih2<nPairs-1; ih2++){
        for (int ih3=ih2+1; ih3<nPairs; ih3++){
          CalcSECVTXProperty(track, htrack[ih1], htrack[ih2], htrack[ih3]); // calculate secondary vertex property
          if (fKFchi2 < fVtxchi2Loosecut) {
            fArethereSecVtx++;
            Fill4TrkSECVTX(track, ih1, ih2, ih3);
          }
        }
      }
    }
    if (!fArethereSecVtx){
      fArethereSecVtx=0;
      for (int i=0; i<nPairs-1; i++){
        for (int j=i+1; j<nPairs; j++){
          CalcSECVTXProperty(track, htrack[i], htrack[j]);
          if (fKFchi2 < fVtxchi2Loosecut) {
            fArethereSecVtx++;
            Fill3TrkSECVTX(track, i, j);
          }
        }
      }
    }
    if (!fArethereSecVtx){
      for(int jp=0; jp<nPairs; jp++){
        pair = (AliHFEpairs*) (HFEpairs()->UncheckedAt(jp));
        if (pair->GetKFChi2() < fVtxchi2Tightcut){
          Fill2TrkSECVTX(track, pair);
        }
      }
    }
    return;
  }
  //--------------------------------------------------------------

}

//_______________________________________________________________________________________________
void AliHFEsecVtx::Fill4TrkSECVTX(AliVTrack* track, Int_t ipair, Int_t jpair, Int_t kpair)
{
  //
  // fill 3 tracks' secondary vertex properties
  //

  Double_t dataE[9]={-999.,-999.,-999.,-999.,-1.,0,0,-999.,-999.};

  Int_t paircode1 = 0, paircode2 = 0, paircode3 = 0;
  Int_t htracklabel1 = 0, htracklabel2= 0;

  if (HasMCData()){
    AliHFEpairs *pair1=0x0;
    AliHFEpairs *pair2=0x0;
    AliHFEpairs *pair3=0x0;
    pair1 = (AliHFEpairs*) (HFEpairs()->UncheckedAt(ipair));
    pair2 = (AliHFEpairs*) (HFEpairs()->UncheckedAt(jpair));
    pair3 = (AliHFEpairs*) (HFEpairs()->UncheckedAt(kpair));

    htracklabel1 = pair1->GetTrkLabel();
    htracklabel2 = pair2->GetTrkLabel();

    if (pair1->GetPairCode()==2 || pair1->GetPairCode()==3) paircode1=1;
    else paircode1=0;
    if (pair2->GetPairCode()==2 || pair2->GetPairCode()==3) paircode2=1;
    else paircode2=0;
    if (pair3->GetPairCode()==2 || pair3->GetPairCode()==3) paircode3=1;
    else paircode3=0;
  }

  AliHFEsecVtxs hfesecvtx;
  hfesecvtx.SetTrkLabel1(htracklabel1); // mj: not much meaningful for the moment
  hfesecvtx.SetTrkLabel2(htracklabel2); // mj: not much meaningful for the moment
  if(HasMCData()) hfesecvtx.SetMCCode(GetElectronSource(TMath::Abs(track->GetLabel())));
  hfesecvtx.SetKFChi2(fKFchi2);
  hfesecvtx.SetInvmass(fInvmass);
  hfesecvtx.SetSignedLxy(fSignedLxy);
  hfesecvtx.SetSignedLxy2(fSignedLxy2);
  hfesecvtx.SetKFIP(fKFip);
  hfesecvtx.SetKFIP2(fKFip2);
  AddHFEsecvtxToArray(&hfesecvtx);
  fNoOfHFEsecvtxs++;

  dataE[0]=fInvmass;
  dataE[1]=fKFchi2;
  dataE[2]=fSignedLxy;
  dataE[3]=fKFip;
  if(HasMCData()) dataE[4]=GetElectronSource(TMath::Abs(track->GetLabel()));
  dataE[5]=4; //# of associated tracks
  if(paircode1 & paircode2 & paircode3) dataE[6]=1;
  else if(!paircode1 & !paircode2 & !paircode3) dataE[6]=0;
  else dataE[6]=3;
  dataE[7]=fSignedLxy2;
  dataE[8]=track->Pt();
  fSecvtxQA->Fill(dataE);
}

//_______________________________________________________________________________________________
void AliHFEsecVtx::Fill3TrkSECVTX(AliVTrack* track, Int_t ipair, Int_t jpair)
{
  //
  // fill 3 tracks' secondary vertex properties
  //

  Double_t dataE[9]={-999.,-999.,-999.,-999.,-1.,0,0,-999.,-999.};

  Int_t paircode1 = 0, paircode2 = 0;
  Int_t htracklabel1 = 0, htracklabel2 = 0; 

  if (HasMCData()){
    AliHFEpairs *pair1=0x0;
    AliHFEpairs *pair2=0x0;
    pair1 = (AliHFEpairs*) (HFEpairs()->UncheckedAt(ipair));
    pair2 = (AliHFEpairs*) (HFEpairs()->UncheckedAt(jpair));

    htracklabel1 = pair1->GetTrkLabel();
    htracklabel2 = pair2->GetTrkLabel();

    if (pair1->GetPairCode()==2 || pair1->GetPairCode()==3) paircode1=1;
    else paircode1=0;
    if (pair2->GetPairCode()==2 || pair2->GetPairCode()==3) paircode2=1;
    else paircode2=0;
  }

  // fill secondary vertex container
  AliHFEsecVtxs hfesecvtx;
  hfesecvtx.SetTrkLabel1(htracklabel1);
  hfesecvtx.SetTrkLabel2(htracklabel2);
  if(HasMCData()) hfesecvtx.SetMCCode(GetElectronSource(TMath::Abs(track->GetLabel())));
  hfesecvtx.SetKFChi2(fKFchi2);
  hfesecvtx.SetInvmass(fInvmass);
  hfesecvtx.SetSignedLxy(fSignedLxy);
  hfesecvtx.SetSignedLxy2(fSignedLxy2);
  hfesecvtx.SetKFIP(fKFip);
  hfesecvtx.SetKFIP2(fKFip2);
  AddHFEsecvtxToArray(&hfesecvtx);
  fNoOfHFEsecvtxs++;

  // fill debugging THnSparse 
  dataE[0]=fInvmass;
  dataE[1]=fKFchi2;
  dataE[2]=fSignedLxy;
  dataE[3]=fKFip;
  if(HasMCData()) dataE[4]=GetElectronSource(TMath::Abs(track->GetLabel()));
  dataE[5]=3;
  if(paircode1 & paircode2) dataE[6]=1;
  else if(!paircode1 & !paircode2) dataE[6]=0;
  else dataE[6]=3;
  dataE[7]=fSignedLxy2;
  dataE[8]=track->Pt();
  fSecvtxQA->Fill(dataE);

}

//_______________________________________________________________________________________________
void AliHFEsecVtx::Fill2TrkSECVTX(AliVTrack* track, const AliHFEpairs *pair)
{
  //
  // fill 2 tracks' secondary vertex properties
  //

  Double_t dataE[9]={-999.,-999.,-999.,-999.,-1.,0,0,-999.,-999.};

  Int_t paircode;
  if (pair->GetPairCode()==2 || pair->GetPairCode()==3) paircode=1;
  else paircode=0;

  // fill secondary vertex container
  AliHFEsecVtxs hfesecvtx;
  hfesecvtx.SetTrkLabel1(pair->GetTrkLabel());
  hfesecvtx.SetTrkLabel2(-999);
  if(HasMCData()) hfesecvtx.SetMCCode(GetElectronSource(TMath::Abs(track->GetLabel())));
  hfesecvtx.SetInvmass(pair->GetInvmass());
  hfesecvtx.SetKFChi2(pair->GetKFChi2());
  hfesecvtx.SetSignedLxy(pair->GetSignedLxy());
  hfesecvtx.SetSignedLxy2(pair->GetSignedLxy2());
  hfesecvtx.SetKFIP(pair->GetKFIP());
  hfesecvtx.SetKFIP2(pair->GetKFIP2());
  AddHFEsecvtxToArray(&hfesecvtx);
  fNoOfHFEsecvtxs++;

  // fill debugging THnSparse 
  dataE[0]=pair->GetInvmass();
  dataE[1]=pair->GetKFChi2();
  dataE[2]=pair->GetSignedLxy();
  dataE[3]=pair->GetKFIP();
  if (HasMCData()) dataE[4]=GetElectronSource(TMath::Abs(track->GetLabel()));
  dataE[5]=2;              //# of associated tracks
  dataE[6]=paircode;
  dataE[7]=pair->GetSignedLxy2();
  dataE[8]=track->Pt();
  fSecvtxQA->Fill(dataE);

}

//_______________________________________________________________________________________________
void AliHFEsecVtx::CalcSECVTXProperty(AliVTrack* track1, AliVTrack* track2, AliVTrack* track3)
{
  //
  // calculate secondary vertex properties
  //

  // get KF particle input pid
  Int_t pdg1 = GetPDG(track1);
  Int_t pdg2 = GetPDG(track2);
  Int_t pdg3 = GetPDG(track3);

  if(pdg1==-1 || pdg2==-1 || pdg3==-1) {
    //printf("out if considered pid range \n");
    return;
  }

  // create KF particle of pair
  if(IsAODanalysis()) AliKFParticle::SetField(fAOD1->GetMagneticField());
  else AliKFParticle::SetField(fESD1->GetMagneticField());
  AliKFParticle kfTrack[3];
  kfTrack[0] = AliKFParticle(*track1, pdg1);
  kfTrack[1] = AliKFParticle(*track2, pdg2);
  kfTrack[2] = AliKFParticle(*track3, pdg3);

  AliKFParticle kfSecondary(kfTrack[0],kfTrack[1],kfTrack[2]);
  //AliKFParticle kfSecondary(kfTrack1,kfTrack2,kfTrack3);
        
  //secondary vertex point from kf particle
  Double_t kfx = kfSecondary.GetX();
  Double_t kfy = kfSecondary.GetY();
  //Double_t kfz = kfSecondary.GetZ();

  //momentum at the decay point from kf particle
  Double_t kfpx = kfSecondary.GetPx();
  Double_t kfpy = kfSecondary.GetPy();
  //Double_t kfpz = kfSecondary.GetPz();

  Double_t dx = kfx-fPVx;
  Double_t dy = kfy-fPVy;

  // discriminating variables ----------------------------------------------------------

  if(kfSecondary.GetNDF()>0) fKFchi2 = TMath::Sqrt(TMath::Abs(kfSecondary.GetChi2()/kfSecondary.GetNDF())); 

  // invariant mass of the KF particle
  kfSecondary.GetMass(fInvmass,fInvmassSigma);

  // DCA from primary to e-h KF particle (impact parameter of KF particle)
  Double_t vtx[2]={fPVx, fPVy};
  fKFip = kfSecondary.GetDistanceFromVertexXY(vtx);

  if((dx*kfpx+dy*kfpy)>0) fSignedLxy= TMath::Sqrt(dx*dx+dy*dy);
  if((dx*kfpx+dy*kfpy)<0) fSignedLxy= -1*TMath::Sqrt(dx*dx+dy*dy);
  //[the other way to think about] - projection of kf vertex vector to the kf momentum direction
  //Double_t psqr = kfpx*kfpx+kfpy*kfpy;
  //if(psqr>0) fSignedLxy=(dx*kfpx+dy*kfpy)/TMath::Sqrt(psqr);  


  //recalculating primary vertex after removing secvtx tracks --------------------------
  Int_t trkid[3];
  trkid[0] = track1->GetID();
  trkid[1] = track2->GetID();
  trkid[2] = track3->GetID();

  RecalcPrimvtx(3, trkid, kfTrack);
  Double_t dx2 = kfx-fPVx2;
  Double_t dy2 = kfy-fPVy2;

  // IP of sec particle recalculated based on recalculated primary vertex
  Double_t vtx2[2]={fPVx2, fPVy2};
  fKFip2 = kfSecondary.GetDistanceFromVertexXY(vtx2);
  // signed Lxy recalculated based on recalculated primary vertex
  if((dx2*kfpx+dy2*kfpy)>0) fSignedLxy2= TMath::Sqrt(dx2*dx2+dy2*dy2);
  if((dx2*kfpx+dy2*kfpy)<0) fSignedLxy2= -1*TMath::Sqrt(dx2*dx2+dy2*dy2);
  //------------------------------------------------------------------------------------
  
}

//_______________________________________________________________________________________________
void AliHFEsecVtx::CalcSECVTXProperty(AliVTrack* track1, AliVTrack* track2, AliVTrack* track3, AliVTrack* track4)
{
  //
  // calculate secondary vertex properties
  //

  // get KF particle input pid
  Int_t pdg1 = GetPDG(track1);
  Int_t pdg2 = GetPDG(track2);
  Int_t pdg3 = GetPDG(track3);
  Int_t pdg4 = GetPDG(track4);

  if(pdg1==-1 || pdg2==-1 || pdg3==-1 || pdg4==-1) {
    //printf("out if considered pid range \n");
    return;
  }

  // create KF particle of pair
  if(IsAODanalysis()) AliKFParticle::SetField(fAOD1->GetMagneticField());
  else AliKFParticle::SetField(fESD1->GetMagneticField());

  AliKFParticle kfTrack[4];
  kfTrack[0] = AliKFParticle(*track1, pdg1);
  kfTrack[1] = AliKFParticle(*track2, pdg2);
  kfTrack[2] = AliKFParticle(*track3, pdg3);
  kfTrack[3] = AliKFParticle(*track4, pdg4);

  AliKFParticle kfSecondary(kfTrack[0],kfTrack[1],kfTrack[2],kfTrack[3]);

  //secondary vertex point from kf particle
  Double_t kfx = kfSecondary.GetX();
  Double_t kfy = kfSecondary.GetY();
  //Double_t kfz = kfSecondary.GetZ();

  //momentum at the decay point from kf particle
  Double_t kfpx = kfSecondary.GetPx();
  Double_t kfpy = kfSecondary.GetPy();
  //Double_t kfpz = kfSecondary.GetPz();

  Double_t dx = kfx-fPVx;
  Double_t dy = kfy-fPVy;

  // discriminating variables ----------------------------------------------------------

  if(kfSecondary.GetNDF()>0) fKFchi2 = TMath::Sqrt(TMath::Abs(kfSecondary.GetChi2()/kfSecondary.GetNDF())); 

  // invariant mass of the KF particle
  kfSecondary.GetMass(fInvmass,fInvmassSigma);

  // DCA from primary to e-h KF particle (impact parameter of KF particle)
  Double_t vtx[2]={fPVx, fPVy};
  fKFip = kfSecondary.GetDistanceFromVertexXY(vtx);

  if((dx*kfpx+dy*kfpy)>0) fSignedLxy= TMath::Sqrt(dx*dx+dy*dy);
  if((dx*kfpx+dy*kfpy)<0) fSignedLxy= -1*TMath::Sqrt(dx*dx+dy*dy);
  //[the other way to think about] - projection of kf vertex vector to the kf momentum direction
  //Double_t psqr = kfpx*kfpx+kfpy*kfpy;
  //if(psqr>0) fSignedLxy=(dx*kfpx+dy*kfpy)/TMath::Sqrt(psqr);  

  //recalculating primary vertex after removing secvtx tracks --------------------------
  Int_t trkid[4];
  trkid[0] = track1->GetID();
  trkid[1] = track2->GetID();
  trkid[2] = track3->GetID();
  trkid[3] = track4->GetID();

  RecalcPrimvtx(4, trkid, kfTrack);
  Double_t dx2 = kfx-fPVx2;
  Double_t dy2 = kfy-fPVy2;

  // IP of sec particle recalculated based on recalculated primary vertex
  Double_t vtx2[2]={fPVx2, fPVy2};
  fKFip2 = kfSecondary.GetDistanceFromVertexXY(vtx2);
  // signed Lxy recalculated based on recalculated primary vertex
  if((dx2*kfpx+dy2*kfpy)>0) fSignedLxy2= TMath::Sqrt(dx2*dx2+dy2*dy2);
  if((dx2*kfpx+dy2*kfpy)<0) fSignedLxy2= -1*TMath::Sqrt(dx2*dx2+dy2*dy2);
  //------------------------------------------------------------------------------------

}

//_______________________________________________________________________________________________
void AliHFEsecVtx::RecalcPrimvtx(Int_t nkftrk, const Int_t * const trkid, const AliKFParticle * const kftrk){
  //
  // reccalculate primary vertex after removing considering track in the calculation
  //

  const AliESDVertex *primvtx = fESD1->GetPrimaryVertex();

  AliKFVertex kfESDprimary;
  Int_t n = primvtx->GetNIndices();
  fNsectrk2prim = 0;
  fPVx2 = -999.;
  fPVy2 = -999.;

  if (n>0 && primvtx->GetStatus()){
    kfESDprimary = AliKFVertex(*primvtx);
    UShort_t *priIndex = primvtx->GetIndices();
    for(Int_t j=0; j<nkftrk; j++){
      for (Int_t i=0;i<n;i++){
        Int_t idx = Int_t(priIndex[i]);
        if (idx == trkid[j]){
          kfESDprimary -= kftrk[j];
          fNsectrk2prim++;
        }
      }
    }
  }

  fPVx2 = kfESDprimary.GetX();
  fPVy2 = kfESDprimary.GetY();

}

//_______________________________________________________________________________________________
Int_t AliHFEsecVtx::GetMCPID(const AliESDtrack *track) 
{
  //      
  // return mc pid
  //      

  AliMCParticle *mctrack = NULL;
  if(!(mctrack = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(TMath::Abs(track->GetLabel()))))) return 0; 
  TParticle *mcpart = mctrack->Particle();

  if ( !mcpart ) return 0;
  Int_t pdgCode = mcpart->GetPdgCode();

  return pdgCode;
}

//_______________________________________________________________________________________________
Int_t AliHFEsecVtx::GetPairOriginESD(AliESDtrack* trk1, AliESDtrack* trk2)
{
  //
  // return pdg code of the origin(source) of the pair 
  // 
  //
  // ---*---*---*-----ancester A----- track1
  //                        |____*______ 
  //                             |______ track2
  // => if they originated from same ancester, 
  //    then return "the absolute value of pdg code of ancester A"
  //
  // ---*---*---B hadron-----ancester A----- track1
  //                               |____*______ 
  //                                    |______ track2
  // => if they originated from same ancester, and this ancester originally comes from B hadrons
  //    then return -1*"the absolute value of pdg code of ancester A"
  //
  // caution : it can also return parton pdg code if it originated from same string or gluon spliting. 
  //           

  if (trk1->GetLabel()<0 || trk2->GetLabel()<0) return 0;

  AliMCParticle *mctrack = NULL;
  AliMCParticle *mctrack1 = NULL;
  AliMCParticle *mctrack2 = NULL;
  if(!(mctrack1 = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(TMath::Abs(trk1->GetLabel()))))) return 0; 
  if(!(mctrack2 = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(TMath::Abs(trk2->GetLabel()))))) return 0; 
  TParticle *part1 = mctrack1->Particle();
  TParticle *part2 = mctrack2->Particle();

  TParticle* part2cp = part2;
  if (!(part1) || !(part2)) return 0;

  Int_t srcpdg = 0;

  //if the two tracks' mother's label is same, get the mother info
  //in case of charm, check if it originated from beauty
  for (Int_t i=0; i<10; i++){ //check up to 10 ancesters
     Int_t label1 = part1->GetFirstMother(); 
     if (label1 < 0) return 0;

     for (Int_t j=0; j<10; j++){ //check up to 10 ancesters
        Int_t label2 = part2->GetFirstMother(); 
        if (label2 < 0) break; 

        if (label1 == label2){ //check if two tracks are originated from same mother
          if(!(mctrack = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(TMath::Abs(label2))))) return 0; 
	  TParticle* commonmom = mctrack->Particle();

          srcpdg = TMath::Abs(commonmom->GetPdgCode()); 

          //check ancester to see if it is originally from beauty 
          for (Int_t k=0; k<10; k++){ //check up to 10 ancesters
             Int_t ancesterlabel = commonmom->GetFirstMother();
             if (ancesterlabel < 0) return srcpdg; // if there is no more commonancester, return commonmom's pdg  

             if(!(mctrack = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(TMath::Abs(ancesterlabel))))) return 0; 
	     TParticle* commonancester = mctrack->Particle();

             Int_t ancesterpdg = TMath::Abs(commonancester->GetPdgCode());

             for (Int_t l=0; l<fNparents; l++){
                if (TMath::Abs(ancesterpdg)==fParentSelect[1][l]){
                  srcpdg = -1*srcpdg; //multiply -1 for hadron from bottom
                  return srcpdg;
                }
             }
             commonmom = commonancester;
          }
        }
	if(!(mctrack = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(TMath::Abs(label2))))) return 0; 
	part2 = mctrack->Particle(); //if their mother is different, go to earlier generation of 2nd particle

        if (!(part2)) break;
     }
     if(!(mctrack = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(TMath::Abs(label1))))) return 0; 
     part1 = mctrack->Particle(); //if their mother is different, go to earlier generation of 1st particle
     part2 = part2cp;
     if (!(part1)) return 0;
  }

  return srcpdg; 
}

//_______________________________________________________________________________________________
Int_t AliHFEsecVtx::GetPairOriginAOD(AliAODTrack* trk1, AliAODTrack* trk2)
{

  //
  // return pdg code of the origin(source) of the pair 
  // 
  //
  // ---*---*---*-----ancester A----- track1
  //                        |____*______ 
  //                             |______ track2
  // => if they originated from same ancester, 
  //    then return "the absolute value of pdg code of ancester A"
  //
  // ---*---*---B hadron-----ancester A----- track1
  //                               |____*______ 
  //                                    |______ track2
  // => if they originated from same ancester, and this ancester originally comes from B hadrons
  //    then return -1*"the absolute value of pdg code of ancester A"
  //
  // caution : it can also return parton pdg code if it originated from same string or gluon spliting. 
  //           

  if (trk1->GetLabel()<0 || trk2->GetLabel()<0) return 0;
  AliAODMCParticle *part1 = (AliAODMCParticle*)fMCArray->At(trk1->GetLabel());
  AliAODMCParticle *part2 = (AliAODMCParticle*)fMCArray->At(trk2->GetLabel());
  AliAODMCParticle *part2cp = part2;
  if (!(part1) || !(part2)) return 0;

  Int_t srcpdg = 0;

  //if the two tracks' mother's label is same, get the mother info
  //in case of charm, check if it originated from beauty
  for (Int_t i=0; i<10; i++){ //check up to 10 ancesters
     Int_t label1 = part1->GetMother(); 
     if (label1 < 0) return 0;

     for (Int_t j=0; j<10; j++){ //check up to 10 ancesters
        Int_t label2 = part2->GetMother(); 
        if (label2 < 0) return 0; 

        if (label1 == label2){ //check if two tracks are originated from same mother
          AliAODMCParticle *commonmom = (AliAODMCParticle*)fMCArray->At(label1);
          srcpdg = TMath::Abs(commonmom->GetPdgCode()); 

          //check ancester to see if it is originally from beauty 
          for (Int_t k=0; k<10; k++){ //check up to 10 ancesters
             Int_t ancesterlabel = commonmom->GetMother();
             if (ancesterlabel < 0) return srcpdg; // if there is no more commonancester, return commonmom's pdg  

             AliAODMCParticle *commonancester = (AliAODMCParticle*)fMCArray->At(ancesterlabel);
             Int_t ancesterpdg = TMath::Abs(commonancester->GetPdgCode());

             for (Int_t l=0; l<fNparents; l++){
                if (TMath::Abs(ancesterpdg)==fParentSelect[1][l]){
                  srcpdg = -1*srcpdg; //multiply -1 for charm from bottom
                  return srcpdg;
                }
             }
             commonmom = commonancester;
          }
        }
        part2 = (AliAODMCParticle*)fMCArray->At(label2); //if their mother is different, go to earlier generation of 2nd particle
        if (!(part2)) break;
     }
     part1 = (AliAODMCParticle*)fMCArray->At(label1); //if their mother is different, go to earlier generation of 2nd particle
     part2 = part2cp;
     if (!(part1)) return 0;
  }

  return srcpdg; 
}

//_______________________________________________________________________________________________
Int_t AliHFEsecVtx::GetPairCode(const AliVTrack* const trk1, const AliVTrack* const trk2)
{
  //           
  // return pair code which is predefinded as:
  //  kDirectCharm, kDirectBeauty, kBeautyCharm, kGamma, kPi0, 
  //  kElse, kBeautyGamma, kBeautyPi0, kBeautyElse
  //           

  Int_t srcpdg = -1;
  Int_t srccode = kElse;

  if(IsAODanalysis()) srcpdg = GetPairOriginAOD((AliAODTrack*)trk1,(AliAODTrack*)trk2);
  else srcpdg = GetPairOriginESD((AliESDtrack*)trk1,(AliESDtrack*)trk2);

  if (srcpdg < 0) srccode = kBeautyElse;
  for (Int_t i=0; i<fNparents; i++){
    if (TMath::Abs(srcpdg)==fParentSelect[0][i]) {
      if (srcpdg>0) srccode = kDirectCharm;
      if (srcpdg<0) srccode = kBeautyCharm;
    }
    if (TMath::Abs(srcpdg)==fParentSelect[1][i]) {
      if (srcpdg>0) srccode = kDirectBeauty;
      if (srcpdg<0)  return kElse;
    }
  }
  if (srcpdg == 22) srccode = kGamma;
  if (srcpdg == -22) srccode = kBeautyGamma;
  if (srcpdg == 111) srccode = kPi0;
  if (srcpdg == -111) srccode = kBeautyPi0;

  return srccode;
}

//_______________________________________________________________________________________________
Int_t AliHFEsecVtx::GetElectronSource(Int_t iTrack) 
{
  //
  // return decay electron's origin 
  //

  if (iTrack < 0) {
    AliDebug(1, "Stack label is negative, return\n");
    return -1;
  }

  AliMCParticle *mctrack = NULL;
  if(!(mctrack = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(TMath::Abs(iTrack))))) return -1; 
  TParticle *mcpart = mctrack->Particle();

  if(!mcpart){
    AliDebug(1, "no mc particle, return\n");
    return -1;
  } 

  if ( TMath::Abs(mcpart->GetPdgCode()) != 11 ) return kMisID;

//  if ( TMath::Abs(mcpart->GetPdgCode()) != 11 ) return -1; // check if it is electron !

  Int_t iLabel = mcpart->GetFirstMother();
  if (iLabel<0){
    AliDebug(1, "Stack label is negative, return\n");
    return -1;
  }

  Int_t origin = -1;
  Bool_t isFinalOpenCharm = kFALSE;

  if(!(mctrack = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(TMath::Abs(iLabel))))) return -1; 
  TParticle *partMother = mctrack->Particle();

  Int_t maPdgcode = partMother->GetPdgCode();

  // if the mother is charmed hadron  
  if ( int(TMath::Abs(maPdgcode)/100.) == kCharm || int(TMath::Abs(maPdgcode)/1000.) == kCharm ) {

    for (Int_t i=0; i<fNparents; i++){
      if (TMath::Abs(maPdgcode)==fParentSelect[0][i]){
        isFinalOpenCharm = kTRUE;
      }
    }
    if (!isFinalOpenCharm) return -1;

    // iterate until you find B hadron as a mother or become top ancester 
    for (Int_t i=1; i<100; i++){ // check back to the 100 generation older

      Int_t jLabel = partMother->GetFirstMother();
      if (jLabel == -1){
        origin = kDirectCharm;
        return origin;
      }
      if (jLabel < 0){ // safety protection
        AliDebug(1, "Stack label is negative, return\n");
        return -1;
      }

      // if there is an ancester
      if(!(mctrack = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(TMath::Abs(jLabel))))) return -1; 
      TParticle *grandMa = mctrack->Particle();

      Int_t grandMaPDG = grandMa->GetPdgCode();

      for (Int_t j=0; j<fNparents; j++){
        if (TMath::Abs(grandMaPDG)==fParentSelect[1][j]){
          origin = kBeautyCharm;
          return origin;
        }
      }

      partMother = grandMa;
    } // end of iteration 
  } // end of if
  else if ( int(TMath::Abs(maPdgcode)/100.) == kBeauty || int(TMath::Abs(maPdgcode)/1000.) == kBeauty ) {
    for (Int_t i=0; i<fNparents; i++){
      if (TMath::Abs(maPdgcode)==fParentSelect[1][i]){
        origin = kDirectBeauty;
        return origin;
      }
    }
  } // end of if

  //============ gamma ================
  else if ( TMath::Abs(maPdgcode) == 22 ) {
    origin = kGamma;

    // iterate until you find B hadron as a mother or become top ancester 
    for (Int_t i=1; i<100; i++){ // check back to the 100 generation older

      Int_t jLabel = partMother->GetFirstMother();
      if (jLabel == -1){
        origin = kGamma;
        return origin;
      }
      if (jLabel < 0){ // safety protection
        AliDebug(1, "Stack label is negative, return\n");
        return -1;
      }

      // if there is an ancester
      if(!(mctrack = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(TMath::Abs(jLabel))))) return -1; 
      TParticle *grandMa = mctrack->Particle();

      Int_t grandMaPDG = grandMa->GetPdgCode();

      for (Int_t j=0; j<fNparents; j++){
        if (TMath::Abs(grandMaPDG)==fParentSelect[1][j]){
          origin = kBeautyGamma;
          return origin;
        }
      }

      partMother = grandMa;
    } // end of iteration 

    return origin;
  } // end of if

  //============ pi0 ================
  else if ( TMath::Abs(maPdgcode) == 111 ) {
    origin = kPi0;

    // iterate until you find B hadron as a mother or become top ancester 
    for (Int_t i=1; i<100; i++){ // check back to the 100 generation older

      Int_t jLabel = partMother->GetFirstMother();
      if (jLabel == -1){
        origin = kPi0;
        return origin;
      }
      if (jLabel < 0){ // safety protection
        AliDebug(1, "Stack label is negative, return\n");
        return -1;
      }

      // if there is an ancester
      if(!(mctrack = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(TMath::Abs(jLabel))))) return -1; 
      TParticle *grandMa = mctrack->Particle();

      Int_t grandMaPDG = grandMa->GetPdgCode();

      for (Int_t j=0; j<fNparents; j++){
        if (TMath::Abs(grandMaPDG)==fParentSelect[1][j]){
          origin = kBeautyPi0;
          return origin;
        }
      }

      partMother = grandMa;
    } // end of iteration 

    return origin;
  } // end of if

  else {
    origin = kElse;
    // iterate until you find B hadron as a mother or become top ancester 
    for (Int_t i=1; i<100; i++){ // check back to the 100 generation older

      Int_t jLabel = partMother->GetFirstMother();
      if (jLabel == -1){
        origin = kElse;
        return origin;
      }
      if (jLabel < 0){ // safety protection
        AliDebug(1, "Stack label is negative, return\n");
        return -1;
      }

      // if there is an ancester
      if(!(mctrack = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(TMath::Abs(jLabel))))) return -1; 
      TParticle *grandMa = mctrack->Particle();

      Int_t grandMaPDG = grandMa->GetPdgCode();

      for (Int_t j=0; j<fNparents; j++){
        if (TMath::Abs(grandMaPDG)==fParentSelect[1][j]){
          origin = kBeautyElse;
          return origin;
        }
      }

      partMother = grandMa;
    } // end of iteration 
  }

  return origin;
}

//_______________________________________________________________________________________________
Int_t AliHFEsecVtx::GetPDG(const AliVTrack *track)
{
  //
  // get KF particle input pdg for mass hypothesis
  //

  Int_t pdgCode=-1;

  if (fUseMCPID && HasMCData()){
    pdgCode = GetMCPDG(track);
  }
  else if(fESD1){
    Int_t pid=0;
    Double_t prob;
    GetESDPID((AliESDtrack*)track, pid, prob);
    switch(pid){
      case 0:  pdgCode = 11; break;
      case 1:  pdgCode = 13; break;
      case 2:  pdgCode = 211; break;
      case 3:  pdgCode = 321; break;
      case 4:  pdgCode = 2212; break;
      default: pdgCode = -1;
    }
  }
  else if(fAOD1){
    Int_t pid = ((AliAODTrack*)track)->GetMostProbablePID();
    switch(pid){
      case 0:  pdgCode = 11; break;
      case 1:  pdgCode = 13; break;
      case 2:  pdgCode = 211; break;
      case 3:  pdgCode = 321; break;
      case 4:  pdgCode = 2212; break;
      default: pdgCode = -1;
    }
  }

  return pdgCode;
}

//_______________________________________________________________________________________________
Int_t AliHFEsecVtx::GetMCPDG(const AliVTrack *track)
{
  //
  // return mc pdg code
  //

  Int_t label = TMath::Abs(track->GetLabel());
  Int_t pdgCode; 
  AliMCParticle *mctrack = NULL;

  if (IsAODanalysis()) {
    AliAODMCParticle *mcpart = (AliAODMCParticle*)fMCArray->At(label);
    if ( !mcpart ) return 0;
      pdgCode = mcpart->GetPdgCode();
  }
  else {
    if(!(mctrack = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(TMath::Abs(label))))) return 0; 
    TParticle *mcpart = mctrack->Particle();

    if ( !mcpart ) return 0;
      pdgCode = mcpart->GetPdgCode();
  }

    return pdgCode;
}

//______________________________________________________________________________
void AliHFEsecVtx::GetESDPID(const AliESDtrack *track, Int_t &recpid, Double_t &recprob) 
{
  //
  // calculate likehood for esd pid
  // 

  recpid = -1;
  recprob = -1;

  Int_t ipid=-1;
  Double_t max=0.;

  Double_t probability[5];

  // get probability of the diffenrent particle types
  track->GetESDpid(probability);

  // find most probable particle in ESD pid
  // 0:Electron - 1:Muon - 2:Pion - 3:Kaon - 4:Proton
  ipid = TMath::LocMax(5,probability);
  max = TMath::MaxElement(5,probability);

  recpid = ipid;
  recprob = max;
}

//_____________________________________________________________________________
void AliHFEsecVtx::AddHFEpairToArray(const AliHFEpairs* const pair)
{
  //
  // Add a HFE pair to the array
  //

  Int_t n = HFEpairs()->GetEntriesFast();
  if(n!=fNoOfHFEpairs)AliError(Form("fNoOfHFEpairs != HFEpairs()->GetEntriesFast %i != %i \n", fNoOfHFEpairs, n));
  new((*HFEpairs())[n]) AliHFEpairs(*pair);
}

//_____________________________________________________________________________
TClonesArray *AliHFEsecVtx::HFEpairs()
{
  //
  // Returns the list of HFE pairs
  //

  if (!fHFEpairs) {
      fHFEpairs = new TClonesArray("AliHFEpairs", 200);
  }
  return fHFEpairs;
}

//_____________________________________________________________________________
void AliHFEsecVtx::DeleteHFEpairs()
{
  //
  // Delete the list of HFE pairs
  //

  if (fHFEpairs) {
    fHFEpairs->Delete();
    //delete fHFEpairs;
  }
}

//_____________________________________________________________________________
void AliHFEsecVtx::InitHFEpairs()
{
  //
  // Initialization should be done before make all possible pairs for a given electron candidate
  //

  fNoOfHFEpairs = 0;
}

//_____________________________________________________________________________
void AliHFEsecVtx::AddHFEsecvtxToArray(const AliHFEsecVtxs* const secvtx)
{
  //
  // Add a HFE secondary vertex to the array
  //

  Int_t n = HFEsecvtxs()->GetEntriesFast();
  if(n!=fNoOfHFEsecvtxs)AliError(Form("fNoOfHFEsecvtxs != HFEsecvtxs()->GetEntriesFast %i != %i \n", fNoOfHFEsecvtxs, n));
  new((*HFEsecvtxs())[n]) AliHFEsecVtxs(*secvtx);
}

//_____________________________________________________________________________
TClonesArray *AliHFEsecVtx::HFEsecvtxs()
{
  //
  // Returns the list of HFE secvtx
  //

  if (!fHFEsecvtxs) {
      fHFEsecvtxs = new TClonesArray("AliHFEsecVtxs", 200);
  }
  return fHFEsecvtxs;
}

//_____________________________________________________________________________
void AliHFEsecVtx::DeleteHFEsecvtxs()
{
  //
  // Delete the list of HFE pairs
  //

  if (fHFEsecvtxs) {
    fHFEsecvtxs->Delete();
    //delete fHFEsecvtx;
  }
}

//_____________________________________________________________________________
void AliHFEsecVtx::InitHFEsecvtxs()
{
  //
  // Initialization should be done 
  //

  fNoOfHFEsecvtxs = 0;
}

//____________________________________________________________
void AliHFEsecVtx::MakeContainer(){

  //
  // make container
  //

  const Int_t nDimPair=6;
  Int_t nBinPair[nDimPair] = {200, 500, 314, 2000, 2000, 13};
  //Int_t nBinPair[nDimPair] = {200, 500, 314, 2000, 2000, 13, 60, 60, 2000, 2000};
  const Double_t kInvmassmin = 0., kInvmassmax = 20.;
  const Double_t kKFChi2min = 0, kKFChi2max= 50;
  const Double_t kOpenanglemin = 0, kOpenanglemax = 3.14;
  const Double_t kSignedLxymin = -10, kSignedLxymax= 10;
  const Double_t kKFIPmin = -10, kKFIPmax= 10;
  const Double_t kPairCodemin = -1, kPairCodemax= 12;
  //const Double_t kPtmin = 0, kPtmax= 30;
  //const Double_t kDCAsigmin = -5, kDCAsigmax= 5;

  Double_t* binEdgesPair[nDimPair];
  for(Int_t ivar = 0; ivar < nDimPair; ivar++)
    binEdgesPair[ivar] = new Double_t[nBinPair[ivar] + 1];

  for(Int_t i=0; i<=nBinPair[0]; i++) binEdgesPair[0][i]=(Double_t)kInvmassmin + (kInvmassmax - kInvmassmin)/nBinPair[0]*(Double_t)i;
  for(Int_t i=0; i<=nBinPair[1]; i++) binEdgesPair[1][i]=(Double_t)kKFChi2min + (kKFChi2max - kKFChi2min)/nBinPair[1]*(Double_t)i;
  for(Int_t i=0; i<=nBinPair[2]; i++) binEdgesPair[2][i]=(Double_t)kOpenanglemin + (kOpenanglemax - kOpenanglemin)/nBinPair[2]*(Double_t)i;
  for(Int_t i=0; i<=nBinPair[3]; i++) binEdgesPair[3][i]=(Double_t)kSignedLxymin + (kSignedLxymax - kSignedLxymin)/nBinPair[3]*(Double_t)i;
  for(Int_t i=0; i<=nBinPair[4]; i++) binEdgesPair[4][i]=(Double_t)kKFIPmin + (kKFIPmax - kKFIPmin)/nBinPair[4]*(Double_t)i;
  for(Int_t i=0; i<=nBinPair[5]; i++) binEdgesPair[5][i]=(Double_t)kPairCodemin + (kPairCodemax - kPairCodemin)/nBinPair[5]*(Double_t)i;
  //for(Int_t i=0; i<=nBinPair[6]; i++) binEdgesPair[6][i]=(Double_t)kPtmin + (kPtmax - kPtmin)/nBinPair[6]*(Double_t)i;
  //for(Int_t i=0; i<=nBinPair[7]; i++) binEdgesPair[7][i]=binEdgesPair[6][i];
  //for(Int_t i=0; i<=nBinPair[6]; i++) binEdgesPair[6][i]=(Double_t)kDCAsigmin + (kDCAsigmax - kDCAsigmin)/nBinPair[6]*(Double_t)i;
  //for(Int_t i=0; i<=nBinPair[7]; i++) binEdgesPair[7][i]=binEdgesPair[6][i];

  fPairQA = new THnSparseF("pairQA", "QA for Pair; invmass[GeV/c^2]; KF chi2; opening angle; signed Lxy; KF ip; pair code; dca1; dca2", nDimPair, nBinPair);
  //fPairQA = new THnSparseF("pairQA", "QA for Pair; invmass[GeV/c^2]; KF chi2; opening angle; signed Lxy; KF ip; pair code; pt1; pt2; dca1; dca2", nDimPair, nBinPair);
  for(Int_t idim = 0; idim < nDimPair; idim++){
    fPairQA->SetBinEdges(idim, binEdgesPair[idim]);
  }

  fSecVtxList->AddAt(fPairQA,0);

  const Int_t nDimSecvtx=9;
  Double_t* binEdgesSecvtx[nDimSecvtx];
  Int_t nBinSecvtx[nDimSecvtx] = {200, 500, 2000, 2000, 13, 10, 4, 2000, 500};
  const Double_t kNtrksmin = 0, kNtrksmax= 10;
  const Double_t kTrueBmin = 0, kTrueBmax= 4;
  const Double_t kPtmin = 0, kPtmax= 50;
  for(Int_t ivar = 0; ivar < nDimSecvtx; ivar++)
    binEdgesSecvtx[ivar] = new Double_t[nBinSecvtx[ivar] + 1];

  for(Int_t i=0; i<=nBinSecvtx[0]; i++) binEdgesSecvtx[0][i]=binEdgesPair[0][i];
  for(Int_t i=0; i<=nBinSecvtx[1]; i++) binEdgesSecvtx[1][i]=binEdgesPair[1][i];
  for(Int_t i=0; i<=nBinSecvtx[2]; i++) binEdgesSecvtx[2][i]=binEdgesPair[3][i];
  for(Int_t i=0; i<=nBinSecvtx[3]; i++) binEdgesSecvtx[3][i]=binEdgesPair[4][i];
  for(Int_t i=0; i<=nBinSecvtx[4]; i++) binEdgesSecvtx[4][i]=binEdgesPair[5][i];
  for(Int_t i=0; i<=nBinSecvtx[5]; i++) binEdgesSecvtx[5][i]=(Double_t)kNtrksmin + (kNtrksmax - kNtrksmin)/nBinSecvtx[5]*(Double_t)i;
  for(Int_t i=0; i<=nBinSecvtx[6]; i++) binEdgesSecvtx[6][i]=(Double_t)kTrueBmin + (kTrueBmax - kTrueBmin)/nBinSecvtx[6]*(Double_t)i;
  for(Int_t i=0; i<=nBinSecvtx[7]; i++) binEdgesSecvtx[7][i]=binEdgesPair[3][i];
  for(Int_t i=0; i<=nBinSecvtx[8]; i++) binEdgesSecvtx[8][i]=(Double_t)kPtmin + (kPtmax - kPtmin)/nBinSecvtx[8]*(Double_t)i;

  fSecvtxQA = new THnSparseF("secvtxQA", "QA for Secvtx; invmass[GeV/c^2]; KF chi2; signed Lxy; KF ip; pair code; n tracks ", nDimSecvtx, nBinSecvtx);
  for(Int_t idim = 0; idim < nDimSecvtx; idim++){
    fSecvtxQA->SetBinEdges(idim, binEdgesSecvtx[idim]);
  }

  fSecVtxList->AddAt(fSecvtxQA,1);

  for(Int_t ivar = 0; ivar < nDimPair; ivar++)
    delete[] binEdgesPair[ivar];
  for(Int_t ivar = 0; ivar < nDimSecvtx; ivar++)
    delete[] binEdgesSecvtx[ivar];
}

//____________________________________________________________
void AliHFEsecVtx::MakeHistos(Int_t step){

  //
  // make container
  //
  
  TString hname=Form("step%d",step);
  step = step*7;

  const Double_t kPtbound[2] = {0.1, 20.};
  Int_t iBin[1];
  iBin[0] = 44; // bins in pt
  Double_t* binEdges[1];
  binEdges[0] =  AliHFEtools::MakeLogarithmicBinning(iBin[0], kPtbound[0], kPtbound[1]);

  fSecVtxList->AddAt(new TH1F(hname+"taggedElec", "pT of e", iBin[0],binEdges[0]), step);
  fSecVtxList->AddAt(new TH1F(hname+"charmElec", "pT of e", iBin[0],binEdges[0]), step+1);
  fSecVtxList->AddAt(new TH1F(hname+"beautyElec", "pT of e", iBin[0],binEdges[0]), step+2);
  fSecVtxList->AddAt(new TH1F(hname+"conversionElec", "pT of e", iBin[0],binEdges[0]), step+3);
  fSecVtxList->AddAt(new TH1F(hname+"ebgElec", "pT of e", iBin[0],binEdges[0]), step+4);
  fSecVtxList->AddAt(new TH1F(hname+"hcontaminElec", "pT of e", iBin[0],binEdges[0]), step+5);
  fSecVtxList->AddAt(new TH1F(hname+"elseElec", "pT of e", iBin[0],binEdges[0]), step+6);
  delete[] binEdges[0];
}

//____________________________________________________________
void AliHFEsecVtx::FillHistos(Int_t step, const AliESDtrack *track){

  //
  // make container
  //

  step = step*7;

  AliMCParticle *mctrack = NULL;
  TParticle* mcpart = NULL;

  (static_cast<TH1F *>(fSecVtxList->At(step)))->Fill(track->Pt()); // electrons tagged

  if(HasMCData() && fMCQA){
    if(!(mctrack = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(TMath::Abs(track->GetLabel()))))) return;
    mcpart = mctrack->Particle();

    Int_t esource=fMCQA->GetElecSource(mcpart,kTRUE);
    if(esource==1) {
      //if(!(dynamic_cast<TH1F *>(fSecVtxList->At(step+1)))) return;
      (static_cast<TH1F *>(fSecVtxList->At(step+1)))->Fill(mcpart->Pt()); //charm
    }
    else if(esource==2 || esource==3) {
      //if(!(dynamic_cast<TH1F *>(fSecVtxList->At(step+2)))) return;
      (static_cast<TH1F *>(fSecVtxList->At(step+2)))->Fill(mcpart->Pt()); //beauty
    }
    else if(esource>12 && esource<19) {
    //else if(esource==4) {
      //if(!(dynamic_cast<TH1F *>(fSecVtxList->At(step+3)))) return;
      (static_cast<TH1F *>(fSecVtxList->At(step+3)))->Fill(mcpart->Pt()); //conversion
    }
    else if(esource==7) {
      //if(!(dynamic_cast<TH1F *>(fSecVtxList->At(step+5)))) return;
      (static_cast<TH1F *>(fSecVtxList->At(step+5)))->Fill(mcpart->Pt()); //contamination
    }
    else if(!(esource<0)) {
      //if(!(dynamic_cast<TH1F *>(fSecVtxList->At(step+4)))) return;
      (static_cast<TH1F *>(fSecVtxList->At(step+4)))->Fill(mcpart->Pt()); //e backgrounds
    }
    else {
      //if(!(dynamic_cast<TH1F *>(fSecVtxList->At(step+6)))) return;
      (static_cast<TH1F *>(fSecVtxList->At(step+6)))->Fill(mcpart->Pt()); //something else?
    }
  }

} 
 AliHFEsecVtx.cxx:1
 AliHFEsecVtx.cxx:2
 AliHFEsecVtx.cxx:3
 AliHFEsecVtx.cxx:4
 AliHFEsecVtx.cxx:5
 AliHFEsecVtx.cxx:6
 AliHFEsecVtx.cxx:7
 AliHFEsecVtx.cxx:8
 AliHFEsecVtx.cxx:9
 AliHFEsecVtx.cxx:10
 AliHFEsecVtx.cxx:11
 AliHFEsecVtx.cxx:12
 AliHFEsecVtx.cxx:13
 AliHFEsecVtx.cxx:14
 AliHFEsecVtx.cxx:15
 AliHFEsecVtx.cxx:16
 AliHFEsecVtx.cxx:17
 AliHFEsecVtx.cxx:18
 AliHFEsecVtx.cxx:19
 AliHFEsecVtx.cxx:20
 AliHFEsecVtx.cxx:21
 AliHFEsecVtx.cxx:22
 AliHFEsecVtx.cxx:23
 AliHFEsecVtx.cxx:24
 AliHFEsecVtx.cxx:25
 AliHFEsecVtx.cxx:26
 AliHFEsecVtx.cxx:27
 AliHFEsecVtx.cxx:28
 AliHFEsecVtx.cxx:29
 AliHFEsecVtx.cxx:30
 AliHFEsecVtx.cxx:31
 AliHFEsecVtx.cxx:32
 AliHFEsecVtx.cxx:33
 AliHFEsecVtx.cxx:34
 AliHFEsecVtx.cxx:35
 AliHFEsecVtx.cxx:36
 AliHFEsecVtx.cxx:37
 AliHFEsecVtx.cxx:38
 AliHFEsecVtx.cxx:39
 AliHFEsecVtx.cxx:40
 AliHFEsecVtx.cxx:41
 AliHFEsecVtx.cxx:42
 AliHFEsecVtx.cxx:43
 AliHFEsecVtx.cxx:44
 AliHFEsecVtx.cxx:45
 AliHFEsecVtx.cxx:46
 AliHFEsecVtx.cxx:47
 AliHFEsecVtx.cxx:48
 AliHFEsecVtx.cxx:49
 AliHFEsecVtx.cxx:50
 AliHFEsecVtx.cxx:51
 AliHFEsecVtx.cxx:52
 AliHFEsecVtx.cxx:53
 AliHFEsecVtx.cxx:54
 AliHFEsecVtx.cxx:55
 AliHFEsecVtx.cxx:56
 AliHFEsecVtx.cxx:57
 AliHFEsecVtx.cxx:58
 AliHFEsecVtx.cxx:59
 AliHFEsecVtx.cxx:60
 AliHFEsecVtx.cxx:61
 AliHFEsecVtx.cxx:62
 AliHFEsecVtx.cxx:63
 AliHFEsecVtx.cxx:64
 AliHFEsecVtx.cxx:65
 AliHFEsecVtx.cxx:66
 AliHFEsecVtx.cxx:67
 AliHFEsecVtx.cxx:68
 AliHFEsecVtx.cxx:69
 AliHFEsecVtx.cxx:70
 AliHFEsecVtx.cxx:71
 AliHFEsecVtx.cxx:72
 AliHFEsecVtx.cxx:73
 AliHFEsecVtx.cxx:74
 AliHFEsecVtx.cxx:75
 AliHFEsecVtx.cxx:76
 AliHFEsecVtx.cxx:77
 AliHFEsecVtx.cxx:78
 AliHFEsecVtx.cxx:79
 AliHFEsecVtx.cxx:80
 AliHFEsecVtx.cxx:81
 AliHFEsecVtx.cxx:82
 AliHFEsecVtx.cxx:83
 AliHFEsecVtx.cxx:84
 AliHFEsecVtx.cxx:85
 AliHFEsecVtx.cxx:86
 AliHFEsecVtx.cxx:87
 AliHFEsecVtx.cxx:88
 AliHFEsecVtx.cxx:89
 AliHFEsecVtx.cxx:90
 AliHFEsecVtx.cxx:91
 AliHFEsecVtx.cxx:92
 AliHFEsecVtx.cxx:93
 AliHFEsecVtx.cxx:94
 AliHFEsecVtx.cxx:95
 AliHFEsecVtx.cxx:96
 AliHFEsecVtx.cxx:97
 AliHFEsecVtx.cxx:98
 AliHFEsecVtx.cxx:99
 AliHFEsecVtx.cxx:100
 AliHFEsecVtx.cxx:101
 AliHFEsecVtx.cxx:102
 AliHFEsecVtx.cxx:103
 AliHFEsecVtx.cxx:104
 AliHFEsecVtx.cxx:105
 AliHFEsecVtx.cxx:106
 AliHFEsecVtx.cxx:107
 AliHFEsecVtx.cxx:108
 AliHFEsecVtx.cxx:109
 AliHFEsecVtx.cxx:110
 AliHFEsecVtx.cxx:111
 AliHFEsecVtx.cxx:112
 AliHFEsecVtx.cxx:113
 AliHFEsecVtx.cxx:114
 AliHFEsecVtx.cxx:115
 AliHFEsecVtx.cxx:116
 AliHFEsecVtx.cxx:117
 AliHFEsecVtx.cxx:118
 AliHFEsecVtx.cxx:119
 AliHFEsecVtx.cxx:120
 AliHFEsecVtx.cxx:121
 AliHFEsecVtx.cxx:122
 AliHFEsecVtx.cxx:123
 AliHFEsecVtx.cxx:124
 AliHFEsecVtx.cxx:125
 AliHFEsecVtx.cxx:126
 AliHFEsecVtx.cxx:127
 AliHFEsecVtx.cxx:128
 AliHFEsecVtx.cxx:129
 AliHFEsecVtx.cxx:130
 AliHFEsecVtx.cxx:131
 AliHFEsecVtx.cxx:132
 AliHFEsecVtx.cxx:133
 AliHFEsecVtx.cxx:134
 AliHFEsecVtx.cxx:135
 AliHFEsecVtx.cxx:136
 AliHFEsecVtx.cxx:137
 AliHFEsecVtx.cxx:138
 AliHFEsecVtx.cxx:139
 AliHFEsecVtx.cxx:140
 AliHFEsecVtx.cxx:141
 AliHFEsecVtx.cxx:142
 AliHFEsecVtx.cxx:143
 AliHFEsecVtx.cxx:144
 AliHFEsecVtx.cxx:145
 AliHFEsecVtx.cxx:146
 AliHFEsecVtx.cxx:147
 AliHFEsecVtx.cxx:148
 AliHFEsecVtx.cxx:149
 AliHFEsecVtx.cxx:150
 AliHFEsecVtx.cxx:151
 AliHFEsecVtx.cxx:152
 AliHFEsecVtx.cxx:153
 AliHFEsecVtx.cxx:154
 AliHFEsecVtx.cxx:155
 AliHFEsecVtx.cxx:156
 AliHFEsecVtx.cxx:157
 AliHFEsecVtx.cxx:158
 AliHFEsecVtx.cxx:159
 AliHFEsecVtx.cxx:160
 AliHFEsecVtx.cxx:161
 AliHFEsecVtx.cxx:162
 AliHFEsecVtx.cxx:163
 AliHFEsecVtx.cxx:164
 AliHFEsecVtx.cxx:165
 AliHFEsecVtx.cxx:166
 AliHFEsecVtx.cxx:167
 AliHFEsecVtx.cxx:168
 AliHFEsecVtx.cxx:169
 AliHFEsecVtx.cxx:170
 AliHFEsecVtx.cxx:171
 AliHFEsecVtx.cxx:172
 AliHFEsecVtx.cxx:173
 AliHFEsecVtx.cxx:174
 AliHFEsecVtx.cxx:175
 AliHFEsecVtx.cxx:176
 AliHFEsecVtx.cxx:177
 AliHFEsecVtx.cxx:178
 AliHFEsecVtx.cxx:179
 AliHFEsecVtx.cxx:180
 AliHFEsecVtx.cxx:181
 AliHFEsecVtx.cxx:182
 AliHFEsecVtx.cxx:183
 AliHFEsecVtx.cxx:184
 AliHFEsecVtx.cxx:185
 AliHFEsecVtx.cxx:186
 AliHFEsecVtx.cxx:187
 AliHFEsecVtx.cxx:188
 AliHFEsecVtx.cxx:189
 AliHFEsecVtx.cxx:190
 AliHFEsecVtx.cxx:191
 AliHFEsecVtx.cxx:192
 AliHFEsecVtx.cxx:193
 AliHFEsecVtx.cxx:194
 AliHFEsecVtx.cxx:195
 AliHFEsecVtx.cxx:196
 AliHFEsecVtx.cxx:197
 AliHFEsecVtx.cxx:198
 AliHFEsecVtx.cxx:199
 AliHFEsecVtx.cxx:200
 AliHFEsecVtx.cxx:201
 AliHFEsecVtx.cxx:202
 AliHFEsecVtx.cxx:203
 AliHFEsecVtx.cxx:204
 AliHFEsecVtx.cxx:205
 AliHFEsecVtx.cxx:206
 AliHFEsecVtx.cxx:207
 AliHFEsecVtx.cxx:208
 AliHFEsecVtx.cxx:209
 AliHFEsecVtx.cxx:210
 AliHFEsecVtx.cxx:211
 AliHFEsecVtx.cxx:212
 AliHFEsecVtx.cxx:213
 AliHFEsecVtx.cxx:214
 AliHFEsecVtx.cxx:215
 AliHFEsecVtx.cxx:216
 AliHFEsecVtx.cxx:217
 AliHFEsecVtx.cxx:218
 AliHFEsecVtx.cxx:219
 AliHFEsecVtx.cxx:220
 AliHFEsecVtx.cxx:221
 AliHFEsecVtx.cxx:222
 AliHFEsecVtx.cxx:223
 AliHFEsecVtx.cxx:224
 AliHFEsecVtx.cxx:225
 AliHFEsecVtx.cxx:226
 AliHFEsecVtx.cxx:227
 AliHFEsecVtx.cxx:228
 AliHFEsecVtx.cxx:229
 AliHFEsecVtx.cxx:230
 AliHFEsecVtx.cxx:231
 AliHFEsecVtx.cxx:232
 AliHFEsecVtx.cxx:233
 AliHFEsecVtx.cxx:234
 AliHFEsecVtx.cxx:235
 AliHFEsecVtx.cxx:236
 AliHFEsecVtx.cxx:237
 AliHFEsecVtx.cxx:238
 AliHFEsecVtx.cxx:239
 AliHFEsecVtx.cxx:240
 AliHFEsecVtx.cxx:241
 AliHFEsecVtx.cxx:242
 AliHFEsecVtx.cxx:243
 AliHFEsecVtx.cxx:244
 AliHFEsecVtx.cxx:245
 AliHFEsecVtx.cxx:246
 AliHFEsecVtx.cxx:247
 AliHFEsecVtx.cxx:248
 AliHFEsecVtx.cxx:249
 AliHFEsecVtx.cxx:250
 AliHFEsecVtx.cxx:251
 AliHFEsecVtx.cxx:252
 AliHFEsecVtx.cxx:253
 AliHFEsecVtx.cxx:254
 AliHFEsecVtx.cxx:255
 AliHFEsecVtx.cxx:256
 AliHFEsecVtx.cxx:257
 AliHFEsecVtx.cxx:258
 AliHFEsecVtx.cxx:259
 AliHFEsecVtx.cxx:260
 AliHFEsecVtx.cxx:261
 AliHFEsecVtx.cxx:262
 AliHFEsecVtx.cxx:263
 AliHFEsecVtx.cxx:264
 AliHFEsecVtx.cxx:265
 AliHFEsecVtx.cxx:266
 AliHFEsecVtx.cxx:267
 AliHFEsecVtx.cxx:268
 AliHFEsecVtx.cxx:269
 AliHFEsecVtx.cxx:270
 AliHFEsecVtx.cxx:271
 AliHFEsecVtx.cxx:272
 AliHFEsecVtx.cxx:273
 AliHFEsecVtx.cxx:274
 AliHFEsecVtx.cxx:275
 AliHFEsecVtx.cxx:276
 AliHFEsecVtx.cxx:277
 AliHFEsecVtx.cxx:278
 AliHFEsecVtx.cxx:279
 AliHFEsecVtx.cxx:280
 AliHFEsecVtx.cxx:281
 AliHFEsecVtx.cxx:282
 AliHFEsecVtx.cxx:283
 AliHFEsecVtx.cxx:284
 AliHFEsecVtx.cxx:285
 AliHFEsecVtx.cxx:286
 AliHFEsecVtx.cxx:287
 AliHFEsecVtx.cxx:288
 AliHFEsecVtx.cxx:289
 AliHFEsecVtx.cxx:290
 AliHFEsecVtx.cxx:291
 AliHFEsecVtx.cxx:292
 AliHFEsecVtx.cxx:293
 AliHFEsecVtx.cxx:294
 AliHFEsecVtx.cxx:295
 AliHFEsecVtx.cxx:296
 AliHFEsecVtx.cxx:297
 AliHFEsecVtx.cxx:298
 AliHFEsecVtx.cxx:299
 AliHFEsecVtx.cxx:300
 AliHFEsecVtx.cxx:301
 AliHFEsecVtx.cxx:302
 AliHFEsecVtx.cxx:303
 AliHFEsecVtx.cxx:304
 AliHFEsecVtx.cxx:305
 AliHFEsecVtx.cxx:306
 AliHFEsecVtx.cxx:307
 AliHFEsecVtx.cxx:308
 AliHFEsecVtx.cxx:309
 AliHFEsecVtx.cxx:310
 AliHFEsecVtx.cxx:311
 AliHFEsecVtx.cxx:312
 AliHFEsecVtx.cxx:313
 AliHFEsecVtx.cxx:314
 AliHFEsecVtx.cxx:315
 AliHFEsecVtx.cxx:316
 AliHFEsecVtx.cxx:317
 AliHFEsecVtx.cxx:318
 AliHFEsecVtx.cxx:319
 AliHFEsecVtx.cxx:320
 AliHFEsecVtx.cxx:321
 AliHFEsecVtx.cxx:322
 AliHFEsecVtx.cxx:323
 AliHFEsecVtx.cxx:324
 AliHFEsecVtx.cxx:325
 AliHFEsecVtx.cxx:326
 AliHFEsecVtx.cxx:327
 AliHFEsecVtx.cxx:328
 AliHFEsecVtx.cxx:329
 AliHFEsecVtx.cxx:330
 AliHFEsecVtx.cxx:331
 AliHFEsecVtx.cxx:332
 AliHFEsecVtx.cxx:333
 AliHFEsecVtx.cxx:334
 AliHFEsecVtx.cxx:335
 AliHFEsecVtx.cxx:336
 AliHFEsecVtx.cxx:337
 AliHFEsecVtx.cxx:338
 AliHFEsecVtx.cxx:339
 AliHFEsecVtx.cxx:340
 AliHFEsecVtx.cxx:341
 AliHFEsecVtx.cxx:342
 AliHFEsecVtx.cxx:343
 AliHFEsecVtx.cxx:344
 AliHFEsecVtx.cxx:345
 AliHFEsecVtx.cxx:346
 AliHFEsecVtx.cxx:347
 AliHFEsecVtx.cxx:348
 AliHFEsecVtx.cxx:349
 AliHFEsecVtx.cxx:350
 AliHFEsecVtx.cxx:351
 AliHFEsecVtx.cxx:352
 AliHFEsecVtx.cxx:353
 AliHFEsecVtx.cxx:354
 AliHFEsecVtx.cxx:355
 AliHFEsecVtx.cxx:356
 AliHFEsecVtx.cxx:357
 AliHFEsecVtx.cxx:358
 AliHFEsecVtx.cxx:359
 AliHFEsecVtx.cxx:360
 AliHFEsecVtx.cxx:361
 AliHFEsecVtx.cxx:362
 AliHFEsecVtx.cxx:363
 AliHFEsecVtx.cxx:364
 AliHFEsecVtx.cxx:365
 AliHFEsecVtx.cxx:366
 AliHFEsecVtx.cxx:367
 AliHFEsecVtx.cxx:368
 AliHFEsecVtx.cxx:369
 AliHFEsecVtx.cxx:370
 AliHFEsecVtx.cxx:371
 AliHFEsecVtx.cxx:372
 AliHFEsecVtx.cxx:373
 AliHFEsecVtx.cxx:374
 AliHFEsecVtx.cxx:375
 AliHFEsecVtx.cxx:376
 AliHFEsecVtx.cxx:377
 AliHFEsecVtx.cxx:378
 AliHFEsecVtx.cxx:379
 AliHFEsecVtx.cxx:380
 AliHFEsecVtx.cxx:381
 AliHFEsecVtx.cxx:382
 AliHFEsecVtx.cxx:383
 AliHFEsecVtx.cxx:384
 AliHFEsecVtx.cxx:385
 AliHFEsecVtx.cxx:386
 AliHFEsecVtx.cxx:387
 AliHFEsecVtx.cxx:388
 AliHFEsecVtx.cxx:389
 AliHFEsecVtx.cxx:390
 AliHFEsecVtx.cxx:391
 AliHFEsecVtx.cxx:392
 AliHFEsecVtx.cxx:393
 AliHFEsecVtx.cxx:394
 AliHFEsecVtx.cxx:395
 AliHFEsecVtx.cxx:396
 AliHFEsecVtx.cxx:397
 AliHFEsecVtx.cxx:398
 AliHFEsecVtx.cxx:399
 AliHFEsecVtx.cxx:400
 AliHFEsecVtx.cxx:401
 AliHFEsecVtx.cxx:402
 AliHFEsecVtx.cxx:403
 AliHFEsecVtx.cxx:404
 AliHFEsecVtx.cxx:405
 AliHFEsecVtx.cxx:406
 AliHFEsecVtx.cxx:407
 AliHFEsecVtx.cxx:408
 AliHFEsecVtx.cxx:409
 AliHFEsecVtx.cxx:410
 AliHFEsecVtx.cxx:411
 AliHFEsecVtx.cxx:412
 AliHFEsecVtx.cxx:413
 AliHFEsecVtx.cxx:414
 AliHFEsecVtx.cxx:415
 AliHFEsecVtx.cxx:416
 AliHFEsecVtx.cxx:417
 AliHFEsecVtx.cxx:418
 AliHFEsecVtx.cxx:419
 AliHFEsecVtx.cxx:420
 AliHFEsecVtx.cxx:421
 AliHFEsecVtx.cxx:422
 AliHFEsecVtx.cxx:423
 AliHFEsecVtx.cxx:424
 AliHFEsecVtx.cxx:425
 AliHFEsecVtx.cxx:426
 AliHFEsecVtx.cxx:427
 AliHFEsecVtx.cxx:428
 AliHFEsecVtx.cxx:429
 AliHFEsecVtx.cxx:430
 AliHFEsecVtx.cxx:431
 AliHFEsecVtx.cxx:432
 AliHFEsecVtx.cxx:433
 AliHFEsecVtx.cxx:434
 AliHFEsecVtx.cxx:435
 AliHFEsecVtx.cxx:436
 AliHFEsecVtx.cxx:437
 AliHFEsecVtx.cxx:438
 AliHFEsecVtx.cxx:439
 AliHFEsecVtx.cxx:440
 AliHFEsecVtx.cxx:441
 AliHFEsecVtx.cxx:442
 AliHFEsecVtx.cxx:443
 AliHFEsecVtx.cxx:444
 AliHFEsecVtx.cxx:445
 AliHFEsecVtx.cxx:446
 AliHFEsecVtx.cxx:447
 AliHFEsecVtx.cxx:448
 AliHFEsecVtx.cxx:449
 AliHFEsecVtx.cxx:450
 AliHFEsecVtx.cxx:451
 AliHFEsecVtx.cxx:452
 AliHFEsecVtx.cxx:453
 AliHFEsecVtx.cxx:454
 AliHFEsecVtx.cxx:455
 AliHFEsecVtx.cxx:456
 AliHFEsecVtx.cxx:457
 AliHFEsecVtx.cxx:458
 AliHFEsecVtx.cxx:459
 AliHFEsecVtx.cxx:460
 AliHFEsecVtx.cxx:461
 AliHFEsecVtx.cxx:462
 AliHFEsecVtx.cxx:463
 AliHFEsecVtx.cxx:464
 AliHFEsecVtx.cxx:465
 AliHFEsecVtx.cxx:466
 AliHFEsecVtx.cxx:467
 AliHFEsecVtx.cxx:468
 AliHFEsecVtx.cxx:469
 AliHFEsecVtx.cxx:470
 AliHFEsecVtx.cxx:471
 AliHFEsecVtx.cxx:472
 AliHFEsecVtx.cxx:473
 AliHFEsecVtx.cxx:474
 AliHFEsecVtx.cxx:475
 AliHFEsecVtx.cxx:476
 AliHFEsecVtx.cxx:477
 AliHFEsecVtx.cxx:478
 AliHFEsecVtx.cxx:479
 AliHFEsecVtx.cxx:480
 AliHFEsecVtx.cxx:481
 AliHFEsecVtx.cxx:482
 AliHFEsecVtx.cxx:483
 AliHFEsecVtx.cxx:484
 AliHFEsecVtx.cxx:485
 AliHFEsecVtx.cxx:486
 AliHFEsecVtx.cxx:487
 AliHFEsecVtx.cxx:488
 AliHFEsecVtx.cxx:489
 AliHFEsecVtx.cxx:490
 AliHFEsecVtx.cxx:491
 AliHFEsecVtx.cxx:492
 AliHFEsecVtx.cxx:493
 AliHFEsecVtx.cxx:494
 AliHFEsecVtx.cxx:495
 AliHFEsecVtx.cxx:496
 AliHFEsecVtx.cxx:497
 AliHFEsecVtx.cxx:498
 AliHFEsecVtx.cxx:499
 AliHFEsecVtx.cxx:500
 AliHFEsecVtx.cxx:501
 AliHFEsecVtx.cxx:502
 AliHFEsecVtx.cxx:503
 AliHFEsecVtx.cxx:504
 AliHFEsecVtx.cxx:505
 AliHFEsecVtx.cxx:506
 AliHFEsecVtx.cxx:507
 AliHFEsecVtx.cxx:508
 AliHFEsecVtx.cxx:509
 AliHFEsecVtx.cxx:510
 AliHFEsecVtx.cxx:511
 AliHFEsecVtx.cxx:512
 AliHFEsecVtx.cxx:513
 AliHFEsecVtx.cxx:514
 AliHFEsecVtx.cxx:515
 AliHFEsecVtx.cxx:516
 AliHFEsecVtx.cxx:517
 AliHFEsecVtx.cxx:518
 AliHFEsecVtx.cxx:519
 AliHFEsecVtx.cxx:520
 AliHFEsecVtx.cxx:521
 AliHFEsecVtx.cxx:522
 AliHFEsecVtx.cxx:523
 AliHFEsecVtx.cxx:524
 AliHFEsecVtx.cxx:525
 AliHFEsecVtx.cxx:526
 AliHFEsecVtx.cxx:527
 AliHFEsecVtx.cxx:528
 AliHFEsecVtx.cxx:529
 AliHFEsecVtx.cxx:530
 AliHFEsecVtx.cxx:531
 AliHFEsecVtx.cxx:532
 AliHFEsecVtx.cxx:533
 AliHFEsecVtx.cxx:534
 AliHFEsecVtx.cxx:535
 AliHFEsecVtx.cxx:536
 AliHFEsecVtx.cxx:537
 AliHFEsecVtx.cxx:538
 AliHFEsecVtx.cxx:539
 AliHFEsecVtx.cxx:540
 AliHFEsecVtx.cxx:541
 AliHFEsecVtx.cxx:542
 AliHFEsecVtx.cxx:543
 AliHFEsecVtx.cxx:544
 AliHFEsecVtx.cxx:545
 AliHFEsecVtx.cxx:546
 AliHFEsecVtx.cxx:547
 AliHFEsecVtx.cxx:548
 AliHFEsecVtx.cxx:549
 AliHFEsecVtx.cxx:550
 AliHFEsecVtx.cxx:551
 AliHFEsecVtx.cxx:552
 AliHFEsecVtx.cxx:553
 AliHFEsecVtx.cxx:554
 AliHFEsecVtx.cxx:555
 AliHFEsecVtx.cxx:556
 AliHFEsecVtx.cxx:557
 AliHFEsecVtx.cxx:558
 AliHFEsecVtx.cxx:559
 AliHFEsecVtx.cxx:560
 AliHFEsecVtx.cxx:561
 AliHFEsecVtx.cxx:562
 AliHFEsecVtx.cxx:563
 AliHFEsecVtx.cxx:564
 AliHFEsecVtx.cxx:565
 AliHFEsecVtx.cxx:566
 AliHFEsecVtx.cxx:567
 AliHFEsecVtx.cxx:568
 AliHFEsecVtx.cxx:569
 AliHFEsecVtx.cxx:570
 AliHFEsecVtx.cxx:571
 AliHFEsecVtx.cxx:572
 AliHFEsecVtx.cxx:573
 AliHFEsecVtx.cxx:574
 AliHFEsecVtx.cxx:575
 AliHFEsecVtx.cxx:576
 AliHFEsecVtx.cxx:577
 AliHFEsecVtx.cxx:578
 AliHFEsecVtx.cxx:579
 AliHFEsecVtx.cxx:580
 AliHFEsecVtx.cxx:581
 AliHFEsecVtx.cxx:582
 AliHFEsecVtx.cxx:583
 AliHFEsecVtx.cxx:584
 AliHFEsecVtx.cxx:585
 AliHFEsecVtx.cxx:586
 AliHFEsecVtx.cxx:587
 AliHFEsecVtx.cxx:588
 AliHFEsecVtx.cxx:589
 AliHFEsecVtx.cxx:590
 AliHFEsecVtx.cxx:591
 AliHFEsecVtx.cxx:592
 AliHFEsecVtx.cxx:593
 AliHFEsecVtx.cxx:594
 AliHFEsecVtx.cxx:595
 AliHFEsecVtx.cxx:596
 AliHFEsecVtx.cxx:597
 AliHFEsecVtx.cxx:598
 AliHFEsecVtx.cxx:599
 AliHFEsecVtx.cxx:600
 AliHFEsecVtx.cxx:601
 AliHFEsecVtx.cxx:602
 AliHFEsecVtx.cxx:603
 AliHFEsecVtx.cxx:604
 AliHFEsecVtx.cxx:605
 AliHFEsecVtx.cxx:606
 AliHFEsecVtx.cxx:607
 AliHFEsecVtx.cxx:608
 AliHFEsecVtx.cxx:609
 AliHFEsecVtx.cxx:610
 AliHFEsecVtx.cxx:611
 AliHFEsecVtx.cxx:612
 AliHFEsecVtx.cxx:613
 AliHFEsecVtx.cxx:614
 AliHFEsecVtx.cxx:615
 AliHFEsecVtx.cxx:616
 AliHFEsecVtx.cxx:617
 AliHFEsecVtx.cxx:618
 AliHFEsecVtx.cxx:619
 AliHFEsecVtx.cxx:620
 AliHFEsecVtx.cxx:621
 AliHFEsecVtx.cxx:622
 AliHFEsecVtx.cxx:623
 AliHFEsecVtx.cxx:624
 AliHFEsecVtx.cxx:625
 AliHFEsecVtx.cxx:626
 AliHFEsecVtx.cxx:627
 AliHFEsecVtx.cxx:628
 AliHFEsecVtx.cxx:629
 AliHFEsecVtx.cxx:630
 AliHFEsecVtx.cxx:631
 AliHFEsecVtx.cxx:632
 AliHFEsecVtx.cxx:633
 AliHFEsecVtx.cxx:634
 AliHFEsecVtx.cxx:635
 AliHFEsecVtx.cxx:636
 AliHFEsecVtx.cxx:637
 AliHFEsecVtx.cxx:638
 AliHFEsecVtx.cxx:639
 AliHFEsecVtx.cxx:640
 AliHFEsecVtx.cxx:641
 AliHFEsecVtx.cxx:642
 AliHFEsecVtx.cxx:643
 AliHFEsecVtx.cxx:644
 AliHFEsecVtx.cxx:645
 AliHFEsecVtx.cxx:646
 AliHFEsecVtx.cxx:647
 AliHFEsecVtx.cxx:648
 AliHFEsecVtx.cxx:649
 AliHFEsecVtx.cxx:650
 AliHFEsecVtx.cxx:651
 AliHFEsecVtx.cxx:652
 AliHFEsecVtx.cxx:653
 AliHFEsecVtx.cxx:654
 AliHFEsecVtx.cxx:655
 AliHFEsecVtx.cxx:656
 AliHFEsecVtx.cxx:657
 AliHFEsecVtx.cxx:658
 AliHFEsecVtx.cxx:659
 AliHFEsecVtx.cxx:660
 AliHFEsecVtx.cxx:661
 AliHFEsecVtx.cxx:662
 AliHFEsecVtx.cxx:663
 AliHFEsecVtx.cxx:664
 AliHFEsecVtx.cxx:665
 AliHFEsecVtx.cxx:666
 AliHFEsecVtx.cxx:667
 AliHFEsecVtx.cxx:668
 AliHFEsecVtx.cxx:669
 AliHFEsecVtx.cxx:670
 AliHFEsecVtx.cxx:671
 AliHFEsecVtx.cxx:672
 AliHFEsecVtx.cxx:673
 AliHFEsecVtx.cxx:674
 AliHFEsecVtx.cxx:675
 AliHFEsecVtx.cxx:676
 AliHFEsecVtx.cxx:677
 AliHFEsecVtx.cxx:678
 AliHFEsecVtx.cxx:679
 AliHFEsecVtx.cxx:680
 AliHFEsecVtx.cxx:681
 AliHFEsecVtx.cxx:682
 AliHFEsecVtx.cxx:683
 AliHFEsecVtx.cxx:684
 AliHFEsecVtx.cxx:685
 AliHFEsecVtx.cxx:686
 AliHFEsecVtx.cxx:687
 AliHFEsecVtx.cxx:688
 AliHFEsecVtx.cxx:689
 AliHFEsecVtx.cxx:690
 AliHFEsecVtx.cxx:691
 AliHFEsecVtx.cxx:692
 AliHFEsecVtx.cxx:693
 AliHFEsecVtx.cxx:694
 AliHFEsecVtx.cxx:695
 AliHFEsecVtx.cxx:696
 AliHFEsecVtx.cxx:697
 AliHFEsecVtx.cxx:698
 AliHFEsecVtx.cxx:699
 AliHFEsecVtx.cxx:700
 AliHFEsecVtx.cxx:701
 AliHFEsecVtx.cxx:702
 AliHFEsecVtx.cxx:703
 AliHFEsecVtx.cxx:704
 AliHFEsecVtx.cxx:705
 AliHFEsecVtx.cxx:706
 AliHFEsecVtx.cxx:707
 AliHFEsecVtx.cxx:708
 AliHFEsecVtx.cxx:709
 AliHFEsecVtx.cxx:710
 AliHFEsecVtx.cxx:711
 AliHFEsecVtx.cxx:712
 AliHFEsecVtx.cxx:713
 AliHFEsecVtx.cxx:714
 AliHFEsecVtx.cxx:715
 AliHFEsecVtx.cxx:716
 AliHFEsecVtx.cxx:717
 AliHFEsecVtx.cxx:718
 AliHFEsecVtx.cxx:719
 AliHFEsecVtx.cxx:720
 AliHFEsecVtx.cxx:721
 AliHFEsecVtx.cxx:722
 AliHFEsecVtx.cxx:723
 AliHFEsecVtx.cxx:724
 AliHFEsecVtx.cxx:725
 AliHFEsecVtx.cxx:726
 AliHFEsecVtx.cxx:727
 AliHFEsecVtx.cxx:728
 AliHFEsecVtx.cxx:729
 AliHFEsecVtx.cxx:730
 AliHFEsecVtx.cxx:731
 AliHFEsecVtx.cxx:732
 AliHFEsecVtx.cxx:733
 AliHFEsecVtx.cxx:734
 AliHFEsecVtx.cxx:735
 AliHFEsecVtx.cxx:736
 AliHFEsecVtx.cxx:737
 AliHFEsecVtx.cxx:738
 AliHFEsecVtx.cxx:739
 AliHFEsecVtx.cxx:740
 AliHFEsecVtx.cxx:741
 AliHFEsecVtx.cxx:742
 AliHFEsecVtx.cxx:743
 AliHFEsecVtx.cxx:744
 AliHFEsecVtx.cxx:745
 AliHFEsecVtx.cxx:746
 AliHFEsecVtx.cxx:747
 AliHFEsecVtx.cxx:748
 AliHFEsecVtx.cxx:749
 AliHFEsecVtx.cxx:750
 AliHFEsecVtx.cxx:751
 AliHFEsecVtx.cxx:752
 AliHFEsecVtx.cxx:753
 AliHFEsecVtx.cxx:754
 AliHFEsecVtx.cxx:755
 AliHFEsecVtx.cxx:756
 AliHFEsecVtx.cxx:757
 AliHFEsecVtx.cxx:758
 AliHFEsecVtx.cxx:759
 AliHFEsecVtx.cxx:760
 AliHFEsecVtx.cxx:761
 AliHFEsecVtx.cxx:762
 AliHFEsecVtx.cxx:763
 AliHFEsecVtx.cxx:764
 AliHFEsecVtx.cxx:765
 AliHFEsecVtx.cxx:766
 AliHFEsecVtx.cxx:767
 AliHFEsecVtx.cxx:768
 AliHFEsecVtx.cxx:769
 AliHFEsecVtx.cxx:770
 AliHFEsecVtx.cxx:771
 AliHFEsecVtx.cxx:772
 AliHFEsecVtx.cxx:773
 AliHFEsecVtx.cxx:774
 AliHFEsecVtx.cxx:775
 AliHFEsecVtx.cxx:776
 AliHFEsecVtx.cxx:777
 AliHFEsecVtx.cxx:778
 AliHFEsecVtx.cxx:779
 AliHFEsecVtx.cxx:780
 AliHFEsecVtx.cxx:781
 AliHFEsecVtx.cxx:782
 AliHFEsecVtx.cxx:783
 AliHFEsecVtx.cxx:784
 AliHFEsecVtx.cxx:785
 AliHFEsecVtx.cxx:786
 AliHFEsecVtx.cxx:787
 AliHFEsecVtx.cxx:788
 AliHFEsecVtx.cxx:789
 AliHFEsecVtx.cxx:790
 AliHFEsecVtx.cxx:791
 AliHFEsecVtx.cxx:792
 AliHFEsecVtx.cxx:793
 AliHFEsecVtx.cxx:794
 AliHFEsecVtx.cxx:795
 AliHFEsecVtx.cxx:796
 AliHFEsecVtx.cxx:797
 AliHFEsecVtx.cxx:798
 AliHFEsecVtx.cxx:799
 AliHFEsecVtx.cxx:800
 AliHFEsecVtx.cxx:801
 AliHFEsecVtx.cxx:802
 AliHFEsecVtx.cxx:803
 AliHFEsecVtx.cxx:804
 AliHFEsecVtx.cxx:805
 AliHFEsecVtx.cxx:806
 AliHFEsecVtx.cxx:807
 AliHFEsecVtx.cxx:808
 AliHFEsecVtx.cxx:809
 AliHFEsecVtx.cxx:810
 AliHFEsecVtx.cxx:811
 AliHFEsecVtx.cxx:812
 AliHFEsecVtx.cxx:813
 AliHFEsecVtx.cxx:814
 AliHFEsecVtx.cxx:815
 AliHFEsecVtx.cxx:816
 AliHFEsecVtx.cxx:817
 AliHFEsecVtx.cxx:818
 AliHFEsecVtx.cxx:819
 AliHFEsecVtx.cxx:820
 AliHFEsecVtx.cxx:821
 AliHFEsecVtx.cxx:822
 AliHFEsecVtx.cxx:823
 AliHFEsecVtx.cxx:824
 AliHFEsecVtx.cxx:825
 AliHFEsecVtx.cxx:826
 AliHFEsecVtx.cxx:827
 AliHFEsecVtx.cxx:828
 AliHFEsecVtx.cxx:829
 AliHFEsecVtx.cxx:830
 AliHFEsecVtx.cxx:831
 AliHFEsecVtx.cxx:832
 AliHFEsecVtx.cxx:833
 AliHFEsecVtx.cxx:834
 AliHFEsecVtx.cxx:835
 AliHFEsecVtx.cxx:836
 AliHFEsecVtx.cxx:837
 AliHFEsecVtx.cxx:838
 AliHFEsecVtx.cxx:839
 AliHFEsecVtx.cxx:840
 AliHFEsecVtx.cxx:841
 AliHFEsecVtx.cxx:842
 AliHFEsecVtx.cxx:843
 AliHFEsecVtx.cxx:844
 AliHFEsecVtx.cxx:845
 AliHFEsecVtx.cxx:846
 AliHFEsecVtx.cxx:847
 AliHFEsecVtx.cxx:848
 AliHFEsecVtx.cxx:849
 AliHFEsecVtx.cxx:850
 AliHFEsecVtx.cxx:851
 AliHFEsecVtx.cxx:852
 AliHFEsecVtx.cxx:853
 AliHFEsecVtx.cxx:854
 AliHFEsecVtx.cxx:855
 AliHFEsecVtx.cxx:856
 AliHFEsecVtx.cxx:857
 AliHFEsecVtx.cxx:858
 AliHFEsecVtx.cxx:859
 AliHFEsecVtx.cxx:860
 AliHFEsecVtx.cxx:861
 AliHFEsecVtx.cxx:862
 AliHFEsecVtx.cxx:863
 AliHFEsecVtx.cxx:864
 AliHFEsecVtx.cxx:865
 AliHFEsecVtx.cxx:866
 AliHFEsecVtx.cxx:867
 AliHFEsecVtx.cxx:868
 AliHFEsecVtx.cxx:869
 AliHFEsecVtx.cxx:870
 AliHFEsecVtx.cxx:871
 AliHFEsecVtx.cxx:872
 AliHFEsecVtx.cxx:873
 AliHFEsecVtx.cxx:874
 AliHFEsecVtx.cxx:875
 AliHFEsecVtx.cxx:876
 AliHFEsecVtx.cxx:877
 AliHFEsecVtx.cxx:878
 AliHFEsecVtx.cxx:879
 AliHFEsecVtx.cxx:880
 AliHFEsecVtx.cxx:881
 AliHFEsecVtx.cxx:882
 AliHFEsecVtx.cxx:883
 AliHFEsecVtx.cxx:884
 AliHFEsecVtx.cxx:885
 AliHFEsecVtx.cxx:886
 AliHFEsecVtx.cxx:887
 AliHFEsecVtx.cxx:888
 AliHFEsecVtx.cxx:889
 AliHFEsecVtx.cxx:890
 AliHFEsecVtx.cxx:891
 AliHFEsecVtx.cxx:892
 AliHFEsecVtx.cxx:893
 AliHFEsecVtx.cxx:894
 AliHFEsecVtx.cxx:895
 AliHFEsecVtx.cxx:896
 AliHFEsecVtx.cxx:897
 AliHFEsecVtx.cxx:898
 AliHFEsecVtx.cxx:899
 AliHFEsecVtx.cxx:900
 AliHFEsecVtx.cxx:901
 AliHFEsecVtx.cxx:902
 AliHFEsecVtx.cxx:903
 AliHFEsecVtx.cxx:904
 AliHFEsecVtx.cxx:905
 AliHFEsecVtx.cxx:906
 AliHFEsecVtx.cxx:907
 AliHFEsecVtx.cxx:908
 AliHFEsecVtx.cxx:909
 AliHFEsecVtx.cxx:910
 AliHFEsecVtx.cxx:911
 AliHFEsecVtx.cxx:912
 AliHFEsecVtx.cxx:913
 AliHFEsecVtx.cxx:914
 AliHFEsecVtx.cxx:915
 AliHFEsecVtx.cxx:916
 AliHFEsecVtx.cxx:917
 AliHFEsecVtx.cxx:918
 AliHFEsecVtx.cxx:919
 AliHFEsecVtx.cxx:920
 AliHFEsecVtx.cxx:921
 AliHFEsecVtx.cxx:922
 AliHFEsecVtx.cxx:923
 AliHFEsecVtx.cxx:924
 AliHFEsecVtx.cxx:925
 AliHFEsecVtx.cxx:926
 AliHFEsecVtx.cxx:927
 AliHFEsecVtx.cxx:928
 AliHFEsecVtx.cxx:929
 AliHFEsecVtx.cxx:930
 AliHFEsecVtx.cxx:931
 AliHFEsecVtx.cxx:932
 AliHFEsecVtx.cxx:933
 AliHFEsecVtx.cxx:934
 AliHFEsecVtx.cxx:935
 AliHFEsecVtx.cxx:936
 AliHFEsecVtx.cxx:937
 AliHFEsecVtx.cxx:938
 AliHFEsecVtx.cxx:939
 AliHFEsecVtx.cxx:940
 AliHFEsecVtx.cxx:941
 AliHFEsecVtx.cxx:942
 AliHFEsecVtx.cxx:943
 AliHFEsecVtx.cxx:944
 AliHFEsecVtx.cxx:945
 AliHFEsecVtx.cxx:946
 AliHFEsecVtx.cxx:947
 AliHFEsecVtx.cxx:948
 AliHFEsecVtx.cxx:949
 AliHFEsecVtx.cxx:950
 AliHFEsecVtx.cxx:951
 AliHFEsecVtx.cxx:952
 AliHFEsecVtx.cxx:953
 AliHFEsecVtx.cxx:954
 AliHFEsecVtx.cxx:955
 AliHFEsecVtx.cxx:956
 AliHFEsecVtx.cxx:957
 AliHFEsecVtx.cxx:958
 AliHFEsecVtx.cxx:959
 AliHFEsecVtx.cxx:960
 AliHFEsecVtx.cxx:961
 AliHFEsecVtx.cxx:962
 AliHFEsecVtx.cxx:963
 AliHFEsecVtx.cxx:964
 AliHFEsecVtx.cxx:965
 AliHFEsecVtx.cxx:966
 AliHFEsecVtx.cxx:967
 AliHFEsecVtx.cxx:968
 AliHFEsecVtx.cxx:969
 AliHFEsecVtx.cxx:970
 AliHFEsecVtx.cxx:971
 AliHFEsecVtx.cxx:972
 AliHFEsecVtx.cxx:973
 AliHFEsecVtx.cxx:974
 AliHFEsecVtx.cxx:975
 AliHFEsecVtx.cxx:976
 AliHFEsecVtx.cxx:977
 AliHFEsecVtx.cxx:978
 AliHFEsecVtx.cxx:979
 AliHFEsecVtx.cxx:980
 AliHFEsecVtx.cxx:981
 AliHFEsecVtx.cxx:982
 AliHFEsecVtx.cxx:983
 AliHFEsecVtx.cxx:984
 AliHFEsecVtx.cxx:985
 AliHFEsecVtx.cxx:986
 AliHFEsecVtx.cxx:987
 AliHFEsecVtx.cxx:988
 AliHFEsecVtx.cxx:989
 AliHFEsecVtx.cxx:990
 AliHFEsecVtx.cxx:991
 AliHFEsecVtx.cxx:992
 AliHFEsecVtx.cxx:993
 AliHFEsecVtx.cxx:994
 AliHFEsecVtx.cxx:995
 AliHFEsecVtx.cxx:996
 AliHFEsecVtx.cxx:997
 AliHFEsecVtx.cxx:998
 AliHFEsecVtx.cxx:999
 AliHFEsecVtx.cxx:1000
 AliHFEsecVtx.cxx:1001
 AliHFEsecVtx.cxx:1002
 AliHFEsecVtx.cxx:1003
 AliHFEsecVtx.cxx:1004
 AliHFEsecVtx.cxx:1005
 AliHFEsecVtx.cxx:1006
 AliHFEsecVtx.cxx:1007
 AliHFEsecVtx.cxx:1008
 AliHFEsecVtx.cxx:1009
 AliHFEsecVtx.cxx:1010
 AliHFEsecVtx.cxx:1011
 AliHFEsecVtx.cxx:1012
 AliHFEsecVtx.cxx:1013
 AliHFEsecVtx.cxx:1014
 AliHFEsecVtx.cxx:1015
 AliHFEsecVtx.cxx:1016
 AliHFEsecVtx.cxx:1017
 AliHFEsecVtx.cxx:1018
 AliHFEsecVtx.cxx:1019
 AliHFEsecVtx.cxx:1020
 AliHFEsecVtx.cxx:1021
 AliHFEsecVtx.cxx:1022
 AliHFEsecVtx.cxx:1023
 AliHFEsecVtx.cxx:1024
 AliHFEsecVtx.cxx:1025
 AliHFEsecVtx.cxx:1026
 AliHFEsecVtx.cxx:1027
 AliHFEsecVtx.cxx:1028
 AliHFEsecVtx.cxx:1029
 AliHFEsecVtx.cxx:1030
 AliHFEsecVtx.cxx:1031
 AliHFEsecVtx.cxx:1032
 AliHFEsecVtx.cxx:1033
 AliHFEsecVtx.cxx:1034
 AliHFEsecVtx.cxx:1035
 AliHFEsecVtx.cxx:1036
 AliHFEsecVtx.cxx:1037
 AliHFEsecVtx.cxx:1038
 AliHFEsecVtx.cxx:1039
 AliHFEsecVtx.cxx:1040
 AliHFEsecVtx.cxx:1041
 AliHFEsecVtx.cxx:1042
 AliHFEsecVtx.cxx:1043
 AliHFEsecVtx.cxx:1044
 AliHFEsecVtx.cxx:1045
 AliHFEsecVtx.cxx:1046
 AliHFEsecVtx.cxx:1047
 AliHFEsecVtx.cxx:1048
 AliHFEsecVtx.cxx:1049
 AliHFEsecVtx.cxx:1050
 AliHFEsecVtx.cxx:1051
 AliHFEsecVtx.cxx:1052
 AliHFEsecVtx.cxx:1053
 AliHFEsecVtx.cxx:1054
 AliHFEsecVtx.cxx:1055
 AliHFEsecVtx.cxx:1056
 AliHFEsecVtx.cxx:1057
 AliHFEsecVtx.cxx:1058
 AliHFEsecVtx.cxx:1059
 AliHFEsecVtx.cxx:1060
 AliHFEsecVtx.cxx:1061
 AliHFEsecVtx.cxx:1062
 AliHFEsecVtx.cxx:1063
 AliHFEsecVtx.cxx:1064
 AliHFEsecVtx.cxx:1065
 AliHFEsecVtx.cxx:1066
 AliHFEsecVtx.cxx:1067
 AliHFEsecVtx.cxx:1068
 AliHFEsecVtx.cxx:1069
 AliHFEsecVtx.cxx:1070
 AliHFEsecVtx.cxx:1071
 AliHFEsecVtx.cxx:1072
 AliHFEsecVtx.cxx:1073
 AliHFEsecVtx.cxx:1074
 AliHFEsecVtx.cxx:1075
 AliHFEsecVtx.cxx:1076
 AliHFEsecVtx.cxx:1077
 AliHFEsecVtx.cxx:1078
 AliHFEsecVtx.cxx:1079
 AliHFEsecVtx.cxx:1080
 AliHFEsecVtx.cxx:1081
 AliHFEsecVtx.cxx:1082
 AliHFEsecVtx.cxx:1083
 AliHFEsecVtx.cxx:1084
 AliHFEsecVtx.cxx:1085
 AliHFEsecVtx.cxx:1086
 AliHFEsecVtx.cxx:1087
 AliHFEsecVtx.cxx:1088
 AliHFEsecVtx.cxx:1089
 AliHFEsecVtx.cxx:1090
 AliHFEsecVtx.cxx:1091
 AliHFEsecVtx.cxx:1092
 AliHFEsecVtx.cxx:1093
 AliHFEsecVtx.cxx:1094
 AliHFEsecVtx.cxx:1095
 AliHFEsecVtx.cxx:1096
 AliHFEsecVtx.cxx:1097
 AliHFEsecVtx.cxx:1098
 AliHFEsecVtx.cxx:1099
 AliHFEsecVtx.cxx:1100
 AliHFEsecVtx.cxx:1101
 AliHFEsecVtx.cxx:1102
 AliHFEsecVtx.cxx:1103
 AliHFEsecVtx.cxx:1104
 AliHFEsecVtx.cxx:1105
 AliHFEsecVtx.cxx:1106
 AliHFEsecVtx.cxx:1107
 AliHFEsecVtx.cxx:1108
 AliHFEsecVtx.cxx:1109
 AliHFEsecVtx.cxx:1110
 AliHFEsecVtx.cxx:1111
 AliHFEsecVtx.cxx:1112
 AliHFEsecVtx.cxx:1113
 AliHFEsecVtx.cxx:1114
 AliHFEsecVtx.cxx:1115
 AliHFEsecVtx.cxx:1116
 AliHFEsecVtx.cxx:1117
 AliHFEsecVtx.cxx:1118
 AliHFEsecVtx.cxx:1119
 AliHFEsecVtx.cxx:1120
 AliHFEsecVtx.cxx:1121
 AliHFEsecVtx.cxx:1122
 AliHFEsecVtx.cxx:1123
 AliHFEsecVtx.cxx:1124
 AliHFEsecVtx.cxx:1125
 AliHFEsecVtx.cxx:1126
 AliHFEsecVtx.cxx:1127
 AliHFEsecVtx.cxx:1128
 AliHFEsecVtx.cxx:1129
 AliHFEsecVtx.cxx:1130
 AliHFEsecVtx.cxx:1131
 AliHFEsecVtx.cxx:1132
 AliHFEsecVtx.cxx:1133
 AliHFEsecVtx.cxx:1134
 AliHFEsecVtx.cxx:1135
 AliHFEsecVtx.cxx:1136
 AliHFEsecVtx.cxx:1137
 AliHFEsecVtx.cxx:1138
 AliHFEsecVtx.cxx:1139
 AliHFEsecVtx.cxx:1140
 AliHFEsecVtx.cxx:1141
 AliHFEsecVtx.cxx:1142
 AliHFEsecVtx.cxx:1143
 AliHFEsecVtx.cxx:1144
 AliHFEsecVtx.cxx:1145
 AliHFEsecVtx.cxx:1146
 AliHFEsecVtx.cxx:1147
 AliHFEsecVtx.cxx:1148
 AliHFEsecVtx.cxx:1149
 AliHFEsecVtx.cxx:1150
 AliHFEsecVtx.cxx:1151
 AliHFEsecVtx.cxx:1152
 AliHFEsecVtx.cxx:1153
 AliHFEsecVtx.cxx:1154
 AliHFEsecVtx.cxx:1155
 AliHFEsecVtx.cxx:1156
 AliHFEsecVtx.cxx:1157
 AliHFEsecVtx.cxx:1158
 AliHFEsecVtx.cxx:1159
 AliHFEsecVtx.cxx:1160
 AliHFEsecVtx.cxx:1161
 AliHFEsecVtx.cxx:1162
 AliHFEsecVtx.cxx:1163
 AliHFEsecVtx.cxx:1164
 AliHFEsecVtx.cxx:1165
 AliHFEsecVtx.cxx:1166
 AliHFEsecVtx.cxx:1167
 AliHFEsecVtx.cxx:1168
 AliHFEsecVtx.cxx:1169
 AliHFEsecVtx.cxx:1170
 AliHFEsecVtx.cxx:1171
 AliHFEsecVtx.cxx:1172
 AliHFEsecVtx.cxx:1173
 AliHFEsecVtx.cxx:1174
 AliHFEsecVtx.cxx:1175
 AliHFEsecVtx.cxx:1176
 AliHFEsecVtx.cxx:1177
 AliHFEsecVtx.cxx:1178
 AliHFEsecVtx.cxx:1179
 AliHFEsecVtx.cxx:1180
 AliHFEsecVtx.cxx:1181
 AliHFEsecVtx.cxx:1182
 AliHFEsecVtx.cxx:1183
 AliHFEsecVtx.cxx:1184
 AliHFEsecVtx.cxx:1185
 AliHFEsecVtx.cxx:1186
 AliHFEsecVtx.cxx:1187
 AliHFEsecVtx.cxx:1188
 AliHFEsecVtx.cxx:1189
 AliHFEsecVtx.cxx:1190
 AliHFEsecVtx.cxx:1191
 AliHFEsecVtx.cxx:1192
 AliHFEsecVtx.cxx:1193
 AliHFEsecVtx.cxx:1194
 AliHFEsecVtx.cxx:1195
 AliHFEsecVtx.cxx:1196
 AliHFEsecVtx.cxx:1197
 AliHFEsecVtx.cxx:1198
 AliHFEsecVtx.cxx:1199
 AliHFEsecVtx.cxx:1200
 AliHFEsecVtx.cxx:1201
 AliHFEsecVtx.cxx:1202
 AliHFEsecVtx.cxx:1203
 AliHFEsecVtx.cxx:1204
 AliHFEsecVtx.cxx:1205
 AliHFEsecVtx.cxx:1206
 AliHFEsecVtx.cxx:1207
 AliHFEsecVtx.cxx:1208
 AliHFEsecVtx.cxx:1209
 AliHFEsecVtx.cxx:1210
 AliHFEsecVtx.cxx:1211
 AliHFEsecVtx.cxx:1212
 AliHFEsecVtx.cxx:1213
 AliHFEsecVtx.cxx:1214
 AliHFEsecVtx.cxx:1215
 AliHFEsecVtx.cxx:1216
 AliHFEsecVtx.cxx:1217
 AliHFEsecVtx.cxx:1218
 AliHFEsecVtx.cxx:1219
 AliHFEsecVtx.cxx:1220
 AliHFEsecVtx.cxx:1221
 AliHFEsecVtx.cxx:1222
 AliHFEsecVtx.cxx:1223
 AliHFEsecVtx.cxx:1224
 AliHFEsecVtx.cxx:1225
 AliHFEsecVtx.cxx:1226
 AliHFEsecVtx.cxx:1227
 AliHFEsecVtx.cxx:1228
 AliHFEsecVtx.cxx:1229
 AliHFEsecVtx.cxx:1230
 AliHFEsecVtx.cxx:1231
 AliHFEsecVtx.cxx:1232
 AliHFEsecVtx.cxx:1233
 AliHFEsecVtx.cxx:1234
 AliHFEsecVtx.cxx:1235
 AliHFEsecVtx.cxx:1236
 AliHFEsecVtx.cxx:1237
 AliHFEsecVtx.cxx:1238
 AliHFEsecVtx.cxx:1239
 AliHFEsecVtx.cxx:1240
 AliHFEsecVtx.cxx:1241
 AliHFEsecVtx.cxx:1242
 AliHFEsecVtx.cxx:1243
 AliHFEsecVtx.cxx:1244
 AliHFEsecVtx.cxx:1245
 AliHFEsecVtx.cxx:1246
 AliHFEsecVtx.cxx:1247
 AliHFEsecVtx.cxx:1248
 AliHFEsecVtx.cxx:1249
 AliHFEsecVtx.cxx:1250
 AliHFEsecVtx.cxx:1251
 AliHFEsecVtx.cxx:1252
 AliHFEsecVtx.cxx:1253
 AliHFEsecVtx.cxx:1254
 AliHFEsecVtx.cxx:1255
 AliHFEsecVtx.cxx:1256
 AliHFEsecVtx.cxx:1257
 AliHFEsecVtx.cxx:1258
 AliHFEsecVtx.cxx:1259
 AliHFEsecVtx.cxx:1260
 AliHFEsecVtx.cxx:1261
 AliHFEsecVtx.cxx:1262
 AliHFEsecVtx.cxx:1263
 AliHFEsecVtx.cxx:1264
 AliHFEsecVtx.cxx:1265
 AliHFEsecVtx.cxx:1266
 AliHFEsecVtx.cxx:1267
 AliHFEsecVtx.cxx:1268
 AliHFEsecVtx.cxx:1269
 AliHFEsecVtx.cxx:1270
 AliHFEsecVtx.cxx:1271
 AliHFEsecVtx.cxx:1272
 AliHFEsecVtx.cxx:1273
 AliHFEsecVtx.cxx:1274
 AliHFEsecVtx.cxx:1275
 AliHFEsecVtx.cxx:1276
 AliHFEsecVtx.cxx:1277
 AliHFEsecVtx.cxx:1278
 AliHFEsecVtx.cxx:1279
 AliHFEsecVtx.cxx:1280
 AliHFEsecVtx.cxx:1281
 AliHFEsecVtx.cxx:1282
 AliHFEsecVtx.cxx:1283
 AliHFEsecVtx.cxx:1284
 AliHFEsecVtx.cxx:1285
 AliHFEsecVtx.cxx:1286
 AliHFEsecVtx.cxx:1287
 AliHFEsecVtx.cxx:1288
 AliHFEsecVtx.cxx:1289
 AliHFEsecVtx.cxx:1290
 AliHFEsecVtx.cxx:1291
 AliHFEsecVtx.cxx:1292
 AliHFEsecVtx.cxx:1293
 AliHFEsecVtx.cxx:1294
 AliHFEsecVtx.cxx:1295
 AliHFEsecVtx.cxx:1296
 AliHFEsecVtx.cxx:1297
 AliHFEsecVtx.cxx:1298
 AliHFEsecVtx.cxx:1299
 AliHFEsecVtx.cxx:1300
 AliHFEsecVtx.cxx:1301
 AliHFEsecVtx.cxx:1302
 AliHFEsecVtx.cxx:1303
 AliHFEsecVtx.cxx:1304
 AliHFEsecVtx.cxx:1305
 AliHFEsecVtx.cxx:1306
 AliHFEsecVtx.cxx:1307
 AliHFEsecVtx.cxx:1308
 AliHFEsecVtx.cxx:1309
 AliHFEsecVtx.cxx:1310
 AliHFEsecVtx.cxx:1311
 AliHFEsecVtx.cxx:1312
 AliHFEsecVtx.cxx:1313
 AliHFEsecVtx.cxx:1314
 AliHFEsecVtx.cxx:1315
 AliHFEsecVtx.cxx:1316
 AliHFEsecVtx.cxx:1317
 AliHFEsecVtx.cxx:1318
 AliHFEsecVtx.cxx:1319
 AliHFEsecVtx.cxx:1320
 AliHFEsecVtx.cxx:1321
 AliHFEsecVtx.cxx:1322
 AliHFEsecVtx.cxx:1323
 AliHFEsecVtx.cxx:1324
 AliHFEsecVtx.cxx:1325
 AliHFEsecVtx.cxx:1326
 AliHFEsecVtx.cxx:1327
 AliHFEsecVtx.cxx:1328
 AliHFEsecVtx.cxx:1329
 AliHFEsecVtx.cxx:1330
 AliHFEsecVtx.cxx:1331
 AliHFEsecVtx.cxx:1332
 AliHFEsecVtx.cxx:1333
 AliHFEsecVtx.cxx:1334
 AliHFEsecVtx.cxx:1335
 AliHFEsecVtx.cxx:1336
 AliHFEsecVtx.cxx:1337
 AliHFEsecVtx.cxx:1338
 AliHFEsecVtx.cxx:1339
 AliHFEsecVtx.cxx:1340
 AliHFEsecVtx.cxx:1341
 AliHFEsecVtx.cxx:1342
 AliHFEsecVtx.cxx:1343
 AliHFEsecVtx.cxx:1344
 AliHFEsecVtx.cxx:1345
 AliHFEsecVtx.cxx:1346
 AliHFEsecVtx.cxx:1347
 AliHFEsecVtx.cxx:1348
 AliHFEsecVtx.cxx:1349
 AliHFEsecVtx.cxx:1350
 AliHFEsecVtx.cxx:1351
 AliHFEsecVtx.cxx:1352
 AliHFEsecVtx.cxx:1353
 AliHFEsecVtx.cxx:1354
 AliHFEsecVtx.cxx:1355
 AliHFEsecVtx.cxx:1356
 AliHFEsecVtx.cxx:1357
 AliHFEsecVtx.cxx:1358
 AliHFEsecVtx.cxx:1359
 AliHFEsecVtx.cxx:1360
 AliHFEsecVtx.cxx:1361
 AliHFEsecVtx.cxx:1362
 AliHFEsecVtx.cxx:1363
 AliHFEsecVtx.cxx:1364
 AliHFEsecVtx.cxx:1365
 AliHFEsecVtx.cxx:1366
 AliHFEsecVtx.cxx:1367
 AliHFEsecVtx.cxx:1368
 AliHFEsecVtx.cxx:1369
 AliHFEsecVtx.cxx:1370
 AliHFEsecVtx.cxx:1371
 AliHFEsecVtx.cxx:1372
 AliHFEsecVtx.cxx:1373
 AliHFEsecVtx.cxx:1374
 AliHFEsecVtx.cxx:1375
 AliHFEsecVtx.cxx:1376
 AliHFEsecVtx.cxx:1377
 AliHFEsecVtx.cxx:1378
 AliHFEsecVtx.cxx:1379
 AliHFEsecVtx.cxx:1380
 AliHFEsecVtx.cxx:1381
 AliHFEsecVtx.cxx:1382
 AliHFEsecVtx.cxx:1383
 AliHFEsecVtx.cxx:1384
 AliHFEsecVtx.cxx:1385
 AliHFEsecVtx.cxx:1386
 AliHFEsecVtx.cxx:1387
 AliHFEsecVtx.cxx:1388
 AliHFEsecVtx.cxx:1389
 AliHFEsecVtx.cxx:1390
 AliHFEsecVtx.cxx:1391
 AliHFEsecVtx.cxx:1392
 AliHFEsecVtx.cxx:1393
 AliHFEsecVtx.cxx:1394
 AliHFEsecVtx.cxx:1395
 AliHFEsecVtx.cxx:1396
 AliHFEsecVtx.cxx:1397
 AliHFEsecVtx.cxx:1398
 AliHFEsecVtx.cxx:1399
 AliHFEsecVtx.cxx:1400
 AliHFEsecVtx.cxx:1401
 AliHFEsecVtx.cxx:1402
 AliHFEsecVtx.cxx:1403
 AliHFEsecVtx.cxx:1404
 AliHFEsecVtx.cxx:1405
 AliHFEsecVtx.cxx:1406
 AliHFEsecVtx.cxx:1407
 AliHFEsecVtx.cxx:1408
 AliHFEsecVtx.cxx:1409
 AliHFEsecVtx.cxx:1410
 AliHFEsecVtx.cxx:1411
 AliHFEsecVtx.cxx:1412
 AliHFEsecVtx.cxx:1413
 AliHFEsecVtx.cxx:1414
 AliHFEsecVtx.cxx:1415
 AliHFEsecVtx.cxx:1416
 AliHFEsecVtx.cxx:1417
 AliHFEsecVtx.cxx:1418
 AliHFEsecVtx.cxx:1419
 AliHFEsecVtx.cxx:1420
 AliHFEsecVtx.cxx:1421
 AliHFEsecVtx.cxx:1422
 AliHFEsecVtx.cxx:1423
 AliHFEsecVtx.cxx:1424
 AliHFEsecVtx.cxx:1425
 AliHFEsecVtx.cxx:1426
 AliHFEsecVtx.cxx:1427
 AliHFEsecVtx.cxx:1428
 AliHFEsecVtx.cxx:1429
 AliHFEsecVtx.cxx:1430
 AliHFEsecVtx.cxx:1431
 AliHFEsecVtx.cxx:1432
 AliHFEsecVtx.cxx:1433
 AliHFEsecVtx.cxx:1434
 AliHFEsecVtx.cxx:1435
 AliHFEsecVtx.cxx:1436
 AliHFEsecVtx.cxx:1437
 AliHFEsecVtx.cxx:1438
 AliHFEsecVtx.cxx:1439
 AliHFEsecVtx.cxx:1440
 AliHFEsecVtx.cxx:1441
 AliHFEsecVtx.cxx:1442
 AliHFEsecVtx.cxx:1443
 AliHFEsecVtx.cxx:1444
 AliHFEsecVtx.cxx:1445
 AliHFEsecVtx.cxx:1446
 AliHFEsecVtx.cxx:1447
 AliHFEsecVtx.cxx:1448
 AliHFEsecVtx.cxx:1449
 AliHFEsecVtx.cxx:1450
 AliHFEsecVtx.cxx:1451
 AliHFEsecVtx.cxx:1452
 AliHFEsecVtx.cxx:1453
 AliHFEsecVtx.cxx:1454
 AliHFEsecVtx.cxx:1455
 AliHFEsecVtx.cxx:1456
 AliHFEsecVtx.cxx:1457
 AliHFEsecVtx.cxx:1458
 AliHFEsecVtx.cxx:1459
 AliHFEsecVtx.cxx:1460
 AliHFEsecVtx.cxx:1461
 AliHFEsecVtx.cxx:1462
 AliHFEsecVtx.cxx:1463
 AliHFEsecVtx.cxx:1464
 AliHFEsecVtx.cxx:1465
 AliHFEsecVtx.cxx:1466
 AliHFEsecVtx.cxx:1467
 AliHFEsecVtx.cxx:1468
 AliHFEsecVtx.cxx:1469
 AliHFEsecVtx.cxx:1470
 AliHFEsecVtx.cxx:1471
 AliHFEsecVtx.cxx:1472
 AliHFEsecVtx.cxx:1473
 AliHFEsecVtx.cxx:1474
 AliHFEsecVtx.cxx:1475
 AliHFEsecVtx.cxx:1476
 AliHFEsecVtx.cxx:1477
 AliHFEsecVtx.cxx:1478
 AliHFEsecVtx.cxx:1479
 AliHFEsecVtx.cxx:1480
 AliHFEsecVtx.cxx:1481
 AliHFEsecVtx.cxx:1482
 AliHFEsecVtx.cxx:1483
 AliHFEsecVtx.cxx:1484
 AliHFEsecVtx.cxx:1485
 AliHFEsecVtx.cxx:1486
 AliHFEsecVtx.cxx:1487
 AliHFEsecVtx.cxx:1488
 AliHFEsecVtx.cxx:1489
 AliHFEsecVtx.cxx:1490
 AliHFEsecVtx.cxx:1491
 AliHFEsecVtx.cxx:1492
 AliHFEsecVtx.cxx:1493
 AliHFEsecVtx.cxx:1494
 AliHFEsecVtx.cxx:1495
 AliHFEsecVtx.cxx:1496
 AliHFEsecVtx.cxx:1497
 AliHFEsecVtx.cxx:1498
 AliHFEsecVtx.cxx:1499
 AliHFEsecVtx.cxx:1500
 AliHFEsecVtx.cxx:1501
 AliHFEsecVtx.cxx:1502
 AliHFEsecVtx.cxx:1503
 AliHFEsecVtx.cxx:1504
 AliHFEsecVtx.cxx:1505
 AliHFEsecVtx.cxx:1506
 AliHFEsecVtx.cxx:1507
 AliHFEsecVtx.cxx:1508
 AliHFEsecVtx.cxx:1509
 AliHFEsecVtx.cxx:1510
 AliHFEsecVtx.cxx:1511
 AliHFEsecVtx.cxx:1512
 AliHFEsecVtx.cxx:1513
 AliHFEsecVtx.cxx:1514
 AliHFEsecVtx.cxx:1515
 AliHFEsecVtx.cxx:1516
 AliHFEsecVtx.cxx:1517
 AliHFEsecVtx.cxx:1518
 AliHFEsecVtx.cxx:1519
 AliHFEsecVtx.cxx:1520
 AliHFEsecVtx.cxx:1521
 AliHFEsecVtx.cxx:1522
 AliHFEsecVtx.cxx:1523
 AliHFEsecVtx.cxx:1524
 AliHFEsecVtx.cxx:1525
 AliHFEsecVtx.cxx:1526
 AliHFEsecVtx.cxx:1527
 AliHFEsecVtx.cxx:1528
 AliHFEsecVtx.cxx:1529
 AliHFEsecVtx.cxx:1530
 AliHFEsecVtx.cxx:1531
 AliHFEsecVtx.cxx:1532
 AliHFEsecVtx.cxx:1533
 AliHFEsecVtx.cxx:1534
 AliHFEsecVtx.cxx:1535
 AliHFEsecVtx.cxx:1536
 AliHFEsecVtx.cxx:1537
 AliHFEsecVtx.cxx:1538
 AliHFEsecVtx.cxx:1539
 AliHFEsecVtx.cxx:1540
 AliHFEsecVtx.cxx:1541
 AliHFEsecVtx.cxx:1542
 AliHFEsecVtx.cxx:1543
 AliHFEsecVtx.cxx:1544
 AliHFEsecVtx.cxx:1545
 AliHFEsecVtx.cxx:1546
 AliHFEsecVtx.cxx:1547
 AliHFEsecVtx.cxx:1548
 AliHFEsecVtx.cxx:1549
 AliHFEsecVtx.cxx:1550
 AliHFEsecVtx.cxx:1551
 AliHFEsecVtx.cxx:1552
 AliHFEsecVtx.cxx:1553
 AliHFEsecVtx.cxx:1554
 AliHFEsecVtx.cxx:1555
 AliHFEsecVtx.cxx:1556
 AliHFEsecVtx.cxx:1557
 AliHFEsecVtx.cxx:1558
 AliHFEsecVtx.cxx:1559
 AliHFEsecVtx.cxx:1560
 AliHFEsecVtx.cxx:1561
 AliHFEsecVtx.cxx:1562
 AliHFEsecVtx.cxx:1563
 AliHFEsecVtx.cxx:1564
 AliHFEsecVtx.cxx:1565
 AliHFEsecVtx.cxx:1566
 AliHFEsecVtx.cxx:1567
 AliHFEsecVtx.cxx:1568
 AliHFEsecVtx.cxx:1569
 AliHFEsecVtx.cxx:1570
 AliHFEsecVtx.cxx:1571
 AliHFEsecVtx.cxx:1572
 AliHFEsecVtx.cxx:1573
 AliHFEsecVtx.cxx:1574
 AliHFEsecVtx.cxx:1575
 AliHFEsecVtx.cxx:1576
 AliHFEsecVtx.cxx:1577
 AliHFEsecVtx.cxx:1578
 AliHFEsecVtx.cxx:1579
 AliHFEsecVtx.cxx:1580
 AliHFEsecVtx.cxx:1581
 AliHFEsecVtx.cxx:1582
 AliHFEsecVtx.cxx:1583
 AliHFEsecVtx.cxx:1584
 AliHFEsecVtx.cxx:1585
 AliHFEsecVtx.cxx:1586
 AliHFEsecVtx.cxx:1587
 AliHFEsecVtx.cxx:1588
 AliHFEsecVtx.cxx:1589
 AliHFEsecVtx.cxx:1590
 AliHFEsecVtx.cxx:1591
 AliHFEsecVtx.cxx:1592
 AliHFEsecVtx.cxx:1593
 AliHFEsecVtx.cxx:1594
 AliHFEsecVtx.cxx:1595
 AliHFEsecVtx.cxx:1596
 AliHFEsecVtx.cxx:1597
 AliHFEsecVtx.cxx:1598
 AliHFEsecVtx.cxx:1599
 AliHFEsecVtx.cxx:1600
 AliHFEsecVtx.cxx:1601
 AliHFEsecVtx.cxx:1602
 AliHFEsecVtx.cxx:1603
 AliHFEsecVtx.cxx:1604
 AliHFEsecVtx.cxx:1605
 AliHFEsecVtx.cxx:1606
 AliHFEsecVtx.cxx:1607
 AliHFEsecVtx.cxx:1608
 AliHFEsecVtx.cxx:1609
 AliHFEsecVtx.cxx:1610
 AliHFEsecVtx.cxx:1611
 AliHFEsecVtx.cxx:1612
 AliHFEsecVtx.cxx:1613
 AliHFEsecVtx.cxx:1614
 AliHFEsecVtx.cxx:1615
 AliHFEsecVtx.cxx:1616
 AliHFEsecVtx.cxx:1617
 AliHFEsecVtx.cxx:1618
 AliHFEsecVtx.cxx:1619
 AliHFEsecVtx.cxx:1620
 AliHFEsecVtx.cxx:1621
 AliHFEsecVtx.cxx:1622
 AliHFEsecVtx.cxx:1623
 AliHFEsecVtx.cxx:1624
 AliHFEsecVtx.cxx:1625
 AliHFEsecVtx.cxx:1626
 AliHFEsecVtx.cxx:1627
 AliHFEsecVtx.cxx:1628
 AliHFEsecVtx.cxx:1629
 AliHFEsecVtx.cxx:1630
 AliHFEsecVtx.cxx:1631
 AliHFEsecVtx.cxx:1632
 AliHFEsecVtx.cxx:1633
 AliHFEsecVtx.cxx:1634
 AliHFEsecVtx.cxx:1635
 AliHFEsecVtx.cxx:1636
 AliHFEsecVtx.cxx:1637
 AliHFEsecVtx.cxx:1638
 AliHFEsecVtx.cxx:1639
 AliHFEsecVtx.cxx:1640
 AliHFEsecVtx.cxx:1641
 AliHFEsecVtx.cxx:1642
 AliHFEsecVtx.cxx:1643
 AliHFEsecVtx.cxx:1644
 AliHFEsecVtx.cxx:1645
 AliHFEsecVtx.cxx:1646
 AliHFEsecVtx.cxx:1647
 AliHFEsecVtx.cxx:1648
 AliHFEsecVtx.cxx:1649
 AliHFEsecVtx.cxx:1650
 AliHFEsecVtx.cxx:1651
 AliHFEsecVtx.cxx:1652
 AliHFEsecVtx.cxx:1653
 AliHFEsecVtx.cxx:1654
 AliHFEsecVtx.cxx:1655
 AliHFEsecVtx.cxx:1656
 AliHFEsecVtx.cxx:1657
 AliHFEsecVtx.cxx:1658
 AliHFEsecVtx.cxx:1659
 AliHFEsecVtx.cxx:1660
 AliHFEsecVtx.cxx:1661
 AliHFEsecVtx.cxx:1662
 AliHFEsecVtx.cxx:1663
 AliHFEsecVtx.cxx:1664
 AliHFEsecVtx.cxx:1665
 AliHFEsecVtx.cxx:1666
 AliHFEsecVtx.cxx:1667
 AliHFEsecVtx.cxx:1668
 AliHFEsecVtx.cxx:1669
 AliHFEsecVtx.cxx:1670
 AliHFEsecVtx.cxx:1671
 AliHFEsecVtx.cxx:1672
 AliHFEsecVtx.cxx:1673
 AliHFEsecVtx.cxx:1674
 AliHFEsecVtx.cxx:1675
 AliHFEsecVtx.cxx:1676
 AliHFEsecVtx.cxx:1677
 AliHFEsecVtx.cxx:1678
 AliHFEsecVtx.cxx:1679
 AliHFEsecVtx.cxx:1680
 AliHFEsecVtx.cxx:1681
 AliHFEsecVtx.cxx:1682
 AliHFEsecVtx.cxx:1683
 AliHFEsecVtx.cxx:1684
 AliHFEsecVtx.cxx:1685
 AliHFEsecVtx.cxx:1686
 AliHFEsecVtx.cxx:1687
 AliHFEsecVtx.cxx:1688
 AliHFEsecVtx.cxx:1689
 AliHFEsecVtx.cxx:1690
 AliHFEsecVtx.cxx:1691
 AliHFEsecVtx.cxx:1692
 AliHFEsecVtx.cxx:1693
 AliHFEsecVtx.cxx:1694
 AliHFEsecVtx.cxx:1695
 AliHFEsecVtx.cxx:1696
 AliHFEsecVtx.cxx:1697
 AliHFEsecVtx.cxx:1698
 AliHFEsecVtx.cxx:1699
 AliHFEsecVtx.cxx:1700
 AliHFEsecVtx.cxx:1701
 AliHFEsecVtx.cxx:1702
 AliHFEsecVtx.cxx:1703
 AliHFEsecVtx.cxx:1704
 AliHFEsecVtx.cxx:1705
 AliHFEsecVtx.cxx:1706
 AliHFEsecVtx.cxx:1707
 AliHFEsecVtx.cxx:1708
 AliHFEsecVtx.cxx:1709
 AliHFEsecVtx.cxx:1710
 AliHFEsecVtx.cxx:1711
 AliHFEsecVtx.cxx:1712
 AliHFEsecVtx.cxx:1713
 AliHFEsecVtx.cxx:1714
 AliHFEsecVtx.cxx:1715
 AliHFEsecVtx.cxx:1716
 AliHFEsecVtx.cxx:1717
 AliHFEsecVtx.cxx:1718
 AliHFEsecVtx.cxx:1719
 AliHFEsecVtx.cxx:1720
 AliHFEsecVtx.cxx:1721
 AliHFEsecVtx.cxx:1722
 AliHFEsecVtx.cxx:1723
 AliHFEsecVtx.cxx:1724
 AliHFEsecVtx.cxx:1725
 AliHFEsecVtx.cxx:1726
 AliHFEsecVtx.cxx:1727
 AliHFEsecVtx.cxx:1728
 AliHFEsecVtx.cxx:1729
 AliHFEsecVtx.cxx:1730
 AliHFEsecVtx.cxx:1731
 AliHFEsecVtx.cxx:1732
 AliHFEsecVtx.cxx:1733
 AliHFEsecVtx.cxx:1734
 AliHFEsecVtx.cxx:1735
 AliHFEsecVtx.cxx:1736
 AliHFEsecVtx.cxx:1737
 AliHFEsecVtx.cxx:1738
 AliHFEsecVtx.cxx:1739