CMS 3D CMS Logo

MultiProngTauSolver.h
Go to the documentation of this file.
1 #ifndef RecoTauTag_ImpactParameter_MultiProngTauSolver_h
2 #define RecoTauTag_ImpactParameter_MultiProngTauSolver_h
3 
4 /* From SimpleFits Package
5  * Designed an written by
6  * author: Ian M. Nugent
7  * Humboldt Foundations
8  */
9 
10 #include "TVector3.h"
11 #include "TLorentzVector.h"
14 
15 namespace tauImpactParameter {
16 
18  public:
20 
21  // constructor and Destructor
23  virtual ~MultiProngTauSolver(){};
24 
25  static void quadratic(double& x_plus,double& x_minus,double a, double b, double c, bool &isReal);
26  static void analyticESolver(TLorentzVector& nu_plus,TLorentzVector& nu_minus,const TLorentzVector& A1,bool &isReal);
27  static void numericalESolver(TLorentzVector& nu_plus,TLorentzVector& nu_minus,const TLorentzVector& A1,bool &isReal);
28  static void solveByRotation(const TVector3& TauDir,const TLorentzVector& A1, TLorentzVector& Tau_plus,TLorentzVector& Tau_minus,TLorentzVector& nu_plus,TLorentzVector& nu_minus, bool &isReal,bool rotateback=true);
29  static bool setTauDirectionatThetaGJMax(const TLorentzVector& a1, double& theta,double& phi,double scale=1.0);
30  static double thetaGJMax(const TLorentzVector& a1);
31  static LorentzVectorParticle estimateNu(const LorentzVectorParticle& a1, const TVector3& pv, int ambiguity, TLorentzVector& tau);
32  static TVectorT<double> rotateToTauFrame(const TVectorT<double>& inpar);
33 };
34 
35 }
36 #endif
static void analyticESolver(TLorentzVector &nu_plus, TLorentzVector &nu_minus, const TLorentzVector &A1, bool &isReal)
static TVectorT< double > rotateToTauFrame(const TVectorT< double > &inpar)
Geom::Theta< T > theta() const
static bool setTauDirectionatThetaGJMax(const TLorentzVector &a1, double &theta, double &phi, double scale=1.0)
static double thetaGJMax(const TLorentzVector &a1)
static LorentzVectorParticle estimateNu(const LorentzVectorParticle &a1, const TVector3 &pv, int ambiguity, TLorentzVector &tau)
def pv(vc)
Definition: MetAnalyzer.py:6
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121
static void solveByRotation(const TVector3 &TauDir, const TLorentzVector &A1, TLorentzVector &Tau_plus, TLorentzVector &Tau_minus, TLorentzVector &nu_plus, TLorentzVector &nu_minus, bool &isReal, bool rotateback=true)
static void numericalESolver(TLorentzVector &nu_plus, TLorentzVector &nu_minus, const TLorentzVector &A1, bool &isReal)
static void quadratic(double &x_plus, double &x_minus, double a, double b, double c, bool &isReal)