return rc;
}
-void AliESDEvent::AddPileupVertexSPD(const AliESDVertex *vtx)
+Char_t AliESDEvent::AddPileupVertexSPD(const AliESDVertex *vtx)
{
// Add a pileup primary vertex reconstructed with SPD
TClonesArray &ftr = *fSPDPileupVertices;
- new(ftr[fSPDPileupVertices->GetEntriesFast()]) AliESDVertex(*vtx);
+ Char_t n=Char_t(ftr.GetEntriesFast());
+ AliESDVertex *vertex = new(ftr[n]) AliESDVertex(*vtx);
+ vertex->SetID(n);
+ return n;
}
-void AliESDEvent::AddPileupVertexTracks(const AliESDVertex *vtx)
+Char_t AliESDEvent::AddPileupVertexTracks(const AliESDVertex *vtx)
{
// Add a pileup primary vertex reconstructed with SPD
TClonesArray &ftr = *fTrkPileupVertices;
- new(ftr[fTrkPileupVertices->GetEntriesFast()]) AliESDVertex(*vtx);
+ Char_t n=Char_t(ftr.GetEntriesFast());
+ AliESDVertex *vertex = new(ftr[n]) AliESDVertex(*vtx);
+ vertex->SetID(n);
+ return n;
}
Int_t AliESDEvent::AddTrack(const AliESDtrack *t)
const AliESDVertex *GetPileupVertexSPD(Int_t i) const {
return (const AliESDVertex *)fSPDPileupVertices->UncheckedAt(i);
}
- void AddPileupVertexSPD(const AliESDVertex *vtx);
+ Char_t AddPileupVertexSPD(const AliESDVertex *vtx);
const AliESDVertex *GetPileupVertexTracks(Int_t i) const {
return (const AliESDVertex *)fTrkPileupVertices->UncheckedAt(i);
}
- void AddPileupVertexTracks(const AliESDVertex *vtx);
+ Char_t AddPileupVertexTracks(const AliESDVertex *vtx);
AliESDtrack *GetTrack(Int_t i) const {
return (AliESDtrack *)fTracks->UncheckedAt(i);
fCovXZ(0),
fCovYZ(0),
fCovZZ(5.3*5.3),
- fChi2(0)
+ fChi2(0),
+ fID(-1) // ID=-1 means the vertex with the biggest number of contributors
{
//
// Default Constructor, set everything to 0
fCovXZ(0),
fCovYZ(0),
fCovZZ(sigmaZ*sigmaZ),
- fChi2(0)
+ fChi2(0),
+ fID(-1) // ID=-1 means the vertex with the biggest number of contributors
{
//
// Constructor for vertex Z from pixels
fCovXZ(covmatrix[3]),
fCovYZ(covmatrix[4]),
fCovZZ(covmatrix[5]),
- fChi2(chi2)
+ fChi2(chi2),
+ fID(-1) // ID=-1 means the vertex with the biggest number of contributors
{
//
// Constructor for vertex in 3D from tracks
fCovXZ(0),
fCovYZ(0),
fCovZZ(sigma[2]*sigma[2]),
- fChi2(0)
+ fChi2(0),
+ fID(-1) // ID=-1 means the vertex with the biggest number of contributors
{
//
// Constructor for smearing of true position
fCovXZ(0),
fCovYZ(0),
fCovZZ(sigma[2]*sigma[2]),
- fChi2(0)
+ fChi2(0),
+ fID(-1) // ID=-1 means the vertex with the biggest number of contributors
{
//
// Constructor for Pb-Pb
fCovXZ(source.fCovXZ),
fCovYZ(source.fCovYZ),
fCovZZ(source.fCovZZ),
- fChi2(source.fChi2)
+ fChi2(source.fChi2),
+ fID(source.fID)
{
//
// Copy constructor
fCovYZ = source.fCovYZ;
fCovZZ = source.fCovZZ;
fChi2 = source.fChi2;
+ fID = source.fID;
}
return *this;
}
void Reset() { SetToZero(); SetName("Vertex"); }
+ void SetID(Char_t id) {fID=id;}
+ Char_t GetID() const {return fID;}
+
protected:
Double32_t fCovXX,fCovXY,fCovYY,fCovXZ,fCovYZ,fCovZZ; // vertex covariance matrix
Double32_t fSNR[3]; // S/N ratio
Double32_t fChi2; // chi2 of vertex fit
+ Char_t fID; // ID of this vertex within an ESD event
+
private:
void SetToZero();
- ClassDef(AliESDVertex,6) // Class for Primary Vertex
+ ClassDef(AliESDVertex,7) // Class for Primary Vertex
};
#endif
fTRDncls0(0),
fTRDntracklets(0),
fTRDnSlices(0),
- fTRDslices(0x0)
-
+ fTRDslices(0x0),
+ fVertexID(-2) // -2 means an orphan track
{
//
// The default ESD constructor
fTRDncls0(track.fTRDncls0),
fTRDntracklets(track.fTRDntracklets),
fTRDnSlices(track.fTRDnSlices),
- fTRDslices(0x0)
+ fTRDslices(0x0),
+ fVertexID(track.fVertexID)
{
//
//copy constructor
fTRDncls0(0),
fTRDntracklets(0),
fTRDnSlices(0),
- fTRDslices(0x0)
+ fTRDslices(0x0),
+ fVertexID(-2) // -2 means an orphan track
{
//
// ESD track from AliVTrack.
fTRDncls0(0),
fTRDntracklets(0),
fTRDnSlices(0),
- fTRDslices(0x0)
+ fTRDslices(0x0),
+ fVertexID(-2) // -2 means an orphan track
{
//
// ESD track from TParticle
fTRDncls = source.fTRDncls;
fTRDncls0 = source.fTRDncls0;
fTRDntracklets = source.fTRDntracklets;
+ fVertexID = source.fVertexID;
return *this;
}
// reset global track chi2
fGlobalChi2 = 0;
+ fVertexID = -2; // an orphan track
+
delete fFriendTrack; fFriendTrack = 0;
}
//_______________________________________________________________________
if (!fCp->Update(p,c)) {delete fCp; fCp=0; return kFALSE;}
//----------------------------------------
+ fVertexID = vtx->GetID();
if (!cParam) return kTRUE;
void MakeMiniESDtrack();
void SetID(Int_t id) { fID =id;}
Int_t GetID() const { return fID;}
+ void SetVertexID(Char_t id) { fVertexID=id;}
+ Char_t GetVertexID() const { return fVertexID;}
void SetStatus(ULong_t flags) {fFlags|=flags;}
void ResetStatus(ULong_t flags) {fFlags&=~flags;}
Bool_t UpdateTrackParams(const AliKalmanTrack *t, ULong_t flags);
Double32_t *fTRDslices; //[fTRDnSlices]
Char_t fTRDTimBin[kTRDnPlanes]; // Time bin of Max cluster from all six planes
+ Char_t fVertexID; // ID of the primary vertex this track belongs to
private:
AliESDtrack & operator=(const AliESDtrack & );
- ClassDef(AliESDtrack,48) //ESDtrack
+ ClassDef(AliESDtrack,49) //ESDtrack
};
#endif