8#ifndef COLUMNAR_CORE_MOMENTUM_HELPERS_H
9#define COLUMNAR_CORE_MOMENTUM_HELPERS_H
31 template<ContainerIdConcept CI1,ContainerIdConcept CI2,
typename CM>
37 return momAcc1.
eta(p1) - momAcc2.
eta(p2);
45 template<ContainerIdConcept CI1,ContainerIdConcept CI2,
typename CM>
47 double dR,
bool useRapidity=
true )
51 const double dRapidity = std::abs(
deltaRapidity(momAcc1,p1,momAcc2,p2,useRapidity) );
53 const double deltaR2 = dRapidity*dRapidity + dPhi*dPhi;
a handle to hold a IMomentumAccessors object
double rapidity(ObjectId< CI, CM > object) const
double phi(ObjectId< CI, CM > object) const
double eta(ObjectId< CI, CM > object) const
a class representing a single object (electron, muons, etc.)
std::vector< std::string > remainder(const std::vector< std::string > &v1, const std::vector< std::string > &v2)
bool greater(double a, double b)
Compare two FP numbers, working around x87 precision issues.
double deltaPhi(double phiA, double phiB)
delta Phi in range [-pi,pi[
bool isInDeltaR(const MomentumAccessors< CI1, CM > &momAcc1, ObjectId< CI1, CM > p1, const MomentumAccessors< CI2, CM > &momAcc2, ObjectId< CI2, CM > p2, double dR, bool useRapidity=true)
Check if 2 particles are in a cone.
double deltaRapidity(const MomentumAccessors< CI1, CM > &momAcc1, ObjectId< CI1, CM > p1, const MomentumAccessors< CI2, CM > &momAcc2, ObjectId< CI2, CM > p2, bool useRapidity=true)
Computes efficiently .
double deltaPhi(double phiA, double phiB)
delta Phi in range [-pi,pi[