1 added + 3 modified, total 4 files
lcsim-contrib/src/main/java/org/lcsim/contrib/HansWenzel/DualCorrection
diff -N ElectronCalibrationDriver.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ ElectronCalibrationDriver.java 10 Dec 2009 17:21:25 -0000 1.1
@@ -0,0 +1,58 @@
+/*
+ * This Driver is used to calibrate the correction of a dual readout calorimeter to electrons.
+ * (Determining the energy scale of the calorimeter response.)
+ * first it runs the Digitiser and then the Electron calibration module.
+ */
+package org.lcsim.contrib.HansWenzel.DualCorrection;
+
+import org.lcsim.contrib.HansWenzel.DualCorrection.DigiSim.CSClusdMJetDriver;
+import org.lcsim.util.Driver;
+
+/**
+ *
+ * @author wenzel
+ */
+public class ElectronCalibrationDriver extends Driver {
+
+ String AIDAFile = null;
+ String file_name = null;
+ CSClusdMJetDriver digi;
+ ElectronCorrection elec;
+
+ public ElectronCalibrationDriver() {
+ digi = new CSClusdMJetDriver();
+ add(digi);
+ elec = new ElectronCorrection();
+ add(elec);
+ }
+
+ @Override
+ public void startOfData() {
+ System.out.println("ElectronCalibrationDriver:startOfData");
+ if (AIDAFile != null) {
+ elec.setMyAIDAFilename(AIDAFile);
+ } else {
+ System.err.println("ElectronCalibrationDriver: AIDAFile variable must be set");
+ System.exit(1); // exit if variable is not set
+ }
+ if (file_name != null) {
+ elec.setMyFilename(file_name);
+ } else {
+ System.err.println("ElectronCalibrationDriver: file_name variable must be set");
+ System.exit(1); // exit if variable is not set
+ }
+
+ }
+
+ public void setMyAIDAFilename(String AIDAFile) {
+ System.out.println("ElectronCalibrationDriver:setMyAIDAFilename");
+ this.AIDAFile = AIDAFile;
+ System.out.println(AIDAFile);
+ }
+
+ public void setMyFilename(String file_name) {
+ System.out.println("ElectronCalibrationDriver:setMyFilename");
+ this.file_name = file_name;
+ System.out.println(file_name);
+ }
+}
lcsim-contrib/src/main/java/org/lcsim/contrib/HansWenzel/DualCorrection
diff -u -r1.3 -r1.4
--- DualCorrection.java 6 Oct 2009 20:06:04 -0000 1.3
+++ DualCorrection.java 10 Dec 2009 17:21:25 -0000 1.4
@@ -16,6 +16,8 @@
import hep.aida.IFunctionFactory;
import hep.aida.IHistogram1D;
import hep.aida.IProfile1D;
+import hep.physics.vec.Hep3Vector;
+import hep.physics.vec.VecOp;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
@@ -54,6 +56,7 @@
ICloud1D Edep_dcor;
ICloud1D Edep_dcor_new;
ICloud1D Eceren_cor;
+ ICloud1D dlength;
ICloud2D c_efrac_ratio;
ICloud2D c_Ceren_vs_Edep;
ICloud1D[] slice_comb;
@@ -88,11 +91,14 @@
dpsf = aida.analysisFactory().createDataPointSetFactory(aida.tree());
functionFactory = aida.analysisFactory().createFunctionFactory(aida.tree());
gauss = functionFactory.createFunctionByName("gauss", "G");
- E_cor = Electron_Correction();
- C_cor = Cerenkov_Correction();
+ 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();
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.);
c_efrac_ratio = aida.histogramFactory().createCloud2D("c_efrac_ratio", "c_efrac_ratio combined ", 500000, "autoConvert = false");
slice_comb = new ICloud1D[maxbin + 2];
@@ -124,6 +130,17 @@
if (particle.getGeneratorStatus() == 0) {
E_in = E_in + particle.getEnergy();
E_kin = E_kin + particle.getEnergy() - particle.getMass();
+ Hep3Vector end_point = particle.getEndPoint();
+ Hep3Vector start_point = particle.getOrigin();
+ Hep3Vector diff = VecOp.sub(end_point, start_point);
+ double decaylength = diff.magnitude();
+ dlength.fill(decaylength);
+ if (decaylength>500.)
+ {
+ return;
+ }
+// Hep3Vector decaylength = end_point.magnitude();
+
if (particle.getProductionTime() == 0.0) {
Particlename = particle.getType().getName();
}
@@ -133,6 +150,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) {
first = false;
@@ -164,6 +182,9 @@
}
System.out.println("DirName: " + DirName);
}
+
+
+
List<List<SimCalorimeterHit>> simCalorimeterHitCollections = event.get(SimCalorimeterHit.class);
double sumEEdep = 0.0;
double sumECeren = 0.0;
@@ -171,12 +192,12 @@
aida.profile1D("ratio", 20, 0.4, 1.);
for (List<SimCalorimeterHit> simCalorimeterHits : simCalorimeterHitCollections) {
String CollectionName = event.getMetaData(simCalorimeterHits).getName();
- if (CollectionName.substring(0, 5).equals("Edep_")) {
+ if (CollectionName.startsWith("Edep_") && CollectionName.endsWith("DigiHits")) {
for (SimCalorimeterHit calorimeterHit : simCalorimeterHits) {
sumEEdep = sumEEdep + calorimeterHit.getRawEnergy();
}
} // end if Edep
- if (CollectionName.substring(0, 6).equals("Ceren_")) {
+ if (CollectionName.startsWith("Ceren_") && CollectionName.endsWith("DigiHits")) {
for (SimCalorimeterHit calorimeterHit : simCalorimeterHits) {
sumECeren = sumECeren + calorimeterHit.getRawEnergy();
}
@@ -359,7 +380,7 @@
}
}
- public void setMyVariable(String jpgfile) {
+ public void setMyAIDAFilename(String jpgfile) {
System.out.println("setMyVariable");
AIDAFile = jpgfile;
System.out.println(AIDAFile);
@@ -395,10 +416,59 @@
return ECor;
}
+ IFunction Electron_digisCorrection() {
+ IFunction ECor = functionFactory.createFunctionByName("ECor", "p1");
+ ECor.setParameter("p0", 7.6521e-3);
+ ECor.setParameter("p1", 1.0046);
+ return ECor;
+ }
+
+ IFunction Electron_digisCorrection_PBWO() {
+ IFunction ECor = functionFactory.createFunctionByName("ECor", "p1");
+ ECor.setParameter("p0", 5.4245e-3);
+ ECor.setParameter("p1", 1.0042);
+ return ECor;
+ }
+
+ IFunction Electron_digisCorrection_ccal02_d15() {
+ IFunction ECor = functionFactory.createFunctionByName("ECor", "p1");
+ ECor.setParameter("p0", 1.1773e-3);
+ ECor.setParameter("p1", 1.0033);
+ return ECor;
+ }
+
+ IFunction Electron_digis_QGSP_BERT_Correction() {
+ IFunction ECor = functionFactory.createFunctionByName("ECor", "p1");
+ ECor.setParameter("p0", 7.6521e-3);
+ ECor.setParameter("p1", 1.0046);
+ return ECor;
+ }
+
IFunction Cerenkov_Correction() {
IFunction ECor = functionFactory.createFunctionByName("ECerenCor", "p1");
- ECor.setParameter("p0", -2.4961e-4);
- ECor.setParameter("p1", 7655.0);
+ ECor.setParameter("p0", 7.9705);
+ ECor.setParameter("p1", 8858.5);
+ return ECor;
+ }
+
+ IFunction Cerenkov_digisCorrection() {
+ IFunction ECor = functionFactory.createFunctionByName("ECerenCor", "p1");
+ ECor.setParameter("p0", 8.5701e-3);
+ ECor.setParameter("p1", 7677.7);
+ return ECor;
+ }
+
+ IFunction Cerenkov_digisCorrection_ccal02_d15() {
+ IFunction ECor = functionFactory.createFunctionByName("ECerenCor", "p1");
+ ECor.setParameter("p0", 6.3057e-3);
+ ECor.setParameter("p1", 16584.);
+ return ECor;
+ }
+
+ IFunction Cerenkov_digis_QGSP_BERT_Correction() {
+ IFunction ECor = functionFactory.createFunctionByName("ECerenCor", "p1");
+ ECor.setParameter("p0", 8.5701e-3);
+ ECor.setParameter("p1", 7677.7);
return ECor;
}
lcsim-contrib/src/main/java/org/lcsim/contrib/HansWenzel/DualCorrection
diff -u -r1.3 -r1.4
--- ElectronCorrection.java 6 Oct 2009 20:06:04 -0000 1.3
+++ ElectronCorrection.java 10 Dec 2009 17:21:25 -0000 1.4
@@ -3,6 +3,8 @@
/**
*
* @author wenzel
+ * This Driver is used to calibrate the correction of a dual readout calorimeter to electrons.
+ * (Determining the energy scale of the calorimeter response.)
*/
import hep.aida.ICloud1D;
import hep.aida.IDataPoint;
@@ -28,7 +30,7 @@
public class ElectronCorrection extends Driver {
- private AIDA aida = AIDA.defaultInstance();
+ private AIDA aida;
String AIDAFile;
String file_name;
FileWriter fstream;
@@ -59,9 +61,11 @@
String[] Fitters = {"Chi2", "leastsquares", "bml", "cleverchi2"};
IFitter jminuit;
IFitResult jminuitResult;
- @Override
- protected void startOfData() {
- System.out.println("Start of Data:");
+
+ ElectronCorrection() {
+ file_name = "ElectronCorrection.txt";
+ AIDAFile = "ElectronCorrection.aida";
+ aida = AIDA.defaultInstance();
dps_cerene = new IDataPointSet[Fitters.length];
point_cerene = new int[Fitters.length];
fitFactory = aida.analysisFactory().createFitFactory();
@@ -81,14 +85,8 @@
point = 0;
point_cerenemean = 0;
gauss = functionFactory.createFunctionByName("gauss", "G");
- fstream = null;
- try {
- fstream = new FileWriter(file_name);
- } catch (IOException ex) {
- Logger.getLogger(ElectronCorrection.class.getName()).log(Level.SEVERE, null, ex);
- }
- out = new BufferedWriter(fstream);
}
+
@Override
protected void process(EventHeader event) {
E_in = 0.0;
@@ -112,6 +110,7 @@
if (first) {
first = false;
} else {
+ System.out.println("ElectronCorrection:First Event");
convertandfit();
}
Ein_prev = Ein;
@@ -131,39 +130,55 @@
double sumECeren = 0.0;
for (List<SimCalorimeterHit> simCalorimeterHits : simCalorimeterHitCollections) {
String CollectionName = event.getMetaData(simCalorimeterHits).getName();
- if (CollectionName.substring(0, 5).equals("Edep_")) {
+
+ if (CollectionName.startsWith("Edep_") && CollectionName.endsWith("DigiHits")) {
for (SimCalorimeterHit calorimeterHit : simCalorimeterHits) {
sumEEdep = sumEEdep + calorimeterHit.getRawEnergy();
}
} // end if Edep
- if (CollectionName.substring(0, 6).equals("Ceren_")) {
+ if (CollectionName.startsWith("Ceren_") && CollectionName.endsWith("DigiHits")) {
for (SimCalorimeterHit calorimeterHit : simCalorimeterHits) {
sumECeren = sumECeren + calorimeterHit.getRawEnergy();
}
} // end if Ceren
} // end loop over calorimeter hit collections
+
Edep.fill(sumEEdep);
Eceren.fill(sumECeren);
}
@Override
protected void endOfData() {
- System.out.println("End of Data:");
+ System.out.println("ElectronCorrection:End of Data:");
convertandfit();
- aida.tree().cd("/");
+ fstream = null;
try {
- out.close();
+ fstream = new FileWriter(file_name);
} catch (IOException ex) {
Logger.getLogger(ElectronCorrection.class.getName()).log(Level.SEVERE, null, ex);
}
+ out = new BufferedWriter(fstream);
+ aida.tree().cd("/");
IFunction line = functionFactory.createFunctionByName("line", "p1");
IFitter linefit = fitFactory.createFitter("Chi2", "jminuit");
IFitResult resultline = linefit.fit(dps_emean, line);
functionFactory.cloneFunction("e mean fitted line ", resultline.fittedFunction());
- System.out.println("Chi2=" + resultline.quality());
+ double[] fresult = resultline.fittedParameters();
+ try {
+ out.write("Ionization scale results:\n");
+ out.write("Chi2 = " + resultline.quality() + "\n");
+ out.write(fresult[0] + " , " + fresult[1] + "\n");
+ } catch (IOException ex) {
+ Logger.getLogger(ElectronCorrection.class.getName()).log(Level.SEVERE, null, ex);
+ }
//
// now deal with the cerenkov stuff:
//
+ try {
+ out.write("Cerenkov scale results:\n");
+ } catch (IOException ex) {
+ Logger.getLogger(ElectronCorrection.class.getName()).log(Level.SEVERE, null, ex);
+ }
for (int i = 0; i < Fitters.length; i++) {
System.out.println("Fitter: " + Fitters[i]);
resultline = linefit.fit(dps_cerene[i], line);
@@ -171,23 +186,36 @@
System.out.println(fname);
functionFactory.cloneFunction(fname, resultline.fittedFunction());
System.out.println(Fitters[i] + ": " + resultline.quality());
+ fresult = resultline.fittedParameters();
+ try {
+ out.write("Fitter: " + Fitters[i]);
+ out.write("Chi2 = " + resultline.quality() + "\n");
+ out.write(fresult[0] + " , " + fresult[1] + "\n");
+ } catch (IOException ex) {
+ Logger.getLogger(ElectronCorrection.class.getName()).log(Level.SEVERE, null, ex);
+ }
}
try {
aida.saveAs(AIDAFile);
} catch (IOException ex) {
Logger.getLogger(ElectronCorrection.class.getName()).log(Level.SEVERE, null, ex);
}
+ try {
+ out.close();
+ } catch (IOException ex) {
+ Logger.getLogger(ElectronCorrection.class.getName()).log(Level.SEVERE, null, ex);
+ }
}
@Override
protected void resume() {
- System.out.println("resume:");
- firstEvent = true;
+ System.out.println("ElectronCorrection:resume");
+ firstEvent =true;
aida.cloud1D("c_Edep_energy").reset();
}
protected void convertandfit() {
- System.out.println("convert and fit:");
+ System.out.println("ElectronCorrection:convertandfit");
IHistogram1D Edep_conv;
if (Edep.isConverted()) {
Edep_conv = Edep.histogram();
@@ -197,22 +225,18 @@
double rmsc = Edep.rms();
nsigmas = 3.;
nbins = 100;
- rmsc = meanc * 0.001;
+
double minx = meanc - nsigmas * rmsc;
double maxx = meanc + nsigmas * rmsc;
Edep.setConversionParameters(nbins, minx, maxx);
Edep.convertToHistogram();
Edep_conv = Edep.histogram();
}
+
gauss.setParameter("amplitude", Edep_conv.maxBinHeight());
gauss.setParameter("mean", Edep_conv.mean());
gauss.setParameter("sigma", Edep_conv.rms());
- try {
- out.write(Particlename + " " + Ein_prev + " GeV\n");
- out.write(Edep_conv.maxBinHeight() + "," + Edep_conv.mean() + "," + Edep_conv.rms() + "\n");
- } catch (IOException ex) {
- Logger.getLogger(ElectronCorrection.class.getName()).log(Level.SEVERE, null, ex);
- }
+
dps_emean.addPoint();
IDataPoint dp = dps_emean.point(point);
dp.coordinate(1).setValue(Ein_prev);
@@ -222,7 +246,7 @@
dp.coordinate(0).setErrorPlus(Edep_conv.rms());
dp.coordinate(0).setErrorMinus(Edep_conv.rms());
point++;
- // chi 2 fit:
+// chi 2 fit:
System.out.println("chi2 fit:");
jminuit = fitFactory.createFitter("Chi2", "jminuit");
jminuitResult = jminuit.fit(Edep_conv, gauss);
@@ -231,11 +255,6 @@
result = jminuitResult.fittedParameters();
functionFactory.cloneFunction("fitted gauss (jminuitchi2)", jminuitResult.fittedFunction());
System.out.println(result[0] + "," + result[1] + "," + result[2]);
- try {
- out.write(result[0] + "," + result[1] + "," + result[2] + "\n");
- } catch (IOException ex) {
- Logger.getLogger(ElectronCorrection.class.getName()).log(Level.SEVERE, null, ex);
- }
// least squares fit:
System.out.println("least squares fit:");
@@ -248,11 +267,6 @@
double[] resultls = jminuitResultls.fittedParameters();
functionFactory.cloneFunction("fitted gauss (jminuitls)", jminuitResultls.fittedFunction());
System.out.println(resultls[0] + "," + resultls[1] + "," + resultls[2]);
- try {
- out.write(resultls[0] + "," + resultls[1] + "," + resultls[2] + "\n");
- } catch (IOException ex) {
- Logger.getLogger(ElectronCorrection.class.getName()).log(Level.SEVERE, null, ex);
- }
//
// now deal with cerenkov response:
//
@@ -262,7 +276,6 @@
Eceren_conv = Eceren.histogram();
} else {
System.out.println("Converting Eceren");
-
double meanc = Eceren.mean();
double rmsc = Eceren.rms();
nsigmas = 5.;
@@ -273,15 +286,10 @@
Eceren.convertToHistogram();
Eceren_conv = Eceren.histogram();
}
+
gauss.setParameter("amplitude", Eceren_conv.maxBinHeight());
gauss.setParameter("mean", Eceren_conv.mean());
gauss.setParameter("sigma", Eceren_conv.rms());
- try {
- out.write(Particlename + " " + Ein_prev + " GeV\n");
- out.write(Eceren_conv.maxBinHeight() + "," + Eceren_conv.mean() + "," + Eceren_conv.rms() + "\n");
- } catch (IOException ex) {
- Logger.getLogger(ElectronCorrection.class.getName()).log(Level.SEVERE, null, ex);
- }
dps_cerenemean.addPoint();
IDataPoint dp_cerenemean = dps_cerenemean.point(point_cerenemean);
dp_cerenemean.coordinate(1).setValue(Ein_prev);
@@ -291,6 +299,7 @@
dp_cerenemean.coordinate(0).setErrorPlus(Eceren_conv.rms());
dp_cerenemean.coordinate(0).setErrorMinus(Eceren_conv.rms());
point_cerenemean++;
+
for (int i = 0; i < Fitters.length; i++) {
System.out.println("Fitter: " + Fitters[i]);
gauss.setParameter("amplitude", Eceren_conv.maxBinHeight());
@@ -305,11 +314,6 @@
System.out.println(functionname);
functionFactory.cloneFunction(functionname, jminuitResult.fittedFunction());
System.out.println(result[0] + "," + result[1] + "," + result[2]);
- try {
- out.write(result[0] + "," + result[1] + "," + result[2] + "\n");
- } catch (IOException ex) {
- Logger.getLogger(ElectronCorrection.class.getName()).log(Level.SEVERE, null, ex);
- }
IDataPoint dp_cerene = dps_cerene[i].addPoint();
dp_cerene.coordinate(0).setValue(result[1]);
dp_cerene.coordinate(0).setErrorPlus(Math.abs(result[2]));
@@ -327,16 +331,15 @@
}
}
- public void setMyFilename(String filename) {
- System.out.println("setMyFilename");
- file_name = filename;
- System.out.println(file_name);
- }
-
- public void setMyAIDAFilename(String jpgfile) {
- System.out.println("setMyAIDAFilename");
- AIDAFile = jpgfile;
+ public void setMyAIDAFilename(String AIDAFile) {
+ System.out.println("ElectronCalibrationDriver:setMyAIDAFilename");
+ this.AIDAFile = AIDAFile;
System.out.println(AIDAFile);
}
+ public void setMyFilename(String file_name) {
+ System.out.println("ElectronCalibrationDriver:setMyFilename");
+ this.file_name = file_name;
+ System.out.println(file_name);
+ }
}
lcsim-contrib/src/main/java/org/lcsim/contrib/HansWenzel/DualCorrection
diff -u -r1.1 -r1.2
--- Resolution.java 6 Oct 2009 20:06:04 -0000 1.1
+++ Resolution.java 10 Dec 2009 17:21:25 -0000 1.2
@@ -38,9 +38,9 @@
IFitFactory fitFactory;
IDataPointSetFactory dpsf;
IFunction gauss;
- boolean first;
- boolean firstEvent;
- double E_in;
+ static boolean first;
+ static boolean firstEvent;
+ static double E_in;
Integer Ein;
Integer Ein_prev;
double E_kin;
@@ -66,6 +66,7 @@
IFunction C_cor;
IFunction D_cor;
IFunction D_cor_new;
+ IFunction D_cor_digis;
double xval[] = {10.};
@Override
@@ -81,10 +82,13 @@
point_Correctede[i] = 0;
dps_Correctede[i] = dpsf.create(dpsname, "electron response mean", 2);
}
- E_cor = Electron_Correction();
- C_cor = Cerenkov_Correction();
+ E_cor = Electron_digisCorrection();
+ //Electron_digis_QGSP_BERT_Correction();
+ C_cor = Cerenkov_digisCorrection();
+ //Cerenkov_digis_QGSP_BERT_Correction();
D_cor = Dual_Correction();
- D_cor_new = Dual_Correction_new();
+ D_cor_digis = Dual_Correction_digis();
+ //Dual_Correction_digis_QGSP_BERT();
Ein_prev = 0;
firstEvent = true;
first = true;
@@ -105,6 +109,7 @@
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) {
@@ -119,11 +124,15 @@
}
Ein = (int) Math.floor(E_kin + 0.5d);
String E_str = Ein.toString();
+
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);
+ System.out.println("Ein_prev: " + Ein_prev);
convertandfit();
}
Ein_prev = Ein;
@@ -143,24 +152,25 @@
Eceren_cor = aida.histogramFactory().createCloud1D("Eceren_cor", "corrected Cerenkov Cloud", 100000, "autoConvert = false");
System.out.println("DirName: " + DirName);
}
+
List<List<SimCalorimeterHit>> simCalorimeterHitCollections = event.get(SimCalorimeterHit.class);
double sumEEdep = 0.0;
double sumECeren = 0.0;
for (List<SimCalorimeterHit> simCalorimeterHits : simCalorimeterHitCollections) {
String CollectionName = event.getMetaData(simCalorimeterHits).getName();
- if (CollectionName.substring(0, 5).equals("Edep_")) {
+ if (CollectionName.startsWith("Edep_") && CollectionName.endsWith("DigiHits")) {
for (SimCalorimeterHit calorimeterHit : simCalorimeterHits) {
sumEEdep = sumEEdep + calorimeterHit.getRawEnergy();
}
} // end if Edep
- if (CollectionName.substring(0, 6).equals("Ceren_")) {
+ if (CollectionName.startsWith("Ceren_") && CollectionName.endsWith("DigiHits")) {
+
for (SimCalorimeterHit calorimeterHit : simCalorimeterHits) {
sumECeren = sumECeren + calorimeterHit.getRawEnergy();
}
} // end if Corrected
} // end loop over calorimeter hit collections
-
Edep.fill(sumEEdep);
xval[0] = sumEEdep;
double sumEEdep_cor = E_cor.value(xval);
@@ -172,9 +182,9 @@
double ratio = sumECeren_cor / sumEEdep_cor;
double fraction = sumEEdep_cor / E_in;
xval[0] = ratio;
- double cfac = D_cor.value(xval);
- Edep_dcor.fill(sumEEdep_cor / cfac);
- cfac = D_cor_new.value(xval);
+// 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);
@@ -196,7 +206,8 @@
@Override
protected void resume() {
System.out.println("resume:");
- firstEvent = true;
+ firstEvent =
+ true;
aida.cloud1D("c_Edep_energy").reset();
}
@@ -211,14 +222,18 @@
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());
gauss.setParameter("mean", Edep_dcor_new_conv.mean());
gauss.setParameter("sigma", Edep_dcor_new_conv.rms());
@@ -229,16 +244,21 @@
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());
@@ -266,15 +286,13 @@
}
public void setMyFilename(String filename) {
- System.out.println("setMyFilename");
file_name = filename;
- System.out.println(file_name);
}
- public void setMyVariable(String jpgfile) {
- System.out.println("setMyVariable");
- AIDAFile = jpgfile;
- System.out.println(AIDAFile);
+
+ public void setMyAIDAFilename(String aidafile) {
+ AIDAFile = aidafile;
}
+
IFunction Electron_Correction() {
IFunction ECor = functionFactory.createFunctionByName("ECor", "p1");
ECor.setParameter("p0", -1.9834e-3);
@@ -282,6 +300,13 @@
return ECor;
}
+ IFunction Electron_digisCorrection() {
+ IFunction ECor = functionFactory.createFunctionByName("ECor", "p1");
+ ECor.setParameter("p0", 7.6521e-3);
+ ECor.setParameter("p1", 1.0046);
+ return ECor;
+ }
+
IFunction Cerenkov_Correction() {
IFunction ECor = functionFactory.createFunctionByName("ECerenCor", "p1");
ECor.setParameter("p0", -2.4961e-4);
@@ -289,6 +314,13 @@
return ECor;
}
+ IFunction Cerenkov_digisCorrection() {
+ IFunction ECor = functionFactory.createFunctionByName("ECerenCor", "p1");
+ ECor.setParameter("p0", 8.5701e-3);
+ ECor.setParameter("p1", 7677.7);
+ return ECor;
+ }
+
IFunction Dual_Correction() {
IFunction ECor = functionFactory.createFunctionByName("DualCor", "p3");
ECor.setParameter("p0", 1.0900819852754733);
@@ -306,4 +338,82 @@
ECor.setParameter("p3", 0.62872);
return ECor;
}
+
+ IFunction Dual_Correction_digis() {
+ IFunction ECor = functionFactory.createFunctionByName("DualCor_new", "p3");
+ ECor.setParameter("p0", 0.52415);
+ ECor.setParameter("p1", 0.37964);
+ ECor.setParameter("p2", -0.60463);
+ ECor.setParameter("p3", 0.66544);
+ return ECor;
+ }
+
+ IFunction Dual_Correction_digis_QGSP_BERT() {
+ IFunction ECor = functionFactory.createFunctionByName("DualCor_new", "p3");
+ ECor.setParameter("p0", 0.53412);
+ ECor.setParameter("p1", 0.56611);
+ ECor.setParameter("p2", -0.57106);
+ ECor.setParameter("p3", 0.37394);
+ return ECor;
+ }
+
+ IFunction Electron_digis_QGSP_BERT_Correction() {
+ IFunction ECor = functionFactory.createFunctionByName("ECor", "p1");
+ ECor.setParameter("p0", 7.6521e-3);
+ ECor.setParameter("p1", 1.0046);
+ return ECor;
+ }
+
+ IFunction Cerenkov_digis_QGSP_BERT_Correction() {
+ IFunction ECor = functionFactory.createFunctionByName("ECerenCor", "p1");
+ ECor.setParameter("p0", 8.5701e-3);
+ ECor.setParameter("p1", 7677.7);
+ return ECor;
+ }
+
+ IFunction Cerenkov_digisCorrection_PBWO() {
+ IFunction ECor = functionFactory.createFunctionByName("ECerenCor", "p1");
+ ECor.setParameter("p0", 7.9705e-3);
+ ECor.setParameter("p1", 8858.5);
+ return ECor;
+ }
+
+ IFunction Electron_digisCorrection_PBWO() {
+ IFunction ECor = functionFactory.createFunctionByName("ECor", "p1");
+ ECor.setParameter("p0", 5.4245e-3);
+ ECor.setParameter("p1", 1.0042);
+ return ECor;
+ }
+
+ IFunction Dual_Correction_digis_PBWO() {
+ IFunction ECor = functionFactory.createFunctionByName("DualCor_new", "p3");
+ ECor.setParameter("p0", 0.52340);
+ ECor.setParameter("p1", 0.37940);
+ ECor.setParameter("p2", -0.60846);
+ ECor.setParameter("p3", 0.66510);
+ return ECor;
+ }
+
+ IFunction Electron_digisCorrection_ccal02_d15() {
+ IFunction ECor = functionFactory.createFunctionByName("ECor", "p1");
+ ECor.setParameter("p0", 1.1773e-3);
+ ECor.setParameter("p1", 1.0033);
+ return ECor;
+ }
+
+ IFunction Cerenkov_digisCorrection_ccal02_d15() {
+ IFunction ECor = functionFactory.createFunctionByName("ECerenCor", "p1");
+ ECor.setParameter("p0", 6.3057e-3);
+ ECor.setParameter("p1", 16584.);
+ return ECor;
+ }
+
+ IFunction Dual_Correction_digis_ccal02_d15() {
+ IFunction ECor = functionFactory.createFunctionByName("DualCor_new", "p3");
+ ECor.setParameter("p0", 0.59275);
+ ECor.setParameter("p1", -0.063934);
+ ECor.setParameter("p2", 0.46452);
+ ECor.setParameter("p3", -0.025751);
+ return ECor;
+ }
}
CVSspam 0.2.8