View Javadoc

1   package org.lcsim.recon.tracking.trfutil;
2   //**********************************************************************
3   
4   // Return a weighted average.
5   public class WAvg
6   {
7       
8       private double _sum0;
9       private double _sum1;
10      private double _sum2;
11      private int _count;
12      
13      public WAvg()
14      {
15          _sum0= 0.0;
16          _sum1=0.0;
17          _sum2=0.0;
18          _count=0;
19      }
20      
21      // input is value and square of the uncertainty
22      public void addPair(double val, double err)
23      {
24          double weight = 1.0/err;
25          _sum0 += weight;
26          _sum1 += weight*val;
27          _sum2 += weight*val*val;
28          ++_count;
29      }
30      public int count()
31      {
32          return _count;
33      }
34      public double average()
35      {
36          return _sum1/_sum0;
37      }
38      public double error()
39      {
40          return 1.0/_sum0;
41      }
42      public double chiSquared()
43      {
44          return _sum2 - _sum1*_sum1/_sum0;
45      }
46      
47      
48      public String toString()
49      {
50          return "Weighted average = " + average()
51          + " +/- " + Math.sqrt(error())
52          + " (err = " + error() + ")"
53                  + "\n Chi-square = " + chiSquared();
54          
55      }
56  }