Print

Print


Author: [log in to unmask]
Date: Wed Mar  9 13:01:35 2016
New Revision: 4281

Log:
changed tabs to spaces

Modified:
    java/trunk/users/src/main/java/org/hps/users/spaul/SumEverything.java
    java/trunk/users/src/main/java/org/hps/users/spaul/moller/FitAllProfiles.java
    java/trunk/users/src/main/java/org/hps/users/spaul/moller/MollerBeamtiltAnalysis.java

Modified: java/trunk/users/src/main/java/org/hps/users/spaul/SumEverything.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/spaul/SumEverything.java	(original)
+++ java/trunk/users/src/main/java/org/hps/users/spaul/SumEverything.java	Wed Mar  9 13:01:35 2016
@@ -4,6 +4,8 @@
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
+
+import org.lcsim.util.aida.AIDA;
 
 import hep.aida.IAnalysisFactory;
 import hep.aida.IHistogram1D;
@@ -77,33 +79,39 @@
         
         long timeStart = System.currentTimeMillis();
         IAnalysisFactory af = IAnalysisFactory.create();
+        //AIDA.defaultInstance().
         ITreeFactory tf = af.createTreeFactory();
         new File(out).delete();
-        ITree outtree = tf.create(out, "xml", false, true);
-        //IHistogramFactory hf = af.createHistogramFactory(outtree);
+        ITree outtree = tf.createTree(out, "xml", ITreeFactory.RECREATE);
+        IHistogramFactory hf = af.createHistogramFactory(outtree);
         int j = 0;
         String names[] = null;
         for(File s : files){
+            System.gc();
             if(!s.getAbsolutePath().endsWith("aida"))
                 continue;
             try{
-                ITree tree = tf.create(s.getAbsolutePath(),"xml");
+                
+                ITree tree = tf.createTree(s.getAbsolutePath(), "xml", ITreeFactory.READONLY);//.create(s.getAbsolutePath(),"xml");
 
 
                 if(j == 0){
                     names = tree.listObjectNames("/", true);
                     System.out.println(Arrays.toString(names));
-                    outtree.mount("/tmp", tree, "/");
+                    //outtree.mount("/tmp", tree, "/");
                     for(String name : names){
                         if(name.endsWith("/")){
                             outtree.mkdirs(name);
                             continue;
                         }
                         Object o = tree.find(name);
-                        if(o instanceof IHistogram1D || o instanceof IHistogram2D)
-                            outtree.cp("/tmp" + name, name);
+                        if(o instanceof IHistogram1D)
+                            hf.createCopy(name,(IHistogram1D)o);
+                        if(o instanceof IHistogram2D)
+                            hf.createCopy(name,(IHistogram2D)o);
+                        
                     }
-                    outtree.unmount("/tmp");
+                    //outtree.unmount("/tmp");
                     //tree.close();
 
                 }
@@ -136,7 +144,7 @@
 
                 tree.close();
                 j++;
-                System.out.println(j + " files have been read (" +(System.currentTimeMillis()-timeStart)/j + " ms per event");
+                System.out.println(j + " files have been read (" +(System.currentTimeMillis()-timeStart)/j + " ms per file)");
 
             } catch(IllegalArgumentException e){
                 //print the filename
@@ -145,9 +153,10 @@
                 e.printStackTrace();
             }
 
-            outtree.commit();
-            System.out.println("summed file " + out +" commited.  Total time = " + (System.currentTimeMillis()-timeStart)/1000 + " seconds");
         }
