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.                  *
 **************************************************************************/
//
// QA class of primary vertex study for Heavy Flavor electrons
// this has functionality to reject electrons from primary vertex
// and check primary vertex characteristics
//  
// Authors:
//   MinJung Kweon <minjung@physi.uni-heidelberg.de>
//


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

#include "AliESDEvent.h"
#include <AliESDtrack.h>
#include <AliMCEvent.h>

#include <AliLog.h>
#include <AliKFParticle.h>
#include <AliKFVertex.h>

#include "AliHFEpriVtx.h"


ClassImp(AliHFEpriVtx)

//_______________________________________________________________________________________________
AliHFEpriVtx::AliHFEpriVtx():
        fESD1(0x0)
        ,fMCEvent(0x0)
        ,fNtrackswoPid(0)
        ,fHNtrackswoPid(0x0)
        ,fNESDprimVtxContributor(0x0)
        ,fNESDprimVtxIndices(0x0)
        ,fDiffDCAvsPt(0x0)
        ,fDiffDCAvsNt(0x0)
        ,fNsectrk2prim(0)
        ,fPVxRe(-999.)
        ,fPVyRe(-999.)
        ,fPVzRe(-999.)
{ 
        //
        // Default constructor
        //

        Init();

}

//_______________________________________________________________________________________________
AliHFEpriVtx::AliHFEpriVtx(const AliHFEpriVtx &p):
         TObject(p)
        ,fESD1(0x0)
        ,fMCEvent(0x0)
        ,fNtrackswoPid(p.fNtrackswoPid)
        ,fHNtrackswoPid(0x0)
        ,fNESDprimVtxContributor(0x0)
        ,fNESDprimVtxIndices(0x0)
        ,fDiffDCAvsPt(0x0)
        ,fDiffDCAvsNt(0x0)
        ,fNsectrk2prim(p.fNsectrk2prim)
        ,fPVxRe(p.fPVxRe)
        ,fPVyRe(p.fPVyRe)
        ,fPVzRe(p.fPVzRe)
{
        //
        // Copy constructor
        //
}

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

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

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

        AliInfo("Analysis Done.");
}

//__________________________________________
void AliHFEpriVtx::Init()
{
        //
        // initialize counters
        //

        fNtrackswoPid = 0;
        for (int i=0; i<10; i++){       
                fPrimVtx[i].fNtrackCount = 0 ;
                fPrimVtx[i].fNprimVtxContributorCount = 0 ;
        }
}

//_______________________________________________________________________________________________
void AliHFEpriVtx::CreateHistograms(TString hnopt)
{ 
        //
        // create histograms
        //

        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;
        for (Int_t isource = 0; isource < 10; isource++ ){

           hname=hnopt+"ntracks_"+fkSourceLabel[isource];
           fPrimVtx[isource].fNtracks = new TH1F(hname,hname,50,0,50);
           hname=hnopt+"nPrimVtxContributor_"+fkSourceLabel[isource];
           fPrimVtx[isource].fNprimVtxContributor = new TH1F(hname,hname,100,0,100);
           hname=hnopt+"PtElec_"+fkSourceLabel[isource];
           fPrimVtx[isource].fPtElec = new TH1F(hname,hname,250,0,50);
           hname=hnopt+"PtElecContributor_"+fkSourceLabel[isource];
           fPrimVtx[isource].fPtElecContributor = new TH1F(hname,hname,250,0,50);

        }

        hname=hnopt+"ntrackswopid";
        fHNtrackswoPid = new TH1F(hname,hname,50,0,50);
        hname=hnopt+"nESDprimVtxContributor";
        fNESDprimVtxContributor = new TH1I(hname,hname,100,0,100);
        hname=hnopt+"nESDprimVtxIndices";
        fNESDprimVtxIndices= new TH1I(hname,hname,100,0,100);
        hname=hnopt+"diffDCAvsPt";
        fDiffDCAvsPt = new TH2F(hname,hname,250,0,50,500,0,1);
        hname=hnopt+"diffDCAvsNt";
        fDiffDCAvsNt = new TH2F(hname,hname,100,0,100,500,0,1);

}

