Commit in hps-java/src/main/java/org/lcsim/hps/users/phansson on MAIN
TwoTrackAnlysis.java+162-71.5 -> 1.6
Added new ntuple variables and debug histograms.

hps-java/src/main/java/org/lcsim/hps/users/phansson
TwoTrackAnlysis.java 1.5 -> 1.6
diff -u -r1.5 -r1.6
--- TwoTrackAnlysis.java	16 Jan 2013 22:24:40 -0000	1.5
+++ TwoTrackAnlysis.java	19 Jan 2013 00:55:04 -0000	1.6
@@ -63,6 +63,8 @@
     private IPlotter _plotterParticleVertex;
     private IPlotter _plotterTrackVertex;
     private IPlotter _plotterNhits;
+    private IPlotter _plotterRes;
+    private IPlotter _plotterResAll;
     private IHistogram2D _vtxpos_xy;
     private IHistogram1D _vtxpos_x;
     private IHistogram1D _vtxpos_y;
@@ -77,6 +79,23 @@
     private IHistogram1D _layershit;
     private IHistogram1D _layershit_vtxpospos;
     private IHistogram1D _layershit_vtxposneg;
+    private IHistogram1D _trk1_res1_z;
+    private IHistogram1D _trk2_res1_z;
+    private IHistogram1D _trk1_res1_y;
+    private IHistogram1D _trk2_res1_y;
+    private IHistogram1D _trk1_res2_z;
+    private IHistogram1D _trk2_res2_z;
+    private IHistogram1D _trk1_res2_y;
+    private IHistogram1D _trk2_res2_y;
+    private IHistogram1D _trk1_res1_z_all;
+    private IHistogram1D _trk2_res1_z_all;
+    private IHistogram1D _trk1_res1_y_all;
+    private IHistogram1D _trk2_res1_y_all;
+    private IHistogram1D _trk1_res2_z_all;
+    private IHistogram1D _trk2_res2_z_all;
+    private IHistogram1D _trk1_res2_y_all;
+    private IHistogram1D _trk2_res2_y_all;
+        
 
     
     
@@ -145,6 +164,29 @@
         }
         
         
+        
+        //DEBUG
+        {
+            for(Track trk : tracklist) {
+                SeedTrack st1 = (SeedTrack) trk;
+                HelicalTrackFit helix = st1.getSeedCandidate().getHelix();
+                for(TrackerHit hit: trk.getTrackerHits()) {
+                    HelicalTrackHit hth = (HelicalTrackHit) hit;
+                    Map<String,Double> res = TrackUtils.calculateTrackHitResidual(hth, helix, true);
+                    //DEBUG histos
+                    if(hth.Layer()==1) {
+                        _trk1_res1_z_all.fill(res.get("resz"));
+                        _trk1_res1_y_all.fill(res.get("resy"));
+                    }
+                    if(hth.Layer()==3) {
+                        _trk1_res2_z_all.fill(res.get("resz"));
+                        _trk1_res2_y_all.fill(res.get("resy"));
+                    }
+                }
+            }
+        }
+        
+        
         if(tracklist.size()!=2) {
             return;
         }
@@ -294,12 +336,24 @@
             br_line+="e_px/F:e_py/F:e_pz/F:p_px/F:p_py/F:p_pz/F:";
             br_line+="trk1_q/I:trk1_chi2/F:trk1_px/F:trk1_py/F:trk1_pz/F:trk1_nhits/I:";
             for(int iLayer=1;iLayer<=5;++iLayer) br_line+="trk1_hit"+iLayer+"_x/F:"+"trk1_hit"+iLayer+"_y/F:"+"trk1_hit"+iLayer+"_z/F:";
