Print

Print


Commit in lcsim/src/org/lcsim/contrib/tracking on MAIN
TrackerHitCheater.java+14-91.2 -> 1.3
Added hit smearing and updated covariance matrix calculation

lcsim/src/org/lcsim/contrib/tracking
TrackerHitCheater.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- TrackerHitCheater.java	16 Jul 2007 20:14:10 -0000	1.2
+++ TrackerHitCheater.java	19 Jul 2007 17:58:26 -0000	1.3
@@ -13,6 +13,7 @@
 import org.lcsim.event.TrackerHit;
 import org.lcsim.event.base.BaseTrackerHitMC;
 
+import hep.physics.matrix.SymmetricMatrix;
 import hep.physics.vec.Hep3Vector;
 import hep.physics.vec.BasicHep3Vector;
 import hep.physics.vec.VecOp;
@@ -28,6 +29,7 @@
 {
     
     double _max_dist = 0.1;
+    TrackerHitSmearing smear = new TrackerHitSmearing(0.007,0.007);
     
     /** Creates a new instance of TrackerHitCheater */
     public TrackerHitCheater()
@@ -90,12 +92,12 @@
     private TrackerHit makeTrackerHit(List<SimTrackerHit> cluster)
     {
         double[] position = getPosition(cluster);
-        double[] covariance = getCovariance(cluster);
+        SymmetricMatrix covariance = getCovariance(cluster,position);
         double time = getTime(cluster);
         double energy = getEnergy(cluster);
         int type = 0;
         
-        TrackerHit hit = new BaseTrackerHitMC(position, covariance, time, energy, type, cluster);
+        TrackerHit hit = new BaseTrackerHitMC(position, covariance.asPackedArray(true), time, energy, type, cluster);
         return hit;
     }
     
@@ -113,7 +115,9 @@
         {
             position[i] /= getEnergy(cluster);
         }
-        return position;
+        double[] smposition = smear.SmearedPosition(new BasicHep3Vector(position)).v();
+       
+        return smposition;
     }
        
     private double getTime(List<SimTrackerHit> cluster)
@@ -129,13 +133,14 @@
         return mean_time;
     }
     
-    private double[] getCovariance(List<SimTrackerHit> cluster)
+    private SymmetricMatrix getCovariance(List<SimTrackerHit> cluster, double[] position)
     {
-        double[] covariance = new double[3];
-        covariance[0] = Math.pow(0.007,2);
-        covariance[1] = Math.pow(0.007,2);
-        covariance[2] = Math.pow(0.007,2);
-        return covariance;
+//        double[] covariance = new double[3];
+//        covariance[0] = Math.pow(0.007,2);
+//        covariance[1] = Math.pow(0.007,2);
+//        covariance[2] = Math.pow(0.007,2);
+        SymmetricMatrix smcov = smear.getCovariance(new BasicHep3Vector(position));
+        return smcov;
     }
     
     private double getEnergy(List<SimTrackerHit> cluster)
CVSspam 0.2.8