1 package org.lcsim.mc.fast.cluster.ronan; 2 3 import org.lcsim.conditions.ConditionsSet; 4 import static java.lang.Math.sqrt; 5 import static java.lang.Math.pow; 6 7 public class ClusterResolutionTables { 8 private boolean JETParameterization; 9 private double JETResolution; 10 private double JETHadDegradeFraction; 11 private double JETEMEnergyFraction; 12 private double JETHadEnergyFraction; 13 private double Lambda_j; 14 15 private double EMAlignmentError; 16 private double EMConstantTerm; 17 private double EMPositionError; 18 private double EMResolution; 19 private double EMOnset; 20 private double EMSharpness; 21 22 private double HADAlignmentError; 23 private double HADConstantTerm; 24 private double HADPositionError; 25 private double HADResolution; 26 private double HADOnset; 27 private double HADSharpness; 28 29 private double PolarEMInner; 30 private double PolarEMOuter; 31 private double PolarHADInner; 32 private double PolarHADOuter; 33 34 ClusterResolutionTables(ConditionsSet set) { 35 JETParameterization = Boolean.parseBoolean(set.getString("JETParameterization")); 36 JETResolution = set.getDouble("JETResolution"); 37 JETHadDegradeFraction = set.getDouble("JETHadDegradeFraction"); 38 JETEMEnergyFraction = set.getDouble("JETEMEnergyFraction"); 39 JETHadEnergyFraction = set.getDouble("JETHadEnergyFraction"); 40 41 EMOnset = set.getDouble("EMOnset"); 42 EMSharpness = set.getDouble("EMSharpness"); 43 PolarEMInner = set.getDouble("PolarEMInner"); 44 PolarEMOuter = set.getDouble("PolarEMOuter"); 45 46 EMResolution = set.getDouble("EMResolution"); 47 EMConstantTerm = set.getDouble("EMConstantTerm"); 48 EMPositionError = set.getDouble("EMPositionError"); 49 EMAlignmentError = set.getDouble("EMAlignmentError"); 50 51 HADOnset = set.getDouble("HADOnset"); 52 HADSharpness = set.getDouble("HADSharpness"); 53 PolarHADInner = set.getDouble("PolarHADInner"); 54 PolarHADOuter = set.getDouble("PolarHADOuter"); 55 56 HADResolution = set.getDouble("HADResolution"); 57 HADConstantTerm = set.getDouble("HADConstantTerm"); 58 HADPositionError = set.getDouble("HADPositionError"); 59 HADAlignmentError = set.getDouble("HADAlignmentError"); 60 if (JETParameterization) { 61 Lambda_j = (pow(JETResolution, 2) - JETEMEnergyFraction * pow(EMResolution, 2) - JETHadEnergyFraction * pow(HADResolution, 2)) / ((1. - JETHadDegradeFraction) * JETEMEnergyFraction * pow(EMResolution, 2) + JETHadDegradeFraction * JETHadEnergyFraction * pow(HADResolution, 2)); 62 EMResolution *= sqrt(1. + Lambda_j * (1. - JETHadDegradeFraction)); 63 HADResolution *= sqrt(1. + Lambda_j * JETHadDegradeFraction); 64 System.out.println(" JETParameterization settings Lamda_j= " + Lambda_j + " EMResolution= " + EMResolution + " HADResolution= " + HADResolution); 65 } 66 } 67 68 public double getEMAlignmentError() { 69 return EMAlignmentError; 70 } 71 72 public double getEMConstantTerm() { 73 return EMConstantTerm; 74 } 75 76 public double getEMPositionError() { 77 return EMPositionError; 78 } 79 80 public double getEMResolution() { 81 return EMResolution; 82 } 83 84 public double getEMOnset() { 85 return EMOnset; 86 } 87 88 public double getEMSharpness() { 89 return EMSharpness; 90 } 91 92 public double getHADAlignmentError() { 93 return HADAlignmentError; 94 } 95 96 public double getHADConstantTerm() { 97 return HADConstantTerm; 98 } 99 100 public double getHADPositionError() { 101 return HADPositionError; 102 } 103 104 public double getHADResolution() { 105 return HADResolution; 106 } 107 108 public double getHADOnset() { 109 return HADOnset; 110 } 111 112 public double getHADSharpness() { 113 return HADSharpness; 114 } 115 116 public double getPolarEMInner() { 117 return PolarEMInner; 118 } 119 120 public double getPolarEMOuter() { 121 return PolarEMOuter; 122 } 123 124 public double getPolarHADInner() { 125 return PolarHADInner; 126 } 127 128 public double getPolarHADOuter() { 129 return PolarHADOuter; 130 } 131 }