Print

Print


Commit in hps-java/src/main/java/org/lcsim/hps/monitoring/svt on MAIN
SVTHitRecoCorrelations.java+225-1011.5 -> 1.6
Compactified the plots.

hps-java/src/main/java/org/lcsim/hps/monitoring/svt
SVTHitRecoCorrelations.java 1.5 -> 1.6
diff -u -r1.5 -r1.6
--- SVTHitRecoCorrelations.java	18 May 2012 21:34:13 -0000	1.5
+++ SVTHitRecoCorrelations.java	22 May 2012 17:15:42 -0000	1.6
@@ -8,8 +8,7 @@
 import java.util.Map;
 import java.util.logging.Level;
 import java.util.logging.Logger;
-import org.lcsim.detector.identifier.IIdentifier;
-import org.lcsim.detector.identifier.IIdentifierHelper;
+import org.lcsim.detector.identifier.*;
 import org.lcsim.detector.tracker.silicon.SiSensor;
 import org.lcsim.detector.tracker.silicon.SiTrackerIdentifierHelper;
 import org.lcsim.event.EventHeader;
@@ -31,9 +30,9 @@
  */
 public class SVTHitRecoCorrelations extends Driver implements Resettable {
 
-    private AIDAFrame plotterFrame;
+    private List<AIDAFrame> plotterFrame = new ArrayList<AIDAFrame>();
     private List<IPlotter> plotters = new ArrayList<IPlotter>();
-    private AIDA aida = AIDA.defaultInstance();
+    private AIDA aida = AIDA.defaultInstance();                  
     private String rawTrackerHitCollectionName = "SVTRawTrackerHits";
     private String fittedTrackerHitCollectionName = "SVTFittedRawTrackerHits";
     private String trackerHitCollectionName = "StripClusterer_SiTrackerHitStrip1D";
@@ -44,16 +43,18 @@
     ArrayList< ArrayList<IPlotter> > plotter = new ArrayList< ArrayList<IPlotter> >();
     private Map<String, Integer> sensorRegionMap;
     private String outputPlots = null;
-    String types[] = {"Axial","Stereo", "HTH Y", "HTH X","AxialStrips","StereoStrips"};
+    String types[] = {"RawStrips","ClusterY","ClusterX"};
     String side[] = {"top","bottom"};
-
+    
     boolean doStrips = true;
     
     
     protected void detectorChanged(Detector detector) {
-        plotterFrame = new AIDAFrame();
-        plotterFrame.setTitle("HPS SVT Hit Reconstruction Correlation Plots");
-
+        plotterFrame.add(new AIDAFrame());
+        plotterFrame.get(0).setTitle("HPS Top SVT Hit Reconstruction Correlation Plots");
+        plotterFrame.add(new AIDAFrame());
+        plotterFrame.get(1).setTitle("HPS Bottom SVT Hit Reconstruction Correlation Plots");
+        
         aida.tree().cd("/");
 
 
@@ -67,16 +68,44 @@
 //        }
         IAnalysisFactory fac = aida.analysisFactory();
         
-        
+        for(int i=0;i<2;++i) {
+            plotter.add(new ArrayList<IPlotter>());
+            for(int t=0;t<3;++t) {
+                IPlotter bcorr = fac.createPlotterFactory().create("compact_" + types[t] + " " + side[i] + " hits");
+                bcorr.setTitle("Cmpt "+ side[i] + " hits " + types[t]);
+                bcorr.createRegion();
+                plotter.get(i).add(bcorr);
+                plotterFrame.get(i).addPlotter(bcorr);
+                plotters.add(bcorr);
+
+
+                IPlotterStyle style = bcorr.style();
+                style.setParameter("hist2DStyle", "colorMap");
+                style.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
+                style.statisticsBoxStyle().setVisible(false);
+                //style.dataStyle().fillStyle().setColor("yellow");
+                //style.dataStyle().errorBarStyle().setVisible(false);
+                IHistogram2D corPlot;
+                //if(t==t) {
+                        corPlot = aida.histogram2D("Cmpt_" + side[i] + "_" + types[t], 50*10, 0,10, 50*10, 0,10);
+                //}
+                
+                
+                plotter.get(i).get(t).region(0).plot(corPlot);
+            }
+        }
+
+        /*
         for (int i=0;i<2;++i) {
             plotter.add(new ArrayList<IPlotter>());
             
-            for (int t=0;t<6;++t) {
+            for (int t=0;t<8;++t) {
                 IPlotter tmp = fac.createPlotterFactory().create(types[t] + " " + side[i] + " hits");
                 tmp.setTitle(side[i] + " hits " + types[t]);
-                tmp.createRegions(5, 5);
+                if(i==2) tmp.createRegion();
+                else tmp.createRegions(5, 5);
                 plotter.get(i).add(tmp);
-                plotterFrame.addPlotter(tmp);
+                plotterFrame.get(i).addPlotter(tmp);
                 plotters.add(tmp);
                 
                 
@@ -87,33 +116,44 @@
                 //style.dataStyle().fillStyle().setColor("yellow");
                 //style.dataStyle().errorBarStyle().setVisible(false);
                 
+                IHistogram2D corPlot = aida.histogram2D("Cmpt_" + side[i] + "_" + types[t], 100*10, 0,10, 100*10, 0,10);
+                plotter.get(i).get(t).region(0).plot(corPlot);
+                
             }
         }
         
+        
      
         
         for (SiSensor ref_sensor : sensors) {
             int ref_l = getLayer(ref_sensor);
             int ref_s = getSide(ref_sensor);
             boolean ref_a = isAxial(ref_sensor);
-            ref_l = getPhysLayer(ref_l,ref_s,ref_a);
+            //ref_l = getPhysLayer(ref_l,ref_s,ref_a);
             
             System.out.println("Sensor " + ref_sensor.getName() + " -> ref_s " + ref_s + " layer " + getLayer(ref_sensor) + " phys layer " + ref_l + " axial " + ref_a);
             //if (!ref_a) continue;
             //if (ref_s == 1 ) continue; //only top for now
 
+            if(ref_l>3) continue;
+            
             for (SiSensor sensor : sensors) {
                 int l = getLayer(sensor);
                 int s = getSide(sensor);
                 boolean a = isAxial(sensor);
                 
-                l = getPhysLayer(l,s,a);
+                //l = getPhysLayer(l,s,a);
+
+                if(l>3) continue;
                 
                 
                 //correlation with same side and axial/stereo
                 
-                if ( ref_a == a && ref_s == s ) {
+                //if ( ref_a == a && ref_s == s ) {
+                if ( ref_s == s ) {
                     int region = (ref_l-1) + (l-1)*5;
+                    //int region = (ref_l-1) + (l-1)*5;
+                    System.out.println("region " + region);
                     double ymin,ymax;
                     if(s==0) {
                         ymin=0;
@@ -131,6 +171,8 @@
                             //IHistogram2D corPlot1 = aida.histogram2D(side[s] + "_" + types[4] + "_layer" + ref_l + "_layer" + l, 642, 0,641, 642, 0,641);
                             IHistogram2D corPlot1 = aida.histogram2D(side[s] + "_" + types[4] + "_layer" + ref_l + "_layer" + l, 100, 0,641, 100, 0,641);
                             plotter.get(s).get(4).region(region).plot(corPlot1);
+                            IHistogram2D corPlot2 = aida.histogram2D(side[s] + "_" + types[6] + "_layer" + ref_l + "_layer" + l, 100, 0,641, 100, 0,641);
+                            plotter.get(s).get(6).region(region).plot(corPlot2);
                         }
                     } else {
                         if(1==1) {
@@ -141,6 +183,9 @@
                             //IHistogram2D corPlot1 = aida.histogram2D(side[s] + "_" + types[5] + "_layer" + ref_l + "_layer" + l, 642, 0,641, 642, 0,641);
                             IHistogram2D corPlot1 = aida.histogram2D(side[s] + "_" + types[5] + "_layer" + ref_l + "_layer" + l, 100, 0,641, 100, 0,641);
                             plotter.get(s).get(5).region(region).plot(corPlot1);
+                            IHistogram2D corPlot2 = aida.histogram2D(side[s] + "_" + types[7] + "_layer" + ref_l + "_layer" + l, 100, 0,641, 100, 0,641);
+                            plotter.get(s).get(7).region(region).plot(corPlot2);
+                        
                         }
                     }
 
@@ -169,11 +214,12 @@
                 }
             }
         }
+        */
         
-        
-
-        plotterFrame.pack();
-        plotterFrame.setVisible(true);
+        for(int i=0;i<2;++i) {
+            plotterFrame.get(i).pack();
+            plotterFrame.get(i).setVisible(true);
+        }
     }
 
     public SVTHitRecoCorrelations() {
@@ -198,94 +244,156 @@
     public void process(EventHeader event) {
         
     
-        
-//        if (!event.hasCollection(RawTrackerHit.class, rawTrackerHitCollectionName)) {
-//            System.out.println(rawTrackerHitCollectionName + " does not exist; skipping event");
-//            int ns = sensors.size();
-//            for (int i = 0; i < ns; i++) {
-//                aida.histogram1D(sensors.get(i).getName() + "_raw_hits").fill(0);
-//                aida.histogram1D(sensors.get(i).getName() + "_reco_hits").fill(0);
-//            }
-//
-//            return;
-//        }
-//
-//        if (!event.hasCollection(HPSFittedRawTrackerHit.class, fittedTrackerHitCollectionName)) {
-//            System.out.println(fittedTrackerHitCollectionName + " does not exist; skipping event");
-//            int ns = sensors.size();
-//            for (int i = 0; i < ns; i++) {
-//                int nraw = sensors.get(i).getReadout().getHits(RawTrackerHit.class).size();
-//                aida.histogram1D(sensors.get(i).getName() + "_raw_hits").fill(nraw);
-//                aida.histogram1D(sensors.get(i).getName() + "_reco_hits").fill(0);
-//            }
-//            return;
-//        }
-//
-
         ++eventCount;
-//        List<RawTrackerHit> rawHits = event.get(RawTrackerHit.class, rawTrackerHitCollectionName);
-//        List<HPSFittedRawTrackerHit> fittedrawHits = event.get(HPSFittedRawTrackerHit.class, fittedTrackerHitCollectionName);
-        List<SiTrackerHitStrip1D> stripHits = event.get(SiTrackerHitStrip1D.class, trackerHitCollectionName);
-//        for (HPSFittedRawTrackerHit hrth : fittedrawHits) {
-//            double fittedAmp = hrth.getAmp();
-//            double fittedT0 = hrth.getT0();
-//            String sensorName = hrth.getRawTrackerHit().getDetectorElement().getName();
-//            aida.histogram1D(sensorName + "_timing").fill(fittedT0);
-//            aida.histogram1D(sensorName + "_amplitude").fill(fittedAmp);
-//        }
-//        for (SiSensor sensor : sensors) {
-//            String sensorName = sensor.getName();
-//            int nraw = sensor.getReadout().getHits(RawTrackerHit.class).size();
-//            int nreco = sensor.getReadout().getHits(HPSFittedRawTrackerHit.class).size();
-//            aida.histogram1D(sensorName + "_raw_hits").fill(nraw);
-//            aida.histogram1D(sensorName + "_reco_hits").fill(nreco);
-//        }
-        for (SiTrackerHitStrip1D ref_cluster : stripHits) {
-            SiSensor ref_sensor = ref_cluster.getSensor();
-            boolean ref_a = isAxial(ref_sensor);
-            int ref_s = getSide(ref_sensor);
-            int ref_l = getLayer(ref_sensor);
-            ref_l = getPhysLayer(ref_l,ref_s,ref_a);
-
-            SiTrackerIdentifierHelper ref_helper = ref_cluster.getIdentifierHelper();
-            IIdentifier ref_id = ref_cluster.getRawHits().get(0).getIdentifier();                    
-            int ref_strip = ref_helper.getElectrodeValue(ref_id);
 
-            
-            //if (ref_s ==0) continue;
+        if (event.hasCollection(RawTrackerHit.class, rawTrackerHitCollectionName)) {
+            List<RawTrackerHit> rawHits = event.get(RawTrackerHit.class, rawTrackerHitCollectionName);
+        
+            System.out.println("The RawTrackerHit collection " + rawTrackerHitCollectionName + " has " + rawHits.size() + " hits.");
+        
+            for (RawTrackerHit ref_hit : rawHits) {
                 
+                IIdentifierHelper ref_helper = ref_hit.getDetectorIdentifierHelper();
+                IIdentifier ref_id = ref_hit.getIdentifier();
+                int ref_l = ref_helper.getValue(ref_id, "layer"); // 1-10; axial layers are odd layers; stereo layers are even
+                int ref_s = ref_helper.getValue(ref_id, "module"); // 0-1; module number is top or bottom
+                boolean ref_a = isAxial(ref_s,ref_l);
+                //ref_l = getPhysLayer(ref_l,ref_s,ref_a);
+
+                ///if(ref_l>3) continue;
+        
+                for (RawTrackerHit hit : rawHits) {
+                       
+                    IIdentifierHelper helper = hit.getDetectorIdentifierHelper();
+                
+                    IIdentifier id = hit.getIdentifier();
+                    int l = helper.getValue(id, "layer"); // 1-10; axial layers are odd layers; stereo layers are even
+                    int s = helper.getValue(id, "module"); // 0-1; module number is top or bottom
+                    boolean a = isAxial(s,l);
+                    //l = getPhysLayer(l,s,a);
+
+                    //if(l>3) continue;
+
+                    //if (ref_a==a && ref_s==s) {
+                    if (ref_s==s) {
+                        IExpandedIdentifier ref_eid = ref_helper.unpack(ref_id);
+                        IIdentifierDictionary ref_dict = ref_helper.getIdentifierDictionary();
+                        int ref_strip = ref_eid.getValue(ref_dict.getFieldIndex("strip"));
+                        IExpandedIdentifier eid = helper.unpack(id);
+                        IIdentifierDictionary dict = helper.getIdentifierDictionary();
+                        int strip = eid.getValue(dict.getFieldIndex("strip"));
+                        
+                        
+                        double c_strip = ((double)strip)/640.0 + (l-1);
+                        double c_ref_strip = ((double)ref_strip)/640.0 + (ref_l-1);
+                        
+                        aida.histogram2D("Cmpt_" + side[s] + "_" + types[0]).fill(c_ref_strip,c_strip);
+                        
+            
+
+                        
+                        
+                        
+                        
+                        
+                        // Fill in the side and strip numbers.
+                        //ref_eid.setValue(dict.getFieldIndex("side"), sideNumber);
+                        //ref_eid.setValue(dict.getFieldIndex("strip"), stripNumber);
+
+                        //int clusterSize = cluster.getRawHits().size();
+                        //Move this to strip nr?
+                        //System.out.println("side " + side[s]);
+//                        if( a) {
+//                            if(doStrips) aida.histogram2D(side[s] + "_" + types[6] + "_layer" + ref_l + "_layer" + l).fill(ref_strip,strip);
+//                        } else {
+//                            if(doStrips) aida.histogram2D(side[s] + "_" + types[7] + "_layer" + ref_l + "_layer" + l).fill(ref_strip,strip);
+//
+//                        }
+                    }
+                }
+            }
+        }
+        else {
+        
+            System.out.println("No " + rawTrackerHitCollectionName + " was found in this event.");
+        }
+        
+        
+        
+        
+        
+        
+        
+        if (event.hasCollection(SiTrackerHitStrip1D.class, trackerHitCollectionName)) {
+            List<SiTrackerHitStrip1D> stripHits = event.get(SiTrackerHitStrip1D.class, trackerHitCollectionName);
+        
+            System.out.println("The SiTrackerHitStrip1D collection " + trackerHitCollectionName + " has " + stripHits.size() + " hits.");
+        
+            for (SiTrackerHitStrip1D ref_cluster : stripHits) {
+                SiSensor ref_sensor = ref_cluster.getSensor();
                 
-            for (SiTrackerHitStrip1D cluster : stripHits) {
-                SiSensor sensor = cluster.getSensor();
-                boolean a = isAxial(sensor);
-                int s = getSide(sensor);
+                boolean ref_a = isAxial(ref_sensor);
+                int ref_s = getSide(ref_sensor);
+                int ref_l = getLayer(ref_sensor);
+                //ref_l = getPhysLayer(ref_l,ref_s,ref_a);
+                
+                SiTrackerIdentifierHelper ref_helper = ref_cluster.getIdentifierHelper();
+                IIdentifier ref_id = ref_cluster.getRawHits().get(0).getIdentifier();                    
+                int ref_strip = ref_helper.getElectrodeValue(ref_id);
+
                 
-                if (ref_a==a && ref_s==s) {
-                    
-                    int l = getLayer(sensor);
-                    l = getPhysLayer(l,s,a);
-                    SiTrackerIdentifierHelper helper = cluster.getIdentifierHelper();
-                    IIdentifier id = cluster.getRawHits().get(0).getIdentifier();                    
-                    int strip = helper.getElectrodeValue(id);
-                            //.hps_hit.getRawTrackerHit().getIdentifier();
-                    
-                    //int clusterSize = cluster.getRawHits().size();
-                    //Move this to strip nr?
-                    //System.out.println("side " + side[s]);
-                    if( a) {
-                        if(1==1) aida.histogram2D(side[s] + "_" + types[0] + "_layer" + ref_l + "_layer" + l).fill(ref_cluster.getPosition()[1],cluster.getPosition()[1]);
-                        if(doStrips) aida.histogram2D(side[s] + "_" + types[4] + "_layer" + ref_l + "_layer" + l).fill(ref_strip,strip);
-                    } else {
-                        if(1==1) aida.histogram2D(side[s] + "_" + types[1] + "_layer" + ref_l + "_layer" + l).fill(ref_cluster.getPosition()[1],cluster.getPosition()[1]);
-                        if(doStrips) aida.histogram2D(side[s] + "_" + types[5] + "_layer" + ref_l + "_layer" + l).fill(ref_strip,strip);
-                            
+
+                for (SiTrackerHitStrip1D cluster : stripHits) {
+                    SiSensor sensor = cluster.getSensor();
+                    boolean a = isAxial(sensor);
+                    int s = getSide(sensor);
+
+                    if (ref_s==s) {
+                    //if (ref_a==a && ref_s==s) {
+
+                        int l = getLayer(sensor);
+                        //l = getPhysLayer(l,s,a);
+                        SiTrackerIdentifierHelper helper = cluster.getIdentifierHelper();
+                        IIdentifier id = cluster.getRawHits().get(0).getIdentifier();                    
+                        int strip = helper.getElectrodeValue(id);
+                                //.hps_hit.getRawTrackerHit().getIdentifier();
+
+                        
+                        double p  = cluster.getPosition()[1]/50.0 + (l-1);
+                        double ref_p  = ref_cluster.getPosition()[1]/50.0 + (ref_l-1);
+                        
+                        aida.histogram2D("Cmpt_" + side[s] + "_" + types[1]).fill(ref_p,p);
+                        
+                        p  = (cluster.getPosition()[0]+50.0)/100.0 + (l-1);
+                        ref_p  = (ref_cluster.getPosition()[0]+50.0)/100.0 + (ref_l-1);
+                        
+                        aida.histogram2D("Cmpt_" + side[s] + "_" + types[2]).fill(ref_p,p);
+//                        
+//                        
+//                        
+//                        //int clusterSize = cluster.getRawHits().size();
+//                        //Move this to strip nr?
+//                        //System.out.println("side " + side[s]);
+//                        if( a) {
+//                            if(1==1) aida.histogram2D(side[s] + "_" + types[0] + "_layer" + ref_l + "_layer" + l).fill(ref_cluster.getPosition()[1],cluster.getPosition()[1]);
+//                            if(doStrips) aida.histogram2D(side[s] + "_" + types[4] + "_layer" + ref_l + "_layer" + l).fill(ref_strip,strip);
+//                        } else {
+//                            if(1==1) aida.histogram2D(side[s] + "_" + types[1] + "_layer" + ref_l + "_layer" + l).fill(ref_cluster.getPosition()[1],cluster.getPosition()[1]);
+//                            if(doStrips) aida.histogram2D(side[s] + "_" + types[5] + "_layer" + ref_l + "_layer" + l).fill(ref_strip,strip);
+//
+//                        }
                     }
                 }
             }
         }
+        else {
         
+            System.out.println("No " + trackerHitCollectionName + " was found in this event.");
+        }
         
         
+        
+        /*
         if (event.hasCollection(TrackerHit.class, hthOutputCollectionName)) {
         
             List<TrackerHit> hth = event.get(TrackerHit.class, hthOutputCollectionName);
@@ -329,7 +437,7 @@
             System.out.println("No " + hthOutputCollectionName + " was found in this event.");
         }
         
-        
+        */
         
         
 
@@ -342,8 +450,10 @@
             } catch (IOException ex) {
                 Logger.getLogger(SVTHitRecoCorrelations.class.getName()).log(Level.SEVERE, null, ex);
             }
-        plotterFrame.dispose();
-    }
+        for(int i=0;i<2;++i) {
+            plotterFrame.get(i).dispose();
+        }
+    }   
 
     @Override
     public void reset() {
@@ -420,8 +530,22 @@
          return true;
     }
     
-  
-    
+     private boolean isAxial(int ref_s,int ref_l) {
+        boolean ref_a=true;
+        if (ref_s==0) {
+             //top
+            if ( ref_l % 2 == 0 ) {
+                 ref_a = false;
+            }
+        } else {
+            //bottom
+            if ( ref_l % 2 != 0 ) {
+                ref_a = false;
+            }
+        }
+        return ref_a;
+            
     
+     }
     
 }
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