lcsim-contrib/src/main/java/org/lcsim/contrib/HansWenzel/DualCorrection
diff -u -r1.1.2.2 -r1.1.2.3
--- DualCorrection.java 25 Sep 2009 19:33:38 -0000 1.1.2.2
+++ DualCorrection.java 25 Sep 2009 21:02:07 -0000 1.1.2.3
@@ -143,7 +143,7 @@
first = false;
} else {
fitprofile(aida.profile1D("ratio"));
- convertandfit();
+ convertandfit(slice,conv_slice);
}
Ein_prev = Ein;
System.out.println("First Event:");
@@ -228,10 +228,10 @@
protected void endOfData() {
System.out.println("End of Data:");
fitprofile(aida.profile1D("ratio"));
- convertandfit();
+ convertandfit(slice,conv_slice);
aida.tree().cd("/");
fitprofile(prof_combined);
- convertandfit();
+ convertandfit(slice_comb,conv_slice_comb);
try {
out.close();
} catch (IOException ex) {
@@ -284,41 +284,41 @@
}
}
- protected void convertandfit() {
+ protected void convertandfit(ICloud1D[] slices,IHistogram1D[] conv_slices) {
System.out.println("convert and fit:");
try {
out.write(Particlename + " " + Ein_prev + " GeV\n");
} catch (IOException ex) {
Logger.getLogger(DualCorrection.class.getName()).log(Level.SEVERE, null, ex);
}
- for (int i = 0; i < slice.length - 3; i++) {
- if (slice[i].isConverted()) {
- conv_slice[i] = slice[i].histogram();
+ for (int i = 0; i < slices.length - 3; i++) {
+ if (slices[i].isConverted()) {
+ conv_slices[i] = slices[i].histogram();
} else {
System.out.println("Converting EDep");
- double meanc = slice[i].mean();
- double rmsc = slice[i].rms();
+ double meanc = slices[i].mean();
+ double rmsc = slices[i].rms();
nsigmas = 3.;
nbins = 100;
double minx = meanc - nsigmas * rmsc;
double maxx = meanc + nsigmas * rmsc;
- slice[i].setConversionParameters(nbins, minx, maxx);
- slice[i].convertToHistogram();
- conv_slice[i] = slice[i].histogram();
+ slices[i].setConversionParameters(nbins, minx, maxx);
+ slices[i].convertToHistogram();
+ conv_slices[i] = slices[i].histogram();
}
- int entries = conv_slice[i].entries();
+ int entries = conv_slices[i].entries();
if (entries > 100) {
for (int ii = 0; ii < Fitters.length; ii++) {
System.out.println("Fitter: " + Fitters[ii]);
- gauss.setParameter("amplitude", conv_slice[i].maxBinHeight());
- gauss.setParameter("mean", conv_slice[i].mean());
- gauss.setParameter("sigma", conv_slice[i].rms());
+ gauss.setParameter("amplitude", conv_slices[i].maxBinHeight());
+ gauss.setParameter("mean", conv_slices[i].mean());
+ gauss.setParameter("sigma", conv_slices[i].rms());
jminuit = fitFactory.createFitter(Fitters[ii], "jminuit");
- jminuitResult = jminuit.fit(conv_slice[i], gauss);
+ jminuitResult = jminuit.fit(conv_slices[i], gauss);
System.out.println("jminuit " + Fitters[ii] + ": " + jminuitResult.quality());
result = jminuitResult.fittedParameters();
errors = jminuitResult.errors();
- String functionname = "ratio fitted gauss slice: " + i + " " + Fitters[ii];
+ String functionname = "ratio fitted gauss slices: " + i + " " + Fitters[ii];
System.out.println(functionname);
functionFactory.cloneFunction(functionname, jminuitResult.fittedFunction());
System.out.println(result[0] + "," + result[1] + "," + result[2]);