Print

Print


Commit in lcsim-contrib/src/main/java/org/lcsim/contrib/HansWenzel/DualCorrection on MAIN
DRCalibrationDriver.java+39-61.1 -> 1.2
DualCorrection.java+12-311.4 -> 1.5
Resolution.java+13-231.2 -> 1.3
+64-60
3 modified files
minor clean up

lcsim-contrib/src/main/java/org/lcsim/contrib/HansWenzel/DualCorrection
DRCalibrationDriver.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- DRCalibrationDriver.java	10 Dec 2009 19:55:24 -0000	1.1
+++ DRCalibrationDriver.java	14 Dec 2009 21:53:15 -0000	1.2
@@ -12,14 +12,47 @@
 
 public class DRCalibrationDriver extends Driver {
 
+    String AIDAFile = null;
+    String file_name = null;
+    DualCorrection dual;
+    CSClusdMJetDriver digi;
+
     public DRCalibrationDriver() {
-        CSClusdMJetDriver digi = new CSClusdMJetDriver();
+        digi = new CSClusdMJetDriver();
         add(digi);
-        DualCorrection dual = new DualCorrection();
-        String aidafile = ("LCPhys_digis_pi-_all_50cm.aida");
-        dual.setMyAIDAFilename(aidafile);
-        String asciifile = ("LCPhys_digis_pi-_all_50cm.txt");
-        dual.setMyFilename(asciifile);
+        dual = new DualCorrection();
         add(dual);
     }
+
+    @Override
+    public void startOfData() {
+        System.out.println("DRCalibrationDriver:startOfData");
+        System.out.println(AIDAFile);
+        if (AIDAFile != null) {
+            dual.setMyAIDAFilename(AIDAFile);
+        } else {
+            System.err.println("DRCalibrationDriver: AIDAFile variable must be set");
+            System.exit(1); // exit if variable is not set
+        }
+        if (file_name != null) {
+            dual.setMyFilename(file_name);
+        } else {
+            System.err.println("DRCalibrationDriver:  file_name variable must be set");
+            System.exit(1); // exit if variable is not set
+        }
+        dual.startOfData();
+
+    }
+
+    public void setMyAIDAFilename(String AIDAFile) {
+        System.out.println("DRCalibrationDriver:setMyAIDAFilename");
+        this.AIDAFile = AIDAFile;
+        System.out.println(AIDAFile);
+    }
+
+    public void setMyFilename(String file_name) {
+        System.out.println("DRCalibrationDriver:setMyFilename");
+        this.file_name = file_name;
+        System.out.println(file_name);
+    }
 }

lcsim-contrib/src/main/java/org/lcsim/contrib/HansWenzel/DualCorrection
DualCorrection.java 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- DualCorrection.java	10 Dec 2009 17:21:25 -0000	1.4
+++ DualCorrection.java	14 Dec 2009 21:53:15 -0000	1.5
@@ -3,6 +3,9 @@
 /*
  * @author wenzel
  * @date
+ * This Driver is used to obtain the dualreadout correction of a dual readout calorimeter.
+ * The Determination of the energy scale of the calorimeter response is done in a previous step
+ * using electrons (see: ElectronCalibrationDriver)
  */
 import hep.aida.ICloud1D;
 import hep.aida.ICloud2D;
@@ -42,7 +45,7 @@
     BufferedWriter out;
     IFunctionFactory functionFactory;
     IFitFactory fitFactory;
-    IDataPointSetFactory dpsf;
+    IDataPointSetFactory dpsFactory;
     boolean first;
     boolean firstEvent;
     double E_in;
@@ -53,8 +56,6 @@
     ICloud1D Edep;
     ICloud1D Eceren;
     ICloud1D Edep_cor;
-    ICloud1D Edep_dcor;
-    ICloud1D Edep_dcor_new;
     ICloud1D Eceren_cor;
     ICloud1D dlength;
     ICloud2D c_efrac_ratio;
@@ -76,27 +77,21 @@
     IFitResult jminuitResult;
     IFunction E_cor;
     IFunction C_cor;