//_______________________________________________________________________________________________
void AliHFEpriVtx::CountNtracks(Int_t sourcePart, Int_t recpid, Double_t recprob)
{
        //
        // count number of tracks passed certain cuts
        //

        fNtrackswoPid++;

        if (!recpid && recprob>0.5)     
        fPrimVtx[kAll].fNtrackCount++;
        if(sourcePart<0) return;
        fPrimVtx[sourcePart].fNtrackCount++;

}

//_______________________________________________________________________________________________
void AliHFEpriVtx::FillNtracks()
{
        //
        // count number of tracks passed certain cuts
        //

        fHNtrackswoPid->Fill(fNtrackswoPid);
        for (int i=0; i<10; i++){
          fPrimVtx[i].fNtracks->Fill(fPrimVtx[i].fNtrackCount);
        }

}

//_______________________________________________________________________________________________
Int_t AliHFEpriVtx::GetMCPID(AliESDtrack const *track)
{
        //
        // get 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;
}

//_______________________________________________________________________________________________
void AliHFEpriVtx::GetNPriVxtContributor() 
{
        //
        // count number of primary vertex contributor
        //

        const AliESDVertex *primvtx = fESD1->GetPrimaryVertex();
        fNESDprimVtxContributor->Fill(primvtx->GetNContributors());
        fNESDprimVtxIndices->Fill(primvtx->GetNIndices());
}

//_______________________________________________________________________________________________
void AliHFEpriVtx::CountPriVxtElecContributor(AliESDtrack *ESDelectron, Int_t sourcePart, Int_t recpid, Double_t recprob) 
{
        //
        // count number of electrons contributing to the primary vertex
        //


        if (recpid || recprob<0.5) return;

        // get track id of our selected electron
        Int_t elecTrkID = ESDelectron->GetID();

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


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

        AliKFParticle::SetField(fESD1->GetMagneticField());
        AliKFParticle kfElectron(*ESDelectron,11);
 
        // prepare kfprimary vertex
        AliKFVertex kfESDprimary;

        // Reconstructed Primary Vertex (with ESD tracks)
        const AliESDVertex *primvtx = fESD1->GetPrimaryVertex();
//         Int_t nt = primvtx->GetNContributors();
        Int_t n=primvtx->GetNIndices();

        if (n>0 && primvtx->GetStatus()){

                kfESDprimary = AliKFVertex(*primvtx);
                Double_t dcaBFrmElec = kfElectron.GetDistanceFromVertexXY(kfESDprimary);

                UShort_t *priIndex = primvtx->GetIndices();

                fPrimVtx[kAll].fPtElec->Fill(mcpart->Pt());
                if(sourcePart>=0) fPrimVtx[sourcePart].fPtElec->Fill(mcpart->Pt());

                for (Int_t i=0;i<n;i++){

                        Int_t idx = Int_t(priIndex[i]);
                        if (idx == elecTrkID){
                                fPrimVtx[kAll].fNprimVtxContributorCount++;
                                fPrimVtx[kAll].fPtElecContributor->Fill(mcpart->Pt());
                                if(sourcePart<0) continue;
                                fPrimVtx[sourcePart].fNprimVtxContributorCount++;
                                fPrimVtx[sourcePart].fPtElecContributor->Fill(mcpart->Pt());

                                kfESDprimary -= kfElectron;
                                Double_t dcaAFrmElec = kfElectron.GetDistanceFromVertexXY(kfESDprimary);
                                fDiffDCAvsPt->Fill(mcpart->Pt(),dcaBFrmElec-dcaAFrmElec);
                                fDiffDCAvsNt->Fill(n,dcaBFrmElec-dcaAFrmElec);
                        }
                } 
        }  

}

//_______________________________________________________________________________________________
void AliHFEpriVtx::FillNprimVtxContributor() const
{
        //
        // Fill histogram with number of electrons contributing to the primary vertex
        //

        for (int i=0; i<10; i++){
          fPrimVtx[i].fNprimVtxContributor->Fill(fPrimVtx[i].fNprimVtxContributorCount);
        }

}

