CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TauA1NuConstrainedFitter.h
Go to the documentation of this file.
1 #ifndef RecoTauTag_ImpactParameter_TauA1NuConstrainedFitter_h
2 #define RecoTauTag_ImpactParameter_TauA1NuConstrainedFitter_h
3 
4 /* From SimpleFits Package
5  * Designed an written by
6  * author: Ian M. Nugent
7  * Humboldt Foundations
8  */
9 
11 #include "TVector3.h"
15 #include <vector>
16 
17 namespace tauImpactParameter {
18 
20  public:
21  TauA1NuConstrainedFitter(unsigned int ambiguity,const LorentzVectorParticle& A1,const TVector3& PVertex, const TMatrixTSym<double>& VertexCov);
23 
27 
28  virtual bool fit();
29  virtual double nConstraints(){return 3;}
30  virtual double ndf(){return 0;}
31  virtual int nDaughters(){return 2;}
32 
33  std::vector<LorentzVectorParticle> getRefitDaughters();
35 
36  protected:
37  virtual TVectorD value(const TVectorD& v);
38 
39  private:
40  static TVectorT<double> computeInitalExpPar(const TVectorT<double>& inpar);
41  static TVectorT<double> computeExpParToPar(const TVectorT<double>& inpar);
42  static TVectorT<double> computeNuLorentzVectorPar(const TVectorT<double>& inpar);
43  static TVectorT<double> computeA1LorentzVectorPar(const TVectorT<double>& inpar);
44  static TVectorT<double> computeMotherLorentzVectorPar(const TVectorT<double>& inpar);
45  void updateExpandedPar();
46  static void covertParToObjects(const TVectorD& v, TLorentzVector& a1, TLorentzVector& nu, double& phi, double& theta, TVector3& TauDir);
47 
48  TVectorT<double> exppar_;
49  TMatrixTSym<double> expcov_;
50  std::vector<LorentzVectorParticle> particles_;
52  unsigned int ambiguity_;
53 
55  static TVectorT<double> findThetaGJMax(const TVectorT<double>& inpar);
56  static TVectorT<double> setThetaGJMax(const TVectorT<double>& inpar);
57 };
58 
59 }
60 #endif
Geom::Theta< T > theta() const
static TVectorT< double > setThetaGJMax(const TVectorT< double > &inpar)
static TVectorT< double > computeInitalExpPar(const TVectorT< double > &inpar)
static TVectorT< double > computeExpParToPar(const TVectorT< double > &inpar)
std::vector< LorentzVectorParticle > getRefitDaughters()
TauA1NuConstrainedFitter(unsigned int ambiguity, const LorentzVectorParticle &A1, const TVector3 &PVertex, const TMatrixTSym< double > &VertexCov)
static TVectorT< double > computeMotherLorentzVectorPar(const TVectorT< double > &inpar)
std::vector< LorentzVectorParticle > particles_
static void covertParToObjects(const TVectorD &v, TLorentzVector &a1, TLorentzVector &nu, double &phi, double &theta, TVector3 &TauDir)
static TVectorT< double > computeNuLorentzVectorPar(const TVectorT< double > &inpar)
static TVectorT< double > findThetaGJMax(const TVectorT< double > &inpar)
static TVectorT< double > computeA1LorentzVectorPar(const TVectorT< double > &inpar)
Definition: DDAxes.h:10