CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Static Public Member Functions
tauImpactParameter::LorentzVectorParticle Class Reference

#include <LorentzVectorParticle.h>

Inheritance diagram for tauImpactParameter::LorentzVectorParticle:
tauImpactParameter::Particle

Public Types

enum  LorentzandVectorPar {
  vx = 0, vy, vz, px,
  py, pz, m, NLorentzandVertexPar,
  E = -1, p = -2, pt = -3
}
 
enum  VertexInfo { NVertex = 3 }
 

Public Member Functions

 LorentzVectorParticle ()
 
 LorentzVectorParticle (const TVectorT< double > &par, const TMatrixTSym< double > &cov, int pdgid, double charge, double b)
 
double mass () const override
 
int nParameters () const override
 
TLorentzVector p4 () const
 
double parameter (int i) const override
 
TVector3 vertex () const
 
TMatrixTSym< double > vertexCov () const
 
 ~LorentzVectorParticle () override
 
- Public Member Functions inherited from tauImpactParameter::Particle
virtual double bField () const
 
virtual double charge () const
 
virtual double covariance (int i, int j) const
 
virtual const TMatrixTSym< double > & covariance () const
 
virtual const TVectorT< double > & parameter () const
 
 Particle (const TVectorT< double > &par, const TMatrixTSym< double > &cov, int pdgid, double charge, double b)
 
virtual int pdgId () const
 
virtual double qB () const
 
virtual ~Particle ()
 

Static Public Member Functions

static TString name (int i)
 

Detailed Description

Definition at line 17 of file LorentzVectorParticle.h.

Member Enumeration Documentation

Enumerator
NVertex 

Definition at line 32 of file LorentzVectorParticle.h.

Constructor & Destructor Documentation

LorentzVectorParticle::LorentzVectorParticle ( )

Definition at line 5 of file LorentzVectorParticle.cc.

6  : Particle(TVectorT<double>(NLorentzandVertexPar), TMatrixTSym<double>(NLorentzandVertexPar), 0, 0, 0) {}
Particle(const TVectorT< double > &par, const TMatrixTSym< double > &cov, int pdgid, double charge, double b)
Definition: Particle.h:15
LorentzVectorParticle::LorentzVectorParticle ( const TVectorT< double > &  par,
const TMatrixTSym< double > &  cov,
int  pdgid,
double  charge,
double  b 
)

Definition at line 8 of file LorentzVectorParticle.cc.

10  : Particle(par, cov, pdgid, charge, b) {}
virtual double charge() const
Definition: Particle.h:32
double b
Definition: hdecay.h:118
Particle(const TVectorT< double > &par, const TMatrixTSym< double > &cov, int pdgid, double charge, double b)
Definition: Particle.h:15
tauImpactParameter::LorentzVectorParticle::~LorentzVectorParticle ( )
inlineoverride

Definition at line 36 of file LorentzVectorParticle.h.

References mps_fire::i, and name().

36 {};

Member Function Documentation

double tauImpactParameter::LorentzVectorParticle::mass ( ) const
inlineoverridevirtual
TString LorentzVectorParticle::name ( int  i)
static

Definition at line 12 of file LorentzVectorParticle.cc.

References m, px, py, pz, vx, vy, and vz.

Referenced by config.CFG::__str__(), validation.Sample::digest(), and ~LorentzVectorParticle().

12  {
13  if (i == px)
14  return "px";
15  if (i == py)
16  return "py";
17  if (i == pz)
18  return "pz";
19  if (i == m)
20  return "m";
21  if (i == vx)
22  return "vx";
23  if (i == vy)
24  return "vy";
25  if (i == vz)
26  return "vz";
27  return "invalid";
28 }
int tauImpactParameter::LorentzVectorParticle::nParameters ( ) const
inlineoverridevirtual
TLorentzVector tauImpactParameter::LorentzVectorParticle::p4 ( ) const
inline
double tauImpactParameter::LorentzVectorParticle::parameter ( int  i) const
inlineoverridevirtual

Reimplemented from tauImpactParameter::Particle.

Definition at line 40 of file LorentzVectorParticle.h.

References E, m, p, tauImpactParameter::Particle::parameter(), pt, px, py, pz, and mathSSE::sqrt().

Referenced by tauImpactParameter::MultiProngTauSolver::estimateNu(), and tauImpactParameter::TauA1NuConstrainedFitter::TauA1NuConstrainedFitter().

40  {
41  double particle_px = Particle::parameter(px);
42  double particle_py = Particle::parameter(py);
43  double particle_pz = Particle::parameter(pz);
44  double particle_m = Particle::parameter(m);
45  if (i == E)
46  return sqrt(particle_px * particle_px + particle_py * particle_py + particle_pz * particle_pz +
47  particle_m * particle_m);
48  if (i == p)
49  return sqrt(particle_px * particle_px + particle_py * particle_py + particle_pz * particle_pz);
50  if (i == pt)
51  return sqrt(particle_px * particle_px + particle_py * particle_py);
52  return Particle::parameter(i);
53  }
T sqrt(T t)
Definition: SSEVec.h:19
virtual const TVectorT< double > & parameter() const
Definition: Particle.h:35
TVector3 tauImpactParameter::LorentzVectorParticle::vertex ( ) const
inline
TMatrixTSym<double> tauImpactParameter::LorentzVectorParticle::vertexCov ( ) const
inline

Definition at line 57 of file LorentzVectorParticle.h.

References tauImpactParameter::Particle::covariance(), dqmiolumiharvest::j, and NVertex.

Referenced by tauImpactParameter::MultiProngTauSolver::estimateNu(), and tauImpactParameter::ParticleBuilder::getVertex().

57  {
58  TMatrixTSym<double> vcov(NVertex);
59  for (int i = 0; i < NVertex; i++) {
60  for (int j = 0; j < NVertex; j++) {
61  vcov(i, j) = covariance(i, j);
62  }
63  }
64  return vcov;
65  }
virtual const TMatrixTSym< double > & covariance() const
Definition: Particle.h:36