#include "EventVar.h" #include "EventVarVect.h" static double electrons[] = {0.0000, 7459.6630, 13767.1800, 18773.1200, 24107.0200, 28500.7400, 33193.8400, 38050.9300, 42503.3300, 46290.9700, 50125.6100, 53964.8200, 58868.7600, 62040.8200, 66398.8000, 70535.2300, 73929.2800, 77665.7400, 81956.0800, 85632.3900, 88642.8300, 92540.0000, 95749.8800, 99854.2100, 103084.0000, 106711.6000, 110014.8000, 113027.0000, 116854.8000, 120015.4000, 123669.8000, 126384.4000, 129498.8000, 133382.0000, 136141.2000, 139290.3000, 142051.4000, 144244.6000, 146989.9000, 149160.3000}; static double volts[] = {0.0000, 0.0996, 0.1744, 0.2396, 0.2984, 0.3520, 0.4056, 0.4564, 0.5052, 0.5520, 0.5988, 0.6428, 0.6868, 0.7268, 0.7664, 0.8020, 0.8328, 0.8652, 0.8944, 0.9216, 0.9452, 0.9680, 0.9916, 1.0152, 1.0392, 1.0604, 1.0792, 1.0952, 1.1076, 1.1160, 1.1196, 1.1244, 1.1268, 1.1276, 1.1280, 1.1284, 1.1288, 1.1292, 1.1284, 1.1284}; EventVarVect correctNonLinearity(EventVarVect &ave_pix_vals) { int len = sizeof(volts)/sizeof(double); int nvar = ave_pix_vals.size(); EventVar ev; EventVarVect evv; EventVar Counts(volts,len); EventVar Intensity(electrons,len); Intensity = 1023.0 * Intensity / 135000.0; Counts = 1023.0 * Counts / 1.127834561; for(int i=0; i