CMS 3D CMS Logo

GammaZInterference.h
Go to the documentation of this file.
1 #ifndef PhysicsTools_Utilities_GammaZInterference_h
2 #define PhysicsTools_Utilities_GammaZInterference_h
4 
5 #include <cmath>
6 
7 namespace funct {
8 
10  GammaZInterference(const Parameter& m, const Parameter& g) : mass(m.ptr()), width(g.ptr()) {}
11  GammaZInterference(std::shared_ptr<double> m, std::shared_ptr<double> g) : mass(m), width(g) {}
12  double operator()(double x) const {
13  double m2 = *mass * (*mass);
14  double g2 = *width * (*width);
15  double g2OverM2 = g2 / m2;
16  double s = x * x;
17  double deltaS = s - m2;
18  double interference = 0;
19  if (fabs(deltaS / m2) < 16) {
20  double prop = deltaS * deltaS + s * s * g2OverM2;
21  interference = 5 * (*mass) * deltaS / prop;
22  }
23  return interference;
24  }
25  std::shared_ptr<double> mass, width;
26  };
27 
28 } // namespace funct
29 
30 #endif
double operator()(double x) const
Definition: Abs.h:5
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
Definition: Activities.doc:4
std::shared_ptr< double > mass
std::shared_ptr< double > width
GammaZInterference(const Parameter &m, const Parameter &g)
GammaZInterference(std::shared_ptr< double > m, std::shared_ptr< double > g)