lcsim-contrib/src/main/java/org/lcsim/contrib/SteveMagill
diff -u -r1.1.1.1 -r1.2
--- TrkXPosDriver.java 10 Dec 2008 22:03:06 -0000 1.1.1.1
+++ TrkXPosDriver.java 14 Feb 2012 19:21:32 -0000 1.2
@@ -59,10 +59,15 @@
// private double[] _fieldStrength;
private double zField;
private String _trklist;
+ private int _shmaxlayer;
+ private String _tename;
+ private String _thname;
+ private String _tshname;
- public TrkXPosDriver()
+ public TrkXPosDriver(int shmaxlayer)
{
// add arguments if needed
+ _shmaxlayer = shmaxlayer; // layer number for shower max - or any layer you want up to max of ECAL + HCAL
}
protected void process(EventHeader event)
@@ -146,23 +151,24 @@
tror[0] = -trpar[0]*Math.sin(trpar[1])+trrp[0];
tror[1] = trpar[0]*Math.cos(trpar[1])+trrp[1];
tror[2] = trpar[3]+trrp[2];
- Hep3Vector tror3 = new BasicHep3Vector(tror);
+ Hep3Vector tror3 = new BasicHep3Vector(tror);
+ SpacePoint trorsp = new SpacePoint(tror3); // old swimmer was deprecated, uses SP now
int trq = itr.getCharge();
// System.out.println("Track Charge " + trq + " Track P " + trp3 + " Origin " + tror3);
double TrP = Math.sqrt(itr.getPX()*itr.getPX()+itr.getPY()*itr.getPY()+itr.getPZ()*itr.getPZ());
HelixSwimmer tswim = new HelixSwimmer(zField); // assume z-component only
// swim track to positions, arguments are momentum, origin, and charge
- tswim.setTrack(trp3, tror3, trq);
-
+// tswim.setTrack(trp3, tror3, trq); // deprecated
+ tswim.setTrack(trp3, trorsp, trq);
// get swim distances to selected points (hard coded for now)
double tobrad0 = tswim.getDistanceToRadius(BRadii[0]); // layer 0 of ECAL Barrel
double toecz0 = 0.;
if (trp[2]>0) toecz0 = tswim.getDistanceToZ(ECZs[0]);
if (trp[2]<0) toecz0 = tswim.getDistanceToZ(-ECZs[0]);
- double tobrad7 = tswim.getDistanceToRadius(BRadii[7]); // layer 7 of ECAL Barrel
+ double tobrad7 = tswim.getDistanceToRadius(BRadii[_shmaxlayer]); // layer 7 of ECAL Barrel
double toecz7 = 0.;
- if (trp[2]>0) toecz7 = tswim.getDistanceToZ(ECZs[7]); // layer 7 of ECAL Endcap
- if (trp[2]<0) toecz7 = tswim.getDistanceToZ(-ECZs[7]); // layer 7 of ECAL in other endcap
+ if (trp[2]>0) toecz7 = tswim.getDistanceToZ(ECZs[_shmaxlayer]); // layer 7 of ECAL Endcap
+ if (trp[2]<0) toecz7 = tswim.getDistanceToZ(-ECZs[_shmaxlayer]); // layer 7 of ECAL in other endcap
double tobrad30 = tswim.getDistanceToRadius(BRadii[_numbemlayers]); // layer 0 of HCAL Barrel
double toecz30 = 0.;
if (trp[2]>0) toecz30 = tswim.getDistanceToZ(ECZs[_numecemlayers]); // layer 0 of HCAL Endcap
@@ -183,7 +189,7 @@
trkE0map.put(itr, trSP);
}
- // make map for ECAL layer 7
+ // make map for Shower Max
if (tobrad7<Math.abs(toecz7)) // in barrel
{
SpacePoint trSP = tswim.getPointAtLength(tobrad7);
@@ -203,14 +209,14 @@
} else // in endcap
{
- SpacePoint trSP = tswim.getPointAtLength(toecz30);
- trkH0map.put(itr, trSP);
+ SpacePoint trSP = tswim.getPointAtLength(toecz30);
+ trkH0map.put(itr, trSP);
}
}
- event.put("TrackXE0Map",trkE0map);
- event.put("TrackXEShMaxMap",trkEsmmap);
- event.put("TrackXH0Map",trkH0map);
+ event.put(_tename,trkE0map);
+ event.put(_tshname,trkEsmmap);
+ event.put(_thname,trkH0map);
}
@@ -218,6 +224,18 @@
{
_trklist = name;
}
+ public void setTrackECAL0Map(String tename)
+ {
+ _tename = tename;
+ }
+ public void setTrackShMaxMap(String tshname)
+ {
+ _tshname = tshname;
+ }
+ public void setTrackHCAL0Map(String thname)
+ {
+ _thname = thname;
+ }
}