Example application to display DIS of muon.
37 JParser<> zap(
"Example application to display DIS of muon.");
46 catch(
const exception &error) {
47 FATAL(error.what() << endl);
50 gRandom->SetSeed(seed);
56 TH1D h0(
"sigma", NULL, 1000, -1.0, 9.0);
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));
69 for (
int i = 1; i <= h0.GetNbinsX(); ++i) {
71 const double x = h0.GetBinCenter(i);
72 const double E =
pow(10.0, x);
73 const double y = dis.getCrossSection(E);
75 h0.SetBinContent(i, y * 1.0e+30);
78 for (
const auto& setup : setups) {
80 const double E = setup.first;
86 for (
int i = 1; i <= ha->GetNbinsX(); ++i) {
88 const double x = ha->GetBinCenter(i);
89 const double v =
pow(10.0, x);
91 double y = dis.getP(E, v);
93 if (numberOfEvents == 0) {
94 y *= setup.second / dis.getP(E, dis.getV(E));
97 ha->SetBinContent(i, y);
100 if (numberOfEvents != 0) {
102 for (
int i = 0; i != numberOfEvents; ++i) {
104 const double Es = dis.getE(E);
105 const double v = Es/
E;
110 for (
int i = 1; i <= h1->GetNbinsX(); ++i) {
112 const double y = h1->GetBinContent(i);
113 const double z = h1->GetBinError (i);
115 const double xmin = h1->GetXaxis()->GetBinLowEdge(i);
116 const double xmax = h1->GetXaxis()->GetBinUpEdge (i);
118 const double w = (
pow(10.0,xmax) -
pow(10.0,xmin)) * numberOfEvents;
120 h1->SetBinContent(i, y / w);
121 h1->SetBinError (i, z / w);
125 for (
int i = 1; i <= hb->GetNbinsX(); ++i) {
127 const double x = hb->GetBinCenter(i);
128 const double v =
pow(10.0, x);
129 const double y = dis.getThetaRMS(E, v);
131 hb->SetBinContent(i, y);
138 out << h0 << HA << H1 << HB;
Utility class to parse command line options.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
set_variable E_E log10(E_{fit}/E_{#mu})"
T pow(const T &x, const double y)
Power .