1 #ifndef TtFullLepKinSolver_h
2 #define TtFullLepKinSolver_h
7 #include "TLorentzVector.h"
38 const double,
const double,
const double,
const std::vector<double>&,
const double = 80.4,
const double = 4.8);
50 const TLorentzVector& LV_l_,
51 const TLorentzVector& LV_b,
52 const TLorentzVector& LV_b_);
57 const TLorentzVector&
l,
58 const TLorentzVector& b_al,
59 const TLorentzVector& b_l,
66 void TopRec(
const TLorentzVector& al,
67 const TLorentzVector&
l,
68 const TLorentzVector& b_al,
69 const TLorentzVector& b_l,
76 int quartic(
double* q_coeff,
double* q_sol)
const;
78 int cubic(
const double* c_coeff,
double* c_sol)
const;
80 double sqr(
const double x)
const {
return (x * x); }
82 void SWAP(
double& realone,
double& realtwo)
const;
int quartic(double *q_coeff, double *q_sol) const
int cubic(const double *c_coeff, double *c_sol) const
NeutrinoSolution getNuSolution(const TLorentzVector &LV_l, const TLorentzVector &LV_l_, const TLorentzVector &LV_b, const TLorentzVector &LV_b_)
double WeightSolfromMC() const
void SetConstraints(const double xx=0, const double yy=0)
void FindCoeff(const TLorentzVector &al, const TLorentzVector &l, const TLorentzVector &b_al, const TLorentzVector &b_l, const double mt, const double mat, const double pxboost, const double pyboost, double *q_coeff)
TtFullLepKinSolver()
default constructor
bool useMCforBest_
flag to swith from WeightSolfromMC() to WeightSolfromShape()
TLorentzVector genLV_n
provisional
const double topmass_step
void SWAP(double &realone, double &realtwo) const
reco::LeafCandidate neutrino
TtDilepEvtSolution addKinSolInfo(TtDilepEvtSolution *asol)
TF2 * EventShape_
Event shape.
double sqr(const double x) const
void TopRec(const TLorentzVector &al, const TLorentzVector &l, const TLorentzVector &b_al, const TLorentzVector &b_l, const double sol)
void useWeightFromMC(bool useMC)
~TtFullLepKinSolver()
destructor
double WeightSolfromShape() const
use the parametrized event shape to obtain the solution weight.
const double topmass_begin
reco::LeafCandidate neutrinoBar