CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 <math.h>
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 
34  int verbose;
35  bool solved;
37  double mt2_b;
38 
39  int nsols(double Dsq);
40  int nsols_massless(double Dsq);
41  //inline
42  int signchange_n( long double t1, long double t2, long double t3, long double t4, long double t5);
43  //inline
44  int signchange_p( long double t1, long double t2, long double t3, long double t4, long double t5);
45  int scan_high(double &Deltasq_high);
46  int find_high(double &Deltasq_high);
47  //data members
48  double pax, pay, ma, Ea;
49  double pmissx, pmissy;
50  double pbx, pby, mb, Eb;
51  double mn, mn_unscale;
52 
53  //auxiliary definitions
54  double masq, Easq;
55  double mbsq, Ebsq;
56  double pmissxsq, pmissysq;
57  double mnsq;
58 
59  //auxiliary coefficients
60  double a1, b1, c1, a2, b2, c2, d1, e1, f1, d2, e2, f2;
61  double d11, e11, f12, f10, d21, d20, e21, e20, f22, f21, f20;
62 
63  double scale;
64  double precision;
65  // ClassDef(Davismt2,1)
66 };
67 }
68 
69 #endif
int find_high(double &Deltasq_high)
Definition: Davismt2.cc:495
double pmissxsq
Definition: Davismt2.h:56
double Ebsq
Definition: Davismt2.h:55
double pax
Definition: Davismt2.h:48
double pmissy
Definition: Davismt2.h:49
double f20
Definition: Davismt2.h:61
void set_mn(double mn)
Definition: Davismt2.cc:139
void set_momenta(double *pa0, double *pb0, double *pmiss0)
Definition: Davismt2.cc:72
double mn_unscale
Definition: Davismt2.h:51
double f12
Definition: Davismt2.h:61
void mt2_massless()
Definition: Davismt2.cc:154
double Easq
Definition: Davismt2.h:54
int nsols(double Dsq)
Definition: Davismt2.cc:560
double e21
Definition: Davismt2.h:61
int nsols_massless(double Dsq)
Definition: Davismt2.cc:280
double d20
Definition: Davismt2.h:61
int scan_high(double &Deltasq_high)
Definition: Davismt2.cc:535
auto const T2 &decltype(t1.eta()) t2
Definition: deltaR.h:16
double precision
Definition: Davismt2.h:64
static const float MIN_MASS
Definition: Davismt2.h:17
double pay
Definition: Davismt2.h:48
double mbsq
Definition: Davismt2.h:55
double f21
Definition: Davismt2.h:61
static const float ABSOLUTE_PRECISION
Definition: Davismt2.h:16
int signchange_n(long double t1, long double t2, long double t3, long double t4, long double t5)
Definition: Davismt2.cc:655
static const float SCANSTEP
Definition: Davismt2.h:19
double get_mt2()
Definition: Davismt2.cc:61
double e11
Definition: Davismt2.h:61
double pby
Definition: Davismt2.h:50
double pmissysq
Definition: Davismt2.h:56
static const float RELATIVE_PRECISION
Definition: Davismt2.h:15
static const float ZERO_MASS
Definition: Davismt2.h:18
double d11
Definition: Davismt2.h:61
virtual ~Davismt2()
Definition: Davismt2.cc:59
double pmissx
Definition: Davismt2.h:49
double mt2_b
Definition: Davismt2.h:37
double masq
Definition: Davismt2.h:54
double f10
Definition: Davismt2.h:61
double d21
Definition: Davismt2.h:61
double pbx
Definition: Davismt2.h:50
double e20
Definition: Davismt2.h:61
int signchange_p(long double t1, long double t2, long double t3, long double t4, long double t5)
Definition: Davismt2.cc:666
double f22
Definition: Davismt2.h:61
void set_verbose(int vlevel)
Definition: Davismt2.h:27
double scale
Definition: Davismt2.h:63
void mt2_bisect()
Definition: Davismt2.cc:347
double mnsq
Definition: Davismt2.h:57
bool momenta_set
Definition: Davismt2.h:36