CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TtFullLepKinSolver.h
Go to the documentation of this file.
1 //based on a code by Jan Valenta
2 #ifndef TtFullLepKinSolver_h
3 #define TtFullLepKinSolver_h
4 
7 
8 #include "TLorentzVector.h"
9 #include "TMath.h"
10 
11 class TF2;
12 
14 
15  public:
16 
18  TtFullLepKinSolver(double,double,double,std::vector<double>);
20 
21  inline void useWeightFromMC(bool useMC) { useMCforBest_ = useMC; }
23 
24  void SetConstraints(double xx=0, double yy=0);
25 
27  double weight;
30  };
31 
32  NeutrinoSolution getNuSolution(TLorentzVector LV_l,
33  TLorentzVector LV_l_,
34  TLorentzVector LV_b,
35  TLorentzVector LV_b_);
36 
37  private:
38  void FindCoeff(const TLorentzVector al,
39  const TLorentzVector l,
40  const TLorentzVector b_al,
41  const TLorentzVector b_l,
42  double mt, double mat, double pxboost, double pyboost,
43  double* q_coeff);
44  void TopRec(const TLorentzVector al,
45  const TLorentzVector l,
46  const TLorentzVector b_al,
47  const TLorentzVector b_l, double sol);
48  double WeightSolfromMC();
49  double WeightSolfromShape();
50 
51  int quartic(double* q_coeff, double* q_sol);
52  int cubic(double* c_coeff, double* c_sol);
53 
54  //Utility Methods
55  double sqr(double x) {return (x*x);}
56  void SWAP(double& realone, double& realtwo);
57 
58  private:
59  double topmass_begin;
60  double topmass_end;
61  double topmass_step;
62  double pxmiss_, pymiss_;
63 
64  double mw, maw, mb, mab;
65 
66  double C;
67  double D;
68  double F;
69  double pom;
70  double k16;
71  double k26;
72  double k36;
73  double k46;
74  double k56;
75  double k51;
76  double k61;
77  double m1;
78  double m2;
79  double m3;
80  double n1;
81  double n2;
82  double n3;
83 
84  TLorentzVector LV_n, LV_n_, LV_t, LV_t_, LV_tt_t, LV_tt_t_;
85  //provisional
86  TLorentzVector genLV_n, genLV_n_;
87 
88  // flag to swith from WeightSolfromMC() to WeightSolfromShape()
90  // Event shape
91  TF2* EventShape_;
92 };
93 
94 
95 #endif
int quartic(double *q_coeff, double *q_sol)
void SWAP(double &realone, double &realtwo)
int cubic(double *c_coeff, double *c_sol)
void SetConstraints(double xx=0, double yy=0)
TLorentzVector LV_t_
TLorentzVector genLV_n
void TopRec(const TLorentzVector al, const TLorentzVector l, const TLorentzVector b_al, const TLorentzVector b_l, double sol)
NeutrinoSolution getNuSolution(TLorentzVector LV_l, TLorentzVector LV_l_, TLorentzVector LV_b, TLorentzVector LV_b_)
TtDilepEvtSolution addKinSolInfo(TtDilepEvtSolution *asol)
double sqr(double x)
TLorentzVector LV_n_
TLorentzVector genLV_n_
void useWeightFromMC(bool useMC)
TLorentzVector LV_tt_t
Definition: DDAxes.h:10
TLorentzVector LV_tt_t_
void FindCoeff(const TLorentzVector al, const TLorentzVector l, const TLorentzVector b_al, const TLorentzVector b_l, double mt, double mat, double pxboost, double pyboost, double *q_coeff)