lcsim/src/org/lcsim/contrib/NickSinev/event/util
diff -u -r1.3 -r1.4
--- SmearTrackerHits.java 8 Sep 2006 00:51:10 -0000 1.3
+++ SmearTrackerHits.java 2 Dec 2006 02:41:07 -0000 1.4
@@ -23,7 +23,7 @@
/**
* @author sinev U of Oregon; SLAC x2970; [log in to unmask]
- * @version $Id: SmearTrackerHits.java,v 1.3 2006/09/08 00:51:10 sinev Exp $
+ * @version $Id: SmearTrackerHits.java,v 1.4 2006/12/02 02:41:07 sinev Exp $
*/
public class SmearTrackerHits extends Driver
{
@@ -33,7 +33,7 @@
private double evtxClSpanDS = 0.1;
private double btrkClSpanR = 0.5;
private double btrkClSpanCS = 0.5;
- private double etrkClSpanZ = 0.5;
+ private double etrkClSpanZ = 1.0;
private double etrkClSpanDS = 0.5;
private Vector svbhits = null ;
private Vector svehits = null;
@@ -90,8 +90,9 @@
public void setVtxECHitClustTransSpan(double tsp) { evtxClSpanDS = tsp; }
public void setTrkBarrHitClustRSpan(double rsp) { btrkClSpanR = rsp; }
public void setTrkBarrHitClustTransSpan(double tsp) { btrkClSpanCS = tsp; }
- public void setTrkECHitClustRZpan(double zsp) { etrkClSpanZ = zsp; }
+ public void setTrkECHitClustZpan(double zsp) { etrkClSpanZ = zsp; }
public void setTrkECHitClustTransSpan(double tsp) { etrkClSpanDS = tsp; }
+ public void setDoHist(boolean set) { doHist = set;}
public double getVtxBarrRPResolution() { return vtxbarRPhism; }
public double getVtxBarrZResolution() { return vtxbarZsm;}
public double getVtxECRPResolution() { return vtxecRPhism;}
@@ -128,6 +129,13 @@
{
nsvbhts++;
boolean newcl = true;
+ double[] htc = th.getPoint();
+ double rht = Math.sqrt(htc[0]*htc[0]+htc[1]*htc[1]);
+ if(doHist)
+ {
+ if((rht < 14.2) && (rht > 14.))
+ aida.cloud1D("SmearTrackerHits/radial positions of VXD bar. hits").fill(rht);
+ }
if(svbclst.size()>0)
{
for(int i=0; i<svbclst.size(); i++)
@@ -138,9 +146,7 @@
if(mcpc == mcph)
{
double[] clcc = cof.getCenter();
- double[] htc = th.getPoint();
double rcl = Math.sqrt(clcc[0]*clcc[0]+clcc[1]*clcc[1]);
- double rht = Math.sqrt(htc[0]*htc[0]+htc[1]*htc[1]);
double dr = rcl-rht;
if(Math.abs(dr)<bvtxClSpanR)
{
@@ -174,18 +180,23 @@
{
ClusterOfHits clhts = (ClusterOfHits) svbclst.get(i);
double[] pnt = clhts.getCenter();
+ double[] opnt = new double[3];
+ for(int j=0; j<3; j++) opnt[j]=pnt[j];
double[] cvm = new double[6];
double r = Math.sqrt(pnt[0]*pnt[0]+pnt[1]*pnt[1]);
SmearedTrackerHit smht = new SmearedTrackerHit(pnt,cvm,clhts.getTime(),clhts.getdEdx(),1,clhts.getHits());
smsi = 1.;
for(int j=0; j<3; j++) oldcor[j]=smht.getPoint()[j];
sRh = vtxbarRPhism * ran.nextGaussian();
- if(sRh < 0.) smsi = -1.;
- sZ = vtxbarZsm * ran.nextGaussian();
+ if(sRh < 0.) smsi = -1.;
+ double vtxbefzsm = 0.;
+ double tlse = Math.abs(pnt[2])/r;
+ vtxbefzsm = Math.sqrt(vtxbarZsm*vtxbarZsm+(0.000016*tlse*tlse));
+ sZ = vtxbefzsm * ran.nextGaussian();
sR = 0.;
if(doSmear) smht.smear(sRh,sZ,sR);
V[0] = vtxbarRPhism * vtxbarRPhism;
- V[1] = vtxbarZsm * vtxbarZsm;
+ V[1] = vtxbefzsm * vtxbefzsm;
V[2] = 0.;
tcm = cmt.cyl2Cart(V,smht.getPoint());
smht.setCovMatrix(tcm);
@@ -193,9 +204,13 @@
double[] newcor = smht.getPoint();
if(doHist)
{
- aida.cloud1D("SmearTrackerHits/smear in VXD XY-dir").fill(smsi*1000.*Math.sqrt((newcor[0]-oldcor[0])*(newcor[0]-oldcor[0])+
- (newcor[1]-oldcor[1])*(newcor[1]-oldcor[1])));
- aida.cloud1D("SmearTrackerHits/smear in VXD Z-dir").fill(1000.*(newcor[2]-oldcor[2]));
+ aida.cloud1D("SmearTrackerHits/smear in VXD XY-dir").fill(smsi*1000.*Math.sqrt((newcor[0]-opnt[0])*(newcor[0]-opnt[0])+
+ (newcor[1]-opnt[1])*(newcor[1]-opnt[1])));
+ aida.cloud1D("SmearTrackerHits/smear in VXD Z-dir").fill(1000.*(newcor[2]-opnt[2]));
+ int nhinc = clhts.getNHits();
+ aida.cloud1D("SmearTrackerHits/nhits in bar. VXD cluster").fill(nhinc);
+ double dedx = clhts.getdEdx();
+ if(dedx < 0.00003) aida.cloud1D("SmearTrackerHits/total dEdx in bar. VXD cluster").fill(dedx);
}
}
}