Print

Print


Commit in lcsim/src/org/lcsim/mc/CCDSim on MAIN
CCDElectronicsSpec.java+5-51.2 -> 1.3
CCDSim.java+3-31.8 -> 1.9
CMTransform.java+19-191.1 -> 1.2
FullCCDSimulation.java+5-51.8 -> 1.9
SiliconDeDx.java+4-41.1 -> 1.2
+36-36
5 modified files
Fixed hit cov.matrix format. Set all default parameters to reasonable values.

lcsim/src/org/lcsim/mc/CCDSim
CCDElectronicsSpec.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- CCDElectronicsSpec.java	17 Feb 2007 02:00:18 -0000	1.2
+++ CCDElectronicsSpec.java	11 Oct 2008 00:06:53 -0000	1.3
@@ -7,16 +7,16 @@
  * conversion scale, ADC saturation level, single pixel threshold,
  * and cluster threshold to be used in full simulation of CCD responce
  * @author sinev U of Oregon; SLAC x2970; [log in to unmask]
- * @version $Id: CCDElectronicsSpec.java,v 1.2 2007/02/17 02:00:18 sinev Exp $
+ * @version $Id: CCDElectronicsSpec.java,v 1.3 2008/10/11 00:06:53 sinev Exp $
  *
  */
 public class CCDElectronicsSpec
 {
-    private double NoiseRMS = 60.;      //readout noise in e charge, r.m.s.
+    private double NoiseRMS = 55.;      //readout noise in e charge, r.m.s.
     private double ADCscale = 27.;      //ADC convertion scale, e/count
-    private int    ADCsaturation = 255; //Maximum ADC output value  
-    private int    SinglePixThr  = 3;   //Single pixel threshold for sparsification - ADC counts  
-    private int    ClustThr = 5;        //Cluster threshold for sparsification - ADC counts
+    private int    ADCsaturation = 1024; //Maximum ADC output value  
+    private int    SinglePixThr  = 4;   //Single pixel threshold for sparsification - ADC counts  
+    private int    ClustThr = 10;        //Cluster threshold for sparsification - ADC counts
     private static CCDElectronicsSpec theSpec;
     public static final double EVPERPAIR = 3.67;     
 /**

lcsim/src/org/lcsim/mc/CCDSim
CCDSim.java 1.8 -> 1.9
diff -u -r1.8 -r1.9
--- CCDSim.java	9 May 2008 00:35:32 -0000	1.8
+++ CCDSim.java	11 Oct 2008 00:06:53 -0000	1.9
@@ -18,7 +18,7 @@
  *                 November 2006 - Nick Sinev - added diffusion in depleted region,
  *                                 Lorentz Angle, output TrackerHit, not SimTrackerHit
  * @author  sinev  U of Oregon, SLAC. x2970 <BR>
- * @version $Id: CCDSim.java,v 1.8 2008/05/09 00:35:32 sinev Exp $
+ * @version $Id: CCDSim.java,v 1.9 2008/10/11 00:06:53 sinev Exp $
 *    
 */
 public class CCDSim
@@ -257,7 +257,7 @@
         LOSSWIDTH/=LOSSPERPAIR;
         DELTATH = MPLOSS + (float) 0.5 * LOSSWIDTH;
         ranlan = new RandLandau(MPLOSS,LOSSWIDTH/4.);
-        System.out.println("RandLandau initialized with MPloss "+MPLOSS+" and width "+LOSSWIDTH);
+//        System.out.println("RandLandau initialized with MPloss "+MPLOSS+" and width "+LOSSWIDTH);
 //         MEANLOSS = LOSSRATE * EPIDEP;
 //        System.out.println("From the active layer thickness, mean energy loss: "+MEANLOSS); 
 
@@ -796,7 +796,7 @@
          }
 //	 double cdr = (x*ic + y*jc+z*kc)/(Math.sqrt(x*x+y*y+z*z) * Math.sqrt(ic*ic+jc*jc+kc*kc));
 	 cdr = (x*ic + y*jc)/(Math.sqrt(x*x+y*y) * Math.sqrt(ic*ic+jc*jc+kc*kc));
