hps-java/src/main/java/org/lcsim/hps/util
diff -u -r1.2 -r1.3
--- PrintGeometryDriver.java 26 Jun 2013 22:04:59 -0000 1.2
+++ PrintGeometryDriver.java 14 Jul 2013 06:25:31 -0000 1.3
@@ -21,6 +21,8 @@
import org.lcsim.event.SimTrackerHit;
import org.lcsim.event.base.BaseRawTrackerHit;
import org.lcsim.geometry.Detector;
+import org.lcsim.hps.recon.tracking.MaterialSupervisor;
+import org.lcsim.hps.recon.tracking.TrackerHitUtils;
import org.lcsim.recon.tracking.digitization.sisim.TrackerHitType;
import org.lcsim.util.Driver;
@@ -38,33 +40,40 @@
System.out.printf("%s: %5s %40s %40s\n",this.getClass().getSimpleName(),"ID","Pos","u");
for (SiSensor sensor: sensors) {
Hep3Vector position = sensor.getGeometry().getPosition();
- Hep3Vector u = this.getMeasuredCoordinate(sensor);
+ Hep3Vector u = this.getUnitVector(sensor, "measured");
System.out.printf("%s: %5d %40s %40s\n",this.getClass().getSimpleName(),sensor.getSensorID(),position.toString(),u.toString());
}
System.out.printf("%s: ###########################################################\n",this.getClass().getSimpleName());
}
- private Hep3Vector getMeasuredCoordinate(SiSensor sensor)
- {
- Hep3Vector u = new BasicHep3Vector(-99,-99,-99);
-
- for (ChargeCarrier carrier : ChargeCarrier.values()) {
- if (sensor.hasElectrodesOnSide(carrier)) {
- int channel = 1;
- long cell_id = sensor.makeStripId(channel, carrier.charge()).getValue();
- IIdentifier id = new Identifier(cell_id);
- SiTrackerIdentifierHelper _sid_helper = (SiTrackerIdentifierHelper) sensor.getIdentifierHelper();
- SiSensorElectrodes electrodes = sensor.getReadoutElectrodes(carrier);
- ITransform3D local_to_global = new Transform3D();// sensor.getGeometry().getLocalToGlobal();
- ITransform3D electrodes_to_global = electrodes.getLocalToGlobal();
- ITransform3D global_to_hit = local_to_global.inverse();
- ITransform3D electrodes_to_hit = Transform3D.multiply(global_to_hit, electrodes_to_global);
- u = electrodes_to_hit.rotated(electrodes.getMeasuredCoordinate(0));
+ private Hep3Vector getUnitVector(SiSensor sensor,String type)
+ {
+
+ Hep3Vector unit_vec = new BasicHep3Vector(-99,-99,-99);
+
+ for (ChargeCarrier carrier : ChargeCarrier.values()) {
+ if (sensor.hasElectrodesOnSide(carrier)) {
+ int channel = 1;
+ long cell_id = sensor.makeStripId(channel, carrier.charge()).getValue();
+ IIdentifier id = new Identifier(cell_id);
+ SiTrackerIdentifierHelper _sid_helper = (SiTrackerIdentifierHelper) sensor.getIdentifierHelper();
+ SiSensorElectrodes electrodes = sensor.getReadoutElectrodes(carrier);
+ ITransform3D local_to_global = new Transform3D();// sensor.getGeometry().getLocalToGlobal();
+ ITransform3D electrodes_to_global = electrodes.getLocalToGlobal();
+ ITransform3D global_to_hit = local_to_global.inverse();
+ ITransform3D electrodes_to_hit = Transform3D.multiply(global_to_hit, electrodes_to_global);
+ if(type=="measured") {
+ unit_vec = electrodes_to_hit.rotated(electrodes.getMeasuredCoordinate(0));
+ } else if (type=="unmeasured") {
+ unit_vec = electrodes_to_hit.rotated(electrodes.getUnmeasuredCoordinate(0));
+ } else {
+ throw new UnsupportedOperationException(String.format("type=\"%s\" not supported",type));
+ }
+ }
}
- }
- return u;
- }
+ return unit_vec;
+ }
}