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
int find_high(double &Deltasq_high)
Definition: Davismt2.cc:512
double pmissxsq
Definition: Davismt2.h:55
double Ebsq
Definition: Davismt2.h:54
double pax
Definition: Davismt2.h:47
double pmissy
Definition: Davismt2.h:48
double f20
Definition: Davismt2.h:60
void set_mn(double mn)
Definition: Davismt2.cc:160
void set_momenta(double *pa0, double *pb0, double *pmiss0)
Definition: Davismt2.cc:71
double mn_unscale
Definition: Davismt2.h:50
double f12
Definition: Davismt2.h:60
void mt2_massless()
Definition: Davismt2.cc:177
double Easq
Definition: Davismt2.h:53
int nsols(double Dsq)
Definition: Davismt2.cc:570
double e21
Definition: Davismt2.h:60
int nsols_massless(double Dsq)
Definition: Davismt2.cc:299
double d20
Definition: Davismt2.h:60
int scan_high(double &Deltasq_high)
Definition: Davismt2.cc:547
double precision
Definition: Davismt2.h:63
static const float MIN_MASS
Definition: Davismt2.h:17
double pay
Definition: Davismt2.h:47
double mbsq
Definition: Davismt2.h:54
double f21
Definition: Davismt2.h:60
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:660
static const float SCANSTEP
Definition: Davismt2.h:19
double get_mt2()
Definition: Davismt2.cc:60
double e11
Definition: Davismt2.h:60
TAKEN FROM http://cmssw.cvs.cern.ch/cgi-bin/cmssw.cgi/CMSSW/ElectroWeakAnalysis/Utilities/src/PdfWeig...
Definition: AlphaT.h:16
double pby
Definition: Davismt2.h:49
double pmissysq
Definition: Davismt2.h:55
static const float RELATIVE_PRECISION
Definition: Davismt2.h:15
static const float ZERO_MASS
Definition: Davismt2.h:18
double d11
Definition: Davismt2.h:60
virtual ~Davismt2()
Definition: Davismt2.cc:58
double pmissx
Definition: Davismt2.h:48
double mt2_b
Definition: Davismt2.h:36
double masq
Definition: Davismt2.h:53
double f10
Definition: Davismt2.h:60
double d21
Definition: Davismt2.h:60
double pbx
Definition: Davismt2.h:49
double e20
Definition: Davismt2.h:60
int signchange_p(long double t1, long double t2, long double t3, long double t4, long double t5)
Definition: Davismt2.cc:675
double f22
Definition: Davismt2.h:60
void set_verbose(int vlevel)
Definition: Davismt2.h:27
double scale
Definition: Davismt2.h:62
void mt2_bisect()
Definition: Davismt2.cc:371
double mnsq
Definition: Davismt2.h:56
bool momenta_set
Definition: Davismt2.h:35