-    IFunction D_cor;
-    IFunction D_cor_new;
     double xval[] = {10.};
     double binwidth = 0.04;
     int maxbin = (int) Math.rint(1.0 / binwidth);
 
     @Override
     protected void startOfData() {
-        System.out.println("Start of Data:");
+        System.out.println("DualCorrection:Start of Data");
         fitFactory = aida.analysisFactory().createFitFactory();
         dps_cerene = new IDataPointSet[Fitters.length];
         point_cerene = new int[Fitters.length];
-        dpsf = aida.analysisFactory().createDataPointSetFactory(aida.tree());
+        dpsFactory = aida.analysisFactory().createDataPointSetFactory(aida.tree());
         functionFactory = aida.analysisFactory().createFunctionFactory(aida.tree());
         gauss = functionFactory.createFunctionByName("gauss", "G");
-        E_cor = Electron_digisCorrection_ccal02_d15();
-        //Electron_digis_QGSP_BERT_Correction();
-        C_cor = Cerenkov_digisCorrection_ccal02_d15();
-        //Cerenkov_digis_QGSP_BERT_Correction();
-        D_cor = Dual_Correction();
-        D_cor_new = Dual_Correction_new();
+        E_cor = Electron_digisCorrection();
+        C_cor = Cerenkov_digisCorrection();
         aida.profile1D("ratio", 20, 0.4, 1.);
         dlength = aida.histogramFactory().createCloud1D("dlength", "decay length combined ", 500000, "autoConvert = false");
         prof_combined = aida.histogramFactory().createProfile1D("ratio", "ratio combined", 20, 0.4, 1.);
@@ -139,7 +134,6 @@
                 {
                     return;
                 }
-//                Hep3Vector decaylength = end_point.magnitude();
 
                 if (particle.getProductionTime() == 0.0) {
                     Particlename = particle.getType().getName();
@@ -170,8 +164,6 @@
             Edep = aida.histogramFactory().createCloud1D("Edep", "Energy Cloud", 100000, "autoConvert = false");
             Eceren = aida.histogramFactory().createCloud1D("Eceren", "Cerenkov Cloud", 100000, "autoConvert = false");
             Edep_cor = aida.histogramFactory().createCloud1D("Edep_cor", "corrected Energy Cloud", 100000, "autoConvert = false");
-            Edep_dcor = aida.histogramFactory().createCloud1D("Edep_dcor", "dual readout corrected Energy Cloud", 100000, "autoConvert = false");
-            Edep_dcor_new = aida.histogramFactory().createCloud1D("Edep_dcor_new", "new dual readout corrected Energy Cloud", 100000, "autoConvert = false");
             Eceren_cor = aida.histogramFactory().createCloud1D("Eceren_cor", "corrected Cerenkov Cloud", 100000, "autoConvert = false");
             c_Ceren_vs_Edep = aida.histogramFactory().createCloud2D("c_Ceren_vs_Edep", "ceren vs Edep", 100000, "autoConvert = false");
             slice = new ICloud1D[maxbin + 2];
@@ -183,12 +175,9 @@
             System.out.println("DirName:  " + DirName);
         }
 
-
-
         List<List<SimCalorimeterHit>> simCalorimeterHitCollections = event.get(SimCalorimeterHit.class);
         double sumEEdep = 0.0;
         double sumECeren = 0.0;
-
         aida.profile1D("ratio", 20, 0.4, 1.);
         for (List<SimCalorimeterHit> simCalorimeterHits : simCalorimeterHitCollections) {
             String CollectionName = event.getMetaData(simCalorimeterHits).getName();
@@ -220,10 +209,6 @@
         aida.cloud2D("c_efrac_ratio").fill(ratio, fraction);
         aida.profile1D("ratio").fill(ratio, fraction);
         xval[0] = ratio;
-        double cfac = D_cor.value(xval);
-        Edep_dcor.fill(sumEEdep_cor / cfac);
-        cfac = D_cor_new.value(xval);
-        Edep_dcor_new.fill(sumEEdep_cor / cfac);
         prof_combined.fill(ratio, fraction);
         c_efrac_ratio.fill(ratio, fraction);
         int bin = (int) Math.rint(ratio / binwidth);
@@ -275,10 +260,7 @@
         int profbins = profile.axis().bins();
         double profxmin = profile.axis().lowerEdge();
         double profxmax = profile.axis().upperEdge();
-        /*        for (int i = 0; i < profbins; i++) {
-        System.out.println(profile.binEntries(i));
-        }
-         */
+
         jminuitResult = jminuit.fit(profile, poly);
         System.out.println("jminuit Chi2=" + jminuitResult.quality());
         result = jminuitResult.fittedParameters();
@@ -307,14 +289,13 @@
         for (int i = 0; i < Fitters.length; i++) {
             String dpsname = "dps_ratio_" + Fitters[i];
             point_cerene[i] = 0;
-            dps_cerene[i] = dpsf.create(dpsname, "ratio", 2);
+            dps_cerene[i] = dpsFactory.create(dpsname, "ratio", 2);
         }
         for (int i = 0; i < slices.length - 3; i++) {
             if (slices[i].isConverted()) {
                 System.out.println("convert and fit already converted");
                 conv_slices[i] = slices[i].histogram();
             } else {
-                System.out.println("Converting EDep");
                 double meanc = slices[i].mean();
                 double rmsc = slices[i].rms();
                 nsigmas = 3.;
@@ -432,8 +413,8 @@
 
     IFunction Electron_digisCorrection_ccal02_d15() {
         IFunction ECor = functionFactory.createFunctionByName("ECor", "p1");
-        ECor.setParameter("p0", 1.1773e-3);
-        ECor.setParameter("p1", 1.0033);
+        ECor.setParameter("p0", 0.0011773036183174157);
+        ECor.setParameter("p1", 1.0033318414417314);
         return ECor;
     }
 

lcsim-contrib/src/main/java/org/lcsim/contrib/HansWenzel/DualCorrection
Resolution.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- Resolution.java	10 Dec 2009 17:21:25 -0000	1.2
+++ Resolution.java	14 Dec 2009 21:53:15 -0000	1.3
@@ -87,7 +87,7 @@
         C_cor = Cerenkov_digisCorrection();
         //Cerenkov_digis_QGSP_BERT_Correction();
         D_cor = Dual_Correction();
-        D_cor_digis = Dual_Correction_digis();
+        D_cor_digis = Dual_Correction_digis_ccal02_d15();
         //Dual_Correction_digis_QGSP_BERT();
         Ein_prev = 0;
         firstEvent = true;
@@ -181,21 +181,20 @@
         Eceren_cor.fill(sumECeren_cor);
         double ratio = sumECeren_cor / sumEEdep_cor;
         double fraction = sumEEdep_cor / E_in;
+        if (ratio>1.) {
+                  System.out.println(ratio);
+        }
         xval[0] = ratio;
 //        double cfac = D_cor.value(xval);
 //        Edep_dcor.fill(sumEEdep_cor / cfac);
         double cfac = D_cor_digis.value(xval);
         Edep_dcor_new.fill(sumEEdep_cor / cfac);
-
-
-
     }
 
     @Override
     protected void endOfData() {
         System.out.println("End of Data:");
         convertandfit();
-
         try {
             aida.saveAs(AIDAFile);
         } catch (IOException ex) {
@@ -206,8 +205,7 @@
     @Override
     protected void resume() {
         System.out.println("resume:");
-        firstEvent =
-                true;
+        firstEvent =true;
         aida.cloud1D("c_Edep_energy").reset();
     }
 
@@ -222,16 +220,13 @@
 
             double meanc = Edep_dcor_new.mean();
             double rmsc = Edep_dcor_new.rms();
-            nsigmas =
-                    5.;
-            nbins =
-                    100;
+            nsigmas = 5.;
+            nbins = 100;
             double minx = meanc - nsigmas * rmsc;
             double maxx = meanc + nsigmas * rmsc;
             Edep_dcor_new.setConversionParameters(nbins, minx, maxx);
             Edep_dcor_new.convertToHistogram();
-            Edep_dcor_new_conv =
-                    Edep_dcor_new.histogram();
+            Edep_dcor_new_conv = Edep_dcor_new.histogram();
         }
 
         gauss.setParameter("amplitude", Edep_dcor_new_conv.maxBinHeight());
@@ -244,21 +239,16 @@
             Logger.getLogger(Resolution.class.getName()).log(Level.SEVERE, null, ex);
         }
 
-        for (int i = 0; i <
-                Fitters.length; i++) {
+        for (int i = 0; i <Fitters.length; i++) {
             System.out.println("Fitter:  " + Fitters[i]);
             gauss.setParameter("amplitude", Edep_dcor_new_conv.maxBinHeight());
             gauss.setParameter("mean", Edep_dcor_new_conv.mean());
             gauss.setParameter("sigma", Edep_dcor_new_conv.rms());
-            jminuit =
-                    fitFactory.createFitter(Fitters[i], "jminuit");
-            jminuitResult =
-                    jminuit.fit(Edep_dcor_new_conv, gauss);
+            jminuit = fitFactory.createFitter(Fitters[i], "jminuit");
+            jminuitResult = jminuit.fit(Edep_dcor_new_conv, gauss);
             System.out.println("jminuit " + Fitters[i] + ":  " + jminuitResult.quality());
-            result =
-                    jminuitResult.fittedParameters();
-            errors =
-                    jminuitResult.errors();
+            result = jminuitResult.fittedParameters();
+            errors = jminuitResult.errors();
             String functionname = "Corrected fitted gauss  " + Fitters[i];
             System.out.println(functionname);
             functionFactory.cloneFunction(functionname, jminuitResult.fittedFunction());
CVSspam 0.2.8