//_______________________________________________________________________________________________
Double_t AliHFEpriVtx::GetDistanceFromRecalVertexXY(const AliESDtrack * const ESDelectron) 
{
        //
        // return recalculated DCA after removing input track from the primary vertex
        //

        // get track id of our selected electron
        Int_t elecTrkID = ESDelectron->GetID();

        AliKFParticle::SetField(fESD1->GetMagneticField());
        AliKFParticle kfElectron(*ESDelectron,11);
 
        // prepare kfprimary vertex
        AliKFVertex kfESDprimary;

        // Reconstructed Primary Vertex (with ESD tracks)
        const AliESDVertex *primvtx = fESD1->GetPrimaryVertex();
        Int_t n=primvtx->GetNIndices();

        if (n>0 && primvtx->GetStatus()){

                kfESDprimary = AliKFVertex(*primvtx);
                UShort_t *priIndex = primvtx->GetIndices();

                for (Int_t i=0;i<n;i++){

                        Int_t idx = Int_t(priIndex[i]);
                        if (idx == elecTrkID){
                                kfESDprimary -= kfElectron;
                                Double_t dcaAFrmElec = kfElectron.GetDistanceFromVertexXY(kfESDprimary);

                                return dcaAFrmElec;
                        }
                } 
        }  
	      return -1;

}

void AliHFEpriVtx::RecalcPrimvtx(Int_t nkftrk, const Int_t * const trkid, const AliKFParticle * const kftrk)
{
        //
        // recalculate primary vertex after removing the input track
        //

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

        AliKFVertex kfESDprimary;
        Int_t n = primvtx->GetNIndices();
        fNsectrk2prim = 0;
        fPVxRe = -999.;
        fPVyRe = -999.;
        fPVyRe = -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++;
              }
            }
          }
        }

        fPVxRe = kfESDprimary.GetX();
        fPVyRe = kfESDprimary.GetY();
        fPVzRe = kfESDprimary.GetZ();

}


