CMS 3D CMS Logo

HCALResponse Class Reference

#include <FastSimulation/Calorimetry/interface/HCALResponse.h>

List of all members.

Public Member Functions

double getHCALEnergyResolution (double e, int hit)
double getHCALEnergyResponse (double e, int hit)
double getHFEnergyResolution (double EGen)
 HCALResponse (const edm::ParameterSet &pset, const RandomEngine *engine)
response responseHCAL (int mip, double energy, double eta, int partype)
 ~HCALResponse ()

Private Member Functions

void interEM (double e, int ie, int ieta)
void interHD (int mip, double e, int ie, int ieta)
void interMU (double e, int ie, int ieta)

Private Attributes

double eBias
double eGridEM [maxEMe]
double eGridHD [maxHDe]
double eGridMU [maxMUe]
double eResponseCoefficient
double eResponseCorrection
double eResponseExponent
double eResponsePlateau [3]
double eResponseScale [3]
 HCAL response parameters.
double etaGridMU [maxMUeta]
double etaStep
double mean
double meanEM [maxEMe][maxEMeta]
double meanHD [maxHDe][maxHDeta]
double meanHD_mip [maxHDe][maxHDeta]
double meanHD_nomip [maxHDe][maxHDeta]
double muStep
const RandomEnginerandom
double responseMU [maxMUe][maxMUeta][maxMUbin]
double RespPar [3][2][3]
 Default values for resolution parametrisation: stochastic, constant and noise.
double sigma
double sigmaEM [maxEMe][maxEMeta]
double sigmaHD [maxHDe][maxHDeta]
double sigmaHD_mip [maxHDe][maxHDeta]
double sigmaHD_nomip [maxHDe][maxHDeta]


Detailed Description

Definition at line 30 of file HCALResponse.h.


Constructor & Destructor Documentation

HCALResponse::HCALResponse ( const edm::ParameterSet pset,
const RandomEngine engine 
)

Definition at line 16 of file HCALResponse.cc.

References debug, eBias, eGridEM, eGridHD, eGridMU, lat::endl(), eResponseCoefficient, eResponseCorrection, eResponseExponent, eResponsePlateau, eResponseScale, etaGridMU, etaStep, edm::ParameterSet::getParameter(), HCAL, i, i1, i2, i3, j, LogDebug, maxEMe, maxEMeta, maxHDe, maxHDeta, maxMUbin, maxMUe, maxMUeta, meanEM, meanHD, meanHD_mip, meanHD_nomip, muStep, responseMU, RespPar, sigmaEM, sigmaHD, sigmaHD_mip, sigmaHD_nomip, and VFCAL.

