Commit in hps-java/src/main/java/org/lcsim/hps on MAIN | |||
users/phansson/TwoTrackAnlysis.java | +42 | -20 | 1.29 -> 1.30 |
recon/tracking/TrackUtils.java | +3 | -4 | 1.33 -> 1.34 |
+45 | -24 |
Fixing return for ill-defined tracks
diff -u -r1.29 -r1.30 --- TwoTrackAnlysis.java 28 Oct 2013 17:50:09 -0000 1.29 +++ TwoTrackAnlysis.java 14 Nov 2013 01:50:43 -0000 1.30 @@ -80,6 +80,7 @@
private TwoTrackVertexer vertexer = new TwoTrackVertexer(); private TwoTrackFringeVertexer fringeVertexer = new TwoTrackFringeVertexer(); private TwoParticleVertexer particleVertexer = new TwoParticleVertexer();
+ private EventQuality.Quality trk_quality_def = EventQuality.Quality.MEDIUM;
private IPlotter _plotterParticleVertex; private IPlotter _plotterTrackVertex; private IPlotter _plotterTrackVertexFr;
@@ -215,18 +216,18 @@
ArrayList<CmpTrack> tracks = new ArrayList<CmpTrack>(); for(int i=0;i<tracklist.size();++i) { Track trk = tracklist.get(i);
- if(TrackUtils.isGoodTrack(trk, tracklist, EventQuality.Quality.MEDIUM)) {
+ if(TrackUtils.isGoodTrack(trk, tracklist, trk_quality_def)) {
//System.out.printf("%s: trk momentum (%.3f,%.3f,%.3f) chi2=%.3f\n",this.getClass().getSimpleName(),trk.getTrackStates().get(0).getMomentum()[0],trk.getTrackStates().get(0).getMomentum()[1],trk.getTrackStates().get(0).getMomentum()[2],trk.getChi2()); if(_debug) {
- int cuts = TrackUtils.passTrackSelections(trk, tracklist, EventQuality.Quality.MEDIUM);
+ int cuts = TrackUtils.passTrackSelections(trk, tracklist, trk_quality_def);
System.out.printf("%s: track cuts: \n%s\n",this.getClass().getSimpleName(),EventQuality.instance().print(cuts)); System.out.printf("%s: trk momentum (%.3f,%.3f,%.3f) chi2=%.3f\n",this.getClass().getSimpleName(),trk.getTrackStates().get(0).getMomentum()[0],trk.getTrackStates().get(0).getMomentum()[1],trk.getTrackStates().get(0).getMomentum()[2],trk.getChi2()); }
- if(trk.getChi2()>10.) {
+ if(trk.getChi2()>10. && _debug) {
System.out.printf("%s: trk momentum (%.3f,%.3f,%.3f) chi2=%.3f\n",this.getClass().getSimpleName(),trk.getTrackStates().get(0).getMomentum()[0],trk.getTrackStates().get(0).getMomentum()[1],trk.getTrackStates().get(0).getMomentum()[2],trk.getChi2());
- int cuts = TrackUtils.passTrackSelections(trk, tracklist, EventQuality.Quality.MEDIUM);
+ int cuts = TrackUtils.passTrackSelections(trk, tracklist, trk_quality_def);
System.out.printf("%s: track cuts: \n%s\n",this.getClass().getSimpleName(),EventQuality.instance().print(cuts));
- System.exit(0);
+ //System.exit(0);
} tracks.add(new CmpTrack(trk)); } else {
@@ -527,11 +528,17 @@
if (hitOnLayer != null) { //printWriter.format("\n%s\n","X11"); Map<String,Double> res = TrackUtils.calculateTrackHitResidual(hitOnLayer, helix1, true);
- printWriter.format("%5.5f %5.5f ",res.get("resy"),res.get("resz")); - printWriter.format("%5.5f %5.5f ",res.get("erry"),res.get("errz")); - printWriter.format("%5.5f %5.5f ", res.get("drphi"),res.get("msdrphi")); - printWriter.format("%5.5f %5.5f ", res.get("dz_res"),res.get("msdz")); -
+ if( !res.isEmpty() ) { + printWriter.format("%5.5f %5.5f ",res.get("resy"),res.get("resz")); + printWriter.format("%5.5f %5.5f ",res.get("erry"),res.get("errz")); + printWriter.format("%5.5f %5.5f ", res.get("drphi"),res.get("msdrphi")); + printWriter.format("%5.5f %5.5f ", res.get("dz_res"),res.get("msdz")); + } else { + printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9); + printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9); + printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9); + printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9); + }
} else { printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9);
@@ -552,29 +559,29 @@
printWriter.format("%5.5f %5.5f %5.5f ", -99999999.9, -99999999.9, -99999999.9); } }
-
+
//Track at converter Hep3Vector posAtConverter = TrackUtils.extrapolateTrack(trk1,BeamlineConstants.HARP_POSITION_TESTRUN);
- if(posAtConverter!=null) printWriter.format("%5.5f %5.5f ", posAtConverter.x(),posAtConverter.y()); //note rotation from JLab->tracking
+ if(beamlinePosOk(posAtConverter)) printWriter.format("%5.5f %5.5f ", posAtConverter.x(),posAtConverter.y()); //note rotation from JLab->tracking
else printWriter.format("%5.5f %5.5f ", -9999999.9,-9999999.9); HPSTrack hpstrk1 = new HPSTrack(helix1); Hep3Vector posAtConverterFringe1 = hpstrk1.getPositionAtZMap(100., BeamlineConstants.HARP_POSITION_TESTRUN, 5.0)[0];
- if (posAtConverterFringe1!=null) printWriter.format("%5.5f %5.5f %5.5f ", posAtConverterFringe1.z(),posAtConverterFringe1.x(),posAtConverterFringe1.y()); //note rotation from JLab->tracking
+ if (beamlinePosOk(posAtConverterFringe1)) printWriter.format("%5.5f %5.5f %5.5f ", posAtConverterFringe1.z(),posAtConverterFringe1.x(),posAtConverterFringe1.y()); //note rotation from JLab->tracking
else printWriter.format("%5.5f %5.5f %5.5f ", -9999999.9,-9999999.9,-9999999.9); Hep3Vector posAtNomTarget1 = TrackUtils.extrapolateTrack(trk1,0);
- if(posAtNomTarget1!=null) printWriter.format("%5.5f %5.5f ", posAtNomTarget1.x(),posAtNomTarget1.y()); //note rotation from JLab->tracking
+ if(beamlinePosOk(posAtNomTarget1)) printWriter.format("%5.5f %5.5f ", posAtNomTarget1.x(),posAtNomTarget1.y()); //note rotation from JLab->tracking
else printWriter.format("%5.5f %5.5f ", -9999999.9,-9999999.9); Hep3Vector posAtNomTargetFringe1 = hpstrk1.getPositionAtZMap(100., 0.0, 5.0)[0];
- if (posAtNomTargetFringe1!=null) printWriter.format("%5.5f %5.5f %5.5f ", posAtNomTargetFringe1.z(),posAtNomTargetFringe1.x(),posAtNomTargetFringe1.y()); //note rotation from JLab->tracking
+ if (beamlinePosOk(posAtNomTargetFringe1)) printWriter.format("%5.5f %5.5f %5.5f ", posAtNomTargetFringe1.z(),posAtNomTargetFringe1.x(),posAtNomTargetFringe1.y()); //note rotation from JLab->tracking
else printWriter.format("%5.5f %5.5f %5.5f ", -9999999.9,-9999999.9,-9999999.9); Hep3Vector posAtECal = TrackUtils.extrapolateTrack(trk1,BeamlineConstants.ECAL_FACE_TESTRUN); Hep3Vector posAtECalFringe1 = hpstrk1.getPositionAtZMap(BeamlineConstants.DIPOLE_EDGE_TESTRUN - 100, BeamlineConstants.ECAL_FACE_TESTRUN, 5.0, false)[0];
- if(posAtECal!=null && !Double.isNaN(posAtECal.x()) && !Double.isNaN(posAtECal.y())) { - //printWriter.format("%5.5f %5.5f ",posAtECal.x(),posAtECal.y()); //note rotation from JLab->tracking - printWriter.format("%5.5f %5.5f %5.5f %5.5f %5.5f ",posAtECal.x(),posAtECal.y(),posAtECalFringe1.z(),posAtECalFringe1.x(),posAtECalFringe1.y()); //note rotation from JLab->tracking
+ if(beamlinePosOk(posAtECal)) { + //printWriter.format("%5.5f %5.5f ",posAtECal.x(),posAtECal.y()); //note rotation from JLab->tracking + printWriter.format("%5.5f %5.5f %5.5f %5.5f %5.5f ",posAtECal.x(),posAtECal.y(),posAtECalFringe1.z(),posAtECalFringe1.x(),posAtECalFringe1.y()); //note rotation from JLab->tracking
} else printWriter.format("%5.5f %5.5f %5.5f %5.5f %5.5f ",-9999999.9,-9999999.9,-9999999.9,-9999999.9,-9999999.9); //else printWriter.format("%5.5f %5.5f ",-9999999.9,-9999999.9);
@@ -586,7 +593,7 @@
//printWriter.format("%5.5f ", -9999999.9);
- if(posAtConverter!=null) {
+ if(beamlinePosOk(posAtConverter)) {
if(TrackUtils.isTopTrack(trk1, 4)) { if(trk1.getCharge()>0) { this._trk_y_at_conv_top_pos.fill(posAtConverter.x());
@@ -605,7 +612,7 @@
} } }
- if(posAtConverterFringe1!=null) {
+ if(beamlinePosOk(posAtConverterFringe1)) {
if(TrackUtils.isTopTrack(trk1, 4)) { if(trk1.getCharge()>0) { this._trk_y_at_conv_top_pos_fr.fill(posAtConverterFringe1.x());
@@ -738,6 +745,21 @@
}
+ /** + * Check that object is not null or undefined + * @param pos to check + * @return + */ + private boolean beamlinePosOk(Hep3Vector pos) { + if( pos == null) { + return false; + } else if ( Double.isNaN(pos.x()) || Double.isNaN(pos.y()) || Double.isNaN(pos.z()) ) { + return false; + } else { + return true; + } + } +
private TriggerData getTriggerInfo(EventHeader event) { if(!event.hasCollection(TriggerData.class, triggerDecisionCollectionName)) { if(_debug)
diff -u -r1.33 -r1.34 --- TrackUtils.java 16 Oct 2013 19:50:51 -0000 1.33 +++ TrackUtils.java 14 Nov 2013 01:50:43 -0000 1.34 @@ -44,7 +44,7 @@
* Re-use as much of HelixUtils as possible. * * @author Omar Moreno <[log in to unmask]>
- * @version $Id: TrackUtils.java,v 1.33 2013/10/16 19:50:51 phansson Exp $
+ * @version $Id: TrackUtils.java,v 1.34 2013/11/14 01:50:43 phansson Exp $
* TODO: Switch to tracking/LCsim coordinates for the extrapolation output! */
@@ -420,6 +420,7 @@
double xc=track.xc(); double RC = track.R(); System.out.printf("calculateTrackHitResidual: s is NaN. p=%.3f RC=%.3f, x=%.3f, xc=%.3f\n",track.p(-0.491),RC,hth.x(),xc);
+ return residuals;
} Hep3Vector posOnHelix = HelixUtils.PointOnHelix(track, s);
@@ -433,9 +434,7 @@
if(Double.isNaN(resy)) { System.out.printf("calculateTrackHitResidual: resy is NaN. hit at %s posOnHelix=%s path=%.3f wrong_path=%.3f helix:\n%s\n",hth.getCorrectedPosition().toString(),posOnHelix.toString(),s,s_wrong,track.toString());
- resy=-9999999.9; - resz=-9999999.9; -
+ return residuals;
}
Use REPLY-ALL to reply to list
To unsubscribe from the LCD-CVS list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCD-CVS&A=1