-            for(int iLayer=1;iLayer<=5;++iLayer) br_line+="trk1_res"+iLayer+"_x/F:"+"trk1_res"+iLayer+"_y/F:"+"trk1_res"+iLayer+"_z/F:";
+            for(int iLayer=1;iLayer<=5;++iLayer) {
+                br_line+="trk1_res"+iLayer+"_x/F:"+"trk1_res"+iLayer+"_y/F:"+"trk1_res"+iLayer+"_z/F:";
+                br_line+="trk1_eres"+iLayer+"_x/F:"+"trk1_eres"+iLayer+"_y/F:"+"trk1_eres"+iLayer+"_z/F:";
+                br_line+="trk1_drdphi"+iLayer+"/F:"+"trk1_msdrphi"+iLayer+"/F:";
+                br_line+="trk1_dr"+iLayer+"/F:"+"trk1_slope"+iLayer+"/F:";
+                
+            }
             for(int iLayer=1;iLayer<=10;++iLayer) br_line+="trk1_strip"+iLayer+"_u/F:";
             for(int iLayer=1;iLayer<=10;++iLayer) br_line+="trk1_strip"+iLayer+"_n/F:";
             br_line+="trk2_q/I:trk2_chi2/F:trk2_px/F:trk2_py/F:trk2_pz/F:trk2_nhits/I:";
             for(int iLayer=1;iLayer<=5;++iLayer) br_line+="trk2_hit"+iLayer+"_x/F:"+"trk2_hit"+iLayer+"_y/F:"+"trk2_hit"+iLayer+"_z/F:";
-            for(int iLayer=1;iLayer<=5;++iLayer) br_line+="trk2_res"+iLayer+"_x/F:"+"trk2_res"+iLayer+"_y/F:"+"trk2_res"+iLayer+"_z/F:";
+            for(int iLayer=1;iLayer<=5;++iLayer) {
+                br_line+="trk2_res"+iLayer+"_x/F:"+"trk2_res"+iLayer+"_y/F:"+"trk2_res"+iLayer+"_z/F:";
+                br_line+="trk2_eres"+iLayer+"_x/F:"+"trk2_eres"+iLayer+"_y/F:"+"trk2_eres"+iLayer+"_z/F:";
+                br_line+="trk2_drdphi"+iLayer+"/F:"+"trk2_msdrphi"+iLayer+"/F:";
+                br_line+="trk2_dr"+iLayer+"/F:"+"trk2_slope"+iLayer+"/F:";
+                
+            }
             for(int iLayer=1;iLayer<=10;++iLayer) br_line+="trk2_strip"+iLayer+"_u/F:";
             for(int iLayer=1;iLayer<=10;++iLayer) br_line+="trk2_strip"+iLayer+"_n/F:";
             br_line+="vtx_truth_x/F:vtx_truth_y/F:vtx_truth_z/F:";