00017                                                        :
00018   random(engine)
00019 { 
00020   
00021   RespPar[HCAL][0][0] =  
00022     pset.getParameter<double>("HadronBarrelResolution_Stochastic");
00023   RespPar[HCAL][0][1] =  
00024     pset.getParameter<double>("HadronBarrelResolution_Constant");
00025   RespPar[HCAL][0][2] =  
00026     pset.getParameter<double>("HadronBarrelResolution_Noise");
00027 
00028   RespPar[HCAL][1][0] =  
00029     pset.getParameter<double>("HadronEndcapResolution_Stochastic");
00030   RespPar[HCAL][1][1] =  
00031     pset.getParameter<double>("HadronEndcapResolution_Constant");
00032   RespPar[HCAL][1][2] =  
00033     pset.getParameter<double>("HadronEndcapResolution_Noise");
00034 
00035   RespPar[VFCAL][0][0] =  
00036     pset.getParameter<double>("HadronForwardResolution_Stochastic");
00037   RespPar[VFCAL][0][1] =  
00038     pset.getParameter<double>("HadronForwardResolution_Constant");
00039   RespPar[VFCAL][0][2] =  
00040     pset.getParameter<double>("HadronForwardResolution_Noise");
00041 
00042   RespPar[VFCAL][1][0] =  
00043     pset.getParameter<double>("ElectronForwardResolution_Stochastic");
00044   RespPar[VFCAL][1][1] =  
00045     pset.getParameter<double>("ElectronForwardResolution_Constant");
00046   RespPar[VFCAL][1][2] =  
00047     pset.getParameter<double>("ElectronForwardResolution_Noise");
00048 
00049   eResponseScale[0] = 
00050     pset.getParameter<double>("eResponseScaleHB");  
00051   eResponseScale[1] = 
00052     pset.getParameter<double>("eResponseScaleHE");
00053   eResponseScale[2] = 
00054     pset.getParameter<double>("eResponseScaleHF");
00055 
00056   eResponsePlateau[0] = 
00057     pset.getParameter<double>("eResponsePlateauHB");
00058   eResponsePlateau[1] = 
00059     pset.getParameter<double>("eResponsePlateauHE");
00060   eResponsePlateau[2] = 
00061     pset.getParameter<double>("eResponsePlateauHF");
00062 
00063   eResponseExponent = 
00064     pset.getParameter<double>("eResponseExponent");
00065 
00066   eResponseCoefficient = 
00067     pset.getParameter<double>("eResponseCoefficient");
00068 
00069   eResponseCorrection = 
00070     pset.getParameter<double>("eResponseCorrection");
00071 
00072   // If need - add a small energy to each hadron ...
00073   eBias = 
00074     pset.getParameter<double>("energyBias");
00075   
00076   
00077   etaStep = 0.1;
00078   muStep  = 0.25;
00079 
00080   double _eGridHD[maxHDe]   = {1., 2., 3., 5., 9., 15., 20., 30., 50., 100., 150., 225., 300., 1000., 3000. };
00081   double _eGridEM[maxEMe]     = {10., 30., 100., 300., 700., 1000., 3000.};
00082   double _eGridMU[maxMUe]     = {10., 30., 100., 300.};
00083   double _etaGridMU[maxMUeta] = {0.3, 0.6, 0.8, 1.25, 1.4, 3.0};
00084 
00085 
00086   // new HB parameters and eta-energy 
00087 
00088   double _meanHD[maxHDe][maxHDeta] = {
00089 
00090     // 1 
00091     {0.852943, 0.854465, 0.84154, 0.857752, 0.850015, 0.836228, 0.829013, 0.840393, 0.808279, 0.78778, 0.734305, 0.752044, 0.725834, 0.847857, 1.35276, 1.68579, 1.87407, 1.84911, 1.67605, 1.51554, 1.31382, 1.15419, 1.05199, 0.946356, 0.895496, 0.786086, 0.762652, 0.81402, 0.685126, 0.613034, 0.718209, 1.33962, 1.7089, 1.74678, 1.7809, 1.84624, 1.84789, 1.7914, 1.77522, 1.84333, 1.8224, 1.6825, 2.02152, 2.11024, 1.84447, 1.96078, 1.08477, 1.19283, 0., 1.98054, 1.95858},
00092     // 2
00093     {1.51566, 1.56651, 1.517, 1.53076, 1.49417, 1.47419, 1.47342, 1.46184, 1.4037, 1.36024, 1.3528, 1.26052, 1.26461, 1.40515, 1.94627, 2.41833, 2.8175, 2.66524, 2.31136, 2.13079, 2.00377, 1.79268, 1.59972, 1.51871, 1.44475, 1.32857, 1.37521, 1.4145, 1.20052, 1.18962, 1.37304, 2.63921, 2.80823, 2.66675, 2.79082, 2.61845, 2.81399, 2.81446, 2.87697, 2.77988, 2.78829, 2.84719, 2.73696, 2.70128, 2.88369, 3.06301, 2.78651, 3.35891, 1.91127, 2.72903, 3.12059},
00094     // 3
00095     {2.25947, 2.37462, 2.31363, 2.29465, 2.26523, 2.1931, 2.14593, 2.13711, 2.12751, 2.02408, 1.95213, 1.85829, 1.82538, 1.941, 2.51479, 3.13024, 3.44578, 3.296, 3.10541, 2.72296, 2.60799, 2.46726, 2.31468, 2.27247, 2.12374, 1.92959, 1.89087, 1.98702, 1.86603, 1.64767, 2.33705, 3.22321, 3.45114, 3.41116, 3.30913, 3.25586, 3.38883, 3.36044, 3.45296, 3.23783, 3.41146, 3.35636, 3.31715, 3.30665, 3.32765, 3.64607, 3.37633, 3.59206, 3.47103, 3.30305, 3.12484},
00096     // 5
00097     {3.94781, 4.04663, 3.94959, 3.95594, 3.84631, 3.81943, 3.70969, 3.66348, 3.57376, 3.53355, 3.40166, 3.25598, 3.13458, 3.32404, 3.99964, 4.66005, 4.89319, 4.77568, 4.52362, 4.26968, 4.10895, 3.84062, 3.682, 3.66844, 3.38084, 3.36406, 3.34008, 3.21166, 2.89481, 2.5081, 3.16929, 4.01638, 4.50887, 4.3893, 4.25382, 4.19941, 4.47431, 4.48935, 4.15872, 4.24113, 4.41205, 4.15019, 4.07021, 4.12698, 4.34743, 4.27719, 4.40183, 4.36443, 4.67675, 4.08096, 4.14775},
00098     // 9  
00099     {7.51268, 7.3724, 7.3264, 7.48695, 7.41602, 7.17483, 7.16372, 7.0044, 6.72821, 6.6449, 6.54846, 6.55159, 6.3368, 6.25813, 7.09979, 7.89042, 7.78224, 7.80669, 7.70816, 7.47752, 7.03605, 7.01178, 6.57208, 6.58319, 6.44066, 6.27203, 6.24111, 5.88214, 5.28487, 4.55473, 5.02279, 5.95265, 6.03803, 5.91343, 6.35191, 6.06645, 6.46299, 6.23322, 5.90245, 6.07703, 6.05838, 5.90386, 6.12168, 5.82694, 5.97017, 6.09613, 5.91006, 6.41224, 6.07286, 5.73532, 5.69078},
00100     // 15
00101     {12.277, 12.3519, 12.509, 12.3642, 12.2486, 12.0549, 11.9111, 11.7707, 11.5229, 11.5248, 11.2285, 10.8268, 10.5189, 10.6757, 11.6384, 12.9599, 12.7226, 12.6335, 12.1609, 12.1146, 11.9021, 11.3053, 11.4498, 11.0535, 10.9239, 10.9186, 10.4928, 10.1399, 9.15779, 7.99941, 8.26467, 9.36702, 9.31689, 9.2988, 9.43048, 9.39939, 9.42507, 9.47005, 9.29829, 9.55032, 9.29194, 9.33688, 9.34113, 9.02108, 8.99807, 8.67856, 8.54389, 8.73673, 9.09002, 7.70564, 7.73036},
00102     // 20
00103     {17.0232, 16.9458, 17.1702, 17.2756, 16.8824, 16.7227, 16.6001, 16.3167, 16.1666, 16.1477, 15.7972, 15.7698, 15.1619, 15.3582, 16.3698, 17.696, 17.4715, 17.2794, 17.062, 16.9981, 16.7271, 16.2915, 16.0463, 15.9617, 15.4814, 15.2561, 14.9147, 14.4817, 13.276, 11.643, 10.9876, 12.0543, 12.3299, 12.4279, 12.2813, 12.2737, 12.5782, 11.9942, 12.3902, 12.1904, 12.1001, 12.1381, 11.8851, 11.5098, 11.36, 11.3283, 11.0613, 11.0296, 11.0566, 10.0814, 9.77867},
00104     // 30 
00105     {26.6271, 26.4291, 26.4369, 26.4014, 26.4291, 26.2205, 25.8559, 25.524, 25.2894, 25.1318, 24.6118, 24.444, 23.7218, 23.8945, 25.0518, 27.1907, 26.6185, 26.9774, 26.5692, 26.2866, 26.2468, 25.7612, 25.257, 24.9322, 25.0591, 24.3303, 23.7683, 22.8596, 21.5697, 18.3256, 18.1898, 18.8304, 19.8235, 19.3173, 18.5432, 18.8587, 19.0623, 18.7488, 18.2976, 18.5947, 18.199, 18.1179, 17.6284, 17.7679, 16.9029, 16.3563, 16.6297, 16.2328, 16.0768, 15.4877, 13.8084},
00106     // 50
00107     {44.598, 44.5183, 44.4442, 44.5355, 44.2819, 43.9152, 43.2968, 43.0361, 42.6419, 42.3245, 42.0667, 40.8106, 40.2412, 41.0128, 42.1762, 45.6815, 44.5735, 44.9349, 44.8595, 44.4337, 43.8446, 43.6824, 43.1813, 42.9421, 42.3412, 41.6979, 40.9613, 39.8213, 37.7902, 32.7211, 33.2236, 35.0153, 34.0075, 34.3796, 33.8847, 33.8619, 34.6135, 33.2317, 32.923, 32.7936, 33.275, 31.7787, 31.579, 31.4607, 30.7226, 29.9954, 29.3432, 29.283, 27.0721, 26.4577, 25.0271},
00108     // 100
00109     {89.7967, 89.7663, 90.1733, 90.2541, 89.5181, 88.2439, 88.2443, 88.4666, 86.6436, 86.4257, 84.6539, 84.2442, 82.3212, 83.0281, 86.9196, 92.3651, 90.641, 90.0152, 89.5662, 89.3856, 89.441, 88.6231, 88.3607, 87.7513, 86.9699, 86.4551, 84.7021, 82.1248, 78.4669, 70.9189, 71.7124, 73.1861, 72.5637, 71.3653, 71.6502, 71.2387, 72.4815, 72.0133, 71.3529, 70.2482, 69.7749, 68.5522, 68.6207, 66.0551, 65.1983, 62.6396, 61.5266, 61.8448, 64.4365, 57.1366, 53.8488},
00110     // 150
00111     {135.499, 135.249, 135.995, 135.322, 134.963, 133.11, 133.926, 132.915, 131.322, 130.832, 130.16, 127.541, 125.7, 125.084, 130.784, 139.657, 136.665, 135.15, 135.047, 136.739, 135.943, 133.78, 134.236, 133.337, 132.135, 131.256, 129.13, 126.477, 121.25, 110.041, 110.3, 110.381, 112.351, 112.153, 110.842, 111.519, 110.351, 107.693, 109.415, 107.114, 105.043, 103.589, 103.44, 102.473, 101.178, 98.0667, 97.4432, 95.3034, 91.0626, 88.5847, 80.0944},
00112     // 225
00113     {204.642, 204.022, 204.18, 206.326, 202.064, 201.651, 200.156, 199.682, 198.231, 196.075, 196.168, 193.934, 189.027, 190.951, 201.787, 209.929, 207.096, 203.49, 206.579, 204.91, 204.003, 202.287, 202.829, 200.912, 200.29, 199.007, 196.387, 192.113, 185.914, 171.755, 168.886, 168.161, 168.439, 168.852, 169.556, 164.681, 167.453, 166.474, 163.668, 162.479, 162.724, 159.757, 157.43, 156.43, 152.452, 148.757, 145.13, 144.883, 139.725, 133.74, 125.22},
00114     // 300
00115     {273.26, 273.138, 274.07, 274.43, 272.065, 268.931, 268.264, 266.966, 265.637, 263.594, 263.541, 258.933, 253.246, 254.596, 259.06, 280.273, 274.734, 273.901, 275.674, 273.696, 273.116, 272.668, 271.153, 269.772, 270.037, 268.324, 264.005, 257.363, 250.12, 229.29, 225.132, 229.211, 227.32, 228.17, 229.027, 224.46, 224.174, 222.363, 222.571, 220.281, 220.046, 219.335, 211.974, 209.954, 206.11, 201.292, 198.966, 196.975, 199.925, 181.304, 169.254},
00116     // 1000  
00117     {918.549, 926.715, 928.504, 928.634, 931.608, 910.732, 898.751, 904.597, 892.304, 885.822, 888.46, 874.865, 866.548, 865.004, 916.266, 945.162, 934.361, 925.802, 925.546, 927.83, 917.999, 921.117, 918.166, 911.54, 910.516, 907.446, 895.154, 886.401, 882.473, 800.177, 794.423, 799.712, 792.543, 781.901, 790.296, 778.844, 776.435, 775.26, 770.469, 766.069, 764.791, 753.17, 741, 733.149, 719, 702.91, 691.743, 683.678, 678.171, 633.365, 597.704},
00118     // 3000
00119     {2725.77, 2725.79, 2682.35, 2707.21, 2712.13, 2796.74, 2654.65, 2610.28, 2576.73, 2538.72, 2596.2, 2585.62, 2547.25, 2555.13, 2802.13, 2922.29, 2722.63, 2847.67, 2809.36, 2826.11, 2793.67, 2777.37, 2737.78, 2762.62, 2774.16, 2714.07, 2716.01, 2697.35, 2722.53, 2353.76, 2383.52, 2397.01, 2379.55, 2364.41, 2352.62, 2352.26, 2369.45, 2337.9, 2317.05, 2302.6, 2261.48, 2263.71, 2202.48, 2185.92, 2166.9, 2125.03, 2090.92, 2027.79, 2047.74, 1923.75, 1825.16}
00120   };
00121 
00122   double _sigmaHD[maxHDe][maxHDeta] = {
00123 
00124     // 1 
00125     {0.490082, 0.488995, 0.459298, 0.47414, 0.468078, 0.444967, 0.461639, 0.463423, 0.450532, 0.425352, 0.445426, 0.409461, 0.405864, 0.464158, 0.607162, 0.672064, 0.633007, 0.669161, 0.687805, 0.707215, 0.661638, 0.720379, 0.657176, 0.663705, 0.64388, 0.638968, 0.611116, 0.694851, 0.577611, 0.653165, 0.825112, 1.03785, 0.873161, 0.875499, 0.8742, 0.847838, 0.788833, 0.886185, 0.775074, 0.817156, 0.812542, 0.777236, 0.562841, 0.632774, 0.71344, 0.831268, 0.91188, 1.07673, 0, 0.561492, 0.457156}, 
00126     // 2
00127     {0.815024, 0.886509, 0.829002, 0.803906, 0.794713, 0.815821, 0.771131, 0.817175, 0.784701, 0.743375, 0.822498, 0.711292, 0.714088, 0.756059, 0.943292, 1.07732, 1.12721, 1.11307, 1.10531, 1.02029, 1.09087, 1.05856, 0.989217, 1.04511, 1.08429, 1.0417, 1.10584, 1.10588, 1.03333, 1.14744, 1.40986, 1.42363, 1.35378, 1.24834, 1.37034, 1.28982, 1.414, 1.35073, 1.24736, 1.22988, 1.24553, 1.36293, 1.25973, 1.26323, 1.41976, 1.32979, 1.19975, 1.0999, 0.800008, 1.1679, 1.31976},
00128     // 3
00129     {1.1913, 1.26032, 1.16245, 1.14341, 1.11525, 1.16633, 1.10795, 1.13395, 1.10098, 1.14738, 1.06303, 1.03356, 0.952197, 1.00708, 1.28967, 1.38696, 1.49048, 1.3518, 1.41757, 1.35285, 1.37112, 1.43849, 1.46906, 1.39724, 1.45714, 1.36782, 1.31359, 1.36687, 1.43857, 1.46273, 1.98502, 1.85995, 1.89017, 1.80652, 1.88426, 1.69611, 1.79637, 1.78097, 1.89756, 1.75982, 1.86481, 1.90406, 1.78612, 1.71115, 1.78846, 2.00915, 1.78856, 1.52387, 1.81234, 1.7293, 1.76507},
00130     // 5
00131     {1.6604, 1.66667, 1.64187, 1.53644, 1.66152, 1.64745, 1.61256, 1.65189, 1.66482, 1.70305, 1.61981, 1.60101, 1.56121, 1.71157, 2.01672, 2.0052, 2.09688, 1.98942, 2.02736, 2.02701, 2.13975, 2.04765, 2.08911, 2.19683, 2.00948, 1.99173, 2.11909, 1.92865, 1.96363, 1.89043, 2.7291, 2.54827, 2.83006, 2.88526, 2.76645, 2.61248, 2.79863, 2.70443, 2.57394, 2.72147, 2.81697, 2.51909, 2.51807, 2.57132, 2.69621, 2.67878, 2.69868, 2.70517, 2.91759, 2.79587, 2.68952},
00132     // 9  
00133     {2.46609, 2.45654, 2.34277, 2.33993, 2.59332, 2.47403, 2.43117, 2.41355, 2.43823, 2.37324, 2.5881, 2.72423, 2.50764, 2.6276, 3.15131, 3.00083, 3.12852, 3.09424, 3.13305, 3.10601, 3.00247, 3.23155, 3.01714, 3.08644, 3.07772, 3.22426, 3.17687, 3.0988, 3.03098, 2.66298, 3.94971, 4.27378, 4.31887, 4.11109, 4.29989, 4.20533, 4.53887, 4.19436, 4.03905, 4.22275, 4.12285, 4.14521, 3.95413, 3.97016, 3.91847, 4.1504, 3.84676, 4.38899, 3.94464, 3.77568, 3.79662},
00134     // 15
00135     {3.11176, 2.98809, 2.87615, 2.96065, 2.98216, 3.10976, 3.00921, 3.01385, 2.89864, 3.32154, 3.12822, 3.1746, 3.23883, 3.44202, 4.12919, 3.99401, 3.99225, 3.87495, 3.81577, 3.67555, 3.75903, 3.65166, 3.78922, 3.75912, 3.7972, 4.10763, 3.64436, 3.91192, 3.59917, 3.93558, 6.19193, 5.84671, 6.21677, 5.94016, 5.94956, 6.17689, 6.19529, 6.17602, 5.9251, 5.99188, 6.32856, 5.93335, 6.07306, 5.97594, 5.94576, 5.73293, 5.59722, 5.6343, 5.92824, 4.99017, 5.37399},
00136     // 20
00137     {3.52419, 3.55694, 3.67329, 3.50429, 3.54008, 3.60558, 3.67756, 3.62067, 3.71423, 3.77833, 3.98078, 4.04785, 3.99432, 4.17227, 4.81162, 4.81996, 4.48979, 4.53683, 4.49664, 4.50619, 4.59769, 4.40734, 4.41761, 4.54629, 4.3776, 4.51859, 4.55614, 4.54285, 4.52298, 4.6295, 7.23726, 7.22681, 7.29986, 7.33678, 7.19693, 7.21815, 7.27432, 6.89657, 7.4455, 7.34935, 7.40161, 7.31724, 7.11227, 6.92616, 7.10663, 6.96595, 6.62997, 6.50278, 6.83112, 6.18473, 6.25886},
00138     // 30 
00139     {4.50997, 4.63488, 4.33416, 4.3455, 4.57591, 4.61948, 4.5114, 4.63573, 4.75063, 5.21722, 4.91395, 5.18909, 5.29877, 5.8893, 6.4698, 5.41643, 5.82174, 5.47017, 5.63263, 5.68317, 5.71157, 5.62794, 5.52868, 5.52876, 5.63234, 5.69708, 5.66398, 5.30422, 5.51338, 5.94153, 8.83953, 8.96645, 9.71694, 8.84191, 9.02549, 9.10309, 9.01366, 8.9174, 8.87092, 9.12399, 8.639, 8.79333, 8.47035, 8.8469, 8.49896, 8.34351, 8.54963, 8.22855, 7.95291, 8.39018, 7.42634},
00140     // 50
00141     {6.15822, 6.07095, 6.02397, 6.0434, 6.12172, 6.28771, 6.49298, 6.37586, 6.49054, 6.59978, 6.99154, 7.21283, 7.41474, 8.52547, 8.59799, 6.85196, 7.31781, 7.73078, 7.18341, 7.53447, 7.39498, 7.32203, 7.18665, 7.77701, 7.34558, 7.45204, 7.73734, 7.38763, 7.95031, 8.74526, 13.5026, 14.087, 13.5382, 14.0253, 13.8102, 14.3097, 14.0878, 13.7311, 13.1407, 13.4323, 13.5002, 13.2932, 13.3055, 13.5501, 13.4548, 12.6071, 12.9463, 12.8391, 12.203, 11.9572, 12.0717},
00142     // 100
00143     {9.19388, 9.10035, 9.29132, 9.23766, 9.95796, 9.64536, 10.2383, 10.0851, 10.6799, 10.9918, 11.2214, 12.2275, 12.8867, 14.9149, 14.8114, 10.7315, 10.4093, 10.7833, 10.9523, 10.0806, 10.7884, 11.4462, 11.2629, 11.572, 11.6289, 11.8671, 11.8389, 11.2067, 11.8974, 13.2567, 21.7063, 22.6707, 22.0468, 21.8025, 21.9436, 21.3173, 21.7804, 21.4801, 21.1596, 21.3004, 21.2974, 21.4119, 21.3619, 21.3372, 20.9671, 20.5847, 20.3922, 20.358, 21.6135, 20.1588, 19.9312},
00144     // 150
00145     {12.6013, 12.4014, 12.3502, 12.4523, 13.3722, 12.6296, 13.3706, 13.9701, 13.9642, 15.2968, 15.5296, 16.0579, 16.6997, 19.7058, 19.3779, 13.0411, 13.7941, 13.4918, 12.7886, 13.5511, 14.1537, 14.5879, 13.7593, 14.6109, 15.319, 14.8369, 15.055, 15.4111, 14.9638, 19.5697, 29.5438, 28.4341, 29.5001, 28.6255, 28.1345, 28.7621, 27.8616, 28.3656, 29.1136, 29.3842, 29.0655, 29.2517, 27.6812, 29.9909, 28.2786, 28.3108, 28.1117, 28.2952, 25.4367, 26.3312, 26.9351},
00146     // 225
00147     {17.0352, 16.3376, 17.0813, 16.7251, 17.1798, 17.4454, 18.6252, 18.7792, 19.1615, 19.4946, 20.4115, 22.5524, 23.7825, 26.507, 26.5417, 16.7313, 18.0743, 17.82, 17.1023, 17.6686, 18.0394, 18.4374, 18.9185, 20.3845, 18.5059, 19.7464, 19.3743, 18.8217, 19.0649, 25.2259, 32.9327, 33.7565, 34.8785, 34.7315, 35.1025, 32.9536, 36.1751, 34.125, 34.2612, 35.7677, 34.4184, 34.1413, 33.8299, 35.0248, 33.8759, 34.7572, 34.7386, 33.3108, 32.2063, 32.9175, 32.4289},
00148     // 300
00149     {21.0163, 20.1113, 20.6941, 20.5416, 21.5116, 21.0057, 20.6314, 22.2696, 24.4086, 25.0354, 26.012, 28.7677, 29.6983, 34.742, 35.6044, 19.7054, 20.4423, 22.1818, 21.05, 20.2357, 21.567, 21.8094, 23.6034, 22.1632, 22.7273, 24.1739, 24.1783, 21.8152, 22.7701, 32.0392, 39.6739, 38.1911, 38.8438, 38.7878, 39.9107, 39.9354, 39.1624, 38.7563, 39.0682, 39.782, 39.3639, 39.1952, 38.5359, 36.9295, 38.0356, 38.9107, 36.7962, 38.9947, 40.8741, 37.7289, 37.0498},
00150     // 1000  
00151     {59.0302, 55.7741, 52.4265, 46.7516, 71.7449, 64.1868, 60.4807, 69.7086, 68.6766, 61.9963, 71.942, 74.3787, 82.8669, 74.3176, 126.479, 45.7608, 48.5024, 54.7357, 48.5426, 48.1392, 52.3334, 53.6392, 49.0048, 48.5888, 55.7763, 57.5842, 57.7691, 52.4158, 60.8689, 110.82, 122.105, 121.542, 121.557, 119.535, 119.485, 122.162, 125.814, 126.912, 121.749, 123.422, 124.672, 124.29, 125.71, 125.09, 127.452, 124.789, 129.179, 131.48, 126.986, 127.015, 137.474},
00152     // 3000
00153     {139.603, 219.769, 185.993, 176.326, 219.777, 236.348, 205.755, 166.129, 196.274, 229.818, 244.988, 203.299, 195.058, 267.577, 212.721, 231.2878, 187.6332, 104.348, 148.279, 143.346, 149.629, 164.261, 158.762, 161.727, 132.896, 157.504, 148.903, 159.439, 174.445, 186.782, 211.359, 209.372, 209.512, 231.488, 232.585, 229.347, 223.462, 234.988, 226.747, 235.165, 247.826, 235.776, 234.833, 237.132, 231.817, 249.343, 260.783, 253.386, 249.56, 247.242, 250.905}
00154   };
00155 
00156 
00157   double _meanHD_mip[maxHDe][maxHDeta] = {
00158 
00159     // 1
00160     { 0.711239, 0.702094, 0.650612, 0.691964, 0.674718, 0.664688, 0.64245, 0.663826, 0.660359, 0.641932, 0.565566, 0.600813, 0.580337, 0.548834, 0.725643, 0.699558, 0.609646, 0.778973, 0.42652, 0.660581, 0.610935, 0.66865, 0.789269, 0.688613, 0.625155, 0.659819, 0.609071, 0.698592, 0.592922, 0.598031, 0.719904, 1.33962, 1.7089, 1.74678, 1.7809, 1.84624, 1.84789, 1.7914, 1.77522, 1.84333, 1.8224, 1.6825, 2.02152, 2.11024, 1.84447, 1.96078, 1.08477, 1.19283, 0., 1.98054, 1.95858},
00161     //2
00162     {1.63316, 1.66894, 1.53178, 1.67642, 1.63186, 1.45345, 1.55102, 1.53885, 1.52153, 1.28185, 1.34913, 1.20369, 1.15911, 1.23232, 1.38019, 1.48, 1.34802, 1.95864, 1.40764, 1.20819, 1.40696, 1.32753, 1.22804, 1.30968, 1.17084, 1.17541, 1.26714, 1.36174, 1.13094, 1.16708, 1.35883, 2.63921, 2.80823, 2.66675, 2.79082, 2.61845, 2.81399, 2.81446, 2.87697, 2.77988, 2.78829, 2.84719, 2.73696, 2.70128, 2.88369, 3.06301, 2.78651, 3.35891, 1.91127, 2.72903, 3.12059},
00163     // 3
00164     {2.65332, 2.70623, 2.7018, 2.76175, 2.54075, 2.60959, 2.60781, 2.37439, 2.50742, 2.3088, 2.15608, 2.38096, 1.99361, 1.98449, 1.98423, 2.14624, 2.74627, 1.88957, 2.4163, 2.03354, 2.18475, 2.08019, 2.05307, 2.14394, 2.10737, 1.88707, 1.83712, 1.98153, 1.90708, 1.63032, 2.33388, 3.22321, 3.45114, 3.41116, 3.30913, 3.25586, 3.38883, 3.36044, 3.45296, 3.23783, 3.41146, 3.35636, 3.31715, 3.30665, 3.32765, 3.64607, 3.37633, 3.59206, 3.47103, 3.30305, 3.12484},
00165     // 5
00166     {4.4878, 4.54728, 4.62629, 4.56869, 4.5763, 4.60545, 3.95745, 4.25496, 4.12878, 4.36985, 4.24089, 3.90405, 3.6153, 3.87899, 4.43035, 4.27544, 5.44038, 3.66134, 4.03114, 4.54681, 4.34139, 4.04669, 3.83227, 4.07111, 3.80309, 3.63849, 3.839, 3.62284, 3.18677, 2.60743, 3.18417, 4.01638, 4.50887, 4.3893, 4.25382, 4.19941, 4.47431, 4.48935, 4.15872, 4.24113, 4.41205, 4.15019, 4.07021, 4.12698, 4.34743, 4.27719, 4.40183, 4.36443, 4.67675, 4.08096, 4.14775},
00167     // 9  
00168     {8.43477, 8.51486, 8.40231, 8.59226, 8.91993, 8.54174, 8.28841, 7.95739, 7.90281, 7.69989, 7.97914, 8.30979, 7.51444, 7.9163, 7.50584, 7.70357, 8.22949, 7.27691, 8.1654, 8.20692, 7.59761, 8.09899, 7.19715, 7.58326, 7.91849, 7.63617, 7.54188, 7.23283, 6.30379, 4.80179, 5.05798, 5.95265, 6.03803, 5.91343, 6.35191, 6.06645, 6.46299, 6.23322, 5.90245, 6.07703, 6.05838, 5.90386, 6.12168, 5.82694, 5.97017, 6.09613, 5.91006, 6.41224, 6.07286, 5.73532, 5.69078},
00169     // 15
00170     {13.4976, 13.6248, 14.0872, 13.4073, 13.4284, 13.5104, 13.466, 13.361, 13.0007, 13.3468, 12.8132, 12.218, 12.3597, 12.3305, 13.3735, 13.1213, 11.9094, 15.3209, 11.5556, 14.2708, 14.1975, 12.8502, 12.8502, 12.5877, 12.7984, 13.2029, 12.2993, 12.2273, 11.0902, 8.38904, 8.36176, 9.3738, 9.31689, 9.2988, 9.43048, 9.39939, 9.42507, 9.47005, 9.29829, 9.55032, 9.29194, 9.33688, 9.34113, 9.02108, 8.99807, 8.67856, 8.54389, 8.73673, 9.09002, 7.70564, 7.73036},
00171     // 20
00172     {18.1103, 18.899, 19.0302, 18.8859, 18.658, 18.9164, 18.7733, 18.1455, 18.0186, 17.9529, 18.6631, 17.8564, 16.9817, 17.7448, 17.7333, 19.1855, 18.8339, 17.9843, 17.6816, 18.7623, 19.4202, 17.9993, 17.7789, 18.2028, 17.4853, 17.6785, 17.5426, 16.8248, 15.4801, 12.3062, 11.1417, 12.0543, 12.3299, 12.4279, 12.2813, 12.2737, 12.5782, 11.9942, 12.3902, 12.1904, 12.1001, 12.1381, 11.8851, 11.5098, 11.36, 11.3283, 11.0613, 11.0296, 11.0566, 10.0814, 9.77867},
00173     // 30 
00174     {28.3204, 28.1687, 28.576, 28.5953, 29.0841, 28.4864, 28.0265, 27.7283, 27.6257, 27.9254, 26.9392, 27.511, 26.3439, 28.9796, 28.8712, 30.0546, 30.0006, 28.7041, 28.3496, 28.1274, 28.6682, 28.4366, 28.265, 27.0725, 27.952, 27.2788, 26.9715, 26.1243, 24.1339, 19.3949, 18.2622, 18.8285, 19.8235, 19.3173, 18.5432, 18.8587, 19.0623, 18.7488, 18.2976, 18.5947, 18.199, 18.1179, 17.6284, 17.7679, 16.9029, 16.3563, 16.6297, 16.2328, 16.0768, 15.4877, 13.8084},
00175     // 50
00176     {47.6982, 47.6599, 48.2187, 48.9976, 47.799, 47.6627, 47.1518, 47.2944, 46.5938, 45.7772, 45.3015, 44.413, 45.3064, 48.5603, 44.2983, 47.7153, 46.2841, 47.8821, 49.4568, 44.5439, 46.6247, 48.1379, 47.481, 46.9442, 46.6015, 46.3984, 45.2186, 44.3437, 42.3589, 33.901, 33.3342, 35.0153, 34.0075, 34.3796, 33.8847, 33.8619, 34.6135, 33.2317, 32.923, 32.7936, 33.275, 31.7787, 31.579, 31.4607, 30.7226, 29.9954, 29.3432, 29.283, 27.0721, 26.4577, 25.0271},
00177     // 100
00178     {96.3077, 97.2392, 97.8974, 97.3423, 97.757, 95.2604, 93.7778, 94.6471, 95.1803, 95.4144, 92.3273, 92.4684, 91.7989, 93.0399, 99.6842, 97.0947, 90.4984, 93.7714, 95.6516, 94.7691, 94.7364, 94.8744, 95.6762, 95.4722, 96.0351, 94.78, 92.9701, 88.7097, 84.9337, 73.2059, 71.8473, 73.1861, 72.5637, 71.3653, 71.6502, 71.2387, 72.4815, 72.0133, 71.3529, 70.2482, 69.7749, 68.5522, 68.6207, 66.0551, 65.1983, 62.6396, 61.5266, 61.8448, 64.4365, 57.1366, 53.8488},
00179     // 150
00180     {143.667, 145.689, 145.478, 146.232, 146.861, 143.825, 143.449, 142.302, 141.814, 140.032, 140.079, 140.891, 134.899, 142.624, 146.557, 146.774, 144.999, 150.015, 141.507, 144.091, 145.142, 144.51, 144.444, 142.603, 143.492, 142.671, 138.839, 135.941, 129.035, 112.214, 110.3, 110.381, 112.351, 112.153, 110.842, 111.519, 110.351, 107.693, 109.415, 107.114, 105.043, 103.589, 103.44, 102.473, 101.178, 98.0667, 97.4432, 95.3034, 91.0626, 88.5847, 80.0944},
00181     // 225
00182     {217.89, 219.871, 219.975, 220.38, 217.453, 219.258, 218.675, 214.436, 211.657, 212.151, 212.167, 210.628, 200.765, 207.515, 228.515, 212.358, 223.4, 217.493, 215.625, 223.871, 217.179, 216.796, 215.475, 216.363, 213.272, 215.312, 210.065, 203.183, 197.085, 174.09, 168.86, 168.161, 168.439, 168.852, 169.556, 164.681, 167.453, 166.474, 163.668, 162.479, 162.724, 159.757, 157.43, 156.43, 152.452, 148.757, 145.13, 144.883, 139.725, 133.74, 125.22},
00183     // 300
00184     {294.586, 296.526, 294.598, 290.845, 290.474, 297.208, 287.166, 288.909, 284.869, 282.317, 285.88, 280.642, 288.213, 301.131, 301.675, 289.153, 301.031, 279.302, 286.39, 285.271, 292.151, 289.38, 289.355, 287.497, 286.483, 287.636, 281.624, 273.478, 261.234, 230.697, 225.175, 229.211, 227.32, 228.17, 229.027, 224.46, 224.174, 222.363, 222.571, 220.281, 220.046, 219.335, 211.974, 209.954, 206.11, 201.292, 198.966, 196.975, 199.925, 181.304, 169.254},
00185     // 1000  
00186     {975.353, 973.474, 994.408, 995.762, 1011.2, 1008.46, 943.555, 973.155, 956.14, 925.261, 944.485, 918.724, 920.137, 811.434, 1017.5, 994.017, 987.137, 967.662, 971.299, 979.536, 976.131, 973.112, 964.859, 960.275, 967.639, 968.457, 951.228, 929.227, 915.587, 802.177, 794.423, 799.712, 792.543, 781.901, 790.296, 778.844, 776.435, 775.26, 770.469, 766.069, 764.791, 753.17, 741., 733.149, 719., 702.91, 691.743, 683.678, 678.171, 633.365, 597.704},
00187     // 3000
00188     {2935.13, 2952.95, 2986.53, 3000., 3015.16, 3000., 2900., 2790.28, 2850.09, 2758.27, 2767.99, 2760.19, 2800., 2875.4, 3014.85, 2911.7, 2950., 2923.35, 2965.95, 2973.7, 2980.18, 2919.01, 2990.2, 2904.23, 2897.24, 2994.31, 2905.87, 2856.96, 2838.23, 2353.76, 2383.52, 2397.01, 2379.55, 2364.41, 2352.62, 2352.26, 2369.45, 2337.9, 2317.05, 2302.6, 2261.48, 2263.71, 2202.48, 2185.92, 2166.9, 2125.03, 2090.92, 2027.79, 2047.74, 1923.75, 1825.16}
00189   };
00190 
00191   double _sigmaHD_mip[maxHDe][maxHDeta] = {
00192 
00193     // 1
00194     {0.490033, 0.530364, 0.433535, 0.498202, 0.497041, 0.486203, 0.512755, 0.499658, 0.4948, 0.459523, 0.474696, 0.442108, 0.46471, 0.369876, 0.485032, 0.51068, 0.415958, 0.573592, 0.392542, 0.619513, 0.535704, 0.706111, 0.670153, 0.601184, 0.548334, 0.647127, 0.577775, 0.679877, 0.558841, 0.6579, 0.826244, 1.03785, 0.873161, 0.875499, 0.8742, 0.847838, 0.788833, 0.886185, 0.775074, 0.817156, 0.812542, 0.777236, 0.562841, 0.632774, 0.71344, 0.831268, 0.91188, 1.07673, 0, 0.561492, 0.457156},
00195     // 2
00196     {0.997523, 1.0815, 1.03206, 0.987737, 1.02756, 0.977129, 0.823759, 1.02921, 1.05878, 0.895067, 0.989425, 0.94569, 0.776582, 0.892893, 0.85173, 1.21029, 0.838721, 1.06837, 1.0762, 0.788423, 1.17579, 1.15311, 1.02557, 1.11015, 1.10078, 1.0788, 1.17456, 1.16603, 1.10146, 1.16188, 1.41014, 1.42363, 1.35378, 1.24834, 1.37034, 1.28982, 1.414, 1.35073, 1.24736, 1.22988, 1.24553, 1.36293, 1.25973, 1.26323, 1.41976, 1.32979, 1.19975, 1.0999, 0.800008, 1.1679, 1.31976},
00197     // 3
00198     {1.32347, 1.34626, 1.31517, 1.31097, 1.2683, 1.36922, 1.42574, 1.3384, 1.27861, 1.53607, 1.24031, 1.46966, 1.15817, 1.20412, 1.51432, 1.51151, 1.41024, 0.81021, 1.32938, 1.39759, 1.56962, 1.60292, 1.43744, 1.56758, 1.57192, 1.49655, 1.46193, 1.47941, 1.54567, 1.50756, 1.98572, 1.85995, 1.89017, 1.80652, 1.88426, 1.69611, 1.79637, 1.78097, 1.89756, 1.75982, 1.86481, 1.90406, 1.78612, 1.71115, 1.78846, 2.00915, 1.78856, 1.52387, 1.81234, 1.7293, 1.76507},
00199     // 5
00200     {1.9018, 1.88171, 1.69618, 1.78005, 1.97434, 1.74136, 1.62961, 1.78675, 1.88846, 1.95964, 2.08892, 1.86842, 1.55206, 2.16827, 2.04288, 1.75071, 1.55431, 1.62398, 1.81104, 2.37424, 2.36197, 2.29373, 2.13639, 2.43006, 2.22562, 2.18597, 2.28386, 2.0623, 2.14629, 1.97781, 2.74185, 2.54827, 2.83006, 2.88526, 2.76645, 2.61248, 2.79863, 2.70443, 2.57394, 2.72147, 2.81697, 2.51909, 2.51807, 2.57132, 2.69621, 2.67878, 2.69868, 2.70517, 2.91759, 2.79587, 2.68952},
00201     // 9  
00202     {2.67985, 2.56716, 2.45191, 2.3816, 3.00701, 2.76479, 2.67169, 2.37562, 2.76213, 2.51239, 3.13845, 3.10274, 2.65407, 3.04734, 2.37828, 3.36069, 3.88696, 3.64239, 3.44478, 3.27568, 3.14058, 3.66852, 2.78876, 3.20924, 3.29144, 3.1377, 3.3817, 3.21376, 3.18745, 2.74037, 3.97011, 4.27378, 4.31887, 4.11109, 4.29989, 4.20533, 4.53887, 4.19436, 4.03905, 4.22275, 4.12285, 4.14521, 3.95413, 3.97016, 3.91847, 4.1504, 3.84676, 4.38899, 3.94464, 3.77568, 3.79662},
00203     // 15
00204     {3.58321, 3.29008, 2.85212, 3.05585, 3.22757, 3.39028, 3.24481, 3.47386, 2.7888, 3.2993, 3.59659, 3.69652, 3.59352, 4.26283, 3.3449, 3.87697, 4.89532, 4.15995, 3.63013, 2.94559, 3.91126, 3.6373, 3.19837, 3.65419, 3.87124, 4.16362, 3.45638, 3.93285, 3.58253, 4.15114, 6.21693, 5.84595, 6.21677, 5.94016, 5.94956, 6.17689, 6.19529, 6.17602, 5.9251, 5.99188, 6.32856, 5.93335, 6.07306, 5.97594, 5.94576, 5.73293, 5.59722, 5.6343, 5.92824, 4.99017, 5.37399},
00205     // 20
00206     {3.53674, 3.64586, 4.09251, 3.39787, 3.5501, 4.03945, 3.38735, 3.79275, 3.41168, 3.81611, 4.85447, 3.7999, 4.13487, 4.79688, 4.4635, 5.60833, 2.76873, 2.49086, 3.81783, 5.48109, 4.84178, 3.69169, 4.17094, 4.33253, 4.02229, 4.06761, 4.40184, 4.63737, 4.42183, 4.75102, 7.28834, 7.22681, 7.29986, 7.33678, 7.19693, 7.21815, 7.27432, 6.89657, 7.4455, 7.34935, 7.40161, 7.31724, 7.11227, 6.92616, 7.10663, 6.96595, 6.62997, 6.50278, 6.83112, 6.18473, 6.25886},
00207     // 30 
00208     {4.99525, 3.95108, 4.2518, 4.03672, 4.12524, 5.12527, 4.46685, 4.73984, 4.63663, 5.13869, 5.33511, 5.29354, 5.28526, 5.74142, 4.47078, 5.46928, 3.34978, 5.33509, 4.86592, 5.42919, 5.76262, 5.94847, 5.19941, 4.67091, 5.42318, 5.08436, 4.93295, 4.84428, 5.23337, 6.17231, 8.85063, 8.9708, 9.71694, 8.84191, 9.02549, 9.10309, 9.01366, 8.9174, 8.87092, 9.12399, 8.639, 8.79333, 8.47035, 8.8469, 8.49896, 8.34351, 8.54963, 8.22855, 7.95291, 8.39018, 7.42634},
00209     // 50
00210     {5.64853, 6.00047, 5.41951, 5.8425, 6.01605, 6.01948, 5.76448, 6.11802, 5.93631, 6.2068, 6.73926, 6.93765, 8.20899, 8.70429, 7.36674, 5.8744, 6.40406, 5.34649, 5.23017, 5.02606, 6.68607, 6.04322, 6.65658, 6.74295, 6.14987, 6.31338, 6.55816, 6.29881, 6.56812, 9.09432, 13.4606, 14.087, 13.5382, 14.0253, 13.8102, 14.3097, 14.0878, 13.7311, 13.1407, 13.4323, 13.5002, 13.2932, 13.3055, 13.5501, 13.4548, 12.6071, 12.9463, 12.8391, 12.203, 11.9572, 12.0717},
00211     // 100
00212     {9.73919, 9.92526, 7.09079, 8.22096, 11.3752, 9.08709, 11.0748, 8.67264, 10.2095, 10.9939, 12.0066, 11.3671, 13.769, 14.7976, 9.60792, 6.6525, 2.11891, 6.90674, 9.93764, 6.67427, 9.11527, 10.7706, 9.21961, 9.00826, 9.64789, 9.29469, 9.64614, 8.84251, 10.5457, 12.7064, 21.6619, 22.6707, 22.0468, 21.8025, 21.9436, 21.3173, 21.7804, 21.4801, 21.1596, 21.3004, 21.2974, 21.4119, 21.3619, 21.3372, 20.9671, 20.5847, 20.3922, 20.358, 21.6135, 20.1588, 19.9312},
00213     // 150
00214     {15.5329, 12.7477, 9.95406, 9.66099, 12.8345, 12.1311, 12.3813, 13.9387, 13.821, 14.4616, 14.4255, 15.3892, 17.6612, 17.454, 9.86157, 7.65925, 5.05937, 6.34449, 6.44799, 13.5942, 8.81472, 11.3, 9.21299, 11.2525, 12.2845, 11.5771, 11.74, 13.2182, 12.0742, 20.6002, 29.5813, 28.4341, 29.5001, 28.6255, 28.1345, 28.7621, 27.8616, 28.3656, 29.1136, 29.3842, 29.0655, 29.2517, 27.6812, 29.9909, 28.2786, 28.3108, 28.1117, 28.2952, 25.4367, 26.3312, 26.9351},
00215     // 225
00216     {17.8521, 13.7806, 13.7297, 16.8072, 16.9584, 15.7035, 14.0679, 16.7879, 18.1308, 18.7877, 19.8821, 22.0107, 27.7637, 35.1892, 16.5972, 7.22732, 5.49866, 18.4664, 18.3284, 14.3375, 13.3782, 14.1036, 12.7873, 12.8817, 15.1683, 13.011, 13.6216, 13.7811, 14.4304, 26.1577, 32.9487, 33.7565, 34.8785, 34.7315, 35.1025, 32.9536, 36.1751, 34.125, 34.2612, 35.7677, 34.4184, 34.1413, 33.8299, 35.0248, 33.8759, 34.7572, 34.7386, 33.3108, 32.2063, 32.9175, 32.4289},
00217     // 300
00218     {16.1651, 15.1326, 14.8889, 20.7117, 26.8926, 13.1227, 17.6768, 18.8246, 27.6449, 24.8985, 26.7077, 25.0657, 25.0652, 38.0849, 19.6062, 15.7908, 27.0545, 17.8664, 16.645, 12.2169, 18.1504, 13.9039, 15.1734, 14.1026, 16.8269, 15.405, 15.7001, 16.2013, 19.2775, 34.2563, 39.7292, 38.1911, 38.8438, 38.7878, 39.9107, 39.9354, 39.1624, 38.7563, 39.0682, 39.782, 39.3639, 39.1952, 38.5359, 36.9295, 38.0356, 38.9107, 36.7962, 38.9947, 40.8741, 37.7289, 37.0498},
00219     // 1000  
00220     {52.5675, 63.3359, 42.4873, 45.6187, 49.3626, 34.15, 41.7384, 60.5165, 62.058, 67.8197, 83.25, 80.1417, 87.284, 50., 24.0381, 26.1736, 30.8678, 65.2965, 33.37, 31.0188, 35.2573, 43.4082, 38.3785, 36.9775, 36.2914, 36.9192, 35.5243, 40.8982, 38.1398, 113.389, 122.105, 121.542, 121.557, 119.535, 119.485, 122.162, 125.814, 126.912, 121.749, 123.422, 124.672, 124.29, 125.71, 125.09, 127.452, 124.789, 129.179, 131.48, 126.986, 127.015, 137.474},
00221     // 3000
00222     {150., 150., 150., 150., 150., 150., 150., 150., 150., 150., 115.798, 222.73, 150., 150., 150, 129.2676, 120., 129.8997, 121.2363, 120.9038, 125.5682, 121.2128, 134.9863, 131.5588, 122.143, 121.9943, 125.5265, 129.3338, 71.8967, 186.782, 211.359, 209.372, 209.512, 231.488, 232.585, 229.347, 223.462, 234.988, 226.747, 235.165, 247.826, 235.776, 234.833, 237.132, 231.817, 249.343, 260.783, 253.386, 249.56, 247.242, 250.905}
00223   };
00224 
00225 
00226   double _meanHD_nomip[maxHDe][maxHDeta] = {
00227 
00228     // 1
00229     {0.948964, 0.94232, 0.951108, 0.955977, 0.950837, 0.941834, 0.941552, 0.944649, 0.900092, 0.882185, 0.857801, 0.854561, 0.81639, 0.983094, 1.41231, 1.75401, 1.91298, 1.88017, 1.74013, 1.64027, 1.48822, 1.32773, 1.25747, 1.27203, 1.26125, 1.06416, 1.11258, 1.26627, 1.12217, 0.941239, 0.277577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
00230     // 2  
00231     {1.48562, 1.54014, 1.51304, 1.49259, 1.46182, 1.47805, 1.45557, 1.44123, 1.37693, 1.37588, 1.35357, 1.27549, 1.28914, 1.4304, 1.991, 2.44264, 2.82995, 2.67674, 2.36148, 2.2129, 2.10271, 1.95112, 1.75655, 1.67158, 1.74121, 1.52589, 1.53362, 1.51889, 1.37023, 1.40654, 2.44184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
00232     // 3
00233     {2.17581, 2.30829, 2.23592, 2.20511, 2.21035, 2.12495, 2.06306, 2.09112, 2.07066, 1.9724, 1.92428, 1.77065, 1.80147, 1.9356, 2.53679, 3.16825, 3.45075, 3.30796, 3.13178, 2.77969, 2.67209, 2.56075, 2.40433, 2.32528, 2.13364, 1.96522, 1.94244, 1.99321, 1.80483, 1.7513, 3.19768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
00234     // 5
00235     {3.83663, 3.95957, 3.83468, 3.86447, 3.71773, 3.6822, 3.66723, 3.5593, 3.49488, 3.40918, 3.28059, 3.13951, 3.08085, 3.27171, 3.98645, 4.66822, 4.88823, 4.78944, 4.53538, 4.25406, 4.0844, 3.80465, 3.64666, 3.5252, 3.19988, 3.19036, 2.99613, 2.87369, 2.6009, 2.09142, 2.26148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
00236     // 9  
00237     {7.33096, 7.18545, 7.18698, 7.31392, 7.1404, 6.94851, 7.00748, 6.816, 6.58667, 6.50255, 6.33378, 6.31494, 6.22511, 6.11153, 7.08688, 7.89748, 7.77793, 7.81633, 7.69758, 7.43388, 6.97497, 6.84561, 6.44661, 6.31444, 5.93032, 5.70113, 5.63984, 5.17491, 4.58848, 3.8904, 3.23472, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
00238     // 15
00239     {12.0623, 12.15, 12.2687, 12.2178, 12.0445, 11.8572, 11.6973, 11.5392, 11.3208, 11.2944, 11.026, 10.6254, 10.2671, 10.5677, 11.583, 12.9551, 12.7293, 12.5954, 12.1806, 12.023, 11.7125, 11.104, 11.1902, 10.6872, 10.3689, 10.1382, 9.85447, 9.19173, 8.25078, 7.13899, 5.35188, 2.83066, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
00240     // 20
00241     {16.8519, 16.6539, 16.925, 17.0493, 16.6029, 16.409, 16.3127, 16.0227, 15.9752, 15.8965, 15.437, 15.4817, 14.9769, 15.1833, 16.3172, 17.6568, 17.4656, 17.2706, 17.0466, 16.9251, 16.4854, 16.1013, 15.7233, 15.357, 14.9625, 14.4617, 13.9107, 13.4021, 12.1417, 10.2327, 6.65205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
00242     // 30 
00243     {26.3349, 26.1412, 26.1147, 26.1084, 25.976, 25.899, 25.6029, 25.1901, 25.0209, 24.8052, 24.3725, 24.0223, 23.391, 23.5983, 24.9266, 27.0901, 26.5888, 26.9638, 26.5324, 26.1992, 26.0606, 25.3993, 24.8119, 24.5037, 24.1828, 23.3706, 22.5645, 21.4124, 20.2532, 16.3831, 11.5615, 20.6587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
00244     // 50
00245     {44.1547, 44.0467, 43.9365, 44.0498, 43.7513, 43.4453, 42.8447, 42.3955, 42.0814, 41.9082, 41.6014, 40.2825, 39.7016, 40.5845, 42.1311, 45.6416, 44.5564, 44.9085, 44.7493, 44.4291, 43.6602, 43.0618, 42.4827, 42.0032, 41.2821, 40.1834, 39.0685, 37.7727, 35.3659, 30.3144, 20.5141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
00246     // 100
00247     {89.0166, 88.9248, 89.3223, 89.5505, 88.4924, 87.5773, 87.6614, 87.7166, 85.7964, 85.5541, 83.907, 83.2024, 81.1869, 82.2941, 86.4585, 92.2372, 90.6419, 89.9531, 89.3483, 89.171, 89.1015, 87.886, 87.2609, 85.9614, 84.7605, 83.7837, 81.5787, 79.5635, 75.1272, 65.7167, 51.2109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
00248     // 150
00249     {134.598, 134.039, 135.167, 134.494, 133.55, 132.196, 132.979, 131.823, 130.269, 129.877, 129.1, 126.099, 124.784, 124.363, 130.512, 139.355, 136.629, 135.035, 134.898, 136.392, 135.279, 132.335, 132.712, 131.439, 129.086, 127.538, 125.224, 122.527, 116.956, 105.373, 110.302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
00250     // 225
00251     {203.056, 202.709, 202.892, 205.342, 200.989, 200.286, 198.402, 198.383, 196.941, 194.556, 194.642, 191.816, 188.203, 190.178, 200.94, 209.893, 207.013, 203.406, 206.392, 204.325, 203.063, 200.838, 200.731, 197.886, 197.04, 194.387, 191.216, 187.552, 179.688, 165.122, 175.858, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
00252     // 300
00253     {271.611, 271.175, 272.363, 273.266, 270.596, 267.422, 267.057, 265.013, 264.023, 262.044, 261.755, 257.059, 250.739, 252.168, 258.005, 280.12, 274.58, 273.867, 275.409, 273.252, 271.811, 271.174, 268.42, 266.73, 265.58, 262.759, 257.754, 251.671, 243.848, 224.828, 214.838, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
00254     // 1000  
00255     {906.463, 916.235, 916.971, 920.578, 915.364, 898.704, 894.27, 889.057, 876.206, 875.216, 871.047, 860.051, 848.685, 867.439, 885.896, 931.649, 927.031, 915.888, 915.764, 912.19, 902.106, 904.573, 899.107, 895.701, 888.59, 882.287, 870.578, 864.449, 846.279, 764.165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
00256     // 3000
00257     {2690.87, 2661.26, 2480.27, 2707.21, 2594.46, 2796.74, 2654.65, 2550.28, 2546.36, 2514.32, 2560.41, 2557.69, 2547.25, 2395, 2589.41, 2954.06, 2722.63, 2824.38, 2778.04, 2757.99, 2752.22, 2706.55, 2711.21, 2734.3, 2748.25, 2700.06, 2662.85, 2617.54, 2568.26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
00258   };
00259 
00260 
00261   double _sigmaHD_nomip[maxHDe][maxHDeta] = {
00262 
00263     // 1
00264     {0.466247, 0.440109, 0.437298, 0.430133, 0.418546, 0.380906, 0.386529, 0.406052, 0.393692, 0.372385, 0.377631, 0.350426, 0.333863, 0.438495, 0.583456, 0.62685, 0.597492, 0.645771, 0.6366, 0.628432, 0.56761, 0.641748, 0.567627, 0.591967, 0.579692, 0.522242, 0.53627, 0.553841, 0.451038, 0.422124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
00265     // 2
00266     {0.758477, 0.826853, 0.765458, 0.743586, 0.725505, 0.782088, 0.757382, 0.748993, 0.70502, 0.708197, 0.783205, 0.634504, 0.69647, 0.730523, 0.935662, 1.0627, 1.12114, 1.11007, 1.08509, 0.997902, 1.04368, 0.974941, 0.929926, 0.966652, 0.98367, 0.956365, 0.975184, 0.967574, 0.820016, 0.971484, 0.877667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
00267     // 3
00268     {1.14396, 1.23176, 1.11325, 1.08568, 1.07378, 1.11495, 1.0188, 1.0839, 1.06022, 1.05346, 1.03335, 0.911993, 0.916675, 0.979711, 1.27474, 1.36779, 1.48986, 1.34921, 1.41418, 1.33332, 1.32676, 1.37969, 1.46906, 1.31727, 1.38304, 1.24866, 1.15109, 1.22767, 1.25968, 1.154, 1.55947, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
00269     // 5
00270     {1.58351, 1.61056, 1.60437, 1.475, 1.56522, 1.59117, 1.60579, 1.60455, 1.61514, 1.62515, 1.50218, 1.51904, 1.55301, 1.65246, 2.01446, 2.00946, 2.1005, 1.98962, 2.03078, 2.0045, 2.11343, 1.99941, 2.07625, 2.08901, 1.88057, 1.83726, 1.92367, 1.74014, 1.71111, 1.39314, 1.53543, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
00271     // 9  
00272     {2.37997, 2.38645, 2.29157, 2.28545, 2.41044, 2.34692, 2.35371, 2.37615, 2.35705, 2.31735, 2.42325, 2.57925, 2.46426, 2.53557, 3.17194, 2.98614, 3.11999, 3.08252, 3.12468, 3.09011, 2.98069, 3.12631, 3.04551, 2.99623, 2.82624, 3.08572, 2.8858, 2.78696, 2.7069, 2.31551, 2.03209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
00273     // 15
00274     {2.96981, 2.88621, 2.8029, 2.91733, 2.88919, 3.01595, 2.91112, 2.86828, 2.85448, 3.25246, 3.00353, 3.03943, 3.10345, 3.35329, 4.13982, 3.99733, 3.98324, 3.85731, 3.82006, 3.67547, 3.68277, 3.60511, 3.8331, 3.69059, 3.59195, 3.78455, 3.49175, 3.51433, 3.23029, 3.25019, 4.50196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
00275     // 20
00276     {3.49149, 3.44976, 3.54228, 3.45942, 3.45637, 3.42628, 3.61779, 3.50426, 3.69151, 3.70395, 3.70333, 3.99621, 3.93288, 4.06807, 4.81683, 4.79121, 4.49484, 4.55595, 4.51115, 4.44616, 4.49696, 4.43949, 4.38707, 4.41133, 4.31592, 4.37403, 4.19999, 4.06729, 4.1396, 4.01051, 3.47011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
00277     // 30 
00278     {4.35475, 4.67653, 4.25421, 4.30121, 4.49441, 4.45067, 4.44816, 4.52709, 4.68955, 5.12789, 4.80505, 5.03039, 5.20752, 5.76107, 6.48702, 5.38695, 5.83015, 5.46905, 5.64145, 5.68013, 5.66492, 5.48386, 5.43619, 5.58733, 5.39637, 5.55483, 5.44857, 4.8358, 5.1801, 4.93687, 3.96695, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
00279     // 50
00280     {6.10027, 5.93972, 5.91983, 5.86343, 5.95998, 6.16177, 6.42329, 6.16425, 6.36983, 6.52328, 6.90349, 7.10031, 7.1156, 8.31224, 8.61658, 6.86372, 7.32435, 7.74376, 7.18775, 7.62187, 7.40278, 7.26929, 7.02484, 7.70488, 7.23433, 7.15334, 7.4646, 6.91855, 7.54337, 7.426, 12.2277, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
00281     // 100
00282     {8.80926, 8.60537, 9.1106, 9.03406, 9.26793, 9.42893, 9.96896, 9.98629, 10.3482, 10.5935, 10.8561, 11.9344, 12.297, 14.6568, 14.7604, 10.7917, 10.4405, 10.8247, 10.9242, 10.1337, 10.7987, 11.2976, 11.1306, 11.3631, 10.9815, 11.3544, 11.0625, 10.9819, 11.1564, 13.0105, 18.4554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
00283     // 150
00284     {11.8965, 11.7766, 12.1927, 12.2483, 12.7158, 12.2447, 13.0917, 13.5579, 13.5365, 15.0623, 15.2665, 15.4531, 16.3194, 19.4575, 19.3891, 13.1361, 13.809, 13.4685, 12.8597, 13.4501, 14.2348, 14.3763, 13.676, 14.4942, 14.6024, 13.8535, 14.4641, 14.5161, 14.6678, 16.1901, 2.57104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
00285     // 225
00286     {16.2251, 15.8354, 16.6789, 16.2709, 16.6725, 16.8202, 18.0403, 18.3857, 18.7583, 18.8643, 19.7971, 21.7215, 23.256, 25.7725, 26.3572, 16.8278, 18.0785, 17.7827, 17.0253, 17.4367, 17.961, 18.1906, 18.9534, 20.2112, 17.8282, 18.8618, 18.6992, 18.7263, 18.4844, 20.996, 27.5488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
00287     // 300
00288     {20.439, 19.2206, 20.186, 20.0251, 20.3165, 20.2644, 20.2143, 21.4909, 23.4092, 24.4115, 25.112, 28.2945, 28.3943, 32.7937, 35.2629, 19.731, 20.2977, 22.2025, 21.0784, 20.3503, 21.1633, 21.7644, 23.4304, 21.8679, 22.0594, 23.3655, 23.5655, 20.6678, 22.1879, 23.1144, 19.9985, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
00289     // 1000  
00290     {52.9663, 48.0519, 47.4125, 42.5804, 64.3721, 56.243, 60.2385, 61.8364, 60.3981, 55.7629, 57.8917, 66.0476, 73.0758, 75.0852, 128.94, 40.5088, 45.8946, 46.7171, 45.5946, 40.915, 44.3987, 45.3782, 39.0812, 40.7554, 45.4572, 44.196, 47.5892, 43.3159, 60.4667, 23.3458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
00291     // 3000
00292     {119.221, 164.929, 153.0803, 176.326, 94.9388, 136.348, 105.755, 182.901, 183.245, 229.638, 249.6, 185.337, 195.058, 174.548, 0, 0, 87.6332, 102.13, 141.983, 120.685, 131.263, 151.295, 142.537, 160.674, 126.879, 147.193, 123.606, 125.998, 149.884, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
00293   };
00294 
00295 
00296 
00297   // e-gamma mean response and sigma in HF 
00298   double _meanEM[maxEMe][maxEMeta] = 
00299     { 
00300       { 8.45992 , 8.63583 , 8.02996 , 8.97919 , 8.82544 , 8.25 , 8.07106 , 8.34085 , 7.94789 , 8.64608 , 8.54919 , 7.93515 , 8.24598 , 8.27851 , 6.99648 , 6.38774 , 1.96863 , 1.99444 , 0.463971 , 1.85597 },
00301       { 27.0178 , 27.5436 , 27.2402 , 27.033 , 27.3868 , 25.6628 , 27.281 , 28.5243 , 26.2394 , 26.6339 , 25.1889 , 26.7813 , 25.7826 , 25.489 , 25.5799 , 20.935 , 8.29258 , 7.65 , 1.63656 , 6.04511 },
00302       { 96.8961 , 94.332 , 94.5504 , 98.344 , 96.5179 , 93.4123 , 94.3248 , 93.201 , 93.8986 , 94.2246 , 94.5596 , 91.9108 , 91.6629 , 93.0828 , 90.2524 , 82.5382 , 38.8545 , 52.6627 , 4.11778 , 23.5803 },
00303       { 314.837 , 306.694 , 314.115 , 305.044 , 305.018 , 308.364 , 306.552 , 302.859 , 299.284 , 300.775 , 303.902 , 297.587 , 298.982 , 297.452 , 288.804 , 277.016 , 221.93 , 230.533 , 14.5807 , 76.9597 },
00304       { 780.491 , 779.594 , 764.682 , 777.392 , 772.422 , 773.774 , 765.144 , 758.003 , 756.913 , 753.151 , 761.062 , 742.631 , 736.608 , 745.717 , 718.31 , 704.612 , 676.861 , 676.872 , 30.3429 , 231.996 },
00305       { 1123.48 , 1138.38 , 1139.27 , 1133.34 , 1142.2 , 1120.54 , 1100.99 , 1113.59 , 1092.92 , 1105.28 , 1110.92 , 1079.62 , 1079.63 , 1073.68 , 1066.91 , 1029.93 , 936.019 , 975.08 , 55.2746 , 322.708 },
00306       { 3418.28 , 3448.06 , 3415.97 , 3346.42 , 3404.7 , 3374.67 , 3372.47 , 3351.11 , 3316 , 3337.46 , 3309.82 , 3247.97 , 3241.04 , 3271.23 , 3161.16 , 3121.28 , 3062.65 , 3175.16 , 126.643 , 982.95 }
00307     }; 
00308 
00309   double _sigmaEM[maxEMe][maxEMeta] =
00310     {
00311       { 7.34058 , 7.08079 , 7.23214 , 8.06263 , 7.30624 , 7.08314 , 7.12469 , 7.18147 , 7.17955 , 7.28179 , 7.56118 , 7.0407 , 7.59106 , 7.49638 , 6.75414 , 7.17367 , 4.70368 , 4.42008 , 2.05961 , 4.8895 },
00312       {  12.9084 , 12.6178 , 12.4915 , 12.3874 , 13.2901 , 11.8766 , 11.9469 , 14.1489 , 12.9496 , 12.2286 , 12.3921 , 14.045 , 13.4044 , 13.6155 , 14.0631 , 14.6692 , 13.6443 , 13.6275 , 6.82313 , 11.9411 },
00313       { 33.2929 , 32.7502 , 31.5466 , 34.8465 , 34.189 , 30.3185 , 32.5117 , 35.5203 , 36.7793 , 32.5331 , 32.9382 , 33.3213 , 33.8772 , 34.2328 , 34.0775 , 40.2445 , 47.9594 , 48.9547 , 19.6232 , 43.8259 },
00314       { 65.6405 , 64.1397 , 62.6258 , 64.9663 , 63.5784 , 68.6845 , 68.383 , 63.4324 , 61.6744 , 61.3449 , 66.4723 , 66.5365 , 71.3094 , 69.2828 , 68.652 , 79.5868 , 123.485 , 123.836 , 59.2157 , 130.709 },
00315       { 126.574 , 131.893 , 129.359 , 138.861 , 127.105 , 143.23 , 141.569 , 136.978 , 141.678 , 136.704 , 151.253 , 149.417 , 150.685 , 140.786 , 148.325 , 161.185 , 262.263 , 167.322 , 146.05 , 337.333 },
00316       { 205.354 , 218.242 , 224.552 , 237.143 , 238.286 , 244.237 , 230.449 , 243.406 , 250.26 , 260.09 , 248.435 , 247.354 , 272.659 , 246.76 , 286.364 , 259.995 , 283.664 , 363.005 , 249.778 , 476.116 },
00317       { 399.332 , 426.213 , 439.176 , 461.66 , 480.137 , 438.204 , 437.622 , 451.579 , 509.787 , 487.307 , 482.618 , 514.53 , 554.844 , 506.243 , 525.057 , 584.281 , 613.339 , 537.544 , 620.743 , 1434. }
00318 
00319     }; 
00320 
00321 
00322   // MUON probability histos for bin size = 0.25 GeV (0-10 GeV, 40 bins)  
00323 
00324   double _responseMU[maxMUe][maxMUeta][maxMUbin] = {
00325     { 
00326       // 10 GeV
00327       {1, 0.999009, 0.999009, 0.999009, 0.997027, 0.981169, 0.949455, 0.922696, 0.863231, 0.782953, 0.665015, 0.555996, 0.443013, 0.322101, 0.230922, 0.162537, 0.114965, 0.0812686, 0.0604559, 0.0475719, 0.0376611, 0.0307235, 0.0178394, 0.0138751, 0.0099108, 0.00792864, 0.00792864, 0.00693756, 0.00396432, 0.00297324, 0.00297324, 0.00198216, 0.00198216, 0.00198216, 0.00198216, 0.00198216, 0.00198216, 0.00099108, 0.00099108, 0}, 
00328       {1, 1, 1, 0.998037, 0.993131, 0.976447, 0.908734, 0.843965, 0.698724, 0.546614, 0.437684, 0.336605, 0.245339, 0.177625, 0.123651, 0.077527, 0.063788, 0.0451423, 0.0353288, 0.0284593, 0.0245339, 0.0215898, 0.0186457, 0.0147203, 0.013739, 0.00981354, 0.00490677, 0.00490677, 0.00392542, 0.00294406, 0.00294406, 0.00196271, 0.00196271, 0.00196271, 0.00196271, 0.000981354, 0.000981354, 0.000981354, 0.000981354, 0}, 
00329       {1, 1, 1, 1, 0.99854, 0.986861, 0.964964, 0.941606, 0.870073, 0.747445, 0.640876, 0.562044, 0.426277, 0.344526, 0.255474, 0.191241, 0.135766, 0.109489, 0.0729927, 0.0525547, 0.0423358, 0.0291971, 0.0233577, 0.0175182, 0.0131387, 0.010219, 0.00437956, 0.00437956, 0.00437956, 0.00291971, 0.00145985, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 
00330       {1, 1, 1, 1, 1, 1, 0.987603, 0.982782, 0.9573, 0.909091, 0.85124, 0.800275, 0.727961, 0.626722, 0.536501, 0.447658, 0.341598, 0.274793, 0.208678, 0.153581, 0.125344, 0.0971074, 0.0764463, 0.0633609, 0.0495868, 0.0371901, 0.0316804, 0.0213499, 0.0172176, 0.0144628, 0.0110193, 0.00964187, 0.00826446, 0.00757576, 0.00688705, 0.00413223, 0.00344353, 0.00206612, 0.00206612, 0.00206612}, 
00331       {1, 0.995918, 0.995918, 0.995918, 0.953061, 0.846939, 0.75102, 0.634694, 0.512245, 0.355102, 0.263265, 0.218367, 0.136735, 0.0836735, 0.0612245, 0.0469388, 0.0326531, 0.0265306, 0.0142857, 0.0102041, 0.00408163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0},
00332       {1, 0.999541, 0.999541, 0.999541, 0.996784, 0.977257, 0.977257, 0.909028, 0.909028, 0.769354, 0.698369, 0.698369, 0.455088, 0.244659, 0.244429, 0.129566, 0.129336, 0.0884448, 0.0443372, 0.0438778, 0.0238916, 0.0238916, 0.0130944, 0.00987824, 0.00735125, 0.00574317, 0.00436481, 0.00229727, 0.00229727, 0.00160809, 0.00160809, 0.00160809, 0.00114863, 0.00114863, 0.000459453, 0.000229727, 0.000229727, 0.000229727, 0.000229727, 0}
00333     },
00334     //30 GeV
00335     {
00336       {1, 1, 1, 1, 1, 0.997006, 0.981038, 0.963074, 0.928144, 0.852295, 0.761477, 0.662675, 0.538922, 0.399202, 0.299401, 0.234531, 0.190619, 0.154691, 0.125749, 0.0918164, 0.0718563, 0.0638723, 0.0568862, 0.0399202, 0.0319361, 0.0259481, 0.0199601, 0.0159681, 0.0149701, 0.011976, 0.00898204, 0.00798403, 0.00299401, 0.00299401, 0.00299401, 0.00299401, 0.00199601, 0.00199601, 0.000998004, 0.000998004}, 
00337       {1, 0.998024, 0.998024, 0.998024, 0.996047, 0.982213, 0.927866, 0.885375, 0.791502, 0.601779, 0.477273, 0.383399, 0.29249, 0.205534, 0.177866, 0.126482, 0.100791, 0.0790514, 0.0494071, 0.0375494, 0.0286561, 0.0217391, 0.0217391, 0.0158103, 0.0128458, 0.0118577, 0.0108696, 0.00988142, 0.00889328, 0.00889328, 0.00889328, 0.00790514, 0.00592885, 0.00592885, 0.00395257, 0.00197628, 0.000988142, 0.000988142, 0, 0}, 
00338       {1, 1, 1, 1, 1, 0.997041, 0.97929, 0.964497, 0.903846, 0.803254, 0.681953, 0.594675, 0.5, 0.360947, 0.298817, 0.214497, 0.150888, 0.130178, 0.0872781, 0.0695266, 0.0591716, 0.0384615, 0.0340237, 0.0251479, 0.0192308, 0.0177515, 0.0177515, 0.0162722, 0.0162722, 0.0133136, 0.010355, 0.00739645, 0.00443787, 0.00443787, 0.00443787, 0.00443787, 0.00295858, 0.00295858, 0, 0}, 
00339       {1, 1, 1, 1, 1, 0.999306, 0.997917, 0.997222, 0.986111, 0.953472, 0.901389, 0.865972, 0.775, 0.6625, 0.603472, 0.501389, 0.402083, 0.349306, 0.264583, 0.220833, 0.194444, 0.145139, 0.119444, 0.09375, 0.0763889, 0.0625, 0.0472222, 0.0368056, 0.0326389, 0.0291667, 0.0201389, 0.0145833, 0.0145833, 0.0111111, 0.00833333, 0.00694444, 0.00486111, 0.00416667, 0.00208333, 0.000694444}, 
00340       {1, 0.991803, 0.991803, 0.991803, 0.969262, 0.881148, 0.762295, 0.67623, 0.532787, 0.409836, 0.295082, 0.243852, 0.188525, 0.139344, 0.122951, 0.0778689, 0.0532787, 0.0471311, 0.0368852, 0.0286885, 0.0286885, 0.022541, 0.0184426, 0.0163934, 0.0163934, 0.0122951, 0.0122951, 0.00819672, 0.00819672, 0.00819672, 0.00819672, 0.00614754, 0.00204918, 0.00204918, 0.00204918, 0.00204918, 0, 0, 0, 0}, 
00341       {1, 0.999304, 0.999304, 0.999304, 0.998609, 0.990958, 0.990958, 0.952469, 0.952237, 0.819615, 0.777417, 0.777417, 0.563877, 0.332251, 0.332251, 0.190587, 0.190587, 0.157663, 0.0987712, 0.0987712, 0.061674, 0.061674, 0.0377927, 0.0352423, 0.0268954, 0.0257361, 0.0234176, 0.0132159, 0.0127521, 0.0106654, 0.0106654, 0.00881057, 0.00394157, 0.00394157, 0.00370971, 0.001623, 0.001623, 0.000927429, 0.000927429, 0.000695572}
00342     },
00343     // 100 GeV
00344     {
00345       {1, 1, 1, 1, 1, 0.998976, 0.9826, 0.971341, 0.947799, 0.895599, 0.804504, 0.73695, 0.650972, 0.520983, 0.417605, 0.350051, 0.286592, 0.239509, 0.192426, 0.146366, 0.125896, 0.106448, 0.0921187, 0.073695, 0.0593654, 0.0470829, 0.0388946, 0.0286592, 0.0225179, 0.0214944, 0.0184237, 0.0153531, 0.0143296, 0.011259, 0.00921187, 0.00716479, 0.00716479, 0.00511771, 0.00409417, 0.00307062}, 
00346       {1, 1, 1, 1, 0.999004, 0.989044, 0.949203, 0.922311, 0.850598, 0.724104, 0.600598, 0.510956, 0.432271, 0.334661, 0.293825, 0.217131, 0.184263, 0.164343, 0.123506, 0.10757, 0.0916335, 0.0717131, 0.062749, 0.0507968, 0.0418327, 0.0408367, 0.0328685, 0.0278884, 0.0268924, 0.0229084, 0.0199203, 0.0179283, 0.0149402, 0.0119522, 0.0109562, 0.00996016, 0.00896414, 0.00697211, 0.00498008, 0.00199203},
00347       {1, 1, 1, 1, 1, 0.994048, 0.985119, 0.974702, 0.934524, 0.827381, 0.708333, 0.639881, 0.5625, 0.450893, 0.392857, 0.316964, 0.258929, 0.235119, 0.162202, 0.130952, 0.120536, 0.0907738, 0.078869, 0.0669643, 0.0625, 0.0565476, 0.047619, 0.0357143, 0.0342262, 0.0282738, 0.0208333, 0.0208333, 0.016369, 0.0133929, 0.0119048, 0.0104167, 0.00446429, 0.00446429, 0.0014881, 0.0014881}, 
00348       {1, 0.999281, 0.999281, 0.999281, 0.999281, 0.999281, 0.997124, 0.996405, 0.991373, 0.966211, 0.925953, 0.893602, 0.839684, 0.742631, 0.695902, 0.597412, 0.507549, 0.470884, 0.38821, 0.327822, 0.295471, 0.230769, 0.199856, 0.166068, 0.136592, 0.119339, 0.0941769, 0.0754853, 0.069734, 0.0603882, 0.0510424, 0.0409777, 0.0359454, 0.0287563, 0.0201294, 0.0143781, 0.0107836, 0.00790798, 0.00647017, 0.00359454}, 
00349       {1, 0.997934, 0.997934, 0.997934, 0.987603, 0.92562, 0.834711, 0.77686, 0.654959, 0.518595, 0.409091, 0.353306, 0.299587, 0.216942, 0.206612, 0.161157, 0.130165, 0.123967, 0.0909091, 0.0867769, 0.0681818, 0.053719, 0.0433884, 0.035124, 0.0330579, 0.0330579, 0.0289256, 0.0268595, 0.0227273, 0.0227273, 0.0206612, 0.018595, 0.0123967, 0.0103306, 0.00619835, 0.00619835, 0.00413223, 0.00413223, 0.00206612, 0.00206612},
00350       {1, 1, 1, 1, 0.999765, 0.995535, 0.9953, 0.970153, 0.969918, 0.881316, 0.853584, 0.853584, 0.670035, 0.441833, 0.441833, 0.286251, 0.286016, 0.251234, 0.171798, 0.171798, 0.114454, 0.114454, 0.0777908, 0.0747356, 0.0571093, 0.0552291, 0.053349, 0.0293772, 0.0293772, 0.026557, 0.0249119, 0.0211516, 0.012691, 0.0115159, 0.0110458, 0.00658049, 0.00634548, 0.00305523, 0.00305523, 0.00188014}
00351     },
00352     // 300 GeV
00353     {
00354       {1, 1, 1, 1, 1, 0.997817, 0.99345, 0.983624, 0.966157, 0.933406, 0.873362, 0.815502, 0.74345, 0.64083, 0.558952, 0.479258, 0.419214, 0.379913, 0.325328, 0.270742, 0.239083, 0.19869, 0.167031, 0.141921, 0.113537, 0.0971616, 0.0840611, 0.0687773, 0.058952, 0.0436681, 0.0393013, 0.0327511, 0.0305677, 0.0262009, 0.0196507, 0.0163755, 0.0120087, 0.00982533, 0.00873362, 0.00327511}, 
00355       {1, 1, 1, 1, 1, 0.996865, 0.972832, 0.948798, 0.904911, 0.802508, 0.719958, 0.649948, 0.584117, 0.491118, 0.46604, 0.364681, 0.331243, 0.308255, 0.244514, 0.221526, 0.202717, 0.169279, 0.15256, 0.126437, 0.111808, 0.106583, 0.0909091, 0.0783699, 0.0710554, 0.0574713, 0.0501567, 0.045977, 0.0376176, 0.0344828, 0.030303, 0.0261233, 0.0188088, 0.0135841, 0.0104493, 0.00522466}, 
00356       {1, 1, 1, 1, 1, 0.998415, 0.993661, 0.988906, 0.977813, 0.935024, 0.858954, 0.812995, 0.762282, 0.662441, 0.622821, 0.505547, 0.445325, 0.426307, 0.329635, 0.29794, 0.275753, 0.242472, 0.22187, 0.191759, 0.171157, 0.158479, 0.141046, 0.125198, 0.120444, 0.110935, 0.0982567, 0.0792393, 0.0586371, 0.0570523, 0.0538827, 0.0459588, 0.0332805, 0.0269414, 0.0174326, 0.0110935}, 
00357       {1, 1, 1, 1, 1, 1, 0.998436, 0.997654, 0.992963, 0.982017, 0.960125, 0.94527, 0.906177, 0.845192, 0.820954, 0.744332, 0.671618, 0.624707, 0.538702, 0.475371, 0.441751, 0.36982, 0.333855, 0.291634, 0.250977, 0.22674, 0.199375, 0.1681, 0.150899, 0.137608, 0.110242, 0.0992963, 0.0820954, 0.0664582, 0.0578577, 0.0453479, 0.0359656, 0.0289289, 0.0187647, 0.00938233},
00358       {1, 1, 1, 1, 0.989177, 0.941558, 0.887446, 0.839827, 0.75974, 0.612554, 0.525974, 0.478355, 0.426407, 0.361472, 0.350649, 0.279221, 0.253247, 0.24026, 0.168831, 0.145022, 0.134199, 0.108225, 0.101732, 0.0779221, 0.0606061, 0.0562771, 0.0497835, 0.04329, 0.0411255, 0.034632, 0.034632, 0.0238095, 0.0194805, 0.017316, 0.017316, 0.0108225, 0.0108225, 0.0108225, 0.00649351, 0.00649351},
00359       {1, 0.99926, 0.99926, 0.99926, 0.99852, 0.995312, 0.995312, 0.984949, 0.984703, 0.925241, 0.915865, 0.915865, 0.798668, 0.630891, 0.630891, 0.484826, 0.484579, 0.455712, 0.356279, 0.356279, 0.268937, 0.268937, 0.196891, 0.191463, 0.154453, 0.149519, 0.146558, 0.0957316, 0.0949914, 0.0885764, 0.0880829, 0.0745127, 0.0478658, 0.0471256, 0.0446583, 0.0264002, 0.0261535, 0.0157908, 0.0152973, 0.00986923}
00360     }
00361   };
00362 
00363   // now assign
00364   for (int i1 = 0; i1 < maxMUe; i1++) { 
00365     eGridMU[i1] = _eGridMU[i1];
00366     for (int i2 = 0; i2 < maxMUeta; i2++) {
00367       for (int i3 = 0; i3 < maxMUbin; i3++) {
00368         
00369         responseMU[i1][i2][i3] = _responseMU[i1][i2][i3];
00370 
00371         if(debug) {
00372           //cout.width(6);
00373           LogDebug("FastCalorimetry") << " responseMU " << i1 << " " << i2 << " " << i3  << " = " 
00374                                       << responseMU[i1][i2][i3] << std::endl;
00375         }
00376         
00377       }
00378     }
00379   }
00380   for (int i2 = 0; i2 < maxMUeta; i2++) {
00381     etaGridMU[i2] = _etaGridMU[i2];
00382   }
00383 
00384 
00385   // Normalize the response and sigmas to the corresponding energies
00386   for(int i = 0; i<maxHDe;  i++) {
00387     eGridHD[i] = _eGridHD[i];
00388     for(int j = 0; j<maxHDeta; j++) {
00389  
00390       double factor = 1.;
00391       if( j < 14) factor = 0.94;     
00392  
00393       meanHD[i][j]        =  factor * _meanHD[i][j]  / eGridHD[i];
00394       sigmaHD[i][j]       =  _sigmaHD[i][j] / eGridHD[i];
00395 
00396       meanHD_mip[i][j]    =  factor * _meanHD_mip[i][j]  / eGridHD[i];
00397       sigmaHD_mip[i][j]   =  _sigmaHD_mip[i][j] / eGridHD[i];
00398 
00399       meanHD_nomip[i][j]  =  factor * _meanHD_nomip[i][j]  / eGridHD[i];
00400       sigmaHD_nomip[i][j] =  _sigmaHD_nomip[i][j] / eGridHD[i];
00401 
00402     }
00403   }
00404 
00405 
00406   for(int i = 0; i<maxEMe;  i++) {
00407     eGridEM[i] = _eGridEM[i];
00408     for(int j = 0; j<maxEMeta; j++) {
00409       meanEM[i][j]  = 0.7 *  _meanEM[i][j] / eGridEM[i];
00410       sigmaEM[i][j] = 0.7 * _sigmaEM[i][j] / eGridEM[i];
00411     }
00412   }
00413 
00414 
00415 }

HCALResponse::~HCALResponse (  )  [inline]

Definition at line 35 of file HCALResponse.h.

00035 {;} 


Member Function Documentation

double HCALResponse::getHCALEnergyResolution ( double  e,
int  hit 
)

Definition at line 673 of file HCALResponse.cc.

References HCAL, hcforward, RespPar, funct::sqrt(), and VFCAL.

Referenced by CalorimetryManager::HDShowerSimulation(), and CalorimetryManager::reconstructHCAL().

00673                                                              {
00674   
00675   if(hit==hcforward) 
00676     return e *sqrt( RespPar[VFCAL][1][0]*RespPar[VFCAL][1][0] / e + 
00677                     RespPar[VFCAL][1][1]*RespPar[VFCAL][1][1] );
00678   else
00679     return  e * sqrt( RespPar[HCAL][hit][0]*RespPar[HCAL][hit][0]/(e)
00680                       + RespPar[HCAL][hit][1]*RespPar[HCAL][hit][1]);   
00681 
00682 }

double HCALResponse::getHCALEnergyResponse ( double  e,
int  hit 
)

Definition at line 685 of file HCALResponse.cc.

References c, eResponseCoefficient, eResponseExponent, eResponsePlateau, eResponseScale, funct::exp(), funct::log(), n, p, and s.

Referenced by CalorimetryManager::HDShowerSimulation(), and CalorimetryManager::reconstructHCAL().

00685                                                            {
00686 
00687   double s = eResponseScale[hit];
00688   double n = eResponseExponent;
00689   double p = eResponsePlateau[hit];
00690   double c = eResponseCoefficient;
00691 
00692   double response = e * p / (1+c*exp(n * log(s/e)));
00693 
00694   if(response<0.) response = 0.;
00695 
00696   return response;
00697 }

double HCALResponse::getHFEnergyResolution ( double  EGen  ) 

Definition at line 700 of file HCALResponse.cc.

References RespPar, funct::sqrt(), and VFCAL.

00701 {
00702   return EGen *sqrt( RespPar[VFCAL][0][0]*RespPar[VFCAL][0][0] / EGen + 
00703                      RespPar[VFCAL][0][1]*RespPar[VFCAL][0][1] );
00704 }  

void HCALResponse::interEM ( double  e,
int  ie,
int  ieta 
) [private]

Definition at line 637 of file HCALResponse.cc.

References debug, eGridEM, lat::endl(), LogDebug, mean, meanEM, sigma, and sigmaEM.

Referenced by responseHCAL().

00638 { 
00639   double y1 = meanEM[ie][ieta]; 
00640   double y2 = meanEM[ie+1][ieta]; 
00641   double x1 = eGridEM[ie];
00642   double x2 = eGridEM[ie+1];
00643   
00644   if(debug) {
00645     //  cout.width(6);
00646     LogDebug("FastCalorimetry") << std::endl
00647                                 << " HCALResponse::interEM mean " << std::endl
00648                                 << " x, x1-x2, y1-y2 = " 
00649                                 << e << ", " << x1 <<"-" << x2 << " " << y1 <<"-" << y2 << std::endl; 
00650   
00651   }
00652 
00653   mean =  e * (y1 + (y2 - y1) * (e - x1)/(x2 - x1));      
00654   
00655   y1 = sigmaEM[ie][ieta]; 
00656   y2 = sigmaEM[ie+1][ieta]; 
00657   
00658   if(debug) {
00659     //  cout.width(6);
00660     LogDebug("FastCalorimetry") << std::endl
00661                                 << " HCALResponse::interEM sigma" << std::endl
00662                                 << " x, x1-x2, y1-y2 = " 
00663                                 << e << ", " << x1 <<"-" << x2 << " " << y1 <<"-" << y2 << std::endl; 
00664   
00665   }
00666 
00667   sigma = e * (y1 + (y2 - y1) * (e - x1)/(x2 - x1));      
00668 }

void HCALResponse::interHD ( int  mip,
double  e,
int  ie,
int  ieta 
) [private]

Definition at line 564 of file HCALResponse.cc.

References debug, eGridHD, lat::endl(), LogDebug, mean, meanHD, meanHD_mip, meanHD_nomip, sigma, sigmaHD, sigmaHD_mip, and sigmaHD_nomip.

Referenced by responseHCAL().

00565 {
00566 
00567   double y1, y2;
00568 
00569   double x1 = eGridHD[ie];
00570   double x2 = eGridHD[ie+1];
00571 
00572   if(mip == 2) {           // mip doesn't matter
00573     y1 = meanHD[ie][ieta]; 
00574     y2 = meanHD[ie+1][ieta]; 
00575   }
00576   else {
00577     if(mip == 0) {         // not mip
00578       y1 = meanHD_nomip[ie][ieta]; 
00579       y2 = meanHD_nomip[ie+1][ieta]; 
00580     }
00581     else {                 // mip in ECAL
00582       y1 = meanHD_mip[ie][ieta]; 
00583       y2 = meanHD_mip[ie+1][ieta]; 
00584     }
00585   }
00586 
00587   if(debug) {
00588     //  cout.width(6);
00589     LogDebug("FastCalorimetry") << std::endl
00590                                 << " HCALResponse::interHD mean " << std::endl
00591                                 << " x, x1-x2, y1-y2 = " 
00592                                 << e << ", " << x1 <<"-" << x2 << " "
00593                                 << y1 <<"-" << y2 << std::endl;  
00594   }
00595   
00596   mean =  e * (y1 + (y2 - y1) * (e - x1)/(x2 - x1));      
00597   
00598 
00599   if(mip == 2) {           // mip doesn't matter
00600     y1 = sigmaHD[ie][ieta]; 
00601     y2 = sigmaHD[ie+1][ieta]; 
00602   }
00603   else {
00604     if(mip == 0) {         // not mip
00605       y1 = sigmaHD_nomip[ie][ieta]; 
00606       y2 = sigmaHD_nomip[ie+1][ieta]; 
00607     }
00608     else {                 // mip in ECAL
00609       y1 = sigmaHD_mip[ie][ieta]; 
00610       y2 = sigmaHD_mip[ie+1][ieta]; 
00611     }
00612   }
00613   
00614   if(debug) {
00615     //  cout.width(6);
00616     LogDebug("FastCalorimetry") << std::endl
00617                                 << " HCALResponse::interHD sigma" << std::endl
00618                                 << " x, x1-x2, y1-y2 = " 
00619                                 << e << ", " << x1 <<"-" << x2 << " " << y1 <<"-" << y2 << std::endl; 
00620   
00621   }
00622  
00623   sigma = e * (y1 + (y2 - y1) * (e - x1)/(x2 - x1));      
00624 
00625 
00626   if(debug) {
00627     //cout.width(6);
00628     LogDebug("FastCalorimetry") << std::endl
00629                                 << " HCALResponse::interHD " << std::endl
00630                                 << " e, ie, ieta = " << e << " " << ie << " " << ieta << std::endl
00631                                 << " mean, sigma  = " << mean << " " << sigma << std::endl ;
00632   }
00633 
00634 }

void HCALResponse::interMU ( double  e,
int  ie,
int  ieta 
) [private]

Definition at line 516 of file HCALResponse.cc.

References debug, eGridMU, lat::endl(), RandomEngine::flatShoot(), i, LogDebug, maxMUbin, mean, muStep, random, responseMU, sigma, and x.

Referenced by responseHCAL().

00517 {
00518 
00519   double x = random->flatShoot();
00520 
00521   int bin1 = maxMUbin;
00522   for(int i = 0; i < maxMUbin; i++) {
00523     if(x > responseMU[ie][ieta][i]) {
00524       bin1 = i-1;
00525       break;
00526     }
00527   }
00528   int bin2 = maxMUbin;
00529   for(int i = 0; i < maxMUbin; i++) {
00530     if(x > responseMU[ie+1][ieta][i]) {
00531       bin2 = i-1;
00532       break;
00533     }
00534   }
00535    
00536   double x1 = eGridMU[ie];
00537   double x2 = eGridMU[ie+1];
00538   double y1 = (bin1 + random->flatShoot()) * muStep;   
00539   double y2 = (bin2 + random->flatShoot()) * muStep;   
00540 
00541   if(debug) {
00542     //  cout.width(6);
00543     LogDebug("FastCalorimetry") << std::endl
00544                                 << " HCALResponse::interMU  " << std::endl
00545                                 << " x, x1-x2, y1-y2 = " 
00546                                 << e << ", " << x1 <<"-" << x2 << " " << y1 <<"-" << y2 << std::endl; 
00547   
00548   }
00549 
00550 
00551   mean  = y1 + (y2-y1) * (e - x1)/(x2 - x1);
00552   sigma = 0.;
00553 
00554   if(debug) {
00555     //cout.width(6);
00556     LogDebug("FastCalorimetry") << std::endl
00557                                 << " HCALResponse::interMU " << std::endl
00558                                 << " e, ie, ieta = " << e << " " << ie << " " << ieta << std::endl
00559                                 << " response  = " << mean << std::endl; 
00560   }
00561 
00562 }

std::pair< double, double > HCALResponse::responseHCAL ( int  mip,
double  energy,
double  eta,
int  partype 
)

Definition at line 419 of file HCALResponse.cc.

References funct::abs(), debug, eBias, eGridEM, eGridHD, eGridMU, lat::endl(), eResponseCorrection, etaGridMU, etaStep, i, interEM(), interHD(), interMU(), LogDebug, maxEMe, maxEMeta, maxHDe, maxHDeta, maxMUe, maxMUeta, mean, and sigma.

Referenced by CalorimetryManager::HDShowerSimulation(), CalorimetryManager::reconstructECAL(), and CalorimetryManager::reconstructHCAL().

00420 {
00421 
00422   int ieta = abs((int)(eta / etaStep)) ;
00423   int ie = -1;
00424 
00425   mean  = 0.;
00426   sigma = 0.;
00427 
00428   // e/gamma
00429   if(partype == 0) {
00430     ieta -= 30;  // HF starts at ieta=30 till ieta=51 
00431                  // but resp.vector from index=0 through 20
00432     if(ieta >= maxEMeta ) ieta = maxEMeta;
00433     else if(ieta < 0) ieta = 0;
00434  
00435     for (int i = 0; i < maxEMe; i++) {
00436       if(energy < eGridEM[i])  {
00437         if(i == 0) ie = 0;       
00438         else  ie = i-1;
00439         break;
00440       }
00441     }
00442     if(ie == -1) ie = maxEMe - 2;  
00443     interEM(energy, ie, ieta);
00444   }  
00445      
00446   else { 
00447     // hadrons
00448     if(partype == 1) {  
00449       
00450       if(ieta >= maxHDeta) ieta = maxHDeta;
00451       
00452       if(ieta < 0 ) ieta = 0;
00453       for (int i = 0; i < maxHDe; i++) {
00454         if(energy < eGridHD[i])  {
00455           if(i == 0) ie = 0;     // less than minimal -
00456           else  ie = i-1;        // back extrapolation with the 1st interval
00457             break;
00458         }       
00459       }
00460       if(ie == -1) ie = maxHDe - 2;     // more than maximum - 
00461       interHD(mip, energy, ie, ieta);        // extrapolation with last interv.
00462       
00463     }
00464 
00465     
00466     // finally apply energy scale correction
00467     mean  *= eResponseCorrection;
00468     mean  += eBias;
00469     sigma *= eResponseCorrection;      
00470     
00471 
00472   }
00473   
00474   // muons
00475   if(partype == 2) { 
00476     
00477     ieta = maxMUeta;
00478     for(int i = 0; i < maxMUeta; i++) {
00479       if(fabs(eta) < etaGridMU[i]) {
00480         ieta = i;  
00481         break;
00482       }       
00483     }     
00484     
00485     if(ieta < 0) ieta = 0;
00486     if(ieta < maxMUeta) {  // HB-HE
00487       
00488       for (int i = 0; i < maxMUe; i++) {
00489         if(energy < eGridMU[i])  {
00490           if(i == 0) ie = 0;     // less than minimal -
00491           else  ie = i-1;        // back extrapolation with the first interval
00492           break;
00493         }
00494         
00495         if(ie == -1) ie = maxMUe - 2;     // more than maximum - 
00496         interMU(energy, ie, ieta);         // extrapolation using the last interv
00497         if(mean > energy) mean = energy;  
00498         
00499       }
00500     }
00501   }
00502   
00503   // debugging
00504   if(debug) {
00505     //  cout.width(6);
00506     LogDebug("FastCalorimetry") << std::endl
00507                                 << " HCALResponse::responseHCAL, partype = " <<  partype 
00508                                 << " E, eta = " << energy << " " << eta  
00509                                 << "  mean & sigma = " << mean   << " " << sigma << std::endl;
00510   }
00511 
00512   return std::pair<double,double>(mean,sigma);
00513 
00514 }


Member Data Documentation

double HCALResponse::eBias [private]

Definition at line 67 of file HCALResponse.h.

Referenced by HCALResponse(), and responseHCAL().

double HCALResponse::eGridEM[maxEMe] [private]

Definition at line 76 of file HCALResponse.h.

Referenced by HCALResponse(), interEM(), and responseHCAL().

double HCALResponse::eGridHD[maxHDe] [private]

Definition at line 75 of file HCALResponse.h.

Referenced by HCALResponse(), interHD(), and responseHCAL().

double HCALResponse::eGridMU[maxMUe] [private]

Definition at line 77 of file HCALResponse.h.

Referenced by HCALResponse(), interMU(), and responseHCAL().

double HCALResponse::eResponseCoefficient [private]

Definition at line 65 of file HCALResponse.h.

Referenced by getHCALEnergyResponse(), and HCALResponse().

double HCALResponse::eResponseCorrection [private]

Definition at line 66 of file HCALResponse.h.

Referenced by HCALResponse(), and responseHCAL().

double HCALResponse::eResponseExponent [private]

Definition at line 64 of file HCALResponse.h.

Referenced by getHCALEnergyResponse(), and HCALResponse().

double HCALResponse::eResponsePlateau[3] [private]

Definition at line 63 of file HCALResponse.h.

Referenced by getHCALEnergyResponse(), and HCALResponse().

double HCALResponse::eResponseScale[3] [private]

HCAL response parameters.

Definition at line 62 of file HCALResponse.h.

Referenced by getHCALEnergyResponse(), and HCALResponse().

double HCALResponse::etaGridMU[maxMUeta] [private]

Definition at line 78 of file HCALResponse.h.

Referenced by HCALResponse(), and responseHCAL().

double HCALResponse::etaStep [private]

Definition at line 70 of file HCALResponse.h.

Referenced by HCALResponse(), and responseHCAL().

double HCALResponse::mean [private]

Definition at line 72 of file HCALResponse.h.

Referenced by interEM(), interHD(), interMU(), and responseHCAL().

double HCALResponse::meanEM[maxEMe][maxEMeta] [private]

Definition at line 86 of file HCALResponse.h.

Referenced by HCALResponse(), and interEM().

double HCALResponse::meanHD[maxHDe][maxHDeta] [private]

Definition at line 81 of file HCALResponse.h.

Referenced by HCALResponse(), and interHD().

double HCALResponse::meanHD_mip[maxHDe][maxHDeta] [private]

Definition at line 82 of file HCALResponse.h.

Referenced by HCALResponse(), and interHD().

double HCALResponse::meanHD_nomip[maxHDe][maxHDeta] [private]

Definition at line 83 of file HCALResponse.h.

Referenced by HCALResponse(), and interHD().

double HCALResponse::muStep [private]

Definition at line 70 of file HCALResponse.h.

Referenced by HCALResponse(), and interMU().

const RandomEngine* HCALResponse::random [private]

Definition at line 92 of file HCALResponse.h.

Referenced by interMU().

double HCALResponse::responseMU[maxMUe][maxMUeta][maxMUbin] [private]

Definition at line 89 of file HCALResponse.h.

Referenced by HCALResponse(), and interMU().

double HCALResponse::RespPar[3][2][3] [private]

Default values for resolution parametrisation: stochastic, constant and noise.

Definition at line 59 of file HCALResponse.h.

Referenced by getHCALEnergyResolution(), getHFEnergyResolution(), and HCALResponse().

double HCALResponse::sigma [private]

Definition at line 72 of file HCALResponse.h.

Referenced by interEM(), interHD(), interMU(), and responseHCAL().

double HCALResponse::sigmaEM[maxEMe][maxEMeta] [private]

Definition at line 86 of file HCALResponse.h.

Referenced by HCALResponse(), and interEM().

double HCALResponse::sigmaHD[maxHDe][maxHDeta] [private]

Definition at line 81 of file HCALResponse.h.

Referenced by HCALResponse(), and interHD().

double HCALResponse::sigmaHD_mip[maxHDe][maxHDeta] [private]

Definition at line 82 of file HCALResponse.h.

Referenced by HCALResponse(), and interHD().

double HCALResponse::sigmaHD_nomip[maxHDe][maxHDeta] [private]

Definition at line 83 of file HCALResponse.h.

Referenced by HCALResponse(), and interHD().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:23:54 2009 for CMSSW by  doxygen 1.5.4