BOSS 7.0.5
BESIII Offline Software System
Loading...
Searching...
No Matches
Reconstruction/TrkExtAlg/TrkExtAlg-00-00-65/TrkExtAlg/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
16#ifndef _Ext_XP_Err_Flag_
17#define _Ext_XP_Err_Flag_
18#include <iosfwd>
19
20///////////////////////change//////////
21//#include "TrkExtAlg/Helix.h"
22#include "TrackUtil/Helix.h"
23///////////////////////////////////////
24#include "TrkExtAlg/Ext_errmx.h"
25
26#include <vector>
27
28
29class Ext_xp_err : public Ext_errmx {
30
31public:
32 Ext_xp_err();// Constructor
33 Ext_xp_err( const Ext_xp_err &xp_err );// Copy constructor
34 ~Ext_xp_err(){};// Destructor
35
36 // Set symmetry matrix parameters.
37 void set_err(const HepSymMatrix &err,const Hep3Vector &xv,const Hep3Vector &pv, const double &q,
38 const double &mass );
39
40 inline const Hep3Vector & get_x() const;// Get coordinate at the current point.
41 inline const Hep3Vector & get_p() const;// Get momentum at the current point.
42 inline const double & get_q() const; // Get the charge of the particle.
43 inline double get_mass() const;// Get the mass of the particle.
44 bool move( const Hep3Vector &xv1, const Hep3Vector &pv1, const Hep3Vector &B,
45 const int ms_on, const double chi_cc ); // Move x -> x'.
46 Ext_xp_err &operator=( const Ext_xp_err &xp_err );
47 friend std::ostream &operator<<( std::ostream &s, const Ext_xp_err &xp_err );
48 inline void set_pos(const Hep3Vector &pos);
49 inline void set_mom(const Hep3Vector &mom);
50
51private:
52 Hep3Vector m_xv; // Position(x,y,z) in cm unit.
53 Hep3Vector m_pv; // Momentum(px,py,pz) in GeV/c.
54 HepMatrix m_xp_jcb; // Jacobian for x -> x'.
55 HepMatrix m_h2xp_jcb; // Jacobian for helix -> xp.
56 double m_q; // Charge of the particle.
57 double m_mass2; // Mass**2 of the particle.
58
59};
60
61
62// Get the current coordinate.
63inline const Hep3Vector & Ext_xp_err::get_x() const {
64 return m_xv;
65}
66
67
68// Get the momentum at the current position.
69inline const Hep3Vector & Ext_xp_err::get_p() const {
70 return m_pv;
71}
72
73
74// Get the charge of the particle.
75inline const double & Ext_xp_err::get_q() const {
76 return m_q;
77}
78
79
80// Get the mass of the particle.
81inline double Ext_xp_err::get_mass() const {
82 return sqrt(m_mass2);
83}
84
85inline void Ext_xp_err::set_pos(const Hep3Vector &pos)
86{
87m_xv = pos;
88}
89
90inline void Ext_xp_err::set_mom(const Hep3Vector &mom)
91{
92m_pv = mom;
93}
94
95
96#endif /* _Ext_XP_Err_Flag_ */
double mass
XmlRpcServer s
Definition: HelloServer.cpp:11
****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
void set_mom(const Hep3Vector &mom)
friend std::ostream & operator<<(std::ostream &s, const Ext_xp_err &xp_err)
Definition: Ext_xp_err.cxx:236
Ext_xp_err & operator=(const Ext_xp_err &xp_err)
const Hep3Vector & get_x() const
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)
const double & get_q() const
Ext_xp_err(const Ext_xp_err &xp_err)
const Hep3Vector & get_p() const