-         if(Math.abs(cdr) < 0.01) { System.out.println("Attempt to simulate track segment in barrel with r-proj < 0.01"); return -1;}
+         if(Math.abs(cdr) < 0.001) {  return -1;}
 	 // this is cosine of angle between R and hit direction
 	 dL = (rref - r)/cdr; // length of the vector along hit direction to reach rref
          x0 = x + dL * ic;   //  Coordinates of extrapolation of 

lcsim/src/org/lcsim/mc/CCDSim
CMTransform.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- CMTransform.java	17 Feb 2007 02:00:18 -0000	1.1
+++ CMTransform.java	11 Oct 2008 00:06:53 -0000	1.2
@@ -51,11 +51,11 @@
    double Rsq = x*x+y*y;
    double R= Math.sqrt(Rsq);
    cartv[0] = Va*y*y/Rsq;
-   cartv[1] = Va*x*x/Rsq;
-   cartv[2] = Vb;
-   cartv[3] = Va*x*y/Rsq;
-   cartv[4] = -Vab*y/R;
-   cartv[5] = Vab*x/R;
+   cartv[2] = Va*x*x/Rsq;
+   cartv[5] = Vb;
+   cartv[1] = Va*x*y/Rsq;
+   cartv[3] = -Vab*y/R;
+   cartv[4] = Vab*x/R;
    return cartv;
   }
 
@@ -65,11 +65,11 @@
    double Rsq = x*x+y*y;
    double onors = 1./Rsq;
    cartv[0] = onors * ( Va*y*y + Vb*x*x - 2.*Vab*x*y );
-   cartv[1] = onors * ( Va*x*x + Vb*y*y + 2.*Vab*x*y );
-   cartv[2] = 0.;
-   cartv[3] = onors*(x*y*(Vb-Va)+Vab*(x*x-y*y));
-   cartv[4] = 0.;
+   cartv[2] = onors * ( Va*x*x + Vb*y*y + 2.*Vab*x*y );
    cartv[5] = 0.;
+   cartv[1] = onors*(x*y*(Vb-Va)+Vab*(x*x-y*y));
+   cartv[3] = 0.;
+   cartv[4] = 0.;
    return cartv; 
   }
 
@@ -85,11 +85,11 @@
    if(R < 0.0001) return locv;
    double z = hit.getPosition()[2];
    double Vx = hit.getCovMatrix()[0];
-   double Vy = hit.getCovMatrix()[1];
-   double Vz = hit.getCovMatrix()[2];
-   double Vxy = hit.getCovMatrix()[3];
-   double Vxz = hit.getCovMatrix()[4];
-   double Vyz = hit.getCovMatrix()[5];
+   double Vy = hit.getCovMatrix()[2];
+   double Vz = hit.getCovMatrix()[5];
+   double Vxy = hit.getCovMatrix()[1];
+   double Vxz = hit.getCovMatrix()[3];
+   double Vyz = hit.getCovMatrix()[4];
    locv[0] = Vx+Vy;
    locv[1] = Vz;
 //   if(Math.abs(x) > Math.abs(y)) locv[2] = Vyz*R/x;
@@ -111,11 +111,11 @@
    if(R < 0.0001) return locv;
    double z = hit.getPosition()[2];
    double Vx = hit.getCovMatrix()[0];
