PRD2020/ResolutionFunctions.hh
Go to the documentation of this file.
1 double Hybrids_ICRC_2019_SD1500(const double lgE) {
2  /* Preliminary version for ICRC 2019 */
3  // V. Verzi 03 04 2019
4  // Resolution calculated with hybrids data
5 
6  double E = pow(10, lgE);
7  double res = 5.7 + 18.98 / pow(E / 1e18, 0.5);
8  return res * 0.01;
9 }
10 
11 double Hybrids_ICRC_2019_SD750(const double lgE) {
12  // From Alan for ICRC2019
13  // const double pars[2] = {0.084, 0.047};
14  // const double pars[2] = {0.1119, 0.0377};
15  const double pars[2] = {0.0523, 0.0614};
16 
17  //const double pars[2] = {0.1164, 0.0408}; //Res-Up
18  //const double pars[2] = {0.1073, 0.0346}; //Res-Down
19 
20  const double resolution = pars[0] + pars[1] / sqrt(pow(10, lgE) / 1.e18);
21  return sqrt(pow(resolution, 2) + pow(0.05, 2));
22 }
23 
24 double Hybrids_ICRC_2019_Offline_11_06(const double lgE) {
25  /* Preliminary version for ICRC 2019 */
26  // V. Verzi 11 06 2019
27  // Resolution calculated with hybrids data
28  // OFFLINE
29  double E = pow(10, lgE);
30  double res = 4.38 + 22.36 / pow(E / 1e18, 0.5);
31  return res * 0.01;
32 }
33 
34 double Hybrids_ICRC_2019_Offline_05_07(const double lgE) {
35  /* Preliminary version for ICRC 2019 */
36  // V. Verzi 05 07 2019
37  // Resolution calculated with hybrids data
38  // OFFLINE
39  double E = pow(10, lgE);
40  double res = 7.76 + 15.74 * exp(-0.152 * E/1e18);
41  return res * 0.01;
42 }
43 
44 double Hybrids_ICRC_2019_Herald_11_06(const double lgE) {
45  /* Preliminary version for ICRC 2019 */
46  // V. Verzi 11 06 2019
47  // Resolution calculated with hybrids data
48  // HERALD
49  double E = pow(10, lgE);
50  double res = 4.57 + 21.69 / pow(E / 1e18, 0.5);
51  return res * 0.01;
52 }
53 
54 
55 double SimulationSD1500EnergyResolution(const double lgE, const double zenith) {
56  // obtained from 50-50 p/Fe simulations using QGSJetII-03
57  double p0 = 1.090032150314515363e-01;
58  double p1 = 4.353891452953017049e-01;
59  double Esd = pow(10., lgE);
60 
61  double relErrs = p0 + p1 / sqrt(Esd / 1e+17) ;
62 
63  return relErrs;
64 }
65 
66 double SimulationSD750EnergyResolution_ICRC2017(const double lgE, const double zenith) {
67  //new infill resolution model from Daniela
68  //determined together with fd energy bias correction and new invisible energy model
69  //QGSJET 2.4 simulations, quality + FoV cuts, resolution determined for p and Fe
70  const double pars_p[2] = {1.078638367648934449e-01 , 1.595403269466228735e-01};
71  const double pars_fe[2] = { 4.836779040905066218e-02, 1.697359371453481258e-01};
72 
73  const double pars[2] = {(pars_p[0] + pars_fe[0]) / 2., (pars_p[1] + pars_fe[1]) / 2.};
74 
75  return pars[0] + pars[1] / sqrt(pow(10, lgE) / 1e17);
76 }
77 
78 double DataSD1500EnergyResolution(const double lgE, const double zenith, TVectorD pCal, double lgS38) {
79  // obtained from data itself
80  const double pars[9] = {7.964648011936218460e-04,
81  4.118659698340852438e-01,
82  -1.517612358021901198e+00,
83  9.102368706313619384e+00,
84  -9.938644262370022631e+00,
85  4.120050818744602217e-01,
86  1.244124736151181560e-03,
87  -6.535475475395227107e+00,
88  1.039836139398396853e+01
89  };
90  const double lgsectheta = TMath::Log10(1 / cos(zenith));
91  double res = pars[0] + (pars[1] + pars[2] * lgsectheta + pars[3] * lgsectheta * lgsectheta + pars[4] * lgsectheta * lgsectheta * lgsectheta) * pow(10., -lgS38 * 0.5)
92  + (pars[5] + pars[6] * lgsectheta + pars[7] * lgsectheta * lgsectheta + pars[8] * lgsectheta * lgsectheta * lgsectheta) * pow(10., -lgS38);
93 
94  return res * pCal[1];
95 }
96 
97 double DataSD750EnergyResolution_ICRC2017(const double lgE, const double zenith, TVectorD pCal, double lgS35) {
98  const double pars[6] = {1.713893029281758462e+00,
99  -1.115258876619560580e+00,
100  1.557604707934408061e+01,
101  6.861112716697782554e-01,
102  -8.015754473911778089e-01,
103  8.852556156454199909e-01
104  };
105  const double lgsectheta = TMath::Log10(1 / cos(zenith));
106 
107  return (pars[0] + pars[1] * lgsectheta + pars[2] * lgsectheta * lgsectheta)
108  * (pow(10., (-pars[3] * lgS35)) + pars[4] * pow(10., (-pars[5] * lgS35)));
109 }
110 
111 
112 
113 double Valerio12_11_2018(const double lgE) {
114  // Comments
115  // Test from Valerio
116  // Resolution from Hybrids 12/11/2018
117 
118  const double pars[3] = {2.46619e1, -1.69615e1, 3.93182};
119  double res = pars[0] + ( lgE - 18. ) * pars[1] + pow( lgE - 18., 2) * pars[2];
120 
121  return res * 0.01;
122 }
123 
124 double Resolution_TestExample(const double lgE) {
125  /* Test for resolution */
126  //test function. Add here any function you want to test
127  // input is logE
128  // output is resolution
129 
130  double res = 0.;
131  return res;
132 }
133 
double Hybrids_ICRC_2019_SD1500(const double lgE)
double DataSD750EnergyResolution_ICRC2017(const double lgE, const double zenith, TVectorD pCal, double lgS35)
double pow(const double x, const unsigned int i)
double Hybrids_ICRC_2019_SD750(const double lgE)
double DataSD1500EnergyResolution(const double lgE, const double zenith)
double SimulationSD1500EnergyResolution(const double lgE, const double zenith)
double SimulationSD750EnergyResolution_ICRC2017(const double lgE, const double zenith)
double Valerio12_11_2018(const double lgE)
double Hybrids_ICRC_2019_Offline_05_07(const double lgE)
double Resolution_TestExample(const double lgE)
double Hybrids_ICRC_2019_Herald_11_06(const double lgE)
double Hybrids_ICRC_2019_Offline_11_06(const double lgE)

, generated on Tue Sep 26 2023.