CMS 3D CMS Logo

Particle.h
Go to the documentation of this file.
1 #ifndef RecoTauTag_ImpactParameter_Particle_h
2 #define RecoTauTag_ImpactParameter_Particle_h
3 
4 #include "TMatrixT.h"
5 #include "TMatrixTSym.h"
6 #include "TVectorT.h"
7 
8 // Notes
9 // Store B in units of 1/GeV
10 
11 namespace tauImpactParameter {
12 
13 class Particle {
14  public:
15  Particle(const TVectorT<double>& par, const TMatrixTSym<double>& cov, int pdgid, double charge, double b)
16  : par_(par),
17  cov_(cov),
18  b_(b),
19  charge_(charge),
20  pdgid_(pdgid)
21  {}
22  virtual ~Particle(){};
23 
24  virtual double parameter(int i) const {if(0<=i && i<par_.GetNrows()) return par_(i); return 0;}
25  virtual double covariance(int i,int j) const {if(0<=i && i<cov_.GetNrows() && 0<=j && j<cov_.GetNrows()) return cov_(i,j); return 0;}
26  virtual double bField() const {return b_;}
27  virtual double mass() const =0;
28  virtual int pdgId() const {return pdgid_;}
29  virtual double charge() const {return charge_;}
30  virtual double qB() const {return b_*charge_;}
31  virtual int nParameters() const =0;
32  virtual const TVectorT<double>& parameter() const {return par_;}
33  virtual const TMatrixTSym<double>& covariance() const {return cov_;}
34 
35  private:
36  TVectorT<double> par_;
37  TMatrixTSym<double> cov_;
38  double b_;
39  double charge_;
40  int pdgid_;
41 };
42 
43 }
44 #endif
45 
46 
virtual double covariance(int i, int j) const
Definition: Particle.h:25
virtual int pdgId() const
Definition: Particle.h:28
virtual double charge() const
Definition: Particle.h:29
virtual double qB() const
Definition: Particle.h:30
virtual double mass() const =0
virtual const TVectorT< double > & parameter() const
Definition: Particle.h:32
virtual int nParameters() const =0
TMatrixTSym< double > cov_
Definition: Particle.h:37
virtual double parameter(int i) const
Definition: Particle.h:24
double b
Definition: hdecay.h:120
TVectorT< double > par_
Definition: Particle.h:36
virtual double bField() const
Definition: Particle.h:26
virtual const TMatrixTSym< double > & covariance() const
Definition: Particle.h:33
Particle(const TVectorT< double > &par, const TMatrixTSym< double > &cov, int pdgid, double charge, double b)
Definition: Particle.h:15