30{
33
35 int numberOfEvents;
38
39 try {
40
41 JParser<> zap(
"Example program to test JOmega2D class.");
42
47
48 zap(argc, argv);
49 }
50 catch(const exception &error) {
51 FATAL(error.what() << endl);
52 }
53
54
55 const int N = 10;
56
60
61
64
65 for (int i = 1; i <= h0.GetNbinsX(); ++i) {
66
67 const Double_t
x = h0.GetBinCenter(i);
68
69 omega .push_back(
JOmega2D(x * PI/180.0));
71 }
72
73
74 for (int i = 0; i != numberOfEvents; ++i) {
75
76 STATUS(
"event: " << setw(10) << i <<
'\r');
DEBUG(endl);
77
78 const double phi = gRandom->Uniform(0.0, 2*PI);
79
81
82 for (
size_t j = 0;
j != omega.size(); ++
j) {
83
84 const int pos = omega[
j].find(angle);
85 const double dot = angle.getDot(omega[j][pos]);
86
87 quantile[
j].put(acos(dot) * 180.0/PI);
88 }
89 }
91
92
93 for (int i = 1; i <= h0.GetNbinsX(); ++i) {
94 h0.SetBinContent(i, omega [i-1].size());
95 h1.SetBinContent(i, quantile[i-1].getSTDev());
96 h2.SetBinContent(i, quantile[i-1].getDeviation());
97 }
98
100
102
103 out << h0 << h1 << h2;
104
105 out.Write();
106 out.Close();
107 }
108
109 for (int i = 1; i <= h2.GetNbinsX(); ++i) {
110
111 const Double_t
x = h2.GetBinCenter (i);
112 const Double_t
y = h2.GetBinContent(i);
113
114 NOTICE(
"Grid test " << x <<
" [deg]: " << y <<
" [deg]." << endl);
116 }
117
118 return 0;
119}
#define DEBUG(A)
Message macros.
#define ASSERT(A,...)
Assert macro.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Data structure for angle in two dimensions.
Direction set covering (part of) circle.
Utility class to parse command line options.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).