diff --git a/InnerDetector/InDetRecTools/InDetConversionFinderTools/InDetConversionFinderTools/ConversionPostSelector.h b/InnerDetector/InDetRecTools/InDetConversionFinderTools/InDetConversionFinderTools/ConversionPostSelector.h index bb6bf8caf93a0f188759b094f3e2341ed91e2bf3..44c223cc4f9617bdd2ea3fafaecdfc78d0d40a0b 100644 --- a/InnerDetector/InDetRecTools/InDetConversionFinderTools/InDetConversionFinderTools/ConversionPostSelector.h +++ b/InnerDetector/InDetRecTools/InDetConversionFinderTools/InDetConversionFinderTools/ConversionPostSelector.h @@ -6,9 +6,17 @@ #define INDETCONVERSIONFINDERTOOLS_CONVERSIONPOSTSELECTOR_H #include "AthenaBaseComps/AthAlgTool.h" -#include "TrkParameters/TrackParameters.h" -#include "TrkEventPrimitives/ParticleHypothesis.h" +#include "TrkEventPrimitives/ParticleHypothesis.h" //ParticleMasses struct +#include "TrkParameters/TrackParameters.h" //typedef #include "xAODTracking/VertexFwd.h" +#include "GeoPrimitives/GeoPrimitives.h" //Amg::Vector3D typedef +#include <vector> + + + +namespace CLHEP{ + class HepLorentzVector; +} namespace InDet { diff --git a/InnerDetector/InDetRecTools/InDetConversionFinderTools/src/ConversionPostSelector.cxx b/InnerDetector/InDetRecTools/InDetConversionFinderTools/src/ConversionPostSelector.cxx index 32a2548074548e4e5246749bf6ab6be0b0b1d0ad..b5c87d88fc1e147fcc6a4d1558341bc40a0b00e1 100644 --- a/InnerDetector/InDetRecTools/InDetConversionFinderTools/src/ConversionPostSelector.cxx +++ b/InnerDetector/InDetRecTools/InDetConversionFinderTools/src/ConversionPostSelector.cxx @@ -11,13 +11,14 @@ changes : ***************************************************************************/ #include "InDetConversionFinderTools/ConversionPostSelector.h" - #include "xAODTracking/TrackParticle.h" #include "xAODTracking/Vertex.h" +#include "CLHEP/Vector/LorentzVector.h" +#include <cmath> -using CLHEP::HepLorentzVector; -using CLHEP::pi; -using CLHEP::twopi; +namespace{ + constexpr double twopi{2.*M_PI}; +} namespace InDet { @@ -135,17 +136,17 @@ namespace InDet { const Trk::TrackParameters& perigee2 = *(trkAtVx[1].perigeeAtVertex()); //invariant mass - HepLorentzVector momentum; + CLHEP::HepLorentzVector momentum; Amg::Vector3D sum_mom = perigee1.momentum() + perigee2.momentum(); - double m2 = pow(ConversionPostSelector::s_particleMasses.mass[Trk::electron],2); - double ee = sqrt(m2 + perigee1.momentum().mag2()) + sqrt(m2 + perigee2.momentum().mag2()); + double m2 = std::pow(ConversionPostSelector::s_particleMasses.mass[Trk::electron],2); + double ee = std::sqrt(m2 + perigee1.momentum().mag2()) + std::sqrt(m2 + perigee2.momentum().mag2()); momentum.setPx(sum_mom.x()); momentum.setPy(sum_mom.y()); momentum.setPz(sum_mom.z()); momentum.setE(ee); double inv_mass = momentum.m(); - double photonP = sqrt(momentum.x()*momentum.x() + momentum.y()*momentum.y()); + double photonP = std::sqrt(momentum.x()*momentum.x() + momentum.y()*momentum.y()); double pt1 = perigee1.pT(); double pt2 = perigee2.pT(); if (pt1<m_minPt || pt2<m_minPt) pass = false; - if (fabs(inv_mass) > invMassCut) pass = false; + if (std::fabs(inv_mass) > invMassCut) pass = false; if (photonP < fitMomentum) pass = false; double fR = 1000.; @@ -158,14 +159,14 @@ namespace InDet { if(flag==1 && fR-vtxR<m_maxdR) pass = false; double PhiVtxTrk = vertex->position().phi() - perigee1.parameters()[Trk::phi0]; - if (PhiVtxTrk < -pi) PhiVtxTrk += twopi; - if (PhiVtxTrk > pi) PhiVtxTrk -= twopi; - if (fabs(PhiVtxTrk)>m_maxPhiVtxTrk) pass = false; + if (PhiVtxTrk < -M_PI) PhiVtxTrk += twopi; + if (PhiVtxTrk > M_PI) PhiVtxTrk -= twopi; + if (std::fabs(PhiVtxTrk)>m_maxPhiVtxTrk) pass = false; if (pass && m_decorateVertices) { ATH_MSG_DEBUG("Decorating vertex with values used in post selector"); - decorateVertex(*vertex, inv_mass, pt1, pt2, fR, fabs(PhiVtxTrk) ); + decorateVertex(*vertex, inv_mass, pt1, pt2, fR, std::fabs(PhiVtxTrk) ); } } @@ -239,58 +240,58 @@ namespace InDet { if(flag==1 && fR-vtxR<m_maxdR) pass = false; //invariant mass. First assume K0, if failed assume Lambda - HepLorentzVector momentumK0 = fourP(perigee1,perigee2,m_massK0,false); + CLHEP::HepLorentzVector momentumK0 = fourP(perigee1,perigee2,m_massK0,false); double inv_massK0 = momentumK0.m(); - if (fabs(inv_massK0-m_massK0) <= m_nsig*m_sigmaK0) isK0 = true; - HepLorentzVector momentumL = fourP(perigee1,perigee2,m_massLambda,false); + if (std::fabs(inv_massK0-m_massK0) <= m_nsig*m_sigmaK0) isK0 = true; + CLHEP::HepLorentzVector momentumL = fourP(perigee1,perigee2,m_massLambda,false); double inv_massL = momentumL.m(); - if (fabs(inv_massL-m_massLambda) <= m_nsig*m_sigmaLambda) isLambda = true; - HepLorentzVector momentumLb = fourP(perigee1,perigee2,m_massLambda,true); + if (std::fabs(inv_massL-m_massLambda) <= m_nsig*m_sigmaLambda) isLambda = true; + CLHEP::HepLorentzVector momentumLb = fourP(perigee1,perigee2,m_massLambda,true); double inv_massLb = momentumLb.m(); - if (fabs(inv_massLb-m_massLambda) <= m_nsig*m_sigmaLambda) isLambdaBar = true; + if (std::fabs(inv_massLb-m_massLambda) <= m_nsig*m_sigmaLambda) isLambdaBar = true; if (!isLambdaBar && !isLambda && !isK0) pass = false; - HepLorentzVector momentum; + CLHEP::HepLorentzVector momentum; if(isK0 && isLambda && !isLambdaBar) {momentum = momentumK0; kind = 110;} if(isK0 && isLambdaBar && !isLambda) {momentum = momentumK0; kind = 101;} if(isK0 && !isLambda && !isLambdaBar) {momentum = momentumK0; kind = 100;} if(!isK0 && isLambda && !isLambdaBar) {momentum = momentumL; kind = 10;} if(!isK0 && isLambdaBar && !isLambda) {momentum = momentumLb; kind = 1;} if(!isK0 && isLambda && isLambdaBar) {momentum = momentumL; kind = 11;} - double particleP = sqrt(momentum.x()*momentum.x() + momentum.y()*momentum.y()); + double particleP = std::sqrt(momentum.x()*momentum.x() + momentum.y()*momentum.y()); if (particleP < fitMomentum) pass = false; } type = kind; return pass; } - HepLorentzVector ConversionPostSelector:: - fourP(const Trk::TrackParameters& per1,const Trk::TrackParameters& per2,double mass, bool isBar){ - HepLorentzVector momentum; + CLHEP::HepLorentzVector + ConversionPostSelector::fourP(const Trk::TrackParameters& per1,const Trk::TrackParameters& per2,double mass, bool isBar){ + CLHEP::HepLorentzVector momentum; Amg::Vector3D sum_mom = per1.momentum() + per2.momentum(); double mp1 = 0.; double mp2 = 0.; if(mass==m_massK0) { - mp1 = pow(ConversionPostSelector::s_particleMasses.mass[Trk::pion],2); - mp2 = pow(ConversionPostSelector::s_particleMasses.mass[Trk::pion],2); + mp1 = std::pow(ConversionPostSelector::s_particleMasses.mass[Trk::pion],2); + mp2 = std::pow(ConversionPostSelector::s_particleMasses.mass[Trk::pion],2); }else{ if(!isBar){ if(per1.charge()>0) { - mp1 = pow(ConversionPostSelector::s_particleMasses.mass[Trk::proton],2); - mp2 = pow(ConversionPostSelector::s_particleMasses.mass[Trk::pion],2); + mp1 = std::pow(ConversionPostSelector::s_particleMasses.mass[Trk::proton],2); + mp2 = std::pow(ConversionPostSelector::s_particleMasses.mass[Trk::pion],2); } else { - mp2 = pow(ConversionPostSelector::s_particleMasses.mass[Trk::proton],2); - mp1 = pow(ConversionPostSelector::s_particleMasses.mass[Trk::pion],2); + mp2 = std::pow(ConversionPostSelector::s_particleMasses.mass[Trk::proton],2); + mp1 = std::pow(ConversionPostSelector::s_particleMasses.mass[Trk::pion],2); } }else{ if(per1.charge()>0) { - mp1 = pow(ConversionPostSelector::s_particleMasses.mass[Trk::pion],2); - mp2 = pow(ConversionPostSelector::s_particleMasses.mass[Trk::proton],2); + mp1 = std::pow(ConversionPostSelector::s_particleMasses.mass[Trk::pion],2); + mp2 = std::pow(ConversionPostSelector::s_particleMasses.mass[Trk::proton],2); } else { - mp2 = pow(ConversionPostSelector::s_particleMasses.mass[Trk::pion],2); - mp1 = pow(ConversionPostSelector::s_particleMasses.mass[Trk::proton],2); + mp2 = std::pow(ConversionPostSelector::s_particleMasses.mass[Trk::pion],2); + mp1 = std::pow(ConversionPostSelector::s_particleMasses.mass[Trk::proton],2); } } } - double ee = sqrt(mp1 + per1.momentum().mag2()) + sqrt(mp2 + per2.momentum().mag2()); + double ee = std::sqrt(mp1 + per1.momentum().mag2()) + std::sqrt(mp2 + per2.momentum().mag2()); momentum.setPx(sum_mom.x()); momentum.setPy(sum_mom.y()); momentum.setPz(sum_mom.z()); momentum.setE(ee); return momentum; }