From c1b20d3188a9e00ef1ba7308a905a6edea3886fd Mon Sep 17 00:00:00 2001 From: belikov Date: Fri, 20 Oct 2006 07:53:49 +0000 Subject: [PATCH] Adding the indices of the tracks used for the vertex reconstruction (A.Dainese) --- STEER/AliVertex.cxx | 44 ++++++++++++++++++++++++++++++++++++++++---- STEER/AliVertex.h | 14 +++++++++++--- 2 files changed, 51 insertions(+), 7 deletions(-) diff --git a/STEER/AliVertex.cxx b/STEER/AliVertex.cxx index be23abf946c..32e92ff27fe 100644 --- a/STEER/AliVertex.cxx +++ b/STEER/AliVertex.cxx @@ -30,12 +30,14 @@ ClassImp(AliVertex) AliVertex::AliVertex() : TNamed(), fSigma(0), - fNContributors(0) + fNContributors(0), + fNIndices(0) { // // Default Constructor, set everything to 0 // for(Int_t k=0;k<3;k++) fPosition[k] = 0; + fIndices = 0; } //-------------------------------------------------------------------------- @@ -43,13 +45,15 @@ AliVertex::AliVertex(Double_t position[3],Double_t dispersion, Int_t nContributors): TNamed(), fSigma(dispersion), - fNContributors(nContributors) + fNContributors(nContributors), + fNIndices(0) { // // Standard Constructor // for(Int_t k=0;k<3;k++) fPosition[k] = position[k]; + fIndices = 0; SetName("BaseVertex"); } @@ -58,12 +62,17 @@ AliVertex::AliVertex(Double_t position[3],Double_t dispersion, AliVertex::AliVertex(const AliVertex &source): TNamed(source), fSigma(source.GetDispersion()), - fNContributors(source.GetNContributors()) + fNContributors(source.GetNContributors()), + fNIndices(source.GetNIndices()) { // // Copy constructor // for(Int_t i=0;i<3;i++)fPosition[i] = source.fPosition[i]; + if(source.fNIndices>0) { + fIndices = new UShort_t[fNIndices]; + memcpy(fIndices,source.fIndices,fNIndices*sizeof(UShort_t)); + } } //-------------------------------------------------------------------------- @@ -77,6 +86,11 @@ AliVertex &AliVertex::operator=(const AliVertex &source){ for(Int_t i=0;i<3;i++)fPosition[i] = source.fPosition[i]; fSigma = source.GetDispersion(); fNContributors = source.GetNContributors(); + fNIndices = source.GetNIndices(); + if(source.fNIndices>0) { + fIndices = new UShort_t[fNIndices]; + memcpy(fIndices,source.fIndices,fNIndices*sizeof(UShort_t)); + } return *this; } @@ -86,7 +100,7 @@ AliVertex::~AliVertex() { // // Default Destructor // - + delete [] fIndices; } //-------------------------------------------------------------------------- void AliVertex::GetXYZ(Double_t position[3]) const { @@ -100,6 +114,28 @@ void AliVertex::GetXYZ(Double_t position[3]) const { return; } //-------------------------------------------------------------------------- +void AliVertex::SetIndices(Int_t nindices,UShort_t *indices) { +// +// Set indices of tracks used for vertex determination +// + if(fNContributors<1) { printf("fNContributors<1"); return; } + fNIndices = nindices; + fIndices = new UShort_t[fNIndices]; + for(Int_t i=0;i0) + for(Int_t i=0;i