diff --git a/UserTools/PMTWaveformSim/PMTWaveformSim.cpp b/UserTools/PMTWaveformSim/PMTWaveformSim.cpp index 9241bdfca..1dde9c641 100644 --- a/UserTools/PMTWaveformSim/PMTWaveformSim.cpp +++ b/UserTools/PMTWaveformSim/PMTWaveformSim.cpp @@ -115,9 +115,12 @@ bool PMTWaveformSim::Execute() uint16_t start_clocktick = (hit_t0 > fPrewindow)? hit_t0 - fPrewindow : 0; uint16_t end_clocktick = start_clocktick + fReadoutWindow; + // Randomly Sample the PMT parameters for each MCHit + SampleFitParameters(PMTID); + // loop over clock ticks for (uint16_t clocktick = start_clocktick; clocktick <= end_clocktick; clocktick += 1) { - uint16_t sample = CustomLogNormalPulse(hit_t0, clocktick, hit_charge, PMTID); + uint16_t sample = CustomLogNormalPulse(hit_t0, clocktick, hit_charge); // check if this hit time has been recorded // either set it or add to it @@ -149,6 +152,7 @@ bool PMTWaveformSim::Execute() }// end loop over PMTs // Publish the waveforms to the ANNIEEvent store + std::cout << "PMTWaveformSim: Saving RawADCDataMC with size: " << RawADCDataMC.size() << std::endl; m_data->Stores.at("ANNIEEvent")->Set("RawADCDataMC", RawADCDataMC); m_data->Stores.at("ANNIEEvent")->Set("CalibratedADCData", CalADCDataMC); @@ -181,26 +185,31 @@ bool PMTWaveformSim::LoadPMTParameters() } int pmtid; - double p0, p1, p2; + double p0, p1, p2, u00, u10, u11, u20, u21, u22; + std::string comma; std::string line; std::getline(infile, line); // Skipping the header line while (std::getline(infile, line)) { if (infile.fail()) { - logmessage = "PMTWaveformSim: Error reading from CSV file: "; + logmessage = "PMTWaveformSim: Error using CSV file: "; logmessage += fPMTParameterFile + "!"; Log(logmessage, v_error, verbosity); + return false; } // Skip any commented lines - if(line.find("#")!=std::string::npos) continue; + if(line.rfind("#",0)!=std::string::npos) continue; // Turn the line into a stringstream to extract the values std::stringstream ss(line); - ss >> pmtid >> p0 >> p1 >> p2; - - pmtParameters[pmtid] = std::make_tuple(p0, p1, p2); + ss >> pmtid >> comma >> p0 >> comma >> p1 >> comma >> p2 >> comma + >> u00 >> comma + >> u10 >> comma >> u11 >> comma + >> u20 >> comma >> u21 >> comma >> u22; + + fPMTParamMap[pmtid] = {p0, p1, p2, u00, u10, u11, u20, u21, u22}; logmessage = "PMTWaveformSim: Loaded parameters for PMTID " + std::to_string(pmtid) + ": "; logmessage += "p0 = " + std::to_string(p0); @@ -215,28 +224,48 @@ bool PMTWaveformSim::LoadPMTParameters() } //------------------------------------------------------------------------------ -uint16_t PMTWaveformSim::CustomLogNormalPulse(uint16_t hit_t0, uint16_t clocktick, double hit_charge, int PMTID) +bool PMTWaveformSim::SampleFitParameters(int pmtid) { - double p0, p1, p2; - if (pmtParameters.find(PMTID) != pmtParameters.end()) { - std::tie(p0, p1, p2) = pmtParameters[PMTID]; + PMTFitParams pmtParams; + if (fPMTParamMap.find(pmtid) != fPMTParamMap.end()) { + pmtParams = fPMTParamMap[pmtid]; } else { - logmessage = "PMTWaveformSim: PMTParameters not found for " + std::to_string(PMTID); + logmessage = "PMTWaveformSim: PMTParameters not found for " + std::to_string(pmtid); logmessage += ", using defaults: p0 = 17.49, p1 = 3.107, p2 = 0.1492"; Log(logmessage, v_warning, verbosity); - p0 = 17.49; - p1 = 3.107; - p2 = 0.1492; + // TODO make this a random sample as well + fP0 = 17.49; + fP1 = 3.107; + fP2 = 0.1492; + + return true; } + + // First sample a Gaussian with mean 0 and deviation 1 + double r0 = fRandom->Gaus(); + double r1 = fRandom->Gaus(); + double r2 = fRandom->Gaus(); + + // Convert to parameters that follow the fitted covariance matrix + fP0 = r0*pmtParams.u00 + pmtParams.p0; + fP1 = r0*pmtParams.u10 + r1*pmtParams.u11 + pmtParams.p1; + fP2 = r0*pmtParams.u20 + r1*pmtParams.u21 + r2*pmtParams.u22 + pmtParams.p2; - // The fit was performed in time units of ns, but we want to grab samples in clock ticks + return true; +} + +//------------------------------------------------------------------------------ +uint16_t PMTWaveformSim::CustomLogNormalPulse(uint16_t hit_t0, uint16_t clocktick, double hit_charge) +{ + //p0*exp( -0.5 * (log(x/p1)/p2)^2) + + // The fit was performed in time units of ns, but we pass samples in clock ticks double x = (double(clocktick) + fT0Offset - hit_t0) * NS_PER_ADC_SAMPLE; - // std::cout << " " << clocktick << ", " << x << std::endl; - double numerator = pow(log(x) - p1, 2); - double denom = (2 * pow(p2, 2)); - double amplitude = p0 * exp(-numerator / denom) * hit_charge; + double numerator = pow(log(x/fP1), 2); + double denom = (pow(fP2, 2)); + double amplitude = fP0 * exp(-0.5 * numerator/denom) * hit_charge; // Clip at 4095 and digitize to an integer return uint16_t((amplitude > 4095) ? 4095 : amplitude); diff --git a/UserTools/PMTWaveformSim/PMTWaveformSim.h b/UserTools/PMTWaveformSim/PMTWaveformSim.h index c46d8bf75..8008cadc1 100644 --- a/UserTools/PMTWaveformSim/PMTWaveformSim.h +++ b/UserTools/PMTWaveformSim/PMTWaveformSim.h @@ -13,6 +13,14 @@ #include "TFile.h" #include "TRandom3.h" +struct PMTFitParams +{ + double p0; double p1; double p2; + double u00; + double u10; double u11; + double u20; double u21; double u22; +}; + /** * \class PMTWaveformSim @@ -35,7 +43,8 @@ class PMTWaveformSim: public Tool { bool LoadFromStores(); bool LoadPMTParameters(); - uint16_t CustomLogNormalPulse(uint16_t hit_t0, uint16_t t0_clocktick, double hit_charge, int PMTID); + bool SampleFitParameters(int pmtid); + uint16_t CustomLogNormalPulse(uint16_t hit_t0, uint16_t t0_clocktick, double hit_charge); void ConvertMapToWaveforms(const std::map &sample_map, const std::map> & parent_map, std::vector> &rawWaveforms, @@ -48,7 +57,7 @@ class PMTWaveformSim: public Tool { // To load from the ANNIEEvent std::map> *fMCHits = nullptr; - std::map> pmtParameters; + Geometry *fGeo = nullptr; // Config variables @@ -58,7 +67,10 @@ class PMTWaveformSim: public Tool { std::string fPMTParameterFile; TRandom3 *fRandom; - + + std::map fPMTParamMap; + double fP0, fP1, fP2; + bool fDebug; TFile *fOutFile; int fEvtNum = 0; diff --git a/configfiles/PMTWaveformSim/PMTWaveformSimConfig b/configfiles/PMTWaveformSim/PMTWaveformSimConfig index a271dfa82..d01603ac0 100644 --- a/configfiles/PMTWaveformSim/PMTWaveformSimConfig +++ b/configfiles/PMTWaveformSim/PMTWaveformSimConfig @@ -2,5 +2,5 @@ verbosity 0 PMTParameterFile configfiles/PMTWaveformSim/PMTfittingparametersWhitespace.csv Prewindow 10 ReadoutWindow 35 -T0Offset 7 -MakeDebugFile 0 +T0Offset 0 +MakeDebugFile 1 diff --git a/configfiles/PMTWaveformSim/PMTfittingparametersWhitespace.csv b/configfiles/PMTWaveformSim/PMTfittingparametersWhitespace.csv index 5d42d4eda..76d5ec986 100644 --- a/configfiles/PMTWaveformSim/PMTfittingparametersWhitespace.csv +++ b/configfiles/PMTWaveformSim/PMTfittingparametersWhitespace.csv @@ -1,122 +1,119 @@ -PMTID p0 p1 p2 -332 17.9494 3.08921 -0.12284 -#334 6.65279 3.0573 -0.464513 -335 16.4242 3.08571 -0.124721 -336 13.721 3.08235 -0.13353 -#337 436.627 -31.3163 -36.6388 -338 9.01108 3.17324 -0.276284 -#339 6.13545 2.90173 -0.481356 -#340 6.07495 2.93731 -0.58905 -341 18.7845 3.09664 -0.131054 -343 12.7656 3.10667 -0.147391 -#344 6.12638 2.94238 -0.635735 -347 17.4949 3.10749 -0.149153 -348 17.8983 3.09234 -0.128647 -350 17.669 3.0891 -0.122669 -351 19.3944 3.08944 -0.120724 -353 8.42911 3.02959 0.102787 -354 15.5926 3.11266 -0.169246 -355 10.2884 3.09107 -0.185135 -356 7.64417 3.08218 0.168945 -357 16.2161 3.11699 -0.166343 -358 9.00471 3.08268 -0.171877 -359 14.4175 3.06029 -0.109384 -360 11.9095 3.10645 -0.184231 -361 8.17247 3.06593 -0.167536 -362 12.949 3.09306 -0.154836 -363 13.3929 3.09998 -0.158945 -364 10.4909 3.10289 -0.197985 -365 9.11282 3.0788 -0.185299 -366 7.43345 3.05244 0.15814 -367 14.3723 3.11048 -0.169921 -368 15.1638 3.12091 -0.179567 -369 7.85564 3.06208 -0.175745 -370 10.406 3.09483 -0.182604 -371 14.3153 3.11991 -0.184283 -372 20.8594 3.10104 -0.134912 -373 19.36 3.09268 -0.127957 -374 20.2707 3.10777 -0.144493 -375 19.384 3.0922 -0.125659 -376 17.9304 3.1021 -0.144849 -377 18.711 3.09601 -0.13753 -378 17.4338 3.1013 -0.144337 -379 20.6701 3.10214 -0.139123 -380 18.8799 3.08895 -0.123302 -381 18.0276 3.10058 -0.140683 -382 19.0526 3.16994 -0.212781 -383 19.2612 3.09715 -0.137064 -384 21.2208 3.10823 -0.14093 -385 20.2778 3.09937 -0.134291 -386 18.6713 3.09901 -0.137965 -387 19.5719 3.10468 -0.149018 -388 16.293 3.09538 -0.139371 -389 20.4549 3.10407 -0.137232 -390 17.1516 3.08933 -0.127157 -391 16.673 3.10151 -0.145288 -392 19.6285 3.10921 -0.145459 -393 24.4723 3.17837 -0.203509 -394 19.4412 3.10963 -0.147134 -395 22.5751 3.10263 -0.137148 -396 21.0331 3.10057 -0.138055 -397 19.1849 3.10283 -0.142099 -398 18.0316 3.09178 -0.129804 -399 18.707 3.10951 -0.150202 -400 18.1845 3.09103 -0.126774 -401 17.1005 3.10028 -0.140015 -402 17.3026 3.0921 -0.130513 -403 14.9342 3.08219 -0.122969 -404 17.604 3.17587 -0.216896 -405 11.9996 3.14612 -0.209651 -406 18.1137 3.11116 -0.154772 -407 18.8641 3.09702 -0.130414 -409 18.4361 3.09934 -0.140618 -410 17.2315 3.10588 -0.149666 -411 15.0428 3.10058 -0.145661 -412 19.0307 3.10149 -0.138611 -413 19.0157 3.09348 -0.12776 -414 20.8107 3.09968 -0.132717 -415 16.9133 3.08793 -0.12344 -417 19.8372 3.06649 -0.112973 -418 21.1259 3.0529 -0.11648 -419 18.1834 3.06772 -0.107166 -#420 6.77937 3.09534 -0.685827 -421 18.8051 3.06274 -0.115982 -422 19.4887 3.05639 -0.115288 -423 20.4322 3.05482 -0.111278 -424 20.5963 3.06444 -0.114702 -425 17.2319 3.07462 -0.121441 -426 28.5265 3.07966 -0.105101 -427 25.0327 3.08312 -0.105622 -428 17.9017 3.06745 -0.120512 -429 25.8197 3.07913 -0.112184 -430 21.8404 3.054 -0.115126 -432 18.5381 3.06253 -0.112199 -433 25.4477 3.07794 -0.109646 -434 18.1456 3.06517 -0.114085 -435 18.8795 3.06793 -0.113804 -436 28.6324 3.07859 -0.110805 -437 28.2059 3.07443 -0.105552 -438 20.8562 3.0513 -0.113908 -439 19.723 3.06511 -0.112248 -440 20.3786 3.05984 -0.119775 -441 18.9227 3.06643 -0.114837 -442 29.254 3.07889 -0.11029 -443 19.4492 3.0582 -0.109194 -446 20.4639 3.06413 -0.116817 -447 18.2738 3.06926 -0.111886 -448 26.1159 3.07479 -0.109723 -449 23.4118 3.07323 -0.10384 -450 11.6356 3.14276 -0.212469 -451 19.8326 3.06132 -0.108066 -452 19.2226 3.07337 -0.119869 -453 26.5169 3.07548 -0.107318 -454 27.3175 3.08095 -0.106168 -455 28.1968 3.08006 -0.113578 -456 36.6341 3.08324 -0.119822 -457 20.613 3.07381 -0.119642 -458 19.9613 3.05692 -0.119287 -459 19.8541 3.06219 -0.110582 -460 20.2442 3.06425 -0.11341 -461 19.451 3.07085 -0.109227 -462 18.9147 3.06294 -0.115266 -463 20.5881 3.05945 -0.110933 +PMT, p0, p1, p2, U00, U10, U11, U20, U21, U22, +332, 16.1815, 11.7835, 0.224469, 1.09912, 0.0012609, 0.20212, -0.0117725, -0.00387271, 0.0145493 +334, 7.92607, 10.2051, 0.657054, 0.528877, 0.00573739, 0.597992, -0.0455871, -0.0312974, 0.0506679 +335, 14.1205, 12.3273, 0.314469, 2.29598, -0.150105, 0.621752, -0.0458151, -0.00306655, 0.0480224 +336, 13.1547, 11.5986, 0.256954, 1.0054, 0.00256062, 0.250369, -0.0162861, -0.00559374, 0.0188073 +338, 8.63077, 12.4335, 0.474732, 0.942343, -0.131487, 0.755961, -0.0435303, -0.0117456, 0.0557825 +339, 6.5578, 8.94932, 0.585594, 0.803283, 0.109556, 0.91546, -0.0648363, -0.0612419, 0.068101 +340, 10.5316, 11.852, 0.358028, 0.937849, -0.0359459, 0.410756, -0.0258826, -0.00849393, 0.0305087 +341, 17.2763, 12.0659, 0.237495, 1.2176, -0.00123625, 0.222479, -0.0135174, -0.00415835, 0.0160533 +344, 11.145, 11.6382, 0.270989, 2.01325, -0.0741067, 0.521478, -0.0524951, -0.00598261, 0.0463826 +347, 17.066, 12.3058, 0.252206, 0.52976, -0.000135767, 0.111231, -0.00561469, -0.00219789, 0.00733403 +348, 16.6618, 11.9753, 0.235212, 1.21115, 0.0036329, 0.227827, -0.013784, -0.00467008, 0.0163823 +350, 17.4545, 11.778, 0.208261, 0.992566, 0.00912863, 0.161067, -0.00902673, -0.00359592, 0.0112417 +351, 18.4885, 11.7882, 0.196192, 1.21593, 0.0026219, 0.170627, -0.00999694, -0.00300509, 0.0123515 +353, 7.89973, 9.71231, 0.155955, 1.41864, -0.0200549, 0.332162, -0.0146225, -0.00466386, 0.0245054 +354, 14.7095, 12.3313, 0.298, 0.962958, -0.0163942, 0.26598, -0.0149568, -0.00475438, 0.0184653 +355, 10.255, 11.6652, 0.341621, 0.596657, -0.0118375, 0.262788, -0.0149194, -0.00620281, 0.0186959 +356, 7.51859, 10.2028, 0.314475, 0.819164, 0.0179374, 0.403051, -0.0278596, -0.0135264, 0.0325317 +357, 14.79, 12.6458, 0.321597, 0.905763, -0.0193769, 0.278233, -0.0150576, -0.00505714, 0.018792 +358, 9.09274, 11.0971, 0.314893, 0.706831, -0.0231053, 0.299926, -0.0182626, -0.00595521, 0.0228697 +360, 11.8003, 11.9891, 0.33628, 0.672946, -0.0155954, 0.258834, -0.0144044, -0.00548394, 0.0181108 +361, 8.3358, 10.5122, 0.329485, 0.582343, -0.00468082, 0.274878, -0.01737, -0.00772567, 0.0214473 +362, 12.5612, 11.7437, 0.291085, 0.815987, -0.00616299, 0.245508, -0.0149959, -0.00529733, 0.0179324 +363, 12.808, 11.9107, 0.289881, 0.692459, -0.0070296, 0.20929, -0.0118531, -0.00427004, 0.0147672 +364, 10.4694, 11.5381, 0.349791, 0.45393, 0.00594671, 0.209203, -0.0113758, -0.00645827, 0.0141728 +365, 8.96467, 10.8896, 0.38109, 0.509903, 0.00752423, 0.28113, -0.0167097, -0.00980058, 0.0202394 +366, 7.54604, 10.3277, 0.320294, 0.76851, -0.0255958, 0.358688, -0.0268422, -0.00812207, 0.030787 +367, 13.4516, 12.2728, 0.315725, 0.726559, -0.0103248, 0.235225, -0.0129952, -0.00486405, 0.0161507 +368, 13.7834, 12.4673, 0.323781, 0.625156, -0.00136558, 0.211405, -0.0112286, -0.00505615, 0.0139609 +369, 8.02919, 10.5823, 0.360006, 0.4664, -0.00974797, 0.257012, -0.0146779, -0.00726211, 0.0192091 +370, 10.2022, 11.356, 0.330295, 0.554959, 0.00188158, 0.236099, -0.0136587, -0.00666618, 0.0168183 +371, 13.6898, 12.3247, 0.324826, 0.638444, -0.00147777, 0.215787, -0.0115014, -0.00523692, 0.0143534 +372, 18.6865, 11.9436, 0.226671, 0.945701, -0.00285972, 0.152502, -0.00885944, -0.00257133, 0.010953 +373, 17.2248, 11.7201, 0.214925, 1.19781, 0.0196466, 0.208605, -0.0112031, -0.00547322, 0.0140196 +374, 17.653, 11.9499, 0.225296, 0.692605, 0.000785657, 0.120219, -0.00660593, -0.00228146, 0.00838178 +375, 17.3329, 11.626, 0.205215, 0.953283, 0.00644134, 0.149391, -0.00876697, -0.00316025, 0.0107825 +376, 16.3353, 11.7771, 0.234094, 1.10946, -0.01189, 0.203196, -0.0126647, -0.00287989, 0.0152296 +377, 16.4613, 11.7395, 0.228804, 1.33221, -0.0104825, 0.231954, -0.015608, -0.00349413, 0.0178923 +378, 15.5484, 11.894, 0.248814, 0.998359, -0.00496052, 0.207982, -0.0128779, -0.00379268, 0.0152893 +379, 18.4251, 11.8365, 0.216831, 1.4908, -0.00562787, 0.221649, -0.0150193, -0.00348075, 0.0170231 +380, 16.8922, 11.7073, 0.213033, 0.811405, 0.0104526, 0.142227, -0.00746291, -0.00346849, 0.00958732 +381, 15.8199, 11.8887, 0.247267, 0.886527, -0.00300425, 0.1825, -0.0109067, -0.00342333, 0.0132167 +382, 12.1736, 11.5981, 0.288064, 0.64403, 0.00322319, 0.203865, -0.0114588, -0.00514149, 0.01429 +383, 17.3771, 11.7654, 0.225753, 1.0952, -0.00326426, 0.183473, -0.011478, -0.00314874, 0.0136821 +384, 18.4667, 12.0561, 0.228487, 0.714233, 0.00195128, 0.122002, -0.00658039, -0.00242593, 0.00836149 +385, 16.6384, 11.8575, 0.223512, 1.42805, -0.0194552, 0.241996, -0.0158588, -0.00274704, 0.0184799 +386, 16.531, 11.9013, 0.231433, 0.915276, 0.00100232, 0.17039, -0.0100904, -0.00331765, 0.0122502 +387, 17.8784, 12.0554, 0.237911, 0.894593, -0.0030315, 0.160264, -0.00912539, -0.00281532, 0.0113281 +388, 15.2968, 11.6789, 0.240434, 1.38132, -0.0312206, 0.266723, -0.0179417, -0.0025785, 0.0207715 +389, 18.6947, 11.9855, 0.225579, 0.785306, 6.95106e-05, 0.128372, -0.00716647, -0.00236321, 0.0090084 +390, 16.193, 11.6874, 0.214387, 1.07159, -0.0034306, 0.182333, -0.0113206, -0.00296363, 0.0136509 +391, 14.3684, 11.5356, 0.239436, 0.885146, -0.00791972, 0.186319, -0.0116311, -0.00304685, 0.0140958 +392, 15.5213, 11.8151, 0.232703, 0.846511, -0.00272054, 0.166728, -0.00987177, -0.00296001, 0.0121191 +393, 14.4607, 11.9787, 0.276474, 0.851475, -0.0152815, 0.214403, -0.0123445, -0.0034262, 0.0153607 +394, 17.989, 12.0286, 0.230265, 0.800926, -0.00400728, 0.138462, -0.00763204, -0.00222846, 0.00972108 +395, 20.956, 11.916, 0.209918, 1.4117, -0.00115246, 0.184391, -0.0115401, -0.00307273, 0.0136481 +396, 19.4333, 12.0084, 0.2152, 1.20421, 0.00214268, 0.177116, -0.0107999, -0.00328542, 0.0128342 +397, 16.8615, 11.9109, 0.238467, 1.04534, -0.00730006, 0.192558, -0.011761, -0.00311293, 0.0141518 +398, 16.1561, 11.671, 0.224238, 0.987765, 0.00258986, 0.178236, -0.0109789, -0.00357651, 0.0131557 +399, 16.3963, 11.8413, 0.227827, 1.42694, -0.0291131, 0.24974, -0.0159717, -0.00210604, 0.0189558 +400, 17.1704, 11.7925, 0.214773, 1.01624, -0.00315399, 0.165391, -0.0100399, -0.00266275, 0.0122081 +401, 15.3736, 11.7643, 0.239775, 0.719101, -0.00404763, 0.147793, -0.00844082, -0.00256813, 0.0106377 +402, 16.4304, 11.5953, 0.213623, 0.891156, -0.0033035, 0.149204, -0.00896757, -0.00238849, 0.0110989 +403, 14.4771, 11.315, 0.214186, 0.770042, -3.11814e-05, 0.145043, -0.00872536, -0.00269165, 0.0108905 +404, 11.6303, 12.0387, 0.337009, 0.573103, -0.0126925, 0.226651, -0.0123472, -0.00486966, 0.0156723 +405, 7.82446, 10.8991, 0.339089, 0.707243, -0.0470227, 0.356936, -0.0235469, -0.00608166, 0.0285459 +406, 17.1667, 11.9454, 0.237854, 0.88653, -0.00666752, 0.162609, -0.00938048, -0.00256132, 0.0116844 +407, 17.7687, 11.9023, 0.212032, 0.766962, -0.000433398, 0.122873, -0.00689259, -0.00209822, 0.0087139 +409, 16.9692, 11.7387, 0.220713, 1.12227, -0.00308527, 0.187484, -0.0118391, -0.00317149, 0.0140611 +410, 14.9763, 11.9452, 0.264532, 0.964051, -0.0144364, 0.2222, -0.0132197, -0.00349243, 0.0161554 +411, 14.3011, 11.5125, 0.233957, 0.980853, -0.0170196, 0.199695, -0.0126145, -0.00239796, 0.0153161 +412, 17.4909, 11.8264, 0.216318, 1.03942, -0.00252854, 0.167459, -0.010243, -0.00276921, 0.012358 +413, 18.4095, 11.7611, 0.208316, 0.9201, 0.00638486, 0.140023, -0.00802475, -0.00299365, 0.00992059 +414, 19.0506, 11.7197, 0.200956, 1.04819, 0.00567565, 0.146363, -0.00868709, -0.00295905, 0.0105898 +415, 16.429, 11.5389, 0.207206, 0.924626, -0.00151963, 0.150925, -0.00887943, -0.0025144, 0.0111488 +417, 16.6145, 11.5931, 0.219003, 1.91434, -0.0116268, 0.303973, -0.0228075, -0.00461274, 0.0245922 +418, 18.1754, 11.5369, 0.1972, 2.26999, 0.00690851, 0.308702, -0.0209887, -0.00577008, 0.023937 +419, 16.7176, 11.4496, 0.197993, 1.79447, 0.0115074, 0.264508, -0.0184788, -0.0054933, 0.0206809 +420, 16.6491, 11.333, 0.185615, 5.22613, -0.0625622, 0.594426, -0.066662, -0.00452317, 0.0561069 +421, 16.5196, 11.5699, 0.206677, 1.66467, 0.00636307, 0.263751, -0.017533, -0.00517831, 0.020186 +422, 17.5206, 11.6951, 0.20264, 2.09836, 0.00128097, 0.300455, -0.0216512, -0.00519984, 0.0236865 +423, 17.3143, 11.7567, 0.205548, 1.74809, 0.00302894, 0.266245, -0.0173402, -0.00481607, 0.020097 +424, 18.8025, 11.6723, 0.192618, 2.25663, 0.00946812, 0.290165, -0.0202556, -0.00548813, 0.022506 +425, 15.4372, 11.6983, 0.246771, 2.1073, -0.0447784, 0.386148, -0.0326742, -0.00422519, 0.0324745 +426, 21.4214, 11.7092, 0.162415, 2.10618, 0.0157944, 0.216375, -0.0115835, -0.00436897, 0.0148912 +427, 18.3197, 11.5901, 0.185997, 1.94919, 0.0205332, 0.255456, -0.0166436, -0.00578503, 0.0190691 +428, 15.5427, 11.7414, 0.228688, 1.81489, -0.0129791, 0.322544, -0.0245963, -0.0050347, 0.0259873 +429, 19.8808, 11.5239, 0.169535, 2.25705, 0.0277746, 0.254673, -0.0150648, -0.00606648, 0.0181274 +430, 18.5201, 11.6785, 0.192243, 1.97639, 0.0124438, 0.271381, -0.0160084, -0.00547, 0.019617 +432, 16.2194, 11.5495, 0.21082, 1.79304, -0.00449995, 0.285874, -0.0203824, -0.00471571, 0.0227028 +433, 20.3546, 11.5811, 0.169168, 1.77143, 0.0203762, 0.197991, -0.0111087, -0.00461118, 0.0137774 +434, 16.8308, 11.6776, 0.204703, 1.90792, -0.00138537, 0.289198, -0.0201872, -0.0048371, 0.0225977 +435, 16.1769, 11.5845, 0.212605, 1.83411, 0.00378384, 0.296374, -0.0216042, -0.00565352, 0.0235066 +436, 20.6799, 11.6408, 0.167326, 2.08367, 0.0235311, 0.226964, -0.0128406, -0.00525132, 0.0157995 +437, 21.9742, 11.7023, 0.170203, 2.23103, 0.015895, 0.229293, -0.0133747, -0.00465486, 0.0163782 +438, 17.244, 11.5206, 0.194149, 1.94546, 0.0164538, 0.278271, -0.0186331, -0.00603257, 0.0212209 +439, 17.598, 11.5839, 0.20636, 1.92805, 0.00501941, 0.281054, -0.0198236, -0.00534138, 0.0220233 +440, 17.244, 11.8343, 0.22008, 2.05148, -0.00242051, 0.324049, -0.0238332, -0.00568393, 0.02552 +441, 16.7511, 11.6316, 0.212069, 1.98284, 0.00564093, 0.310735, -0.0224549, -0.00603168, 0.0244694 +442, 20.8555, 11.5429, 0.16751, 1.79699, 0.0185962, 0.193175, -0.0107737, -0.00436848, 0.0134829 +443, 16.8946, 11.3716, 0.191988, 1.61059, 0.0200682, 0.237307, -0.0148217, -0.00573007, 0.017558 +446, 17.0102, 11.8694, 0.220794, 1.88812, -0.00140432, 0.306529, -0.0219894, -0.00545122, 0.0238593 +447, 15.6919, 11.671, 0.22151, 1.93993, -0.0192759, 0.324627, -0.0256407, -0.00439161, 0.0266903 +448, 20.2622, 11.6803, 0.171468, 1.59172, 0.0152281, 0.185896, -0.00947263, -0.00403246, 0.0124752 +449, 21.0339, 11.5684, 0.165837, 1.96438, 0.0238181, 0.208036, -0.0117683, -0.00499108, 0.0144516 +450, 26.2343, 11.4588, 0.14365, 3.19853, 0.0102589, 0.233484, -0.0108197, -0.00385624, 0.0154123 +451, 17.1911, 11.5185, 0.194249, 1.88346, 0.0205039, 0.271199, -0.0182804, -0.00626395, 0.0206045 +452, 15.4282, 11.6637, 0.250749, 2.10438, -0.0259987, 0.39473, -0.0334018, -0.00610021, 0.0330829 +453, 20.0478, 11.6385, 0.175812, 1.86005, 0.0192341, 0.217135, -0.0127603, -0.00488615, 0.015464 +454, 19.5356, 11.5196, 0.161747, 1.91231, 0.0219558, 0.211209, -0.0117655, -0.00481501, 0.0146956 +455, 19.3469, 11.6801, 0.180487, 2.33217, 0.0243363, 0.28719, -0.0175967, -0.00644664, 0.0207875 +456, 24.8544, 11.7885, 0.158929, 2.13574, 0.010196, 0.189276, -0.00922597, -0.00348487, 0.0125871 +457, 17.9635, 11.9083, 0.215111, 2.04839, 0.00328706, 0.307679, -0.022277, -0.0057057, 0.0239149 +458, 16.5816, 11.775, 0.216282, 1.91451, 0.00494447, 0.311505, -0.0225166, -0.00601306, 0.0243323 +459, 19.0233, 11.6407, 0.190107, 1.84959, 0.00795076, 0.234735, -0.015644, -0.00443225, 0.0179219 +460, 18.1027, 11.6885, 0.20582, 1.95369, 0.00432308, 0.278251, -0.0194696, -0.00516732, 0.0216305 +461, 17.2489, 11.6514, 0.212362, 1.70302, 0.00220343, 0.2621, -0.0182581, -0.00486691, 0.0203933 +462, 16.3098, 11.5501, 0.212058, 2.27866, -0.00407155, 0.345676, -0.0289145, -0.0058746, 0.0290091 +463, 18.1769, 11.479, 0.192802, 1.82787, 0.0127039, 0.24785, -0.0159712, -0.00520418, 0.018721