Author: [log in to unmask]
Date: Fri Jul 24 18:16:57 2015
New Revision: 3281
Log:
uncomment
Modified:
java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/GBLOutput.java
Modified: java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/GBLOutput.java
=============================================================================
--- java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/GBLOutput.java (original)
+++ java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/GBLOutput.java Fri Jul 24 18:16:57 2015
@@ -1,7 +1,3 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
package org.hps.recon.tracking.gbl;
import hep.physics.matrix.BasicMatrix;
import hep.physics.matrix.Matrix;
@@ -12,12 +8,10 @@
import hep.physics.vec.Hep3Matrix;
import hep.physics.vec.Hep3Vector;
import hep.physics.vec.VecOp;
-
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-
import org.hps.recon.tracking.CoordinateTransformations;
import org.hps.recon.tracking.MaterialSupervisor;
import org.hps.recon.tracking.MaterialSupervisor.DetectorPlane;
@@ -29,7 +23,6 @@
import org.hps.recon.tracking.TrackerHitUtils;
import org.lcsim.constants.Constants;
import org.lcsim.detector.IDetectorElement;
-import org.lcsim.detector.ITransform3D;
import org.lcsim.detector.tracker.silicon.HpsSiSensor;
import org.lcsim.event.MCParticle;
import org.lcsim.event.RawTrackerHit;
@@ -59,10 +52,10 @@
private int _debug = 0;
private GBLFileIO textFile = null;
private Hep3Vector _B;
- private TrackerHitUtils _trackerHitUtils = new TrackerHitUtils();
- private MaterialSupervisor _materialmanager;
- private MultipleScattering _scattering;
- private double _beamEnergy = 1.1; //GeV
+ private final TrackerHitUtils _trackerHitUtils = new TrackerHitUtils();
+ private final MaterialSupervisor _materialmanager;
+ private final MultipleScattering _scattering;
+ private final double _beamEnergy = 1.1; //GeV
private boolean AprimeEvent = false; // do extra checks
private boolean hasXPlanes = false;
@@ -87,7 +80,7 @@
public void setDebug(int debug) {
_debug = debug;
- _scattering.setDebug(_debug>0?true:false);
+ _scattering.setDebug((_debug>0));
}
public void buildModel(Detector detector) {
_materialmanager.buildModel(detector);
@@ -433,7 +426,7 @@
//GBLDATA
stripData.setMeas(strip.umeas());
- //stripData.setTrackPos(trkpos_meas);
+ stripData.setTrackPos(trkpos_meas);
if(_debug>1) {
System.out.printf("%s: rotation matrix to meas frame\n%s\n", getClass().getSimpleName(), VecOp.toString(trkToStripRot));
@@ -483,26 +476,26 @@
scatAngle = scatter.getScatterAngle().Angle();
}
else {
- System.out.printf("%s: WARNING cannot find scatter for detector %s with strip cluster at %s\n",this.getClass(),((RawTrackerHit)strip.getStrip().rawhits().get(0)).getDetectorElement().getName(),strip.origin().toString());
- //can be edge case where helix is outside, but close to sensor, so use hack with the sensor origin closest to hit -> FIX THIS!
- DetectorPlane closest = null;
- double dx = 999999.9;
+ if (_debug > 0) {
+ System.out.printf("%s: WARNING cannot find scatter for detector %s with strip cluster at %s\n", this.getClass(), ((RawTrackerHit) strip.getStrip().rawhits().get(0)).getDetectorElement().getName(), strip.origin().toString());
+ }
+ //can be edge case where helix is outside, but close to sensor, so make a new scatter point assuming the helix does pass through the sensor
+ DetectorPlane hitPlane = null;
if(MaterialSupervisor.class.isInstance(_scattering.getMaterialManager())) {
MaterialSupervisor matSup = (MaterialSupervisor)_scattering.getMaterialManager();
+ IDetectorElement hitElement = ((RawTrackerHit)strip.getStrip().rawhits().get(0)).getDetectorElement();
for(ScatteringDetectorVolume vol : matSup.getMaterialVolumes()) {
- DetectorPlane plane = (DetectorPlane)vol;
- double dx_loop = Math.abs(strip.origin().x() - plane.origin().x());
- if(dx_loop<dx) {
- dx = dx_loop;
- closest = plane;
+ if (vol.getDetectorElement()==hitElement) {
+ hitPlane = (DetectorPlane) vol;
+ break;
}
}
- if(closest==null) {
- throw new RuntimeException("cannot find any plane that is close to strip!");
+ if(hitPlane==null) {
+ throw new RuntimeException("cannot find plane for hit!");
} else {
// find scatterlength
- double s_closest = HelixUtils.PathToXPlane(htf,closest.origin().x(), 0., 0).get(0);
- double X0 = closest.getMaterialTraversedInRL(HelixUtils.Direction(htf, s_closest));
+ double s_closest = HelixUtils.PathToXPlane(htf,hitPlane.origin().x(), 0., 0).get(0);
+ double X0 = hitPlane.getMaterialTraversedInRL(HelixUtils.Direction(htf, s_closest));
ScatterAngle scatterAngle = new ScatterAngle(s_closest, _scattering.msangle(htf.p(this._B.magnitude()),X0));
scatAngle = scatterAngle.Angle();
}
@@ -853,7 +846,6 @@
}
}
- return;
}
private double getInvMassTracks(HelicalTrackFit htf1, HelicalTrackFit htf2) {
@@ -871,7 +863,7 @@
public class PerigeeParams {
- private BasicMatrix _params;
+ private final BasicMatrix _params;
private PerigeeParams(HelicalTrackFit htf) {
_params = GBLOutput.this.getPerParVector(htf);
|