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,
27  TLorentzVector& nu_minus,
28  const TLorentzVector& A1,
29  bool& isReal);
30  static void numericalESolver(TLorentzVector& nu_plus,
31  TLorentzVector& nu_minus,
32  const TLorentzVector& A1,
33  bool& isReal);
34  static void solveByRotation(const TVector3& TauDir,
35  const TLorentzVector& A1,
36  TLorentzVector& Tau_plus,
37  TLorentzVector& Tau_minus,
38  TLorentzVector& nu_plus,
39  TLorentzVector& nu_minus,
40  bool& isReal,
41  bool rotateback = true);
42  static bool setTauDirectionatThetaGJMax(const TLorentzVector& a1, double& theta, double& phi, double scale = 1.0);
43  static double thetaGJMax(const TLorentzVector& a1);
45  const TVector3& pv,
46  int ambiguity,
47  TLorentzVector& tau);
48  static TVectorT<double> rotateToTauFrame(const TVectorT<double>& inpar);
49  };
50 
51 } // namespace tauImpactParameter
52 #endif
tauImpactParameter::MultiProngTauSolver::thetaGJMax
static double thetaGJMax(const TLorentzVector &a1)
Definition: MultiProngTauSolver.cc:126
tauImpactParameter::LorentzVectorParticle
Definition: LorentzVectorParticle.h:17
tauImpactParameter::MultiProngTauSolver::solveByRotation
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)
Definition: MultiProngTauSolver.cc:64
metsig::tau
Definition: SignAlgoResolutions.h:49
tauImpactParameter
Definition: Chi2VertexFitter.h:14
tauImpactParameter::MultiProngTauSolver::analyticESolver
static void analyticESolver(TLorentzVector &nu_plus, TLorentzVector &nu_minus, const TLorentzVector &A1, bool &isReal)
Definition: MultiProngTauSolver.cc:18
tauImpactParameter::MultiProngTauSolver::numericalESolver
static void numericalESolver(TLorentzVector &nu_plus, TLorentzVector &nu_minus, const TLorentzVector &A1, bool &isReal)
Definition: MultiProngTauSolver.cc:32
tauImpactParameter::MultiProngTauSolver::NAmbiguity
Definition: MultiProngTauSolver.h:19
tauImpactParameter::MultiProngTauSolver::minus
Definition: MultiProngTauSolver.h:19
theta
Geom::Theta< T > theta() const
Definition: Basic3DVectorLD.h:150
LorentzVectorParticle.h
b
double b
Definition: hdecay.h:118
tauImpactParameter::MultiProngTauSolver::rotateToTauFrame
static TVectorT< double > rotateToTauFrame(const TVectorT< double > &inpar)
Definition: MultiProngTauSolver.cc:188
Scenarios_cff.scale
scale
Definition: Scenarios_cff.py:2186
a
double a
Definition: hdecay.h:119
MetAnalyzer.pv
def pv(vc)
Definition: MetAnalyzer.py:7
tauImpactParameter::MultiProngTauSolver::MultiProngTauSolver
MultiProngTauSolver()
Definition: MultiProngTauSolver.h:22
HltBtagPostValidation_cff.c
c
Definition: HltBtagPostValidation_cff.py:31
tauImpactParameter::MultiProngTauSolver::quadratic
static void quadratic(double &x_plus, double &x_minus, double a, double b, double c, bool &isReal)
Definition: MultiProngTauSolver.cc:8
tauImpactParameter::MultiProngTauSolver::Ambiguity
Ambiguity
Definition: MultiProngTauSolver.h:19
tauImpactParameter::MultiProngTauSolver::estimateNu
static LorentzVectorParticle estimateNu(const LorentzVectorParticle &a1, const TVector3 &pv, int ambiguity, TLorentzVector &tau)
Definition: MultiProngTauSolver.cc:130
PDGInfo.h
tauImpactParameter::MultiProngTauSolver
Definition: MultiProngTauSolver.h:17
tauImpactParameter::MultiProngTauSolver::zero
Definition: MultiProngTauSolver.h:19
tauImpactParameter::MultiProngTauSolver::setTauDirectionatThetaGJMax
static bool setTauDirectionatThetaGJMax(const TLorentzVector &a1, double &theta, double &phi, double scale=1.0)
Definition: MultiProngTauSolver.cc:94
tauImpactParameter::MultiProngTauSolver::~MultiProngTauSolver
virtual ~MultiProngTauSolver()
Definition: MultiProngTauSolver.h:23
tauImpactParameter::MultiProngTauSolver::plus
Definition: MultiProngTauSolver.h:19