-   double Vy = hit.getCovMatrix()[1];
-   double Vz = hit.getCovMatrix()[2];
-   double Vxy = hit.getCovMatrix()[3];
-   double Vxz = hit.getCovMatrix()[4];
-   double Vyz = hit.getCovMatrix()[5];
+   double Vy = hit.getCovMatrix()[5];
+   double Vz = hit.getCovMatrix()[5];
+   double Vxy = hit.getCovMatrix()[1];
+   double Vxz = hit.getCovMatrix()[3];
+   double Vyz = hit.getCovMatrix()[4];
    if((Math.abs(Vz)>0.0000001)||(Math.abs(Vxz)>0.0000001) || (Math.abs(Vyz)>0.0000001))
    {
     System.out.println("Hit on disk surface has non-zero Z variance");   

lcsim/src/org/lcsim/mc/CCDSim
FullCCDSimulation.java 1.8 -> 1.9
diff -u -r1.8 -r1.9
--- FullCCDSimulation.java	9 May 2008 00:35:32 -0000	1.8
+++ FullCCDSimulation.java	11 Oct 2008 00:06:53 -0000	1.9
@@ -31,7 +31,7 @@
  * objects, which emplement SimTrackerHit interface, so can be used instead
  * of original Simulated Tracker Hits generated by Geant4.  
  * @author sinev U of Oregon; SLAC x2970; [log in to unmask]
- * @version $Id: FullCCDSimulation.java,v 1.8 2008/05/09 00:35:32 sinev Exp $
+ * @version $Id: FullCCDSimulation.java,v 1.9 2008/10/11 00:06:53 sinev Exp $
  */
 public class FullCCDSimulation extends Driver
 {
@@ -55,11 +55,11 @@
         private double ecAspn = 0.1;
         private double ecTspn = 0.1;
         private double Bfield = 5.;
-        private boolean simEveryColl = false;
+        private boolean simEveryColl = true;
         private String[] bar_sdets = {"VertexBarrel","BarrelVertex"};
-        private String[] ec_sdets = {"VertexEndcap","EndcapVertex"};
+        private String[] ec_sdets = {"VertexEndcap","EndcapVertex","TrackerForward"};
         private String[] bar_data = {"VtxBarrHits"};
-        private String[] ec_data = {"VtxEndcapHits"};
+        private String[] ec_data = {"VtxEndcapHits","TkrForwardHits"};
 
 
 
@@ -244,7 +244,7 @@
                  double[] cohc = rts.getCenter();
                  System.out.println("Processing raw track segm in CCD "+j+" lr "+lnmb+" with center coord: "+cohc[0]+" "+cohc[1]+" "+cohc[2]); 
                 }  
-                if(stat == -1) System.out.println("Error in processing Barr hit!");
+                // if(stat == -1) System.out.println("Error in processing Barr hit!");
 	       }
               }
              }

lcsim/src/org/lcsim/mc/CCDSim
SiliconDeDx.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- SiliconDeDx.java	18 Dec 2007 01:08:10 -0000	1.1
+++ SiliconDeDx.java	11 Oct 2008 00:06:53 -0000	1.2
@@ -29,7 +29,7 @@
    private void readTables()
    {
     SiSingleColElossTab tab = new SiSingleColElossTab(); 
-    String cacheDir = System.getProperty("user.home");
+//    String cacheDir = System.getProperty("user.home");
     double[] yval = new double[NPNTS];
     for(int i=0; i<NPNTS; i++)
     {
@@ -37,12 +37,12 @@
      _xval[i]=row[0];
      yval[i]=row[1];
     }
-    System.out.println("Last read y value was: "+yval[NPNTS-1]);
-    System.out.println("Last read x value was: "+_xval[NPNTS-1]);
+//    System.out.println("Last read y value was: "+yval[NPNTS-1]);
+//    System.out.println("Last read x value was: "+_xval[NPNTS-1]);
     double lastx = Math.log(maxsingloss/1.8);
     vpnts = 0;
     for(int i=0; i<NPNTS; i++) if(_xval[i]<lastx) vpnts=i+1;
-    System.out.println("using single collision table of "+vpnts+" length");
+//    System.out.println("using single collision table of "+vpnts+" length");
     _yint = new double[vpnts];
     _yint[0]=yval[0];
     for(int i=1; i<vpnts; i++)
CVSspam 0.2.8