UnivCalibConstants.h
Go to the documentation of this file.
1 #ifndef __UnivCalibConstants_h_
2 #define __UnivCalibConstants_h_
3 
4 #include <stdio.h>
5 #include <stdlib.h>
6 #include <math.h>
7 #include <fstream>
8 
9 #define UNDEF -100
10 
11 namespace UnivCalibConstantsNS {
12 
13  //----------
14 
15  static const double logE_Calib = 19.;
16  static const double deltaXmax_pFe_Calib = 90.;
17 
18  //----------
19 
20  static const double MeanXmax_pFe_Calib = 755., ER_pFe_Calib = 50.;
21  static const double OffsetM_Mu_Calib[2] = { 0., 0. };
22 
23  //----------
24 
25  static const int nSys = 15;
26  static const double OffsetM_Mu_Auger[2][nSys] = { { 0.11, 0.10, 0.11, 0.08, 0.13, 0.10, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11 , 0.09, 0.13 }, // Overall
27  { 0. , 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0. }
28  }; // Theta dependence
29  // NOTE: gRecSys=13/14 corresponds to more than 2 Sigma of the fitted OffsetM_Mu value from Golden events ( in the rest of the cases is 1 sigma )
30 
31  static const double MeanXmax_pFe_Auger = 760., ER_pFe_Auger = 50.;
32 
33  static const double fNmuSys_Auger[nSys] = { 1., 0.85, 1.15, 1., 1., 1., 1., 1., 1., 1. , 1., 1., 1. , 1., 1. };
34  static const double fEnergySys_Auger[nSys] = { 1., 1.15, 0.85, 1., 1., 1., 1., 1., 1., 1. , 1., 1., 1. , 1., 1. };
35  static const double fXmaxSys_Auger[nSys] = { 0., 0., 0., +10., -10., 0., 0., 0., 0., 0., 0., 0., 0. , 0., 0. };
36  static const double Offset_MeanXmax_pFe_Auger[nSys] = { 0., 0., 0., 0., 0., +15., -15., 0., 0., 0., 0., 0., 0. , 0., 0. };
37  static const double Offset_ER_pFe_Auger[nSys] = { 0., 0., 0., 0., 0., 0., 0., +10., -10., 0., 0., 0., 0. , 0., 0.};
38 
39  //----------
40 
41  static const int nRecMixtures = 6;
42  static const int nModels = 4;
43 
44  static const double MeanXmax_pFe_Models[nModels] = { 745., 767., 743., 757. }, ER_pFe_Models[nModels] = { 45., 60., 55., 57. };
45 
46  static const double OffsetM_Mu_Models[2][nModels] = { { 0.038, 0.091, 0.000, 0.000 } , // Overall
47  { -0.011, -0.041, 0.000, 0.000 }
48  }; // Theta dependence
49 
50  static const std::string fmodel_c[nModels] = {"QGSJetII-03", "EPOS-1.99", "QGSJetII-04", "EPOS-LHC"};
51  static const std::string fprim_c[2] = {"p", "Fe"};
52 
53  //----------
54 
55  static const double OffsetM_Mu_Photon[2] = { 0., 0. };
56 
57  //----------------------------------------------------------------------------------------------------
58  //----------------------------------------------------------------------------------------------------
59 
60 
62 
63  private:
64 
65  int CalibOpt; // Calibration constants [-3] Calib Data [-2] Data [-1] Photon [0] QGSJetII-03 [1] EPOS1.99 [2] QGSJetII-04 [3] EPOS-LHC
66  // Calib Data refers to the analysis of the Golden Data set that is used to produce the calibration constants.
67 
68 
69  //---------------------
70  // Appliable to MC
71  //---------------------
72  int HadronicModel; // [0] QGSjetII-03 [1] EPOS1.99 [2] QGSJetII-04 [3] EPOS-LHC
73  int RecMixture; // Mixtures assumed (2 component p/Fe)
74  // [0] fp=1.0 [1] fp=0.0 [2] fp=0.5 [3] fp=0.1 [4] fp=0.9 [5] fp changing with energy
75 
76  //---------------------
77  // Appliable to Data
78  //---------------------
79  // [0] Standard
80  // [1] FD energy +15%
81  // [2] FD energy -15%
82  // [3] FD Xmax +10 [g/cm2]
83  // [4] FD Xmax -10 [g/cm2]
84  // [5] <Xmax>_{f_p=0.5} +15 [g/cm2]
85  // [6] <Xmax>_{f_p=0.5} -15 [g/cm2]
86  // [7] ER_{f_p=0.5} +10 [g/cm2]
87  // [8] ER_{f_p=0.5} -10 [g/cm2]
88  // [9]-[12] Use only Eye 1/2/3/4
89 
90  int RecSys;
91 
92  public:
93 
94  UnivCalibConstants(int CalibOpt_i, int RecSys_i, int RecMixture_i);
96 
97 
98  double GetProtonFraction(double logE);
99 
100  // <Xmax>/<Nmu>
101  double GetMeanXmax(double logE);
102  double GetMeanNmu(double logE, double theta);
103  double GetMeanNmu(double logE, double theta, double Xmax);
104 
105  // OffsetM_Mu
106  double GetOffsetM_Mu(double theta);
107  double GetOffsetM_Mu(double logE, double theta, double Xmax);
108 
109  // Assumed <Xmax>(logE) for a 50% p/Fe mixture
110  double GetMeanXmax_pFe(double logE);
111 
112  //Xmax_SD / Xmax_FD / XmaxMu_Golden / Nmu_FD resolution
113  double GetSigmaXmax_SD(double logE, int ndev, bool IsInfill);
114  double GetSigmaXmax_SD(double logE, int ndev);
115  double GetSigmaXmax_FD(double logE);
116  double GetSigmaNmu_FD(double logE);
117  double GetTrueRMSXmax(double rms, double logE, bool IsInfill);
118 
119  };
120 }
121 #endif // __UnivCalibConstants_h_
122 
static const double deltaXmax_pFe_Calib
static const int nSys
static const double fNmuSys_Auger[nSys]
double GetMeanNmu(double logE, double theta)
static const double ER_pFe_Models[nModels]
static const double MeanXmax_pFe_Models[nModels]
static const double OffsetM_Mu_Models[2][nModels]
double GetSigmaXmax_SD(double logE, int ndev, bool IsInfill)
static const double Offset_ER_pFe_Auger[nSys]
static const double MeanXmax_pFe_Auger
static const int nRecMixtures
static const double ER_pFe_Auger
UnivCalibConstants(int CalibOpt_i, int RecSys_i, int RecMixture_i)
static const std::string fmodel_c[nModels]
static const double fXmaxSys_Auger[nSys]
static const double logE_Calib
static const std::string fprim_c[2]
static const double OffsetM_Mu_Auger[2][nSys]
static const double OffsetM_Mu_Photon[2]
static const double Offset_MeanXmax_pFe_Auger[nSys]
static const double OffsetM_Mu_Calib[2]
static const double MeanXmax_pFe_Calib
static const double fEnergySys_Auger[nSys]
const double ndev
Definition: UnivParamTime.h:38
static const int nModels
static const double ER_pFe_Calib
double GetTrueRMSXmax(double rms, double logE, bool IsInfill)

, generated on Tue Sep 26 2023.