11#ifndef FOURMOMUTILS_XAODP4HELPERS_H
12#define FOURMOMUTILS_XAODP4HELPERS_H
41 return p1.rapidity() - p2.rapidity();
56 return p1.eta() - p2.eta();
111 double deltaR2(
double rapidity1,
double phi1,
double rapidity2,
double phi2 )
114 const double dRapidity = rapidity1-rapidity2;
115 return dRapidity*dRapidity + dPhi*dPhi;
150 double deltaR(
double rapidity1,
double phi1,
double rapidity2,
double phi2 )
175 double dR,
bool useRapidity=
true )
182 const double deltaR2 = dRapidity*dRapidity + dPhi*dPhi;
189 const double deltaR2 = dEta*dEta + dPhi*dPhi;
201 const double absPA = std::abs( pA.
p4().P() );
202 const double absPB = std::abs( pB.
p4().P() );
203 return absPA - absPB;
Class providing the definition of the 4-vector interface.
virtual double eta() const =0
The pseudorapidity ( ) of the particle.
virtual FourMom_t p4() const =0
The full 4-momentum of the particle.
virtual double rapidity() const =0
The true rapidity (y) of the particle.
virtual double phi() const =0
The azimuthal angle ( ) of the particle.
std::vector< std::string > remainder(const std::vector< std::string > &v1, const std::vector< std::string > &v2)
Workaround x86 precision issues for FP inequality comparisons.
bool greater(double a, double b)
Compare two FP numbers, working around x87 precision issues.
P4Helpers provides static helper functions for kinematic calculation on objects deriving from I4Momen...
double deltaPhi(double phiA, double phiB)
delta Phi in range [-pi,pi[
double deltaRapidity(const xAOD::IParticle &p1, const xAOD::IParticle &p2)
Computes efficiently .
double deltaAbsP(const xAOD::IParticle &pA, const xAOD::IParticle &pB)
Get the delta-| | between two particles.
bool isInDeltaR(const xAOD::IParticle &p1, const xAOD::IParticle &p2, double dR, bool useRapidity=true)
Check if 2 xAOD::IParticle are in a cone.
double deltaR(double rapidity1, double phi1, double rapidity2, double phi2)
from bare bare rapidity,phi
double deltaEta(const xAOD::IParticle &p1, const xAOD::IParticle &p2)
Computes efficiently .
double deltaR2(double rapidity1, double phi1, double rapidity2, double phi2)
from bare rapidity,phi
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
MissingET_v1 MissingET
Version control by type defintion.
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setInterceptInner setEtaMap setEtaBin setIsTgcFailure setDeltaPt deltaPhi