Print

Print


Commit in hps-java/src/main/java/org/lcsim/hps on MAIN
users/phansson/TwoTrackAnlysis.java+42-201.29 -> 1.30
recon/tracking/TrackUtils.java+3-41.33 -> 1.34
+45-24
2 modified files
Fixing return for ill-defined tracks

hps-java/src/main/java/org/lcsim/hps/users/phansson
TwoTrackAnlysis.java 1.29 -> 1.30
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) 

hps-java/src/main/java/org/lcsim/hps/recon/tracking
TrackUtils.java 1.33 -> 1.34
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;            
             }
 
             
CVSspam 0.2.12


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