BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Ext_xp_err.h
Go to the documentation of this file.
1//
2// File: Ext_xp_err.h
3//
4// Descrition: Handle extrapolation error matrix( x, y, z, px, py, pz ).
5// The used coordinate system is the cartesian BESIII coordinate system.
6//
7// Modified from BELLE: " File: Ext_xp_err.h
8// Creation: 29-Dec-1997
9// Version: 01-Mar-1999
10// $Id: Ext_xp_err.h,v 1.5 2015/07/29 00:28:14 sunss Exp $"
11//
12// Data: 2005.3.30 by Wang Liangliang
13//
14
15#ifndef _Ext_XP_Err_Flag_
16#define _Ext_XP_Err_Flag_
17#include <iosfwd>
18
19///////////////////////change//////////
20// #include "Helix.h"
21#include "TrackUtil/Helix.h"
22///////////////////////////////////////
23#include "Ext_errmx.h"
24
25#include <vector>
26
27class Ext_xp_err : public Ext_errmx {
28
29public:
30 Ext_xp_err(); // Constructor
31 Ext_xp_err( const Ext_xp_err& xp_err ); // Copy constructor
32 ~Ext_xp_err(){}; // Destructor
33
34 // Set symmetry matrix parameters.
35 void set_err( const HepSymMatrix& err, const Hep3Vector& xv, const Hep3Vector& pv,
36 const double& q, const double& mass );
37
38 inline const Hep3Vector& get_x() const; // Get coordinate at the current point.
39 inline const Hep3Vector& get_p() const; // Get momentum at the current point.
40 inline const double& get_q() const; // Get the charge of the particle.
41 inline double get_mass() const; // Get the mass of the particle.
42 bool move( const Hep3Vector& xv1, const Hep3Vector& pv1, const Hep3Vector& B,
43 const int ms_on, const double chi_cc ); // Move x -> x'.
44 Ext_xp_err& operator=( const Ext_xp_err& xp_err );
45 friend std::ostream& operator<<( std::ostream& s, const Ext_xp_err& xp_err );
46 inline void set_pos( const Hep3Vector& pos );
47 inline void set_mom( const Hep3Vector& mom );
48
49private:
50 Hep3Vector m_xv; // Position(x,y,z) in cm unit.
51 Hep3Vector m_pv; // Momentum(px,py,pz) in GeV/c.
52 HepMatrix m_xp_jcb; // Jacobian for x -> x'.
53 HepMatrix m_h2xp_jcb; // Jacobian for helix -> xp.
54 double m_q; // Charge of the particle.
55 double m_mass2; // Mass**2 of the particle.
56};
57
58// Get the current coordinate.
59inline const Hep3Vector& Ext_xp_err::get_x() const { return m_xv; }
60
61// Get the momentum at the current position.
62inline const Hep3Vector& Ext_xp_err::get_p() const { return m_pv; }
63
64// Get the charge of the particle.
65inline const double& Ext_xp_err::get_q() const { return m_q; }
66
67// Get the mass of the particle.
68inline double Ext_xp_err::get_mass() const { return sqrt( m_mass2 ); }
69
70inline void Ext_xp_err::set_pos( const Hep3Vector& pos ) { m_xv = pos; }
71
72inline void Ext_xp_err::set_mom( const Hep3Vector& mom ) { m_pv = mom; }
73
74#endif /* _Ext_XP_Err_Flag_ */
double mass
XmlRpcServer s
NTuple::Item< double > m_q
****INTEGER imax DOUBLE PRECISION m_pi *DOUBLE PRECISION m_amfin DOUBLE PRECISION m_Chfin DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_sinw2 DOUBLE PRECISION m_GFermi DOUBLE PRECISION m_MfinMin DOUBLE PRECISION m_ta2 INTEGER m_out INTEGER m_KeyFSR INTEGER m_KeyQCD *COMMON c_Semalib $ !copy of input $ !CMS energy $ !beam mass $ !final mass $ !beam charge $ !final charge $ !smallest final mass $ !Z mass $ !Z width $ !EW mixing angle $ !Gmu Fermi $ alphaQED at q
Definition KKsem.h:33
double get_mass() const
Definition Ext_xp_err.h:68
void set_mom(const Hep3Vector &mom)
Definition Ext_xp_err.h:72
friend std::ostream & operator<<(std::ostream &s, const Ext_xp_err &xp_err)
Ext_xp_err & operator=(const Ext_xp_err &xp_err)
const Hep3Vector & get_x() const
Definition Ext_xp_err.h:59
void set_err(const HepSymMatrix &err, const Hep3Vector &xv, const Hep3Vector &pv, const double &q, const double &mass)
bool move(const Hep3Vector &xv1, const Hep3Vector &pv1, const Hep3Vector &B, const int ms_on, const double chi_cc)
void set_pos(const Hep3Vector &pos)
Definition Ext_xp_err.h:70
const double & get_q() const
Definition Ext_xp_err.h:65
const Hep3Vector & get_p() const
Definition Ext_xp_err.h:62