Print

Print


Commit in lcsim/src/org/lcsim/contrib/Cassell/recon/Cheat on MAIN
RonRMS90Calculator.java+46added 1.1
rms90 calculator

lcsim/src/org/lcsim/contrib/Cassell/recon/Cheat
RonRMS90Calculator.java added at 1.1
diff -N RonRMS90Calculator.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ RonRMS90Calculator.java	8 Sep 2008 23:12:34 -0000	1.1
@@ -0,0 +1,46 @@
+package org.lcsim.contrib.Cassell.recon.Cheat;
+import hep.aida.*;
+import java.util.*;
+
+public class RonRMS90Calculator
+{
+   double rms90;
+   double mean90;
+   public RonRMS90Calculator()
+   {
+      rms90 = 0.;
+      mean90 = 0.;
+   }
+   public double calculateRMS90(ICloud1D cloud)
+   {
+      int entries = cloud.entries();
+      List<Double> elist = new ArrayList<Double>();
+      for(int i=0;i<entries;i++)
+      {
+         elist.add(cloud.value(i));
+      }
+      rms90 = 999999.;
+      int ntail = (int) (.1*entries);
+      int ncore = entries - ntail;
+      Collections.sort(elist);
+      for(int k=0;k<ntail;k++)
+      {
+         double sv = 0.;
+         double sv2 = 0.;
+         for(int i=k;i<k+ncore;i++)
+         {
+            sv += elist.get(i);
+            sv2 += elist.get(i)*elist.get(i);
+         }
+         double mean = sv/ncore;
+         double rms = Math.sqrt(sv2/ncore - mean*mean);
+         if(rms < rms90)
+         {
+            rms90 = rms;
+            mean90 = mean;
+         }
+      }
+      return rms90;
+   }
+   public double getMEAN90(){return mean90;}
+}
CVSspam 0.2.8