CMS 3D CMS Logo

JetConvergenceDistance.cc
Go to the documentation of this file.
1 #include <cmath>
2 #include <cassert>
3 
5 
6 namespace fftjetcms {
8  : etaBw_(sqrt(etaToPhiBandwidthRatio)), phiBw_(1.0 / etaBw_), ptBw_(relativePtBandwidth) {
11  }
12 
13  double JetConvergenceDistance::operator()(const fftjet::RecombinedJet<VectorLike>& j1,
14  const fftjet::RecombinedJet<VectorLike>& j2) const {
15  const double deta = (j1.vec().Eta() - j2.vec().Eta()) / etaBw_;
16  double dphi = j1.vec().Phi() - j2.vec().Phi();
17  if (dphi > M_PI)
18  dphi -= (2.0 * M_PI);
19  else if (dphi < -M_PI)
20  dphi += (2.0 * M_PI);
21  dphi /= phiBw_;
22  const double mag1 = j1.magnitude();
23  const double mag2 = j2.magnitude();
24  double dmag = 0.0;
25  if (mag1 > 0.0 || mag2 > 0.0)
26  dmag = 2.0 * (mag1 - mag2) / (mag1 + mag2) / ptBw_;
27  return sqrt(deta * deta + dphi * dphi + dmag * dmag);
28  }
29 } // namespace fftjetcms
fftjetcommon_cfi.relativePtBandwidth
relativePtBandwidth
Definition: fftjetcommon_cfi.py:223
fftjetcms
Definition: AbsPileupCalculator.h:15
fftjetcms::JetConvergenceDistance::ptBw_
double ptBw_
Definition: JetConvergenceDistance.h:22
cms::cuda::assert
assert(be >=bs)
fftjetcms::JetConvergenceDistance::phiBw_
double phiBw_
Definition: JetConvergenceDistance.h:21
fftjetcms::JetConvergenceDistance::operator()
double operator()(const fftjet::RecombinedJet< VectorLike > &jet1, const fftjet::RecombinedJet< VectorLike > &jet2) const override
Definition: JetConvergenceDistance.cc:13
JetConvergenceDistance.h
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
mag2
T mag2() const
The vector magnitude squared. Equivalent to vec.dot(vec)
Definition: Basic3DVectorLD.h:124
M_PI
#define M_PI
Definition: BXVectorInputProducer.cc:49
fftjetcms::JetConvergenceDistance::etaBw_
double etaBw_
Definition: JetConvergenceDistance.h:20
fftjetcommon_cfi.etaToPhiBandwidthRatio
etaToPhiBandwidthRatio
Definition: fftjetcommon_cfi.py:177
fftjetcms::JetConvergenceDistance::JetConvergenceDistance
JetConvergenceDistance()=delete