From 8a553be286118c0e6faaad2ad57f35e9c1d03658 Mon Sep 17 00:00:00 2001 From: hristov Date: Fri, 31 Mar 2006 09:20:04 +0000 Subject: [PATCH] Changes needed to convert AliITSVertexerTrack to AliVertexerTracks (M.Masera) --- STEER/AliESDVertex.cxx | 101 +++++++---------------------------------- STEER/AliESDVertex.h | 23 ++++------ STEER/AliVertex.cxx | 89 ++++++++++++++++++++++++++++++++++++ STEER/AliVertex.h | 53 +++++++++++++++++++++ STEER/AliVertexer.h | 1 - STEER/ESDLinkDef.h | 1 + STEER/libESD.pkg | 2 +- 7 files changed, 168 insertions(+), 102 deletions(-) create mode 100644 STEER/AliVertex.cxx create mode 100644 STEER/AliVertex.h diff --git a/STEER/AliESDVertex.cxx b/STEER/AliESDVertex.cxx index 92459852315..d37ee71e135 100644 --- a/STEER/AliESDVertex.cxx +++ b/STEER/AliESDVertex.cxx @@ -34,15 +34,14 @@ ClassImp(AliESDVertex) //-------------------------------------------------------------------------- AliESDVertex::AliESDVertex() : - TNamed(), + AliVertex(), fCovXX(0.005*0.005), fCovXY(0), fCovYY(0.005*0.005), fCovXZ(0), fCovYZ(0), fCovZZ(5.3*5.3), - fChi2(0), - fNContributors(0) + fChi2(0) { // // Default Constructor, set everything to 0 @@ -53,15 +52,14 @@ AliESDVertex::AliESDVertex() : //-------------------------------------------------------------------------- AliESDVertex::AliESDVertex(Double_t positionZ,Double_t sigmaZ, Int_t nContributors,const Char_t *vtxName) : - TNamed(vtxName,""), + AliVertex(), fCovXX(0.005*0.005), fCovXY(0), fCovYY(0.005*0.005), fCovXZ(0), fCovYZ(0), fCovZZ(sigmaZ*sigmaZ), - fChi2(0), - fNContributors(nContributors) + fChi2(0) { // // Constructor for vertex Z from pixels @@ -70,6 +68,8 @@ AliESDVertex::AliESDVertex(Double_t positionZ,Double_t sigmaZ, SetToZero(); fPosition[2] = positionZ; + SetName(vtxName); + SetNContributors(nContributors); } @@ -77,70 +77,61 @@ AliESDVertex::AliESDVertex(Double_t positionZ,Double_t sigmaZ, AliESDVertex::AliESDVertex(Double_t position[3],Double_t covmatrix[6], Double_t chi2,Int_t nContributors, const Char_t *vtxName) : - TNamed(vtxName,""), + AliVertex(position,0.,nContributors), fCovXX(covmatrix[0]), fCovXY(covmatrix[1]), fCovYY(covmatrix[2]), fCovXZ(covmatrix[3]), fCovYZ(covmatrix[4]), fCovZZ(covmatrix[5]), - fChi2(chi2), - fNContributors(nContributors) + fChi2(chi2) { // // Constructor for vertex in 3D from tracks // SetToZero(); - fPosition[0] = position[0]; - fPosition[1] = position[1]; - fPosition[2] = position[2]; + SetName(vtxName); } //-------------------------------------------------------------------------- AliESDVertex::AliESDVertex(Double_t position[3],Double_t sigma[3], const Char_t *vtxName) : - TNamed(vtxName,""), + AliVertex(position,0.,0), fCovXX(sigma[0]*sigma[0]), fCovXY(0), fCovYY(sigma[1]*sigma[1]), fCovXZ(0), fCovYZ(0), fCovZZ(sigma[2]*sigma[2]), - fChi2(0), - fNContributors(0) + fChi2(0) { // // Constructor for smearing of true position // SetToZero(); - fPosition[0] = position[0]; - fPosition[1] = position[1]; - fPosition[2] = position[2]; + SetName(vtxName); } //-------------------------------------------------------------------------- AliESDVertex::AliESDVertex(Double_t position[3],Double_t sigma[3], Double_t snr[3], const Char_t *vtxName) : - TNamed(vtxName,""), + AliVertex(position,0.,0), fCovXX(sigma[0]*sigma[0]), fCovXY(0), fCovYY(sigma[1]*sigma[1]), fCovXZ(0), fCovYZ(0), fCovZZ(sigma[2]*sigma[2]), - fChi2(0), - fNContributors(0) + fChi2(0) { // // Constructor for Pb-Pb // SetToZero(); - fPosition[0] = position[0]; - fPosition[1] = position[1]; - fPosition[2] = position[2]; + SetName(vtxName); fSNR[0] = snr[0]; fSNR[1] = snr[1]; @@ -154,30 +145,11 @@ void AliESDVertex::SetToZero() { // Set the content of arrays to 0. Used by constructors // for(Int_t i=0; i<3; i++){ - fPosition[i] = 0.; fTruePos[i] = 0; fSNR[i] = 0.; } } //-------------------------------------------------------------------------- -AliESDVertex::~AliESDVertex() { -// -// Destructor -// - -} -//-------------------------------------------------------------------------- -void AliESDVertex::GetXYZ(Double_t position[3]) const { -// -// Return position of the vertex in global frame -// - position[0] = fPosition[0]; - position[1] = fPosition[1]; - position[2] = fPosition[2]; - - return; -} -//-------------------------------------------------------------------------- void AliESDVertex::GetSigmaXYZ(Double_t sigma[3]) const { // // Return errors on vertex position in thrust frame @@ -202,48 +174,7 @@ void AliESDVertex::GetCovMatrix(Double_t covmatrix[6]) const { return; } -//-------------------------------------------------------------------------- -Double_t AliESDVertex::GetXv() const { -// -// Return global x -// - return fPosition[0]; -} -//-------------------------------------------------------------------------- -Double_t AliESDVertex::GetYv() const { -// -// Return global y -// - return fPosition[1]; -} -//-------------------------------------------------------------------------- -Double_t AliESDVertex::GetZv() const { -// -// Return global z -// - return fPosition[2]; -} -//-------------------------------------------------------------------------- -Double_t AliESDVertex::GetXRes() const { -// -// Return error on global x -// - return TMath::Sqrt(fCovXX); -} -//-------------------------------------------------------------------------- -Double_t AliESDVertex::GetYRes() const { -// -// Return error on global y -// - return TMath::Sqrt(fCovYY); -} -//-------------------------------------------------------------------------- -Double_t AliESDVertex::GetZRes() const { -// -// Return error on global z -// - return TMath::Sqrt(fCovZZ); -} + //-------------------------------------------------------------------------- void AliESDVertex::GetSNR(Double_t snr[3]) const { // diff --git a/STEER/AliESDVertex.h b/STEER/AliESDVertex.h index 675a86ec6bb..4a9d1325905 100644 --- a/STEER/AliESDVertex.h +++ b/STEER/AliESDVertex.h @@ -26,10 +26,10 @@ * * *****************************************************************************/ -//---- Root headers ----- -#include -class AliESDVertex : public TNamed { +#include + +class AliESDVertex : public AliVertex { public: @@ -44,20 +44,16 @@ class AliESDVertex : public TNamed { AliESDVertex(Double_t position[3],Double_t sigma[3],Double_t snr[3], const Char_t *vtxName="Vertex"); - virtual ~AliESDVertex(); + virtual ~AliESDVertex(){;} - void GetXYZ(Double_t position[3]) const; void GetSigmaXYZ(Double_t sigma[3]) const; void GetCovMatrix(Double_t covmatrix[6]) const; void GetSNR(Double_t snr[3]) const; - Double_t GetXv() const; - Double_t GetYv() const; - Double_t GetZv() const; - Double_t GetXRes() const; - Double_t GetYRes() const; - Double_t GetZRes() const; + Double_t GetXRes() const {return TMath::Sqrt(fCovXX);} + Double_t GetYRes() const {return TMath::Sqrt(fCovYY);} + Double_t GetZRes() const {return TMath::Sqrt(fCovZZ);} Double_t GetXSNR() const { return fSNR[0]; } Double_t GetYSNR() const { return fSNR[1]; } Double_t GetZSNR() const { return fSNR[2]; } @@ -65,7 +61,6 @@ class AliESDVertex : public TNamed { Double_t GetChi2() const { return fChi2; } Double_t GetChi2toNDF() const { return fChi2/(2.*(Double_t)fNContributors-3.); } - Int_t GetNContributors() const { return fNContributors; } void Print(Option_t* option = "") const; void PrintStatus() const {Print();} @@ -77,18 +72,16 @@ class AliESDVertex : public TNamed { protected: - Double_t fPosition[3]; // vertex position Double_t fCovXX,fCovXY,fCovYY,fCovXZ,fCovYZ,fCovZZ; // vertex covariance matrix Double_t fSNR[3]; // S/N ratio Double_t fChi2; // chi2 of vertex fit - Int_t fNContributors; // # of tracklets/tracks used for the estimate Double_t fTruePos[3]; //true vertex position (for comparison purposes) private: void SetToZero(); - ClassDef(AliESDVertex,4) // Class for Primary Vertex + ClassDef(AliESDVertex,5) // Class for Primary Vertex }; #endif diff --git a/STEER/AliVertex.cxx b/STEER/AliVertex.cxx new file mode 100644 index 00000000000..8584bc3f713 --- /dev/null +++ b/STEER/AliVertex.cxx @@ -0,0 +1,89 @@ +/************************************************************************** + * Copyright(c) 2006-2008, 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. * + **************************************************************************/ + +//----------------------------------------------------------------- +// Implementation of the base Vertex class +// This class contains the Secondary Vertex +// of a set of tracks +// And it is the base class for primary vertices +// Origin: F.Prino, Torino, prino@to.infn.it +//----------------------------------------------------------------- + +#include "AliVertex.h" + + +ClassImp(AliVertex) + +//-------------------------------------------------------------------------- +AliVertex::AliVertex() : TNamed() { +// +// Default Constructor, set everything to 0 +// + for(Int_t k=0;k<3;k++) fPosition[k] = 0; + fSigma = 0; + fNContributors=0; +} + +//-------------------------------------------------------------------------- +AliVertex::AliVertex(Double_t position[3],Double_t dispersion, + Int_t nContributors): TNamed() { + // + // Standard Constructor + // + + for(Int_t k=0;k<3;k++) fPosition[k] = position[k]; + fSigma = dispersion; + fNContributors = nContributors; + SetName("BaseVertex"); + +} + + +//-------------------------------------------------------------------------- +AliVertex::~AliVertex() { +// +// Default Destructor +// + +} +//-------------------------------------------------------------------------- +void AliVertex::GetXYZ(Double_t position[3]) const { +// +// Return position of the vertex in global frame +// + position[0] = fPosition[0]; + position[1] = fPosition[1]; + position[2] = fPosition[2]; + + return; +} +//-------------------------------------------------------------------------- +void AliVertex::Print(Option_t* /*option*/) const { +// +// Print out information on all data members +// + printf("Vertex position:\n"); + printf(" x = %f\n",fPosition[0]); + printf(" y = %f\n",fPosition[1]); + printf(" z = %f\n",fPosition[2]); + printf(" Dispersion = %f\n",fSigma); + printf(" # tracks = %d\n",fNContributors); + + return; +} + + + + diff --git a/STEER/AliVertex.h b/STEER/AliVertex.h new file mode 100644 index 00000000000..c541c5b0c7a --- /dev/null +++ b/STEER/AliVertex.h @@ -0,0 +1,53 @@ +#ifndef ALIVERTEX_H +#define ALIVERTEX_H +/* Copyright(c) 1998-2003, ALICE Experiment at CERN, All rights reserved. * + * See cxx source for full Copyright notice */ + + +//------------------------------------------------------- +// Base Vertex Class +// Used for secondary vertices and as a base class for primary vertices +// Origin: F. Prino, Torino, prino@to.infn.it +//------------------------------------------------------- + + +#include + +class AliVertex : public TNamed { + + public: + + AliVertex(); + AliVertex(Double_t position[3],Double_t dispersion, + Int_t nContributors); + virtual ~AliVertex(); + + + virtual void SetXYZ(Double_t pos[3]) + {for(Int_t j=0; j<3; j++) fPosition[j]=pos[j];} + virtual void SetXv(Double_t xVert) {fPosition[0]=xVert; } + virtual void SetYv(Double_t yVert) {fPosition[1]=yVert; } + virtual void SetZv(Double_t zVert) {fPosition[2]=zVert; } + virtual void SetDispersion(Double_t disp) { fSigma=disp; } + virtual void SetNContributors(Int_t nContr) {fNContributors=nContr; } + + virtual void GetXYZ(Double_t position[3]) const; + virtual Double_t GetXv() const { return fPosition[0]; } + virtual Double_t GetYv() const { return fPosition[1]; } + virtual Double_t GetZv() const { return fPosition[2]; } + virtual Double_t GetDispersion() const { return fSigma; } + virtual Int_t GetNContributors() const { return fNContributors; } + + virtual void Print(Option_t* option = "") const; + + protected: + + Double_t fPosition[3]; // vertex position + Double_t fSigma; // track dispersion around found vertex + Int_t fNContributors; // # of tracklets/tracks used for the estimate + + + ClassDef(AliVertex,1) // Class for Primary Vertex +}; + +#endif diff --git a/STEER/AliVertexer.h b/STEER/AliVertexer.h index 40388ac1962..cb09afcd4d7 100644 --- a/STEER/AliVertexer.h +++ b/STEER/AliVertexer.h @@ -31,7 +31,6 @@ class AliVertexer : public TObject { virtual void SetDebug(Int_t debug = 0); virtual void SetFirstEvent(Int_t ev){fFirstEvent = ev;} virtual void SetLastEvent(Int_t ev){fLastEvent = ev;} - virtual void SetUseV2Clusters(Bool_t choice) = 0; virtual void WriteCurrentVertex() = 0; diff --git a/STEER/ESDLinkDef.h b/STEER/ESDLinkDef.h index 434cc31d984..f767447cf60 100644 --- a/STEER/ESDLinkDef.h +++ b/STEER/ESDLinkDef.h @@ -17,6 +17,7 @@ #pragma link C++ class AliESDHLTtrack+; #pragma link C++ class AliESDv0+; #pragma link C++ class AliESDcascade+; +#pragma link C++ class AliVertex+; #pragma link C++ class AliESDVertex+; #pragma link C++ class AliESDpid+; #pragma link C++ class AliESDkink+; diff --git a/STEER/libESD.pkg b/STEER/libESD.pkg index 75f128a7a4d..559f992a010 100644 --- a/STEER/libESD.pkg +++ b/STEER/libESD.pkg @@ -1,7 +1,7 @@ SRCS = AliESD.cxx \ AliESDtrack.cxx \ AliESDMuonTrack.cxx AliESDPmdTrack.cxx AliESDHLTtrack.cxx \ - AliESDv0.cxx AliESDcascade.cxx AliESDVertex.cxx \ + AliESDv0.cxx AliESDcascade.cxx AliVertex.cxx AliESDVertex.cxx \ AliESDpid.cxx AliESDkink.cxx AliESDV0MI.cxx \ AliESDCaloCluster.cxx \ AliKalmanTrack.cxx AliHelix.cxx AliExternalTrackParam.cxx \ -- 2.39.3