@@ -343,8 +397,26 @@
             if (hitOnLayer != null) {
                 Map<String,Double> res = TrackUtils.calculateTrackHitResidual(hitOnLayer, helix1, true);
                 printWriter.format("%5.5f %5.5f %5.5f ", 0.0,res.get("resy"),res.get("resz"));
+                printWriter.format("%5.5f %5.5f %5.5f ", 0.0,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("dr"),res.get("slope"));
+                
+                //DEBUG histos
+                if(iLayer==0) {
+                    _trk1_res1_z.fill(res.get("resz"));
+                    _trk1_res1_y.fill(res.get("resy"));
+                }
+                if(iLayer==1) {
+                    _trk1_res2_z.fill(res.get("resz"));
+                    _trk1_res2_y.fill(res.get("resy"));
+                }
+            }
+            else {
+                printWriter.format("%5.5f %5.5f %5.5f ", -9999999.9, -9999999.9, -9999999.9);
+                printWriter.format("%5.5f %5.5f %5.5f ", -9999999.9, -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 %5.5f ", -9999999.9, -9999999.9, -9999999.9);
         }
         List<HelicalTrackHit> stereoHits = new ArrayList<HelicalTrackHit>();
         if(event.hasCollection(HelicalTrackHit.class, stereoHitCollectionName)) {
@@ -380,8 +452,27 @@
             if (hitOnLayer != null) {
                 Map<String,Double> res = TrackUtils.calculateTrackHitResidual(hitOnLayer, helix2, true);
                 printWriter.format("%5.5f %5.5f %5.5f ", 0.0,res.get("resy"),res.get("resz"));
+                printWriter.format("%5.5f %5.5f %5.5f ", 0.0,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("dr"),res.get("slope"));
+
+                //DEBUG histos
+                if(iLayer==0) {
+                    _trk1_res1_z.fill(res.get("resz"));
+                    _trk1_res1_y.fill(res.get("resy"));
+                }
+                if(iLayer==1) {
+                    _trk1_res2_z.fill(res.get("resz"));
+                    _trk1_res2_y.fill(res.get("resy"));
+                }
+
+            }
+            else {
+                printWriter.format("%5.5f %5.5f %5.5f ", -9999999.9, -9999999.9, -9999999.9);
+                printWriter.format("%5.5f %5.5f %5.5f ", -9999999.9, -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 %5.5f ", -9999999.9, -9999999.9, -9999999.9);
         }
         for(int iLayer=1;iLayer<=10;++iLayer) {
             HelicalTrackStrip strip=null;
@@ -528,7 +619,23 @@
         _layershit = aida.histogram1D("Layers hit", 5, 1, 6);
         _layershit_vtxpospos = aida.histogram1D("Layers hit pos vtx", 5, 1, 6);
         _layershit_vtxposneg = aida.histogram1D("Layers hit neg vtx", 5, 1, 6);
-        
+        _trk1_res1_z = aida.histogram1D("Track1 layer1 residual z", 50,-20,20);
+        _trk2_res1_z = aida.histogram1D("Track2 layer1 residual z", 50,-20,20);
+        _trk1_res1_y = aida.histogram1D("Track1 layer1 residual y", 50,-20,20);
+        _trk2_res1_y = aida.histogram1D("Track2 layer1 residual y", 50,-20,20);
+        _trk1_res2_z = aida.histogram1D("Track1 layer2 residual z", 50,-20,20);
+        _trk2_res2_z = aida.histogram1D("Track2 layer2 residual z", 50,-20,20);
+        _trk1_res2_y = aida.histogram1D("Track1 layer2 residual y", 50,-20,20);
+        _trk2_res2_y = aida.histogram1D("Track2 layer2 residual y", 50,-20,20);
+        
+        _trk1_res1_z_all = aida.histogram1D("Track1 layer1 residual z all", 50,-20,20);
+        _trk2_res1_z_all = aida.histogram1D("Track2 layer1 residual z all", 50,-20,20);
+        _trk1_res1_y_all = aida.histogram1D("Track1 layer1 residual y all", 50,-20,20);
+        _trk2_res1_y_all = aida.histogram1D("Track2 layer1 residual y all", 50,-20,20);
+        _trk1_res2_z_all = aida.histogram1D("Track1 layer2 residual z all", 50,-20,20);
+        _trk2_res2_z_all = aida.histogram1D("Track2 layer2 residual z all", 50,-20,20);
+        _trk1_res2_y_all = aida.histogram1D("Track1 layer2 residual y all", 50,-20,20);
+        _trk2_res2_y_all = aida.histogram1D("Track2 layer2 residual y all", 50,-20,20);
         
         _plotterTrackVertex = aida.analysisFactory().createPlotterFactory().create();
         _plotterTrackVertex.createRegions(2,2);
@@ -556,26 +663,74 @@
         _plotterNhits.region(1).plot(this._layershit_vtxposneg,"mode=overlay");
         _plotterNhits.region(1).plot(this._layershit_vtxpospos,"mode=overlay");
         _plotterNhits.region(1).style().dataStyle().fillStyle().setVisible(false);
+        _plotterRes = aida.analysisFactory().createPlotterFactory().create();
+        _plotterRes.createRegions(2,2);
+        _plotterRes.region(0).plot(this._trk1_res1_z);
+        _plotterRes.region(0).plot(this._trk2_res1_z,"mode=overlay");
+        _plotterRes.region(1).plot(this._trk1_res2_z);
+        _plotterRes.region(1).plot(this._trk2_res2_z,"mode=overlay");
+        _plotterRes.region(2).plot(this._trk1_res1_y);
+        _plotterRes.region(2).plot(this._trk2_res1_y,"mode=overlay");
+        _plotterRes.region(3).plot(this._trk1_res2_y);
+        _plotterRes.region(3).plot(this._trk2_res2_y,"mode=overlay");
+        _plotterResAll = aida.analysisFactory().createPlotterFactory().create();
+        _plotterResAll.createRegions(2,2);
+        _plotterResAll.region(0).plot(this._trk1_res1_z_all);
+        _plotterResAll.region(0).plot(this._trk2_res1_z_all,"mode=overlay");
+        _plotterResAll.region(1).plot(this._trk1_res2_z_all);
+        _plotterResAll.region(1).plot(this._trk2_res2_z_all,"mode=overlay");
+        _plotterResAll.region(2).plot(this._trk1_res1_y_all);
+        _plotterResAll.region(2).plot(this._trk2_res1_y_all,"mode=overlay");
+        _plotterResAll.region(3).plot(this._trk1_res2_y_all);
+        _plotterResAll.region(3).plot(this._trk2_res2_y_all,"mode=overlay");
         
         _plotterParticleVertex.setTitle("MC particle Vertex");
         _plotterTrackVertex.setTitle("Two Track Vertex");
         _plotterNhits.setTitle("Hits on track");
+        _plotterRes.setTitle("Track Residuals");
+        _plotterRes.setTitle("Track Residuals All");
         
-        for(int i=0;i<3;++i) {
+        for(int i=0;i<4;++i) {
             ((PlotterRegion) _plotterParticleVertex.region(i)).getPlot().setAllowUserInteraction(true);
             ((PlotterRegion) _plotterParticleVertex.region(i)).getPlot().setAllowPopupMenus(true);
             ((PlotterRegion) _plotterTrackVertex.region(i)).getPlot().setAllowUserInteraction(true);
             ((PlotterRegion) _plotterTrackVertex.region(i)).getPlot().setAllowPopupMenus(true);
-            
+            ((PlotterRegion) _plotterRes.region(i)).getPlot().setAllowUserInteraction(true);
+            ((PlotterRegion) _plotterRes.region(i)).getPlot().setAllowPopupMenus(true);
+            ((PlotterRegion) _plotterResAll.region(i)).getPlot().setAllowUserInteraction(true);
+            ((PlotterRegion) _plotterResAll.region(i)).getPlot().setAllowPopupMenus(true);
         }
         
         if(!this.hideFrame) {
             this._plotterParticleVertex.show();
             this._plotterTrackVertex.show();
             this._plotterNhits.show();
+            this._plotterRes.show();
+            this._plotterResAll.show();
         } 
     }
     
     
+      
+      
+      
+      void fillResidualPlots(Track track) {
+            SeedTrack st2 = (SeedTrack) track;
+            HelicalTrackFit helix2 = st2.getSeedCandidate().getHelix();
+            for(TrackerHit hit: track.getTrackerHits()) {
+                HelicalTrackHit hth = (HelicalTrackHit) hit;
+                Map<String,Double> res = TrackUtils.calculateTrackHitResidual(hth, helix2, true);
+                //DEBUG histos
+                if(hth.Layer()==1) {
+                    _trk1_res1_z.fill(res.get("resz"));
+                    _trk1_res1_y.fill(res.get("resy"));
+                }
+                if(hth.Layer()==3) {
+                    _trk1_res2_z.fill(res.get("resz"));
+                    _trk1_res2_y.fill(res.get("resy"));
+                }
+            }
+      }
+      
     
 }
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