+        outtree.commit();
+        System.out.println("summed file " + out +" commited.  Total time = " + (System.currentTimeMillis()-timeStart)/1000 + " seconds");
+    
     }
 
     static void polyArg(String[] arg) throws IllegalArgumentException, IOException{

Modified: java/trunk/users/src/main/java/org/hps/users/spaul/moller/FitAllProfiles.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/spaul/moller/FitAllProfiles.java	(original)
+++ java/trunk/users/src/main/java/org/hps/users/spaul/moller/FitAllProfiles.java	Wed Mar  9 13:01:35 2016
@@ -1,8 +1,10 @@
 package org.hps.users.spaul.moller;
 
 import hep.aida.IAnalysisFactory;
+import hep.aida.IBaseHistogram;
 import hep.aida.IFitFactory;
 import hep.aida.IFitResult;
+import hep.aida.IFitter;
 import hep.aida.IFunction;
 import hep.aida.IHistogram1D;
 import hep.aida.IPlotter;
@@ -10,6 +12,8 @@
 import hep.aida.ITree;
 
 import java.io.IOException;
+
+import org.hps.users.spaul.StyleUtil;
 
 public class FitAllProfiles {
     static IAnalysisFactory af = IAnalysisFactory.create();
@@ -19,11 +23,24 @@
         
         ITree tree = af.createTreeFactory().create(arg[0]); 
         IPlotter p = af.createPlotterFactory().create();
-        p.createRegions(3,2);
+        p.createRegions(4,3);
         plotAndFit(p, 0, (IHistogram1D)tree.find("pypz"));
         plotAndFit(p, 1, (IHistogram1D)tree.find("pxpz"));
-        plotAndFit(p, 2, (IProfile1D)tree.find("pypz vs diff"));
-        plotAndFit(p, 3, (IProfile1D)tree.find("pxpz vs diff"));
+        plotAndFit(p, 3, (IProfile1D)tree.find("pypz vs diff"), -.3,.3);
+        plotAndFit(p, 4, (IProfile1D)tree.find("pxpz vs diff"), -.3,.3);
+        p.region(5).plot((IBaseHistogram)tree.find("diff"));
+        plotAndFit(p, 6, (IProfile1D)tree.find("pypz vs sum"), 1.0, 1.1);
+        plotAndFit(p, 7, (IProfile1D)tree.find("pxpz vs sum"), 1.0, 1.1);
+        p.region(8).plot((IBaseHistogram)tree.find("sum"));
+        plotAndFit(p, 9, (IProfile1D)tree.find("pypz vs mass"), .03, .036);
+        plotAndFit(p, 10, (IProfile1D)tree.find("pxpz vs mass"), .03, .036);
+        plotAndFit(p,11,(IHistogram1D)tree.find("mass"), .031, .034);
+        
+        
+        for(int i = 0; i< p.numberOfRegions(); i++){
+
+            p.region(i).style().dataStyle().fillStyle().setVisible(false);
+        }
         
         p.show();
     }
@@ -40,9 +57,26 @@
         p.region(r).plot(func);
         
     }
