View Javadoc

1   package org.lcsim.recon.tracking.trffit;
2   // Hit class to test fitter.
3   // Prediction is the first track parameter.
4   // Each hit returns one prediction.
5   // Measurement and error are specified in hit constructor.
6   import org.lcsim.recon.tracking.trfbase.ETrack;
7   import org.lcsim.recon.tracking.trfbase.Hit;
8   import org.lcsim.recon.tracking.trfbase.HitDerivative;
9   import org.lcsim.recon.tracking.trfbase.HitError;
10  import org.lcsim.recon.tracking.trfbase.HitVector;
11  import org.lcsim.recon.tracking.trfutil.Assert;
12  
13  //**********************************************************************
14  
15  public class HitTestFit1 extends Hit
16  {
17      
18      // static methods
19      
20      // Return the type name.
21      public static String typeName()
22      { return "HitTestFit1"; }
23      
24      // Return the type.
25      public static String staticType()
26      { return typeName(); }
27      
28      // data
29      private double _msmt;               // measurement
30      private double _emsmt;              // square of measured error
31      private double _pred;               // prediction
32      private double _epred;              // square of prediction error
33      
34      // methods
35      
36      // Output stream.
37      public String toString()
38      {
39          return  "TestFit1 hit: \n"
40                  + "measure = " + measuredVector().get(0) + " +/- "
41                  + Math.sqrt(_emsmt) + "\n"
42                  + "predict = " + predictedVector().get(0) + " +/- "
43                  + Math.sqrt(_epred);
44      }
45      
46      // Equality.
47      protected boolean equal(  Hit hit)
48      {
49          Assert.assertTrue( hit.type() == type() );
50          return cluster() == hit.cluster() &&
51                  _pred == ((  HitTestFit1 ) hit)._pred;
52      };
53      
54      
55      
56      // Constructor.
57      public HitTestFit1(double msmt, double emsmt,   ETrack tre)
58      {_msmt = msmt;
59       _emsmt = emsmt;
60       update(tre);
61      }
62      
63      // Return the type.
64      public String type()
65      { return staticType(); }
66      
67      // Return hit chractersistics.
68      public int size()
69      { return 1; }
70      public HitVector measuredVector()
71      { return new HitVector(_msmt); }
72      public HitError measuredError()
73      { return new HitError(_emsmt); }
74      public HitVector predictedVector()
75      { return new HitVector(_pred); }
76      public HitError predictedError()
77      { return new HitError(_epred); }
78      public HitDerivative dHitdTrack()
79      {
80          HitDerivative hder = new HitDerivative(1);
81          hder.set(0,0, 1.0);
82          return hder;
83      }
84      public HitVector differenceVector()
85      { return predictedVector().minus(measuredVector()); }
86      
87      // Update.
88      public void update(   ETrack tre )
89      {
90          _pred = tre.vector().get(0);
91          _epred = tre.error().get(0,0);
92      }
93      
94  }