lcsim-contrib/src/main/java/org/lcsim/contrib/HansWenzel/DualCorrection
diff -u -r1.4 -r1.5
--- Resolution.java 15 Dec 2009 20:19:03 -0000 1.4
+++ Resolution.java 16 Dec 2009 16:53:55 -0000 1.5
@@ -67,6 +67,17 @@
IFunction D_cor_new;
IFunction D_cor_digis;
double xval[] = {10.};
+ //
+ // default detector configuration:
+ //
+ private String Detector = "ccal02";
+ private String Material = "BGO";
+ private Double Density = 7.13;
+ private Double rindex = 1.65;
+ private String CollectionName = "Digis";
+ private Double CerenkovThres = 0.02;
+ private Double IonizationThres = 0.02;
+ private String PhysicsList = "LCPhys";
@Override
protected void startOfData() {
@@ -81,12 +92,19 @@
point_Correctede[i] = 0;
dps_Correctede[i] = dpsFactory.create(dpsname, "electron response mean", 2);
}
- E_cor = Electron_digisCorrection();
- //Electron_digis_QGSP_BERT_Correction();
- C_cor = Cerenkov_digisCorrection();
- D_cor = Dual_Correction();
- D_cor_digis = Dual_Correction_digis_ccal02_d15();
- //Dual_Correction_digis_QGSP_BERT();
+ DRFunctionFactory mapoff = DRFunctionFactory.getInstance();
+ DetectorConfiguration dc = new DetectorConfiguration(Detector, Material,
+ Density, rindex,
+ CollectionName, CerenkovThres,
+ IonizationThres, PhysicsList);
+ if (mapoff.checkdc(dc)) {
+ E_cor = mapoff.getccFunction(dc);
+ C_cor = mapoff.getecFunction(dc);
+ D_cor = mapoff.getdcFunction(dc);
+ } else {
+ System.exit(0);
+ }
+
Ein_prev = 0;
firstEvent = true;
first = true;
@@ -153,13 +171,13 @@
double sumEEdep = 0.0;
double sumECeren = 0.0;
for (List<SimCalorimeterHit> simCalorimeterHits : simCalorimeterHitCollections) {
- String CollectionName = event.getMetaData(simCalorimeterHits).getName();
- if (CollectionName.startsWith("Edep_") && CollectionName.endsWith("DigiHits")) {
+ String ColName = event.getMetaData(simCalorimeterHits).getName();
+ if (ColName.startsWith("Edep_") && ColName.endsWith("DigiHits")) {
for (SimCalorimeterHit calorimeterHit : simCalorimeterHits) {
sumEEdep = sumEEdep + calorimeterHit.getRawEnergy();
}
} // end if Edep
- if (CollectionName.startsWith("Ceren_") && CollectionName.endsWith("DigiHits")) {
+ if (ColName.startsWith("Ceren_") && ColName.endsWith("DigiHits")) {
for (SimCalorimeterHit calorimeterHit : simCalorimeterHits) {
sumECeren = sumECeren + calorimeterHit.getRawEnergy();
@@ -278,128 +296,38 @@
public void setMyAIDAFilename(String aidafile) {
AIDAFile = aidafile;
}
+ public void setMyPhysicsList(String list) {
+ System.out.println("setMyPhysicsList");
+ this.PhysicsList = list;
+ System.out.println(list);
+ }
- IFunction Electron_Correction() {
- IFunction ECor = functionFactory.createFunctionByName("ECor", "p1");
- ECor.setParameter("p0", -1.9834e-3);
- ECor.setParameter("p1", 1.0019);
- 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);
- ECor.setParameter("p1", 7655.0);
- 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);
- ECor.setParameter("p1", -1.72608413712137);
- ECor.setParameter("p2", 2.602954159670887);
- ECor.setParameter("p3", -1.0873650332172629);
- return ECor;
- }
-
- IFunction Dual_Correction_new() {
- IFunction ECor = functionFactory.createFunctionByName("DualCor_new", "p3");
- ECor.setParameter("p0", 0.65191);
- ECor.setParameter("p1", 0.37036);
- ECor.setParameter("p2", -0.69285);
- 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;
+ public void setMyDetector(String Detector) {
+ this.Detector = Detector;
}
+
+ public void setMyMaterial(String Material) {
+ this.Material = Material;
+ }
+
+ public void setMyDensity(Double Density) {
+ this.Density = Density;
+ }
+
+ public void setMyrindex(Double rindex) {
+ this.rindex = rindex;
+ }
+
+ public void setMyCollectionName(String CollectionName) {
+ this.CollectionName = CollectionName;
+ }
+
+ public void setMyCerenkovThres(Double CerenkovThres) {
+ this.CerenkovThres = CerenkovThres;
+ }
+
+ public void setMyIonizationThres(Double IonizationThres) {
+ this.IonizationThres = IonizationThres;
+ }
+
}