CMS 3D CMS Logo

Davismt2.h
Go to the documentation of this file.
1 #ifndef PhysicsTools_Heppy_Davismt2_h
2 #define PhysicsTools_Heppy_Davismt2_h
3 
4 #include <iostream>
5 #include <cmath>
6 #include "TObject.h"
7 
8 // using namespace std;
9 
10 namespace heppy {
11 
12  class Davismt2 {
13  // class Davismt2 : public TObject {
14  public:
15  static const float RELATIVE_PRECISION;
16  static const float ABSOLUTE_PRECISION;
17  static const float MIN_MASS;
18  static const float ZERO_MASS;
19  static const float SCANSTEP;
20 
21  Davismt2();
22  virtual ~Davismt2();
23  void mt2_bisect();
24  void mt2_massless();
25  void set_momenta(double *pa0, double *pb0, double *pmiss0);
26  void set_mn(double mn);
27  inline void set_verbose(int vlevel) { verbose = vlevel; };
28  double get_mt2();
29  void print();
30  int nevt;
31 
32  private:
33  int verbose;
34  bool solved;
36  double mt2_b;
37 
38  int nsols(double Dsq);
39  int nsols_massless(double Dsq);
40  //inline
41  int signchange_n(long double t1, long double t2, long double t3, long double t4, long double t5);
42  //inline
43  int signchange_p(long double t1, long double t2, long double t3, long double t4, long double t5);
44  int scan_high(double &Deltasq_high);
45  int find_high(double &Deltasq_high);
46  //data members
47  double pax, pay, ma, Ea;
48  double pmissx, pmissy;
49  double pbx, pby, mb, Eb;
50  double mn, mn_unscale;
51 
52  //auxiliary definitions
53  double masq, Easq;
54  double mbsq, Ebsq;
55  double pmissxsq, pmissysq;
56  double mnsq;
57 
58  //auxiliary coefficients
59  double a1, b1, c1, a2, b2, c2, d1, e1, f1, d2, e2, f2;
60  double d11, e11, f12, f10, d21, d20, e21, e20, f22, f21, f20;
61 
62  double scale;
63  double precision;
64  // ClassDef(Davismt2,1)
65  };
66 } // namespace heppy
67 
68 #endif
heppy::Davismt2::pbx
double pbx
Definition: Davismt2.h:49
heppy::Davismt2::d2
double d2
Definition: Davismt2.h:59
RandomServiceHelper.t2
t2
Definition: RandomServiceHelper.py:257
heppy::Davismt2::mn_unscale
double mn_unscale
Definition: Davismt2.h:50
heppy::Davismt2::set_verbose
void set_verbose(int vlevel)
Definition: Davismt2.h:27
heppy::Davismt2::Eb
double Eb
Definition: Davismt2.h:49
heppy::Davismt2::mn
double mn
Definition: Davismt2.h:50
heppy::Davismt2::mb
double mb
Definition: Davismt2.h:49
heppy::Davismt2::mnsq
double mnsq
Definition: Davismt2.h:56
heppy::Davismt2::solved
bool solved
Definition: Davismt2.h:34
heppy::Davismt2::nevt
int nevt
Definition: Davismt2.h:30
heppy::Davismt2::f12
double f12
Definition: Davismt2.h:60
heppy::Davismt2::a2
double a2
Definition: Davismt2.h:59
heppy::Davismt2::e1
double e1
Definition: Davismt2.h:59
heppy::Davismt2::f2
double f2
Definition: Davismt2.h:59
heppy::Davismt2::f1
double f1
Definition: Davismt2.h:59
heppy::Davismt2::momenta_set
bool momenta_set
Definition: Davismt2.h:35
heppy::Davismt2::MIN_MASS
static const float MIN_MASS
Definition: Davismt2.h:17
heppy::Davismt2::find_high
int find_high(double &Deltasq_high)
Definition: Davismt2.cc:511
heppy::Davismt2::Ea
double Ea
Definition: Davismt2.h:47
heppy::Davismt2::SCANSTEP
static const float SCANSTEP
Definition: Davismt2.h:19
heppy::Davismt2::pmissy
double pmissy
Definition: Davismt2.h:48
heppy::Davismt2
Definition: Davismt2.h:12
heppy::Davismt2::a1
double a1
Definition: Davismt2.h:59
heppy::Davismt2::pby
double pby
Definition: Davismt2.h:49
RandomServiceHelper.t1
t1
Definition: RandomServiceHelper.py:256
heppy::Davismt2::Davismt2
Davismt2()
Definition: Davismt2.cc:49
heppy::Davismt2::set_momenta
void set_momenta(double *pa0, double *pb0, double *pmiss0)
Definition: Davismt2.cc:70
heppy::Davismt2::e11
double e11
Definition: Davismt2.h:60
heppy::Davismt2::d1
double d1
Definition: Davismt2.h:59
heppy::Davismt2::ma
double ma
Definition: Davismt2.h:47
heppy::Davismt2::c1
double c1
Definition: Davismt2.h:59
heppy::Davismt2::RELATIVE_PRECISION
static const float RELATIVE_PRECISION
Definition: Davismt2.h:15
RandomServiceHelper.t3
t3
Definition: RandomServiceHelper.py:258
heppy::Davismt2::d11
double d11
Definition: Davismt2.h:60
heppy
TAKEN FROM http://cmssw.cvs.cern.ch/cgi-bin/cmssw.cgi/CMSSW/ElectroWeakAnalysis/Utilities/src/PdfWeig...
Definition: AlphaT.h:16
heppy::Davismt2::pmissx
double pmissx
Definition: Davismt2.h:48
heppy::Davismt2::Easq
double Easq
Definition: Davismt2.h:53
heppy::Davismt2::e21
double e21
Definition: Davismt2.h:60
heppy::Davismt2::nsols_massless
int nsols_massless(double Dsq)
Definition: Davismt2.cc:298
heppy::Davismt2::e2
double e2
Definition: Davismt2.h:59
heppy::Davismt2::print
void print()
Definition: Davismt2.cc:166
heppy::Davismt2::d20
double d20
Definition: Davismt2.h:60
heppy::Davismt2::nsols
int nsols(double Dsq)
Definition: Davismt2.cc:569
heppy::Davismt2::pmissysq
double pmissysq
Definition: Davismt2.h:55
heppy::Davismt2::scan_high
int scan_high(double &Deltasq_high)
Definition: Davismt2.cc:546
heppy::Davismt2::c2
double c2
Definition: Davismt2.h:59
heppy::Davismt2::mbsq
double mbsq
Definition: Davismt2.h:54
heppy::Davismt2::mt2_massless
void mt2_massless()
Definition: Davismt2.cc:176
heppy::Davismt2::f10
double f10
Definition: Davismt2.h:60
heppy::Davismt2::e20
double e20
Definition: Davismt2.h:60
heppy::Davismt2::precision
double precision
Definition: Davismt2.h:63
heppy::Davismt2::b2
double b2
Definition: Davismt2.h:59
heppy::Davismt2::f22
double f22
Definition: Davismt2.h:60
heppy::Davismt2::signchange_p
int signchange_p(long double t1, long double t2, long double t3, long double t4, long double t5)
Definition: Davismt2.cc:674
heppy::Davismt2::d21
double d21
Definition: Davismt2.h:60
heppy::Davismt2::get_mt2
double get_mt2()
Definition: Davismt2.cc:59
heppy::Davismt2::signchange_n
int signchange_n(long double t1, long double t2, long double t3, long double t4, long double t5)
Definition: Davismt2.cc:659
heppy::Davismt2::pmissxsq
double pmissxsq
Definition: Davismt2.h:55
heppy::Davismt2::mt2_bisect
void mt2_bisect()
Definition: Davismt2.cc:370
heppy::Davismt2::scale
double scale
Definition: Davismt2.h:62
heppy::Davismt2::pay
double pay
Definition: Davismt2.h:47
heppy::Davismt2::f21
double f21
Definition: Davismt2.h:60
heppy::Davismt2::ABSOLUTE_PRECISION
static const float ABSOLUTE_PRECISION
Definition: Davismt2.h:16
heppy::Davismt2::pax
double pax
Definition: Davismt2.h:47
heppy::Davismt2::b1
double b1
Definition: Davismt2.h:59
heppy::Davismt2::set_mn
void set_mn(double mn)
Definition: Davismt2.cc:159
heppy::Davismt2::~Davismt2
virtual ~Davismt2()
Definition: Davismt2.cc:57
heppy::Davismt2::Ebsq
double Ebsq
Definition: Davismt2.h:54
heppy::Davismt2::ZERO_MASS
static const float ZERO_MASS
Definition: Davismt2.h:18
heppy::Davismt2::f20
double f20
Definition: Davismt2.h:60
heppy::Davismt2::masq
double masq
Definition: Davismt2.h:53
heppy::Davismt2::mt2_b
double mt2_b
Definition: Davismt2.h:36
heppy::Davismt2::verbose
int verbose
Definition: Davismt2.h:33