Belle II Software  release-05-01-25
Lpav.h
1 //-----------------------------------------------------------------------------
2 // $Id$
3 //-----------------------------------------------------------------------------
4 // Filename : Lpav.h
5 // Section : TRG CDC
6 // Owner : Yoshihito Iwasaki
7 // Email : yoshihito.iwasaki@kek.jp
8 //-----------------------------------------------------------------------------
9 // Description :
10 //-----------------------------------------------------------------------------
11 // $Log$
12 //-----------------------------------------------------------------------------
13 
14 // system include files
15 
16 #include <iosfwd>
17 
18 #include "CLHEP/Matrix/SymMatrix.h"
19 #include "trg/cdc/Lpar.h"
20 
21 #ifdef TRGCDC_SHORT_NAMES
22 #define TCLpav TRGCDCLpav
23 #endif
24 
25 namespace Belle2 {
31  class TRGCDCLpav : public TRGCDCLpar {
33  // friend classes and functions
34 
35  public:
36  // constants, enums and typedefs
37 
39  TRGCDCLpav();
41  virtual ~TRGCDCLpav();
42 
44  void calculate_average(void);
46  void calculate_average3(void);
48  void calculate_average(double x, double y, double w = 1);
50  void calculate_average3(double x, double y, double w = 1);
52  double calculate_lpar(void);
54  double calculate_lpar3(void);
56  double fit();
58  double fit(double x, double y, double w = 1);
60  inline void clear();
62  void add_point(double x, double y, double w = 1);
64  void add_point_frac(double x, double y, double w, double f);
65 
67  double nc() const { return m_nc; }
69  CLHEP::HepSymMatrix cov(int = 0) const;
71  CLHEP::HepSymMatrix cov_c(int = 0) const;
73  int extrapolate(double, double&, double&) const;
75  double similarity(double, double) const;
77  double delta_chisq(double x, double y, double w = 1) const;
79  double chisq() const { return m_chisq; }
81  double prob() const;
83  double chi_deg() const;
84 
85  // static member functions
86 
88  inline const TRGCDCLpav& operator=(const TRGCDCLpav&);
90  const TRGCDCLpav& operator=(const TRGCDCLpar&);
92  const TRGCDCLpav& operator+=(const TRGCDCLpav&);
93 
95  friend std::ostream& operator<<(std::ostream& o, const TRGCDCLpav& s);
97  friend TRGCDCLpav operator+(const TRGCDCLpav&, const TRGCDCLpav&);
99  class Singular {};
101  class Singular_c {};
102 
103  protected:
104  // protected member functions
105 
106  // protected const member functions
107 
108  private:
110  inline TRGCDCLpav(const TRGCDCLpav&);
111 
113  bool operator==(const TRGCDCLpav&) const;
115  bool operator!=(const TRGCDCLpav&) const;
116 
118 // void add(double x, double y, double w = 1, double a = 0, double b = 0);
120  void sub(double x, double y, double w = 1, double a = 0, double b = 0);
122  void calculate_average_n(double xxav, double yyav, double xyav,
123  double xrrav, double yrrav, double rrrrav);
125  double chisq(double chisq) { m_chisq = chisq; return m_chisq; }
127  double nc(double nc) { m_nc = nc; return m_nc; }
129  double solve_lambda(void);
131  double solve_lambda3(void);
132 
133  // private const member functions
134 
136  double m_wsum;
138  double m_xsum;
140  double m_ysum;
142  double m_xxsum;
144  double m_yysum;
146  double m_xysum;
148  double m_xrrsum;
150  double m_yrrsum;
152  double m_rrrrsum;
153 
155  double m_wsum_temp;
157  double m_xav;
159  double m_yav;
161  double m_xyavp;
162 
164  double m_rscale;
166  double m_xxavp;
168  double m_yyavp;
170  double m_xrravp;
172  double m_yrravp;
174  double m_rrrravp;
176  double m_sinrot;
178  double m_cosrot;
179 
181  double m_nc;
183  double m_chisq;
184 
185  // static data members
186 
187  };
188 
190  inline const TRGCDCLpav& TRGCDCLpav::operator=(const TRGCDCLpav& lp)
191  {
193  m_wsum = lp.m_wsum;
194  m_xsum = lp.m_xsum;
195  m_ysum = lp.m_ysum;
196  m_xxsum = lp.m_xxsum;
197  m_yysum = lp.m_yysum;
198  m_xysum = lp.m_xysum;
199  m_xrrsum = lp.m_xrrsum;
200  m_yrrsum = lp.m_yrrsum;
201  m_rrrrsum = lp.m_rrrrsum;
202 
203  m_wsum_temp = lp. m_wsum_temp;
204  m_xav = lp.m_xav;
205  m_yav = lp.m_yav;
206  m_xyavp = lp.m_xyavp;
207 
208  m_rscale = lp. m_rscale;
209  m_xxavp = lp.m_xxavp;
210  m_yyavp = lp.m_yyavp;
211  m_xrravp = lp.m_xrravp;
212  m_yrravp = lp.m_yrravp;
213  m_rrrravp = lp.m_rrrravp;
214  m_sinrot = lp.m_sinrot;
215  m_cosrot = lp.m_cosrot;
216 
217  m_nc = lp. m_nc;
218  m_chisq = lp.m_chisq;
219  return *this;
220  }
221 
223  {
224  m_wsum = lp.m_wsum;
225  m_xsum = lp.m_xsum;
226  m_ysum = lp.m_ysum;
227  m_xxsum = lp.m_xxsum;
228  m_yysum = lp.m_yysum;
229  m_xysum = lp.m_xysum;
230  m_xrrsum = lp.m_xrrsum;
231  m_yrrsum = lp.m_yrrsum;
232  m_rrrrsum = lp.m_rrrrsum;
233 
234  m_wsum_temp = lp. m_wsum_temp;
235  m_xav = lp.m_xav;
236  m_yav = lp.m_yav;
237  m_xyavp = lp.m_xyavp;
238 
239  m_rscale = lp. m_rscale;
240  m_xxavp = lp.m_xxavp;
241  m_yyavp = lp.m_yyavp;
242  m_xrravp = lp.m_xrravp;
243  m_yrravp = lp.m_yrravp;
244  m_rrrravp = lp.m_rrrravp;
245  m_sinrot = lp.m_sinrot;
246  m_cosrot = lp.m_cosrot;
247 
248  m_nc = lp. m_nc;
249  m_chisq = lp.m_chisq;
250  return;
251  }
252 
253  inline void TRGCDCLpav::clear()
254  {
256  = m_xrrsum = m_yrrsum = m_rrrrsum = m_rscale = m_nc = 0;
257  m_chisq = -1;
258  }
259 
261 } // namespace Belle2
262 
Belle2::TRGCDCLpav::m_rscale
double m_rscale
data members
Definition: Lpav.h:164
Belle2::TRGCDCLpav::m_xysum
double m_xysum
data members
Definition: Lpav.h:146
Belle2::TRGCDCLpav::chisq
double chisq(double chisq)
private member function chisq
Definition: Lpav.h:125
Belle2::TRGCDCLpav::m_yyavp
double m_yyavp
data members
Definition: Lpav.h:168
Belle2::TRGCDCLpav::solve_lambda3
double solve_lambda3(void)
private member function solve_lambda3
Definition: Lpav.cc:324
Belle2::TRGCDCLpav::operator<<
friend std::ostream & operator<<(std::ostream &o, const TRGCDCLpav &s)
ostream operator
Definition: Lpav.cc:270
Belle2::TRGCDCLpar::y
double y(double r) const
private const member functions
Definition: Lpar.cc:186
Belle2::TRGCDCLpav::solve_lambda
double solve_lambda(void)
private member function solve_lambda
Definition: Lpav.cc:287
Belle2::TRGCDCLpav::Singular_c
exception class, no covarience matrix_c
Definition: Lpav.h:101
Belle2::TRGCDCLpav::calculate_average
void calculate_average(void)
member functions for calculation
Definition: Lpav.cc:132
Belle2::TRGCDCLpav::m_rrrrsum
double m_rrrrsum
data members
Definition: Lpav.h:152
Belle2::TRGCDCLpav::m_xrravp
double m_xrravp
data members
Definition: Lpav.h:170
Belle2::TRGCDCLpav::fit
double fit()
member functions for fit
Definition: Lpav.cc:462
Belle2::TRGCDCLpav::m_yav
double m_yav
data members
Definition: Lpav.h:159
Belle2::TRGCDCLpav::m_yrravp
double m_yrravp
data members
Definition: Lpav.h:172
Belle2::TRGCDCLpav::TRGCDCLpav
TRGCDCLpav()
Constructor.
Definition: Lpav.cc:54
Belle2::TRGCDCLpav::prob
double prob() const
const member function prob
Definition: Lpav.cc:701
Belle2::TRGCDCLpav::operator!=
bool operator!=(const TRGCDCLpav &) const
comparison operators
Belle2::TRGCDCLpav::m_wsum
double m_wsum
data members
Definition: Lpav.h:136
Belle2::TRGCDCLpav::operator+
friend TRGCDCLpav operator+(const TRGCDCLpav &, const TRGCDCLpav &)
Definition: Lpav.cc:680
Belle2::TRGCDCLpar
TRGCDCLpar class.
Definition: Lpar.h:36
Belle2::TRGCDCLpav::m_yrrsum
double m_yrrsum
data members
Definition: Lpav.h:150
Belle2::TRGCDCLpav::extrapolate
int extrapolate(double, double &, double &) const
const member function for extrapolation
Definition: Lpav.cc:545
Belle2::TRGCDCLpav::operator=
const TRGCDCLpav & operator=(const TRGCDCLpav &)
assignment operator(s)
Definition: Lpav.h:190
Belle2::TRGCDCLpav::nc
double nc() const
const member function nc
Definition: Lpav.h:67
Belle2::TRGCDCLpar::x
double x(double r) const
private const member functions
Definition: Lpar.cc:179
Belle2::TRGCDCLpav::m_sinrot
double m_sinrot
data members
Definition: Lpav.h:176
Belle2::TRGCDCLpav::nc
double nc(double nc)
private member function nc
Definition: Lpav.h:127
Belle2::TRGCDCLpav::calculate_lpar
double calculate_lpar(void)
member functions for calculation
Definition: Lpav.cc:348
Belle2::TRGCDCLpav::m_xrrsum
double m_xrrsum
data members
Definition: Lpav.h:148
Belle2::TRGCDCLpav::m_wsum_temp
double m_wsum_temp
data members
Definition: Lpav.h:155
Belle2::TRGCDCLpav::Singular
exception class, no covarience matrix.
Definition: Lpav.h:99
Belle2::TRGCDCLpav
TRGCDCLpav class.
Definition: Lpav.h:32
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TRGCDCLpav::sub
void sub(double x, double y, double w=1, double a=0, double b=0)
private member functions
Definition: Lpav.cc:645
Belle2::TRGCDCLpav::delta_chisq
double delta_chisq(double x, double y, double w=1) const
const member function for delta chisq
Definition: Lpav.cc:719
Belle2::TRGCDCLpav::calculate_average3
void calculate_average3(void)
member functions for calculation
Definition: Lpav.cc:241
Belle2::TRGCDCLpav::clear
void clear()
member functions for clear
Definition: Lpav.h:253
Belle2::TRGCDCLpav::m_xxavp
double m_xxavp
data members
Definition: Lpav.h:166
Belle2::TRGCDCLpav::~TRGCDCLpav
virtual ~TRGCDCLpav()
Destructor.
Definition: Lpav.cc:86
Belle2::TRGCDCLpav::m_xxsum
double m_xxsum
data members
Definition: Lpav.h:142
Belle2::TRGCDCLpav::cov_c
CLHEP::HepSymMatrix cov_c(int=0) const
const member function cov_c
Definition: Lpav.cc:512
Belle2::TRGCDCLpav::operator+=
const TRGCDCLpav & operator+=(const TRGCDCLpav &)
assignment operator(s)
Definition: Lpav.cc:665
Belle2::TRGCDCLpav::m_cosrot
double m_cosrot
data members
Definition: Lpav.h:178
Belle2::TRGCDCLpav::m_ysum
double m_ysum
data members
Definition: Lpav.h:140
Belle2::TRGCDCLpav::chisq
double chisq() const
get chisq
Definition: Lpav.h:79
Belle2::TRGCDCLpav::add_point
void add_point(double x, double y, double w=1)
member functions to add point
Definition: Lpav.cc:606
Belle2::TRGCDCLpav::operator==
bool operator==(const TRGCDCLpav &) const
comparison operators
Belle2::TRGCDCLpav::chi_deg
double chi_deg() const
const member function chi_deg
Definition: Lpav.cc:713
Belle2::TRGCDCLpav::m_xyavp
double m_xyavp
data members
Definition: Lpav.h:161
Belle2::TRGCDCLpav::calculate_average_n
void calculate_average_n(double xxav, double yyav, double xyav, double xrrav, double yrrav, double rrrrav)
private member function calculate_average_n
Definition: Lpav.cc:150
Belle2::TRGCDCLpav::cov
CLHEP::HepSymMatrix cov(int=0) const
const member function cov
Definition: Lpav.cc:479
Belle2::TRGCDCLpav::m_xav
double m_xav
data members
Definition: Lpav.h:157
Belle2::TRGCDCLpav::m_chisq
double m_chisq
data members
Definition: Lpav.h:183
Belle2::TRGCDCLpav::calculate_lpar3
double calculate_lpar3(void)
member functions for calculation
Definition: Lpav.cc:402
Belle2::TRGCDCLpav::m_nc
double m_nc
data members
Definition: Lpav.h:181
Belle2::TRGCDCLpav::m_xsum
double m_xsum
data members
Definition: Lpav.h:138
Belle2::TRGCDCLpav::m_rrrravp
double m_rrrravp
data members
Definition: Lpav.h:174
Belle2::TRGCDCLpav::m_yysum
double m_yysum
data members
Definition: Lpav.h:144
Belle2::TRGCDCLpar::operator=
const TRGCDCLpar & operator=(const TRGCDCLpar &)
assignment operator(s)
Definition: Lpar.h:212
Belle2::TRGCDCLpav::add_point_frac
void add_point_frac(double x, double y, double w, double f)
member functions to add point
Definition: Lpav.cc:625
Belle2::TRGCDCLpar::s
double s(double x, double y) const
const member functions
Definition: Lpar.cc:215
Belle2::TRGCDCLpav::similarity
double similarity(double, double) const
const member function similarity
Definition: Lpav.cc:579