lcsim-contrib/src/main/java/org/lcsim/contrib/HansWenzel/DualCorrection
diff -u -r1.3 -r1.4
--- Resolution.java 14 Dec 2009 21:53:15 -0000 1.3
+++ Resolution.java 15 Dec 2009 20:19:03 -0000 1.4
@@ -36,7 +36,7 @@
BufferedWriter out;
IFunctionFactory functionFactory;
IFitFactory fitFactory;
- IDataPointSetFactory dpsf;
+ IDataPointSetFactory dpsFactory;
IFunction gauss;
static boolean first;
static boolean firstEvent;
@@ -49,7 +49,6 @@
ICloud1D ECeren;
ICloud1D Edep_cor;
ICloud1D Edep_dcor;
- ICloud1D Edep_dcor_new;
ICloud1D Eceren_cor;
double nsigmas;
int nbins;
@@ -76,16 +75,15 @@
point_Correctede = new int[Fitters.length];
fitFactory = aida.analysisFactory().createFitFactory();
functionFactory = aida.analysisFactory().createFunctionFactory(aida.tree());
- dpsf = aida.analysisFactory().createDataPointSetFactory(aida.tree());
+ dpsFactory = aida.analysisFactory().createDataPointSetFactory(aida.tree());
for (int i = 0; i < Fitters.length; i++) {
String dpsname = "dps_Correctede_" + Fitters[i];
point_Correctede[i] = 0;
- dps_Correctede[i] = dpsf.create(dpsname, "electron response mean", 2);
+ dps_Correctede[i] = dpsFactory.create(dpsname, "electron response mean", 2);
}
E_cor = Electron_digisCorrection();
//Electron_digis_QGSP_BERT_Correction();
C_cor = Cerenkov_digisCorrection();
- //Cerenkov_digis_QGSP_BERT_Correction();
D_cor = Dual_Correction();
D_cor_digis = Dual_Correction_digis_ccal02_d15();
//Dual_Correction_digis_QGSP_BERT();
@@ -109,7 +107,6 @@
protected void process(EventHeader event) {
E_in = 0.0;
E_kin = 0.0;
- // System.out.println(event.getEventNumber());
String DirName = null;
List<MCParticle> particles = event.get(MCParticle.class, event.MC_PARTICLES);
for (MCParticle particle : particles) {
@@ -124,7 +121,7 @@
}
Ein = (int) Math.floor(E_kin + 0.5d);
String E_str = Ein.toString();
-
+
DirName = Particlename.concat(E_str);
if (Ein != Ein_prev) {
if (first) {
@@ -147,8 +144,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", "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");
+ Edep_dcor = aida.histogramFactory().createCloud1D("Edep_dcor", "new 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);
}
@@ -181,14 +177,14 @@
Eceren_cor.fill(sumECeren_cor);
double ratio = sumECeren_cor / sumEEdep_cor;
double fraction = sumEEdep_cor / E_in;
- if (ratio>1.) {
- System.out.println(ratio);
+ double cfac;
+ if (ratio < 1.) {
+ xval[0] = ratio;
+ cfac = D_cor_digis.value(xval);
+ } else {
+ cfac = 1.0;
}
- 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);
+ Edep_dcor.fill(sumEEdep_cor / cfac);
}
@Override
@@ -205,47 +201,47 @@
@Override
protected void resume() {
System.out.println("resume:");
- firstEvent =true;
+ firstEvent = true;
aida.cloud1D("c_Edep_energy").reset();
}
protected void convertandfit() {
System.out.println("convert and fit:");
- IHistogram1D Edep_dcor_new_conv;
+ IHistogram1D Edep_dcor_conv;
- if (Edep_dcor_new.isConverted()) {
- Edep_dcor_new_conv = Edep_dcor_new.histogram();
+ if (Edep_dcor.isConverted()) {
+ Edep_dcor_conv = Edep_dcor.histogram();
} else {
- System.out.println("Converting Edep_dcor_new");
+ System.out.println("Converting Edep_dcor");
- double meanc = Edep_dcor_new.mean();
- double rmsc = Edep_dcor_new.rms();
+ 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_new.setConversionParameters(nbins, minx, maxx);
- Edep_dcor_new.convertToHistogram();
- Edep_dcor_new_conv = Edep_dcor_new.histogram();
+ Edep_dcor.setConversionParameters(nbins, minx, maxx);
+ Edep_dcor.convertToHistogram();
+ Edep_dcor_conv = Edep_dcor.histogram();
}
- gauss.setParameter("amplitude", Edep_dcor_new_conv.maxBinHeight());
- gauss.setParameter("mean", Edep_dcor_new_conv.mean());
- gauss.setParameter("sigma", Edep_dcor_new_conv.rms());
+ gauss.setParameter("amplitude", Edep_dcor_conv.maxBinHeight());
+ gauss.setParameter("mean", Edep_dcor_conv.mean());
+ gauss.setParameter("sigma", Edep_dcor_conv.rms());
try {
out.write(Particlename + " " + Ein_prev + " GeV\n");
- out.write(Edep_dcor_new_conv.maxBinHeight() + "," + Edep_dcor_new_conv.mean() + "," + Edep_dcor_new_conv.rms() + "\n");
+ out.write(Edep_dcor_conv.maxBinHeight() + "," + Edep_dcor_conv.mean() + "," + Edep_dcor_conv.rms() + "\n");
} catch (IOException ex) {
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());
+ gauss.setParameter("amplitude", Edep_dcor_conv.maxBinHeight());
+ gauss.setParameter("mean", Edep_dcor_conv.mean());
+ gauss.setParameter("sigma", Edep_dcor_conv.rms());
jminuit = fitFactory.createFitter(Fitters[i], "jminuit");
- jminuitResult = jminuit.fit(Edep_dcor_new_conv, gauss);
+ jminuitResult = jminuit.fit(Edep_dcor_conv, gauss);
System.out.println("jminuit " + Fitters[i] + ": " + jminuitResult.quality());
result = jminuitResult.fittedParameters();
errors = jminuitResult.errors();