BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Reconstruction/TrackUtil/include/TrackUtil/Lpav.h
Go to the documentation of this file.
1// -*- C++ -*-
2//
3// Package: <package>
4// Module: Lpav
5//
6// Description: <one line class summary>
7//
8// Usage:
9// <usage>
10//
11// Author: KATAYAMA Nobuhiko
12// Created: Fri Feb 6 10:21:38 JST 1998
13// $Id: Lpav.h,v 1.1.1.1 2008/06/16 02:10:31 max Exp $
14
15#if !defined( PACKAGE_LPAV_H_INCLUDED )
16# define PACKAGE_LPAV_H_INCLUDED
17
18// system include files
19# include <iosfwd>
20
21// user include files
22# include "CLHEP/Matrix/SymMatrix.h"
23# include "TrackUtil/Lpar.h"
24using namespace CLHEP;
25
26// forward declarations
27
28class Lpav : public Lpar {
29 // friend classes and functions
30
31public:
32 // constants, enums and typedefs
33
34 // Constructors and destructor
36 virtual ~Lpav();
37
38 // member functions
39 void calculate_average( void );
40 void calculate_average3( void );
41 void calculate_average( double x, double y, double w = 1 );
42 void calculate_average3( double x, double y, double w = 1 );
43 double calculate_lpar( void );
44 double calculate_lpar3( void );
45 double fit();
46 double fit( double x, double y, double w = 1 );
47 inline void clear();
48 void add_point( double x, double y, double w = 1 );
49 void add_point_frac( double x, double y, double w, double f );
50
51 // const member functions
52 double nc() const { return m_nc; }
53 HepSymMatrix cov( int = 0 ) const;
54 HepSymMatrix cov_c( int = 0 ) const;
55 int extrapolate( double, double&, double& ) const;
56 double similarity( double, double ) const;
57 double delta_chisq( double x, double y, double w = 1 ) const;
58 double chisq() const { return m_chisq; }
59 double prob() const;
60 double chi_deg() const;
61
62 // static member functions
63
64 // assignment operator(s)
65 inline const Lpav& operator=( const Lpav& );
66 const Lpav& operator=( const Lpar& );
67 const Lpav& operator+=( const Lpav& );
68
69 friend std::ostream& operator<<( std::ostream& o, const Lpav& s );
70 friend Lpav operator+( const Lpav&, const Lpav& );
71 class Singular {}; // exception class, no covarience matrix.
72 class Singular_c {}; // exception class, no covarience matrix_c
73
74protected:
75 // protected member functions
76
77 // protected const member functions
78
79private:
80 // Constructors and destructor
81 inline Lpav( const Lpav& );
82
83 // comparison operators
84 bool operator==( const Lpav& ) const;
85 bool operator!=( const Lpav& ) const;
86
87 // private member functions
88 void add( double x, double y, double w = 1, double a = 0, double b = 0 );
89 void sub( double x, double y, double w = 1, double a = 0, double b = 0 );
90 void calculate_average_n( double xxav, double yyav, double xyav, double xrrav, double yrrav,
91 double rrrrav );
92 double chisq( double chisq ) {
93 m_chisq = chisq;
94 return m_chisq;
95 }
96 double nc( double nc ) {
97 m_nc = nc;
98 return m_nc;
99 }
100 double solve_lambda( void );
101 double solve_lambda3( void );
102
103 // private const member functions
104
105 // data members
106 double m_wsum;
107 double m_xsum;
108 double m_ysum;
109 double m_xxsum;
110 double m_yysum;
111 double m_xysum;
112 double m_xrrsum;
113 double m_yrrsum;
114 double m_rrrrsum;
115
116 double m_wsum_temp;
117 double m_xav;
118 double m_yav;
119 double m_xyavp;
120
121 double m_rscale;
122 double m_xxavp;
123 double m_yyavp;
124 double m_xrravp;
125 double m_yrravp;
126 double m_rrrravp;
127 double m_sinrot;
128 double m_cosrot;
129
130 double m_nc;
131 double m_chisq;
132
133 // static data members
134};
135
136// inline function definitions
137inline const Lpav& Lpav::operator=( const Lpav& lp ) {
138 Lpar::operator=( lp );
139 m_wsum = lp.m_wsum;
140 m_xsum = lp.m_xsum;
141 m_ysum = lp.m_ysum;
142 m_xxsum = lp.m_xxsum;
143 m_yysum = lp.m_yysum;
144 m_xysum = lp.m_xysum;
145 m_xrrsum = lp.m_xrrsum;
146 m_yrrsum = lp.m_yrrsum;
147 m_rrrrsum = lp.m_rrrrsum;
148
149 m_wsum_temp = lp.m_wsum_temp;
150 m_xav = lp.m_xav;
151 m_yav = lp.m_yav;
152 m_xyavp = lp.m_xyavp;
153
154 m_rscale = lp.m_rscale;
155 m_xxavp = lp.m_xxavp;
156 m_yyavp = lp.m_yyavp;
157 m_xrravp = lp.m_xrravp;
158 m_yrravp = lp.m_yrravp;
159 m_rrrravp = lp.m_rrrravp;
160 m_sinrot = lp.m_sinrot;
161 m_cosrot = lp.m_cosrot;
162
163 m_nc = lp.m_nc;
164 m_chisq = lp.m_chisq;
165 return *this;
166}
167
168inline Lpav::Lpav( const Lpav& lp ) : Lpar( lp ) {
169 m_wsum = lp.m_wsum;
170 m_xsum = lp.m_xsum;
171 m_ysum = lp.m_ysum;
172 m_xxsum = lp.m_xxsum;
173 m_yysum = lp.m_yysum;
174 m_xysum = lp.m_xysum;
175 m_xrrsum = lp.m_xrrsum;
176 m_yrrsum = lp.m_yrrsum;
177 m_rrrrsum = lp.m_rrrrsum;
178
179 m_wsum_temp = lp.m_wsum_temp;
180 m_xav = lp.m_xav;
181 m_yav = lp.m_yav;
182 m_xyavp = lp.m_xyavp;
183
184 m_rscale = lp.m_rscale;
185 m_xxavp = lp.m_xxavp;
186 m_yyavp = lp.m_yyavp;
187 m_xrravp = lp.m_xrravp;
188 m_yrravp = lp.m_yrravp;
189 m_rrrravp = lp.m_rrrravp;
190 m_sinrot = lp.m_sinrot;
191 m_cosrot = lp.m_cosrot;
192
193 m_nc = lp.m_nc;
194 m_chisq = lp.m_chisq;
195 return;
196}
197
198inline void Lpav::clear() {
199 m_wsum = m_xsum = m_ysum = m_xxsum = m_yysum = m_xysum = m_xrrsum = m_yrrsum = m_rrrrsum =
200 m_rscale = m_nc = 0;
201 m_chisq = -1;
202}
203
204#endif /* PACKAGE_LPAV_H_INCLUDED */
TFile f("ana_bhabha660a_dqa_mcPat_zy_old.root")
double w
double s(double x, double y) const
double calculate_lpar3(void)
void add_point(double x, double y, double w=1)
double fit(double x, double y, double w=1)
HepSymMatrix cov_c(int=0) const
void calculate_average3(void)
void calculate_average(void)
double calculate_lpar(void)
friend std::ostream & operator<<(std::ostream &o, const Lpav &s)
virtual ~Lpav()
friend Lpav operator+(const Lpav &, const Lpav &)
void clear()
void add_point_frac(double x, double y, double w, double f)
void calculate_average3(double x, double y, double w=1)
double delta_chisq(double x, double y, double w=1) const
int extrapolate(double, double &, double &) const
const Lpav & operator=(const Lpav &)
double chi_deg() const
const Lpav & operator+=(const Lpav &)
double prob() const
const Lpav & operator=(const Lpar &)
double similarity(double, double) const
HepSymMatrix cov(int=0) const
void calculate_average(double x, double y, double w=1)
double fit()