Example application to display DIS of muon.
26{
29
31 int numberOfEvents;
34
35 try {
36
37 JParser<> zap(
"Example application to display DIS of muon.");
38
43
45 }
46 catch(const exception &error) {
48 }
49
51
52
54
55
56 TH1D h0(
"sigma",
NULL, 1000, -1.0, 9.0);
57
58 JManager<double, TH1D>
HA(
new TH1D(
"v [% GeV]",
NULL, 1000, -5.0, 0.0));
59 JManager<double, TH1D>
H1(
new TH1D(
"ran[% GeV]",
NULL, 1000, -5.0, 0.0));
60 JManager<double, TH1D> HB(
new TH1D(
"RMS[% GeV]",
NULL, 1000, -5.0, 0.0));
61
63
65 { 1.0e3, 0.6 },
66 { 1.0e4, 0.5 } };
67
68
69 for (int i = 1; i <= h0.GetNbinsX(); ++i) {
70
71 const double x = h0.GetBinCenter(i);
72 const double E =
pow(10.0, x);
73 const double y =
dis.getCrossSection(E);
74
75 h0.SetBinContent(i, y * 1.0e+30);
76 }
77
78 for (
const auto& setup :
setups) {
79
80 const double E = setup.first;
81
85
86 for (
int i = 1; i <=
ha->GetNbinsX(); ++i) {
87
88 const double x =
ha->GetBinCenter(i);
89 const double v =
pow(10.0, x);
90
92
93 if (numberOfEvents == 0) {
95 }
96
97 ha->SetBinContent(i, y);
98 }
99
100 if (numberOfEvents != 0) {
101
102 for (int i = 0; i != numberOfEvents; ++i) {
103
104 const double Es =
dis.getE(E);
105 const double v =
Es/E;
106
108 }
109
110 for (int i = 1; i <= h1->GetNbinsX(); ++i) {
111
112 const double y = h1->GetBinContent(i);
113 const double z = h1->GetBinError (i);
114
115 const double xmin = h1->GetXaxis()->GetBinLowEdge(i);
116 const double xmax = h1->GetXaxis()->GetBinUpEdge (i);
117
118 const double w = (
pow(10.0,xmax) -
pow(10.0,xmin)) * numberOfEvents;
119
120 h1->SetBinContent(i, y / w);
121 h1->SetBinError (i, z / w);
122 }
123 }
124
125 for (
int i = 1; i <=
hb->GetNbinsX(); ++i) {
126
127 const double x =
hb->GetBinCenter(i);
128 const double v =
pow(10.0, x);
129 const double y =
dis.getThetaRMS(E, v);
130
131 hb->SetBinContent(i, y);
132 }
133 }
134
135
137
138 out << h0 <<
HA <<
H1 << HB;
139
140 out.Write();
141 out.Close();
142}
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Template definition of a multi-dimensional oscillation probability interpolation table.
double getP(const JOscChannel &channel, const double E, const double costh) const override final
Get oscillation probability for a given oscillation channel.
Utility class to parse command line options.
Deep-inelastic muon-nucleon scattering.
T pow(const T &x, const double y)
Power .
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).