-    public static void plotAndFit(IPlotter p, int r, IProfile1D h){
+    public static void plotAndFit(IPlotter p, int r, IHistogram1D h, double min, double max){
         p.region(r).plot(h);
-        IFitResult fit = ff.createFitter().fit(h, "p4");
+        String range = String.format("range=\"(%f,%f)\"", min, max);
+        IFitResult fit = ff.createFitter().fit(h, "g", range);
+        IFunction func = fit.fittedFunction();
+        System.out.println("\n" + h.title());
+        String names[] = func.parameterNames();
+        double params[] = func.parameters();
+        for(int i = 0; i< names.length; i++){
+            System.out.printf("%s: %f\n", names[i], params[i]);
+        }
+        p.region(r).plot(func);
+        
+    }
+    public static void plotAndFit(IPlotter p, int r, IProfile1D h, double min, double max){
+        p.region(r).plot(h);
+        String range = String.format("range=\"(%f,%f)\"", min, max);
+        
+        IFitter fitter = ff.createFitter();
+        IFitResult fit = fitter.fit(h, "p1", range);
         IFunction func = fit.fittedFunction();
         System.out.println("\n" + h.title());
         String names[] = func.parameterNames();

Modified: java/trunk/users/src/main/java/org/hps/users/spaul/moller/MollerBeamtiltAnalysis.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/spaul/moller/MollerBeamtiltAnalysis.java	(original)
+++ java/trunk/users/src/main/java/org/hps/users/spaul/moller/MollerBeamtiltAnalysis.java	Wed Mar  9 13:01:35 2016
@@ -16,68 +16,77 @@
 import org.lcsim.util.aida.AIDA;
 
 public class MollerBeamtiltAnalysis extends Driver{
+
+    private String[] mollerCollections =  new String[]{
+            "TargetConstrainedMollerVertices",
+            "UnconstrainedMollerVertices",
+            "BeamspotConstrainedMollerVertices",
+    };
+
+
     @Override
     public void process(EventHeader event){
-        List<Vertex> mollers = event.get(Vertex.class, "TargetConstrainedMollerVertices");
-        for(Vertex v : mollers){
-            if(!passesCuts(v))
-                continue;
-            ReconstructedParticle m = v.getAssociatedParticle();
-            ReconstructedParticle top;
-            ReconstructedParticle bottom;
-            if(m.getParticles().get(0).getMomentum().y()>0){
-                top = m.getParticles().get(0);
-                bottom = m.getParticles().get(1);
-            }else{
-                top = m.getParticles().get(1);
-                bottom = m.getParticles().get(0);
-            }
-
-            double pypz = m.getMomentum().y()/m.getMomentum().z();
-            double pxpz = m.getMomentum().x()/m.getMomentum().z();
-            //double pypz = (top.getMomentum().y()+bottom.getMomentum().y())/(top.getMomentum().z()+bottom.getMomentum().z());
-            //double pxpz = (top.getMomentum().x()+bottom.getMomentum().x())/(top.getMomentum().z()+bottom.getMomentum().z());
-
-            hpypz.fill(pypz);
-            hpxpz.fill(pxpz);
-
-
-            double diff = top.getMomentum().z()-bottom.getMomentum().z();
-            double sum = m.getMomentum().z();//top.getMomentum().z()+bottom.getMomentum().z();
-            double mass = m.getMass();
-
-            if(diff > -.05 && diff < .05){
-                hpypz_mid.fill(pypz);
-                hpxpz_mid.fill(pxpz);
-            }
-
-            if(diff > .2 && diff < .3){
-                hpypz_topHighE.fill(pypz);
-                hpxpz_topHighE.fill(pxpz);
-            }
-
-            if(diff > -.3 && diff < -.2){
-                hpypz_botHighE.fill(pypz);
-                hpxpz_botHighE.fill(pxpz);
-            }
-
-
-            this.diff.fill(diff);
-            this.sum.fill(sum);
-            this.mass.fill(mass);
-            pypz_vs_diff.fill(diff,pypz );
-            pxpz_vs_diff.fill(diff, pxpz );
-
-
-
-            pxpz_vs_sum.fill(sum, pxpz );
-            pypz_vs_sum.fill(sum, pypz );
-
-            pxpz_vs_mass.fill(mass, pxpz );
-            pypz_vs_mass.fill(mass, pypz );
-            timediff.fill(top.getClusters().get(0).getCalorimeterHits().get(0).getTime()
-                    -bottom.getClusters().get(0).getCalorimeterHits().get(0).getTime());
-            /*if(moreEnergetic.getMomentum().y() > 0)
+        for(int i = 0; i< mollerCollections.length; i++){
+            List<Vertex> mollers = event.get(Vertex.class, mollerCollections[i]);
+            for(Vertex v : mollers){
+                if(!passesCuts(v))
+                    continue;
+                ReconstructedParticle m = v.getAssociatedParticle();
+                ReconstructedParticle top;
+                ReconstructedParticle bottom;
+                if(m.getParticles().get(0).getMomentum().y()>0){
+                    top = m.getParticles().get(0);
+                    bottom = m.getParticles().get(1);
+                }else{
+                    top = m.getParticles().get(1);
+                    bottom = m.getParticles().get(0);
+                }
+
+                double pypz = m.getMomentum().y()/m.getMomentum().z();
+                double pxpz = m.getMomentum().x()/m.getMomentum().z();
+                //double pypz = (top.getMomentum().y()+bottom.getMomentum().y())/(top.getMomentum().z()+bottom.getMomentum().z());
+                //double pxpz = (top.getMomentum().x()+bottom.getMomentum().x())/(top.getMomentum().z()+bottom.getMomentum().z());
+
+                hpypz[i].fill(pypz);
+                hpxpz[i].fill(pxpz);
+
+
+                double diff = top.getMomentum().z()-bottom.getMomentum().z();
+                double sum = m.getMomentum().z();//top.getMomentum().z()+bottom.getMomentum().z();
+                double mass = m.getMass();
+
+                if(diff > -.05 && diff < .05){
+                    hpypz_mid[i].fill(pypz);
+                    hpxpz_mid[i].fill(pxpz);
+                }
+
+                if(diff > .2 && diff < .3){
+                    hpypz_topHighE[i].fill(pypz);
+                    hpxpz_topHighE[i].fill(pxpz);
+                }
+
+                if(diff > -.3 && diff < -.2){
+                    hpypz_botHighE[i].fill(pypz);
+                    hpxpz_botHighE[i].fill(pxpz);
+                }
+
+
+                this.diff[i].fill(diff);
+                this.sum[i].fill(sum);
+                this.mass[i].fill(mass);
+                pypz_vs_diff[i].fill(diff,pypz );
+                pxpz_vs_diff[i].fill(diff, pxpz );
+
+
+
+                pxpz_vs_sum[i].fill(sum, pxpz );
+                pypz_vs_sum[i].fill(sum, pypz );
+
+                pxpz_vs_mass[i].fill(mass, pxpz );
+                pypz_vs_mass[i].fill(mass, pypz );
+                timediff[i].fill(top.getClusters().get(0).getCalorimeterHits().get(0).getTime()
+                        -bottom.getClusters().get(0).getCalorimeterHits().get(0).getTime());
+                /*if(moreEnergetic.getMomentum().y() > 0)
             {
                 pypz_tophighE.fill(pypz);
                 pxpz_tophighE.fill(pxpz);
@@ -87,16 +96,17 @@
                 pypz_bottomhighE.fill(pypz);
                 pxpz_bottomhighE.fill(pxpz);
             }*/
+            }
         }
     }
 
-    double _maxVtxChi2 = 15;
-    double _maxTrkChi2 = 30;
-    double _maxMass = .037;
-    double _minMass = .030;
-    double _minPz = 1.0;
-    double _maxPz = 1.1;
-    boolean passesCuts(Vertex vertex){
+    private double _maxVtxChi2 = 15;
+    private double _maxTrkChi2 = 30;
+    private double _maxMass = .037;
+    private double _minMass = .030;
+    private double _minPz = 1.0;
+    private double _maxPz = 1.1;
+    private boolean passesCuts(Vertex vertex){
         ReconstructedParticle m = vertex.getAssociatedParticle();
         if(!TrackType.isGBL(m.getType()))
             return false;
@@ -125,15 +135,10 @@
         return true;
     }
 
-    IHistogram1D hpypz, hpxpz, diff, sum, mass,
-    hpypz_topHighE, hpxpz_topHighE,
-    hpypz_botHighE, hpxpz_botHighE,
-    hpypz_mid, hpxpz_mid;
-
-    boolean display = false;
-
-
-
+    private IHistogram1D hpypz[], hpxpz[], diff[], sum[], mass[],
+        hpypz_topHighE[], hpxpz_topHighE[],
+        hpypz_botHighE[], hpxpz_botHighE[],
+        hpypz_mid[], hpxpz_mid[];
 
     public double getMaxVtxChi2() {
         return _maxVtxChi2;
@@ -195,19 +200,10 @@
     }
 
 
-    public boolean getDisplay() {
-        return display;
-    }
-
-
-    public void setDisplay(boolean display) {
-        this.display = display;
-    }
-
-    IHistogram1D vtx_x, vtx_y, timediff;
-
-    IProfile1D pxpz_vs_diff, pypz_vs_diff, pxpz_vs_sum, pypz_vs_sum,
-    pxpz_vs_mass, pypz_vs_mass;
+    private IHistogram1D vtx_x[], vtx_y[], timediff[];
+
+    private IProfile1D pxpz_vs_diff[], pypz_vs_diff[], pxpz_vs_sum[], pypz_vs_sum[],
+    pxpz_vs_mass[], pypz_vs_mass[];
 
 
     //IHistogram1D pypz_tophighE, pxpz_tophighE;
@@ -215,44 +211,74 @@
     @Override
     public void startOfData(){
         AIDA aida = AIDA.defaultInstance();
-        hpypz = aida.histogram1D("pypz", 60, -.005,.005);
-        hpxpz = aida.histogram1D("pxpz", 60, .025,.035);
-
-
-        hpypz_mid = aida.histogram1D("pypz mid", 60, -.005,.005);
-        hpxpz_mid = aida.histogram1D("pxpz mid", 60, .025,.035);
-
-        hpypz_topHighE = aida.histogram1D("pypz top", 30, -.005,.005);
-        hpxpz_topHighE = aida.histogram1D("pxpz top", 30, .025,.035);
-
-        hpypz_botHighE = aida.histogram1D("pypz bot", 30, -.005,.005);
-        hpxpz_botHighE = aida.histogram1D("pxpz bot", 30, .025,.035);
-
-
-        pxpz_vs_diff = aida.profile1D("pxpz vs diff", 25, -.60, .60);
-        pypz_vs_diff = aida.profile1D("pypz vs diff", 25, -.60, .60);
-
-        diff = aida.histogram1D("diff", 50, -.60, .60);
-
-        sum = aida.histogram1D("sum", 50, 1.0, 1.1);
-
-        pxpz_vs_sum = aida.profile1D("pxpz vs sum", 25, 1.0, 1.1);
-        pypz_vs_sum = aida.profile1D("pypz vs sum", 25, 1.0, 1.1);
-
-        pxpz_vs_mass = aida.profile1D("pxpz vs mass", 25, .03, .037);
-        pypz_vs_mass = aida.profile1D("pypz vs mass", 25, .03, .037);
-
-        //vtx_x = aida.histogram1D("vtx x", 60, -1, 1);
-        //vtx_y = aida.histogram1D("vtx y", 60, -1, 1);
-        mass = aida.histogram1D("mass", 60, .030, .037);
-        timediff = aida.histogram1D("time diff", 60, -6, 6);
-
+        hpypz = new IHistogram1D[3];
+        hpxpz = new IHistogram1D[3];
+        hpypz_mid = new IHistogram1D[3];
+        hpxpz_mid = new IHistogram1D[3];
+        hpypz_topHighE = new IHistogram1D[3];
+        hpxpz_topHighE = new IHistogram1D[3];
+        hpypz_botHighE = new IHistogram1D[3];
+        hpxpz_botHighE = new IHistogram1D[3];
+        
+        
+        pxpz_vs_diff= new IProfile1D[3];
+        pypz_vs_diff= new IProfile1D[3];
+
+        diff= new IHistogram1D[3];
+
+        sum= new IHistogram1D[3];
+
+        pxpz_vs_sum= new IProfile1D[3];
+        pypz_vs_sum= new IProfile1D[3];
+
+        pxpz_vs_mass= new IProfile1D[3];
+        pypz_vs_mass= new IProfile1D[3];
+
+        //vtx_x= new IHistogram1D[3];
+        //vtx_y= new IHistogram1D[3];
+        mass= new IHistogram1D[3];
+        timediff= new IHistogram1D[3];
+        
+        for(int i = 0; i< 3; i++){
+            
+            hpypz[i] = aida.histogram1D(mollerCollections[i]+"/"+"pypz", 60, -.005,.005);
+            hpxpz[i] = aida.histogram1D(mollerCollections[i]+"/"+"pxpz", 60, .025,.035);
+
+
+            hpypz_mid[i] = aida.histogram1D(mollerCollections[i]+"/"+"pypz mid", 60, -.005,.005);
+            hpxpz_mid[i] = aida.histogram1D(mollerCollections[i]+"/"+"pxpz mid", 60, .025,.035);
+
+            hpypz_topHighE[i] = aida.histogram1D(mollerCollections[i]+"/"+"pypz top", 30, -.005,.005);
+            hpxpz_topHighE[i] = aida.histogram1D(mollerCollections[i]+"/"+"pxpz top", 30, .025,.035);
+
+            hpypz_botHighE[i] = aida.histogram1D(mollerCollections[i]+"/"+"pypz bot", 30, -.005,.005);
+            hpxpz_botHighE[i] = aida.histogram1D(mollerCollections[i]+"/"+"pxpz bot", 30, .025,.035);
+
+
+            pxpz_vs_diff[i] = aida.profile1D(mollerCollections[i]+"/"+"pxpz vs diff", 25, -.60, .60);
+            pypz_vs_diff[i] = aida.profile1D(mollerCollections[i]+"/"+"pypz vs diff", 25, -.60, .60);
+
+            diff[i] = aida.histogram1D(mollerCollections[i]+"/"+"diff", 50, -.60, .60);
+
+            sum[i] = aida.histogram1D(mollerCollections[i]+"/"+"sum", 50, 1.0, 1.1);
+
+            pxpz_vs_sum[i] = aida.profile1D(mollerCollections[i]+"/"+"pxpz vs sum", 25, 1.0, 1.1);
+            pypz_vs_sum[i] = aida.profile1D(mollerCollections[i]+"/"+"pypz vs sum", 25, 1.0, 1.1);
+
+            pxpz_vs_mass[i] = aida.profile1D(mollerCollections[i]+"/"+"pxpz vs mass", 25, .03, .037);
+            pypz_vs_mass[i] = aida.profile1D(mollerCollections[i]+"/"+"pypz vs mass", 25, .03, .037);
+
+            //vtx_x[i] = aida.histogram1D(mollerCollections[i]+"/"+"vtx x", 60, -1, 1);
+            //vtx_y[i] = aida.histogram1D(mollerCollections[i]+"/"+"vtx y", 60, -1, 1);
+            mass[i] = aida.histogram1D(mollerCollections[i]+"/"+"mass", 60, .030, .037);
+            timediff[i] = aida.histogram1D(mollerCollections[i]+"/"+"time diff", 60, -6, 6);
+        }
 
         /*pypz_tophighE = aida.histogram1D("topHighE pypz", 60, -.005,.005);
         pxpz_tophighE = aida.histogram1D("topHighE pxpz", 60,  .025,.035);
         pypz_bottomhighE = aida.histogram1D("bottomHighE pypz", 60, -.005,.005);
         pxpz_bottomhighE = aida.histogram1D("bottomHighE pxpz", 60, .025,.035);*/
-        if(display){
+        /*if(display){
             IPlotter p = aida.analysisFactory().createPlotterFactory().create();
             StyleUtil.setSize(p, 1300, 900);
             //p.createRegions(3, 2);
@@ -271,10 +297,6 @@
             p.region(9).plot(pypz_vs_mass);
             p.region(10).plot(pxpz_vs_mass);
             p.region(11).plot(mass);
-            /*p.region(2).plot(pypz_tophighE);
-        p.region(3).plot(pxpz_tophighE);
-        p.region(4).plot(pypz_bottomhighE);
-        p.region(5).plot(pxpz_bottomhighE);*/
             StyleUtil.stylize(p.region(0),"py/pz", "py/pz", "#");
             StyleUtil.stylize(p.region(1),"px/pz", "px/pz", "#");
             StyleUtil.stylize(p.region(2),"time diff (t-b)", "diff (ns)", "#");
@@ -310,5 +332,6 @@
             StyleUtil.noFillHistogramBars(p2.region(1));
             p2.show();
         }
+         */
     }
 }