lcsim-contrib/src/main/java/org/lcsim/contrib/HansWenzel/DualCorrection
diff -u -r1.7 -r1.8
--- DualCorrection.java 15 Dec 2009 23:11:36 -0000 1.7
+++ DualCorrection.java 16 Dec 2009 22:43:37 -0000 1.8
@@ -50,6 +50,7 @@
double E_in;
Integer Ein;
Integer Ein_prev;
+ String Part_prev;
double E_kin;
String Particlename;
ICloud1D Edep;
@@ -162,8 +163,7 @@
Ein = (int) Math.floor(E_kin + 0.5d);
String E_str = Ein.toString();
DirName = Particlename.concat(E_str);
-
- if (Ein != Ein_prev) {
+ if (Ein != Ein_prev||Particlename.equals(Part_prev)!=true) {
if (first) {
first = false;
} else {
@@ -172,6 +172,7 @@
convertandfit(slice, conv_slice);
}
Ein_prev = Ein;
+ Part_prev = Particlename;
System.out.println("First Event:");
System.out.println("E_in: " + E_in);
System.out.println("E_kin: " + E_kin);
@@ -424,6 +425,7 @@
public void setMyIonizationThres(Double IonizationThres) {
this.IonizationThres = IonizationThres;
}
+
double roundTwoDecimals(double d) {
DecimalFormat twoDForm = new DecimalFormat("#.##");
return Double.valueOf(twoDForm.format(d));
lcsim-contrib/src/main/java/org/lcsim/contrib/HansWenzel/DualCorrection
diff -u -r1.7 -r1.8
--- Resolution.java 16 Dec 2009 17:06:23 -0000 1.7
+++ Resolution.java 16 Dec 2009 22:43:37 -0000 1.8
@@ -50,21 +50,23 @@
ICloud1D Edep_cor;
ICloud1D Edep_dcor;
ICloud1D Eceren_cor;
- double nsigmas;
- int nbins;
+ double nsigmas=5.0;
+ int nbins=100;
IDataPointSet[] dps_Correctede = null;
int point_Correctede[];
- int point;
- int point_Correctedemean;
double[] result;
double errors[];
- String[] Fitters = {"Chi2", "leastsquares", "bml", "cleverchi2"};
+ String[] Fitters = {"Chi2", "leastsquares"};
+ // available are "Chi2", "leastsquares", "bml", "cleverchi2"
+ // but "bml", "cleverchi2" seem to produce rubish
+
IFitter jminuit;
IFitResult jminuitResult;
IFunction E_cor;
IFunction C_cor;
IFunction D_cor;
double xval[] = {10.};
+
//
// default detector configuration:
//
@@ -106,9 +108,6 @@
Ein_prev = 0;
firstEvent = true;
first = true;
- // Create a two dimensional IDataPointSet.
- point = 0;
- point_Correctedemean = 0;
gauss = functionFactory.createFunctionByName("gauss", "G");
fstream = null;
try {
@@ -141,7 +140,6 @@
DirName = Particlename.concat(E_str);
if (Ein != Ein_prev) {
if (first) {
- System.out.println("Hi Hi");
first = false;
} else {
System.out.println("E_in: " + E_in);
@@ -160,7 +158,7 @@
ECeren = aida.histogramFactory().createCloud1D("ECeren", "uncorrected Cerenkov Cloud", 100000, "autoConvert = false");
Edep = aida.histogramFactory().createCloud1D("Edep", "Energy Cloud", 100000, "autoConvert = false");
Edep_cor = aida.histogramFactory().createCloud1D("Edep_cor", "corrected Energy Cloud", 100000, "autoConvert = false");
- Edep_dcor = aida.histogramFactory().createCloud1D("Edep_dcor", "new dual readout corrected Energy Cloud", 100000, "autoConvert = false");
+ Edep_dcor = aida.histogramFactory().createCloud1D("Edep_dcor", "dual readout corrected Energy Cloud", 100000, "autoConvert = false");
Eceren_cor = aida.histogramFactory().createCloud1D("Eceren_cor", "corrected Cerenkov Cloud", 100000, "autoConvert = false");
System.out.println("DirName: " + DirName);
}
@@ -228,19 +226,14 @@
if (Edep_dcor.isConverted()) {
Edep_dcor_conv = Edep_dcor.histogram();
} else {
- System.out.println("Converting Edep_dcor");
-
double meanc = Edep_dcor.mean();
double rmsc = Edep_dcor.rms();
- nsigmas = 5.;
- nbins = 100;
double minx = meanc - nsigmas * rmsc;
double maxx = meanc + nsigmas * rmsc;
Edep_dcor.setConversionParameters(nbins, minx, maxx);
Edep_dcor.convertToHistogram();
Edep_dcor_conv = Edep_dcor.histogram();
}
-
gauss.setParameter("amplitude", Edep_dcor_conv.maxBinHeight());
gauss.setParameter("mean", Edep_dcor_conv.mean());
gauss.setParameter("sigma", Edep_dcor_conv.rms());
@@ -327,5 +320,10 @@
public void setMyIonizationThres(Double IonizationThres) {
this.IonizationThres = IonizationThres;
}
-
+ public void setMynsigmas(double nsigmas) {
+ this.nsigmas = nsigmas;
+ }
+ public void setMynbins(int nsigmas) {
+ this.nbins = nbins;
+ }
}