//_______________________________________________________________________________________________
void AliHFEpriVtx::RecalcPrimvtx(const AliESDtrack * const ESDelectron)
{
        //
        // recalculate primary vertex after removing the input track
        //

        // get track id of our selected electron
        Int_t elecTrkID = ESDelectron->GetID();

        AliKFParticle::SetField(fESD1->GetMagneticField());
        AliKFParticle kfElectron(*ESDelectron,11);

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

        AliKFVertex kfESDprimary;
        Int_t n = primvtx->GetNIndices();
        fPVxRe = -999.;
        fPVyRe = -999.;
        fPVyRe = -999.;
        
        if (n>0 && primvtx->GetStatus()){
          kfESDprimary = AliKFVertex(*primvtx);
          UShort_t *priIndex = primvtx->GetIndices();
          for (Int_t i=0;i<n;i++){
            Int_t idx = Int_t(priIndex[i]);
            if (idx == elecTrkID){
              kfESDprimary -= kfElectron;
            }
          }
        }     
        
        fPVxRe = kfESDprimary.GetX();
        fPVyRe = kfESDprimary.GetY();
        fPVzRe = kfESDprimary.GetZ();

}
 AliHFEpriVtx.cxx:1
 AliHFEpriVtx.cxx:2
 AliHFEpriVtx.cxx:3
 AliHFEpriVtx.cxx:4
 AliHFEpriVtx.cxx:5
 AliHFEpriVtx.cxx:6
 AliHFEpriVtx.cxx:7
 AliHFEpriVtx.cxx:8
 AliHFEpriVtx.cxx:9
 AliHFEpriVtx.cxx:10
 AliHFEpriVtx.cxx:11
 AliHFEpriVtx.cxx:12
 AliHFEpriVtx.cxx:13
 AliHFEpriVtx.cxx:14
 AliHFEpriVtx.cxx:15
 AliHFEpriVtx.cxx:16
 AliHFEpriVtx.cxx:17
 AliHFEpriVtx.cxx:18
 AliHFEpriVtx.cxx:19
 AliHFEpriVtx.cxx:20
 AliHFEpriVtx.cxx:21
 AliHFEpriVtx.cxx:22
 AliHFEpriVtx.cxx:23
 AliHFEpriVtx.cxx:24
 AliHFEpriVtx.cxx:25
 AliHFEpriVtx.cxx:26
 AliHFEpriVtx.cxx:27
 AliHFEpriVtx.cxx:28
 AliHFEpriVtx.cxx:29
 AliHFEpriVtx.cxx:30
 AliHFEpriVtx.cxx:31
 AliHFEpriVtx.cxx:32
 AliHFEpriVtx.cxx:33
 AliHFEpriVtx.cxx:34
 AliHFEpriVtx.cxx:35
 AliHFEpriVtx.cxx:36
 AliHFEpriVtx.cxx:37
 AliHFEpriVtx.cxx:38
 AliHFEpriVtx.cxx:39
 AliHFEpriVtx.cxx:40
 AliHFEpriVtx.cxx:41
 AliHFEpriVtx.cxx:42
 AliHFEpriVtx.cxx:43
 AliHFEpriVtx.cxx:44
 AliHFEpriVtx.cxx:45
 AliHFEpriVtx.cxx:46
 AliHFEpriVtx.cxx:47
 AliHFEpriVtx.cxx:48
 AliHFEpriVtx.cxx:49
 AliHFEpriVtx.cxx:50
 AliHFEpriVtx.cxx:51
 AliHFEpriVtx.cxx:52
 AliHFEpriVtx.cxx:53
 AliHFEpriVtx.cxx:54
 AliHFEpriVtx.cxx:55
 AliHFEpriVtx.cxx:56
 AliHFEpriVtx.cxx:57
 AliHFEpriVtx.cxx:58
 AliHFEpriVtx.cxx:59
 AliHFEpriVtx.cxx:60
 AliHFEpriVtx.cxx:61
 AliHFEpriVtx.cxx:62
 AliHFEpriVtx.cxx:63
 AliHFEpriVtx.cxx:64
 AliHFEpriVtx.cxx:65
 AliHFEpriVtx.cxx:66
 AliHFEpriVtx.cxx:67
 AliHFEpriVtx.cxx:68
 AliHFEpriVtx.cxx:69
 AliHFEpriVtx.cxx:70
 AliHFEpriVtx.cxx:71
 AliHFEpriVtx.cxx:72
 AliHFEpriVtx.cxx:73
 AliHFEpriVtx.cxx:74
 AliHFEpriVtx.cxx:75
 AliHFEpriVtx.cxx:76
 AliHFEpriVtx.cxx:77
 AliHFEpriVtx.cxx:78
 AliHFEpriVtx.cxx:79
 AliHFEpriVtx.cxx:80
 AliHFEpriVtx.cxx:81
 AliHFEpriVtx.cxx:82
 AliHFEpriVtx.cxx:83
 AliHFEpriVtx.cxx:84
 AliHFEpriVtx.cxx:85
 AliHFEpriVtx.cxx:86
 AliHFEpriVtx.cxx:87
 AliHFEpriVtx.cxx:88
 AliHFEpriVtx.cxx:89
 AliHFEpriVtx.cxx:90
 AliHFEpriVtx.cxx:91
 AliHFEpriVtx.cxx:92
 AliHFEpriVtx.cxx:93
 AliHFEpriVtx.cxx:94
 AliHFEpriVtx.cxx:95
 AliHFEpriVtx.cxx:96
 AliHFEpriVtx.cxx:97
 AliHFEpriVtx.cxx:98
 AliHFEpriVtx.cxx:99
 AliHFEpriVtx.cxx:100
 AliHFEpriVtx.cxx:101
 AliHFEpriVtx.cxx:102
 AliHFEpriVtx.cxx:103
 AliHFEpriVtx.cxx:104
 AliHFEpriVtx.cxx:105
 AliHFEpriVtx.cxx:106
 AliHFEpriVtx.cxx:107
 AliHFEpriVtx.cxx:108
 AliHFEpriVtx.cxx:109
 AliHFEpriVtx.cxx:110
 AliHFEpriVtx.cxx:111
 AliHFEpriVtx.cxx:112
 AliHFEpriVtx.cxx:113
 AliHFEpriVtx.cxx:114
 AliHFEpriVtx.cxx:115
 AliHFEpriVtx.cxx:116
 AliHFEpriVtx.cxx:117
 AliHFEpriVtx.cxx:118
 AliHFEpriVtx.cxx:119
 AliHFEpriVtx.cxx:120
 AliHFEpriVtx.cxx:121
 AliHFEpriVtx.cxx:122
 AliHFEpriVtx.cxx:123
 AliHFEpriVtx.cxx:124
 AliHFEpriVtx.cxx:125
 AliHFEpriVtx.cxx:126
 AliHFEpriVtx.cxx:127
 AliHFEpriVtx.cxx:128
 AliHFEpriVtx.cxx:129
 AliHFEpriVtx.cxx:130
 AliHFEpriVtx.cxx:131
 AliHFEpriVtx.cxx:132
 AliHFEpriVtx.cxx:133
 AliHFEpriVtx.cxx:134
 AliHFEpriVtx.cxx:135
 AliHFEpriVtx.cxx:136
 AliHFEpriVtx.cxx:137
 AliHFEpriVtx.cxx:138
 AliHFEpriVtx.cxx:139
 AliHFEpriVtx.cxx:140
 AliHFEpriVtx.cxx:141
 AliHFEpriVtx.cxx:142
 AliHFEpriVtx.cxx:143
 AliHFEpriVtx.cxx:144
 AliHFEpriVtx.cxx:145
 AliHFEpriVtx.cxx:146
 AliHFEpriVtx.cxx:147
 AliHFEpriVtx.cxx:148
 AliHFEpriVtx.cxx:149
 AliHFEpriVtx.cxx:150
 AliHFEpriVtx.cxx:151
 AliHFEpriVtx.cxx:152
 AliHFEpriVtx.cxx:153
 AliHFEpriVtx.cxx:154
 AliHFEpriVtx.cxx:155
 AliHFEpriVtx.cxx:156
 AliHFEpriVtx.cxx:157
 AliHFEpriVtx.cxx:158
 AliHFEpriVtx.cxx:159
 AliHFEpriVtx.cxx:160
 AliHFEpriVtx.cxx:161
 AliHFEpriVtx.cxx:162
 AliHFEpriVtx.cxx:163
 AliHFEpriVtx.cxx:164
 AliHFEpriVtx.cxx:165
 AliHFEpriVtx.cxx:166
 AliHFEpriVtx.cxx:167
 AliHFEpriVtx.cxx:168
 AliHFEpriVtx.cxx:169
 AliHFEpriVtx.cxx:170
 AliHFEpriVtx.cxx:171
 AliHFEpriVtx.cxx:172
 AliHFEpriVtx.cxx:173
 AliHFEpriVtx.cxx:174
 AliHFEpriVtx.cxx:175
 AliHFEpriVtx.cxx:176
 AliHFEpriVtx.cxx:177
 AliHFEpriVtx.cxx:178
 AliHFEpriVtx.cxx:179
 AliHFEpriVtx.cxx:180
 AliHFEpriVtx.cxx:181
 AliHFEpriVtx.cxx:182
 AliHFEpriVtx.cxx:183
 AliHFEpriVtx.cxx:184
 AliHFEpriVtx.cxx:185
 AliHFEpriVtx.cxx:186
 AliHFEpriVtx.cxx:187
 AliHFEpriVtx.cxx:188
 AliHFEpriVtx.cxx:189
 AliHFEpriVtx.cxx:190
 AliHFEpriVtx.cxx:191
 AliHFEpriVtx.cxx:192
 AliHFEpriVtx.cxx:193
 AliHFEpriVtx.cxx:194
 AliHFEpriVtx.cxx:195
 AliHFEpriVtx.cxx:196
 AliHFEpriVtx.cxx:197
 AliHFEpriVtx.cxx:198
 AliHFEpriVtx.cxx:199
 AliHFEpriVtx.cxx:200
 AliHFEpriVtx.cxx:201
 AliHFEpriVtx.cxx:202
 AliHFEpriVtx.cxx:203
 AliHFEpriVtx.cxx:204
 AliHFEpriVtx.cxx:205
 AliHFEpriVtx.cxx:206
 AliHFEpriVtx.cxx:207
 AliHFEpriVtx.cxx:208
 AliHFEpriVtx.cxx:209
 AliHFEpriVtx.cxx:210
 AliHFEpriVtx.cxx:211
 AliHFEpriVtx.cxx:212
 AliHFEpriVtx.cxx:213
 AliHFEpriVtx.cxx:214
 AliHFEpriVtx.cxx:215
 AliHFEpriVtx.cxx:216
 AliHFEpriVtx.cxx:217
 AliHFEpriVtx.cxx:218
 AliHFEpriVtx.cxx:219
 AliHFEpriVtx.cxx:220
 AliHFEpriVtx.cxx:221
 AliHFEpriVtx.cxx:222
 AliHFEpriVtx.cxx:223
 AliHFEpriVtx.cxx:224
 AliHFEpriVtx.cxx:225
 AliHFEpriVtx.cxx:226
 AliHFEpriVtx.cxx:227
 AliHFEpriVtx.cxx:228
 AliHFEpriVtx.cxx:229
 AliHFEpriVtx.cxx:230
 AliHFEpriVtx.cxx:231
 AliHFEpriVtx.cxx:232
 AliHFEpriVtx.cxx:233
 AliHFEpriVtx.cxx:234
 AliHFEpriVtx.cxx:235
 AliHFEpriVtx.cxx:236
 AliHFEpriVtx.cxx:237
 AliHFEpriVtx.cxx:238
 AliHFEpriVtx.cxx:239
 AliHFEpriVtx.cxx:240
 AliHFEpriVtx.cxx:241
 AliHFEpriVtx.cxx:242
 AliHFEpriVtx.cxx:243
 AliHFEpriVtx.cxx:244
 AliHFEpriVtx.cxx:245
 AliHFEpriVtx.cxx:246
 AliHFEpriVtx.cxx:247
 AliHFEpriVtx.cxx:248
 AliHFEpriVtx.cxx:249
 AliHFEpriVtx.cxx:250
 AliHFEpriVtx.cxx:251
 AliHFEpriVtx.cxx:252
 AliHFEpriVtx.cxx:253
 AliHFEpriVtx.cxx:254
 AliHFEpriVtx.cxx:255
 AliHFEpriVtx.cxx:256
 AliHFEpriVtx.cxx:257
 AliHFEpriVtx.cxx:258
 AliHFEpriVtx.cxx:259
 AliHFEpriVtx.cxx:260
 AliHFEpriVtx.cxx:261
 AliHFEpriVtx.cxx:262
 AliHFEpriVtx.cxx:263
 AliHFEpriVtx.cxx:264
 AliHFEpriVtx.cxx:265
 AliHFEpriVtx.cxx:266
 AliHFEpriVtx.cxx:267
 AliHFEpriVtx.cxx:268
 AliHFEpriVtx.cxx:269
 AliHFEpriVtx.cxx:270
 AliHFEpriVtx.cxx:271
 AliHFEpriVtx.cxx:272
 AliHFEpriVtx.cxx:273
 AliHFEpriVtx.cxx:274
 AliHFEpriVtx.cxx:275
 AliHFEpriVtx.cxx:276
 AliHFEpriVtx.cxx:277
 AliHFEpriVtx.cxx:278
 AliHFEpriVtx.cxx:279
 AliHFEpriVtx.cxx:280
 AliHFEpriVtx.cxx:281
 AliHFEpriVtx.cxx:282
 AliHFEpriVtx.cxx:283
 AliHFEpriVtx.cxx:284
 AliHFEpriVtx.cxx:285
 AliHFEpriVtx.cxx:286
 AliHFEpriVtx.cxx:287
 AliHFEpriVtx.cxx:288
 AliHFEpriVtx.cxx:289
 AliHFEpriVtx.cxx:290
 AliHFEpriVtx.cxx:291
 AliHFEpriVtx.cxx:292
 AliHFEpriVtx.cxx:293
 AliHFEpriVtx.cxx:294
 AliHFEpriVtx.cxx:295
 AliHFEpriVtx.cxx:296
 AliHFEpriVtx.cxx:297
 AliHFEpriVtx.cxx:298
 AliHFEpriVtx.cxx:299
 AliHFEpriVtx.cxx:300
 AliHFEpriVtx.cxx:301
 AliHFEpriVtx.cxx:302
 AliHFEpriVtx.cxx:303
 AliHFEpriVtx.cxx:304
 AliHFEpriVtx.cxx:305
 AliHFEpriVtx.cxx:306
 AliHFEpriVtx.cxx:307
 AliHFEpriVtx.cxx:308
 AliHFEpriVtx.cxx:309
 AliHFEpriVtx.cxx:310
 AliHFEpriVtx.cxx:311
 AliHFEpriVtx.cxx:312
 AliHFEpriVtx.cxx:313
 AliHFEpriVtx.cxx:314
 AliHFEpriVtx.cxx:315
 AliHFEpriVtx.cxx:316
 AliHFEpriVtx.cxx:317
 AliHFEpriVtx.cxx:318
 AliHFEpriVtx.cxx:319
 AliHFEpriVtx.cxx:320
 AliHFEpriVtx.cxx:321
 AliHFEpriVtx.cxx:322
 AliHFEpriVtx.cxx:323
 AliHFEpriVtx.cxx:324
 AliHFEpriVtx.cxx:325
 AliHFEpriVtx.cxx:326
 AliHFEpriVtx.cxx:327
 AliHFEpriVtx.cxx:328
 AliHFEpriVtx.cxx:329
 AliHFEpriVtx.cxx:330
 AliHFEpriVtx.cxx:331
 AliHFEpriVtx.cxx:332
 AliHFEpriVtx.cxx:333
 AliHFEpriVtx.cxx:334
 AliHFEpriVtx.cxx:335
 AliHFEpriVtx.cxx:336
 AliHFEpriVtx.cxx:337
 AliHFEpriVtx.cxx:338
 AliHFEpriVtx.cxx:339
 AliHFEpriVtx.cxx:340
 AliHFEpriVtx.cxx:341
 AliHFEpriVtx.cxx:342
 AliHFEpriVtx.cxx:343
 AliHFEpriVtx.cxx:344
 AliHFEpriVtx.cxx:345
 AliHFEpriVtx.cxx:346
 AliHFEpriVtx.cxx:347
 AliHFEpriVtx.cxx:348
 AliHFEpriVtx.cxx:349
 AliHFEpriVtx.cxx:350
 AliHFEpriVtx.cxx:351
 AliHFEpriVtx.cxx:352
 AliHFEpriVtx.cxx:353
 AliHFEpriVtx.cxx:354
 AliHFEpriVtx.cxx:355
 AliHFEpriVtx.cxx:356
 AliHFEpriVtx.cxx:357
 AliHFEpriVtx.cxx:358
 AliHFEpriVtx.cxx:359
 AliHFEpriVtx.cxx:360
 AliHFEpriVtx.cxx:361
 AliHFEpriVtx.cxx:362
 AliHFEpriVtx.cxx:363
 AliHFEpriVtx.cxx:364
 AliHFEpriVtx.cxx:365
 AliHFEpriVtx.cxx:366
 AliHFEpriVtx.cxx:367
 AliHFEpriVtx.cxx:368
 AliHFEpriVtx.cxx:369
 AliHFEpriVtx.cxx:370
 AliHFEpriVtx.cxx:371
 AliHFEpriVtx.cxx:372
 AliHFEpriVtx.cxx:373
 AliHFEpriVtx.cxx:374
 AliHFEpriVtx.cxx:375
 AliHFEpriVtx.cxx:376
 AliHFEpriVtx.cxx:377
 AliHFEpriVtx.cxx:378
 AliHFEpriVtx.cxx:379
 AliHFEpriVtx.cxx:380
 AliHFEpriVtx.cxx:381
 AliHFEpriVtx.cxx:382
 AliHFEpriVtx.cxx:383
 AliHFEpriVtx.cxx:384
 AliHFEpriVtx.cxx:385
 AliHFEpriVtx.cxx:386
 AliHFEpriVtx.cxx:387
 AliHFEpriVtx.cxx:388
 AliHFEpriVtx.cxx:389
 AliHFEpriVtx.cxx:390
 AliHFEpriVtx.cxx:391
 AliHFEpriVtx.cxx:392
 AliHFEpriVtx.cxx:393
 AliHFEpriVtx.cxx:394
 AliHFEpriVtx.cxx:395
 AliHFEpriVtx.cxx:396
 AliHFEpriVtx.cxx:397
 AliHFEpriVtx.cxx:398
 AliHFEpriVtx.cxx:399
 AliHFEpriVtx.cxx:400
 AliHFEpriVtx.cxx:401
 AliHFEpriVtx.cxx:402
 AliHFEpriVtx.cxx:403
 AliHFEpriVtx.cxx:404
 AliHFEpriVtx.cxx:405
 AliHFEpriVtx.cxx:406
 AliHFEpriVtx.cxx:407
 AliHFEpriVtx.cxx:408
 AliHFEpriVtx.cxx:409
 AliHFEpriVtx.cxx:410
 AliHFEpriVtx.cxx:411
 AliHFEpriVtx.cxx:412
 AliHFEpriVtx.cxx:413
 AliHFEpriVtx.cxx:414
 AliHFEpriVtx.cxx:415