Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:23:25

0001 #ifndef PhysicsTools_Heppy_Davismt2_h
0002 #define PhysicsTools_Heppy_Davismt2_h
0003 
0004 #include <iostream>
0005 #include <cmath>
0006 #include "TObject.h"
0007 
0008 // using namespace std;
0009 
0010 namespace heppy {
0011 
0012   class Davismt2 {
0013     // class Davismt2 : public TObject {
0014   public:
0015     static const float RELATIVE_PRECISION;
0016     static const float ABSOLUTE_PRECISION;
0017     static const float MIN_MASS;
0018     static const float ZERO_MASS;
0019     static const float SCANSTEP;
0020 
0021     Davismt2();
0022     virtual ~Davismt2();
0023     void mt2_bisect();
0024     void mt2_massless();
0025     void set_momenta(double *pa0, double *pb0, double *pmiss0);
0026     void set_mn(double mn);
0027     inline void set_verbose(int vlevel) { verbose = vlevel; };
0028     double get_mt2();
0029     void print();
0030     int nevt;
0031 
0032   private:
0033     int verbose;
0034     bool solved;
0035     bool momenta_set;
0036     double mt2_b;
0037 
0038     int nsols(double Dsq);
0039     int nsols_massless(double Dsq);
0040     //inline
0041     int signchange_n(long double t1, long double t2, long double t3, long double t4, long double t5);
0042     //inline
0043     int signchange_p(long double t1, long double t2, long double t3, long double t4, long double t5);
0044     int scan_high(double &Deltasq_high);
0045     int find_high(double &Deltasq_high);
0046     //data members
0047     double pax, pay, ma, Ea;
0048     double pmissx, pmissy;
0049     double pbx, pby, mb, Eb;
0050     double mn, mn_unscale;
0051 
0052     //auxiliary definitions
0053     double masq, Easq;
0054     double mbsq, Ebsq;
0055     double pmissxsq, pmissysq;
0056     double mnsq;
0057 
0058     //auxiliary coefficients
0059     double a1, b1, c1, a2, b2, c2, d1, e1, f1, d2, e2, f2;
0060     double d11, e11, f12, f10, d21, d20, e21, e20, f22, f21, f20;
0061 
0062     double scale;
0063     double precision;
0064     // ClassDef(Davismt2,1)
0065   };
0066 }  // namespace heppy
0067 
0068 #endif