From 78e0495d1f1a23fdaeb4023e0f72108f1de28dfa Mon Sep 17 00:00:00 2001 From: Vadim Kostyukhin <vkost@cern.ch> Date: Mon, 2 Feb 2015 17:10:50 +0100 Subject: [PATCH] Clean up Coverity issues 14752,13471,12177,12643 (TrkVKalVrtCore-00-03-54) * Remove Coverity issues 14752,13471,12177,12643 * TrkVKalVrtCore-00-03-54 2015-01-23 Vadim Kostyukhin <Vadim.Kostyukhin@cern.ch> * Remove compilation warning * TrkVKalVrtCore-00-03-53 2015-01-23 Vadim Kostyukhin <Vadim.Kostyukhin@cern.ch> * Multiple Coverity issue corrections * TrkVKalVrtCore-00-03-52 --- .../TrkVKalVrtCore/TrkVKalVrtCore/ForCFT.h | 9 ++-- .../TrkVKalVrtCore/TrkVKalVrtCore.h | 3 +- .../TrkVKalVrtCore/TrkVKalVrtCore/WorkArray.h | 21 ++-------- .../TrkVKalVrtCore/cmt/requirements | 3 +- .../TrkVKalVrtCore/src/CFitCascade.cxx | 2 +- .../TrkVKalVrtCore/src/PrCFit.cxx | 1 - .../TrkVKalVrtCore/src/TrkVKalVrtCoreBase.cxx | 35 ++++++++++++++++ .../TrkVKalVrtCore/src/getWorkArray.cxx | 42 ++++++++++++++++++- 8 files changed, 89 insertions(+), 27 deletions(-) diff --git a/Tracking/TrkVertexFitter/TrkVKalVrtCore/TrkVKalVrtCore/ForCFT.h b/Tracking/TrkVertexFitter/TrkVKalVrtCore/TrkVKalVrtCore/ForCFT.h index 2edb91667a5..71ba886053c 100755 --- a/Tracking/TrkVertexFitter/TrkVKalVrtCore/TrkVKalVrtCore/ForCFT.h +++ b/Tracking/TrkVertexFitter/TrkVKalVrtCore/TrkVKalVrtCore/ForCFT.h @@ -41,7 +41,7 @@ namespace Trk { // // temporary vertex in global ref.frame double vrtstp[3]; - long int kfrm, irob; + long int irob; double RobustScale; double robres[NTrkM]; short int indtrkmc[NTrkM*8]; /* was [300][8] */ @@ -49,9 +49,12 @@ namespace Trk { double IterationPrecision; ForCFT(){ - useMassCnst=0; usePhiCnst=0; useThetaCnst=0; usePointingCnst=0; + nmcnst=0; + useMassCnst=0; usePhiCnst=0; useThetaCnst=0; usePointingCnst=0; usePlaneCnst=0; useAprioriVrt=0; usePassNear=0; icht=0; Ap=Bp=Dp=Cp=0.; - IterationNumber = 100; IterationPrecision=1.e-3; RobustScale = 1.; irob=0;}; + IterationNumber = 100; IterationPrecision=1.e-3; RobustScale = 1.; irob=0; + localbmag=2.0; // Safety: standard magnetic field in ID + }; ~ForCFT(){}; }; diff --git a/Tracking/TrkVertexFitter/TrkVKalVrtCore/TrkVKalVrtCore/TrkVKalVrtCore.h b/Tracking/TrkVertexFitter/TrkVKalVrtCore/TrkVKalVrtCore/TrkVKalVrtCore.h index 40bd54a6286..cd91cb3f40a 100755 --- a/Tracking/TrkVertexFitter/TrkVKalVrtCore/TrkVKalVrtCore/TrkVKalVrtCore.h +++ b/Tracking/TrkVertexFitter/TrkVKalVrtCore/TrkVKalVrtCore/TrkVKalVrtCore.h @@ -117,7 +117,8 @@ namespace Trk { public: VKVertex(); ~VKVertex(); - VKVertex(const VKVertex & src); //copy + VKVertex(const VKVertex & src); //copy + VKVertex& operator= (const VKVertex & src); //assign public: // Relative coordinates with respect to refIterV[] double Chi2; // vertex Chi2 diff --git a/Tracking/TrkVertexFitter/TrkVKalVrtCore/TrkVKalVrtCore/WorkArray.h b/Tracking/TrkVertexFitter/TrkVKalVrtCore/TrkVKalVrtCore/WorkArray.h index 7a4fe8276dc..f3a088a590a 100755 --- a/Tracking/TrkVertexFitter/TrkVKalVrtCore/TrkVKalVrtCore/WorkArray.h +++ b/Tracking/TrkVertexFitter/TrkVKalVrtCore/TrkVKalVrtCore/WorkArray.h @@ -30,37 +30,22 @@ namespace Trk { public: vkalDynamicArrays(long int NTrkMax); + vkalDynamicArrays(const vkalDynamicArrays& ); //copy + vkalDynamicArrays& operator=(const vkalDynamicArrays& ); //assign ~vkalDynamicArrays(); - double *get_tt() const; - double *get_part() const; - double *get_parf0() const; - double *get_scale() const; double *get_dphi() const; - double *get_eps() const; double *get_deps() const; double *get_drho() const; double *get_dtet() const; - double *get_phip() const; - double *get_phiv() const; - double *get_zp() const; double *get_dzp() const; - double *get_drdp() const; private: - double *tt; - double *part; - double *parf0; - double *scale; double *dphi; - double *eps; double *deps; double *drho; double *dtet; - double *phip; - double *phiv; - double *zp; double *dzp; - double *drdp; + long int NSIZE; }; } diff --git a/Tracking/TrkVertexFitter/TrkVKalVrtCore/cmt/requirements b/Tracking/TrkVertexFitter/TrkVKalVrtCore/cmt/requirements index 25382f621c6..18439e1cbef 100755 --- a/Tracking/TrkVertexFitter/TrkVKalVrtCore/cmt/requirements +++ b/Tracking/TrkVertexFitter/TrkVKalVrtCore/cmt/requirements @@ -12,5 +12,4 @@ apply_pattern installed_library private -###macro_append cppflags "" Linux " -pg" -###macro_append cpplinkflags "" Linux " -pg" +#macro_append cppflags " -pedantic-errors" diff --git a/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/CFitCascade.cxx b/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/CFitCascade.cxx index d3970cf8ecb..0f00d5eadff 100755 --- a/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/CFitCascade.cxx +++ b/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/CFitCascade.cxx @@ -292,7 +292,7 @@ int fitVertexCascade( VKVertex * vk, int Pointing) // // Now standard fit without pointing in cascade but WITH pointing to PV if present // - double Chi2Old=0.,Chi2Cur; + double Chi2Old=0.,Chi2Cur=0.; for(Iter=0; Iter<100; Iter++){ Chi2Cur=0.; for(iv=0; iv<cascadeEvent_.cascadeNV; iv++){ diff --git a/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/PrCFit.cxx b/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/PrCFit.cxx index 21d8400bacf..6ee9132fbaf 100755 --- a/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/PrCFit.cxx +++ b/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/PrCFit.cxx @@ -107,7 +107,6 @@ void prcfit( long int *ntrk, double *wm, double *wmfit, double *bmag, double forcft_1.covvrt[3] = vrte[3]; forcft_1.covvrt[4] = vrte[4]; forcft_1.covvrt[5] = vrte[5]; - forcft_1.kfrm = 0; forcft_1.irob = 0; forcft_1.IterationNumber = 50; forcft_1.IterationPrecision = 1.e-3; diff --git a/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/TrkVKalVrtCoreBase.cxx b/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/TrkVKalVrtCoreBase.cxx index 2851ce09bbc..90f180564d3 100755 --- a/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/TrkVKalVrtCoreBase.cxx +++ b/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/TrkVKalVrtCoreBase.cxx @@ -127,6 +127,41 @@ namespace Trk { for( int i=0; i<(int)src.TrackList.size(); i++) TrackList.push_back( new VKTrack(*(src.TrackList[i])) ); } + VKVertex& VKVertex::operator= (const VKVertex & src) //Assignment operator + { + if (this!=&src){ + Chi2=src.Chi2; // vertex Chi2 + useApriorVertex=src.useApriorVertex; //for a priory vertex position knowledge usage + passNearVertex=src.passNearVertex; // needed for "passing near vertex" constraint + passWithTrkCov=src.passWithTrkCov; // Vertex, CovVertex, Charge and derivatives + FVC=src.FVC; + for( int i=0; i<6; i++) { + fitVcov[i] =src.fitVcov[i]; // range[0:5] + apriorVWGT[i] =src.apriorVWGT[i]; + if(i>=3) continue; + fitV[i] =src.fitV[i]; // range[0:2] + iniV[i] =src.iniV[i]; + cnstV[i] =src.cnstV[i]; + refIterV[i]=src.refIterV[i]; + refV[i] =src.refV[i]; + apriorV[i] =src.apriorV[i]; + fitMom[i] = src.fitMom[i]; + } + for( int i=0; i<21; i++){ + savedVrtMomCov[i]=src.savedVrtMomCov[i]; + fitCovXYZMom[i]=src.fitCovXYZMom[i]; + } + nextCascadeVrt = 0; + //----- Creation of track copies + TrackList.clear(); + tmpArr.clear(); + ConstraintList.clear(); + for( int i=0; i<(int)src.TrackList.size(); i++) TrackList.push_back( new VKTrack(*(src.TrackList[i])) ); + //for( int i=0; i<(int)src.ConstraintList.size(); i++) ConstraintList.push_back( new (*(src.TrackList[i])) ); + } + return *this; + } + TWRK::TWRK(){} TWRK::~TWRK(){} diff --git a/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/getWorkArray.cxx b/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/getWorkArray.cxx index cf7ce15b69c..4ee926d9142 100755 --- a/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/getWorkArray.cxx +++ b/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/getWorkArray.cxx @@ -7,7 +7,7 @@ namespace Trk { vkalDynamicArrays::vkalDynamicArrays(long int NTrkMax ) { - + NSIZE = NTrkMax; dphi = new double[NTrkMax]; deps = new double[NTrkMax]; drho = new double[NTrkMax]; @@ -15,6 +15,46 @@ vkalDynamicArrays::vkalDynamicArrays(long int NTrkMax ) { dzp = new double[NTrkMax]; } +vkalDynamicArrays::vkalDynamicArrays(const vkalDynamicArrays & src ) { //copy + NSIZE=src.NSIZE; + dphi = new double[NSIZE]; + deps = new double[NSIZE]; + drho = new double[NSIZE]; + dtet = new double[NSIZE]; + dzp = new double[NSIZE]; + for(int i=0; i<NSIZE; i++){ + dphi[i]=src.dphi[i]; + deps[i]=src.deps[i]; + drho[i]=src.drho[i]; + dtet[i]=src.dtet[i]; + dzp[i] =src.dzp[i]; + } +} + +vkalDynamicArrays& vkalDynamicArrays::operator= (const vkalDynamicArrays & src ) { //assignment + if (this!=&src) { + NSIZE=src.NSIZE; + if(dphi) delete[] dphi; + if(deps) delete[] deps; + if(drho) delete[] drho; + if(dtet) delete[] dtet; + if(dzp) delete[] dzp; + dphi = new double[NSIZE]; + deps = new double[NSIZE]; + drho = new double[NSIZE]; + dtet = new double[NSIZE]; + dzp = new double[NSIZE]; + for(int i=0; i<NSIZE; i++){ + dphi[i]=src.dphi[i]; + deps[i]=src.deps[i]; + drho[i]=src.drho[i]; + dtet[i]=src.dtet[i]; + dzp[i] =src.dzp[i]; + } + } + return *this; +} + vkalDynamicArrays::~vkalDynamicArrays() { delete[] dphi; delete[] deps; -- GitLab