28 int main(
int argc,
char**argv)
40 JParser<> zap(
"Example program to test JOmega3D class.");
49 catch(
const exception &error) {
50 FATAL(error.what() << endl);
56 TH1D h0(
"h0[grid", NULL,
N, range_Deg.getLowerLimit(), range_Deg.getUpperLimit());
57 TH1D
h1(
"h1[RMS]", NULL,
N, range_Deg.getLowerLimit(), range_Deg.getUpperLimit());
58 TH1D h2(
"h2[deviation]", NULL,
N, range_Deg.getLowerLimit(), range_Deg.getUpperLimit());
64 for (
int i = 1; i <= h0.GetNbinsX(); ++i) {
66 const Double_t x = h0.GetBinCenter(i);
68 omega .push_back(JOmega3D(x *
PI/180.0));
69 quantile.push_back(JQuantile());
73 for (
int i = 0; i != numberOfEvents; ++i) {
75 STATUS(
"event: " << setw(10) << i <<
'\r');
DEBUG(endl);
77 const double theta = gRandom->Uniform(0.0,
PI);
78 const double phi = gRandom->Uniform(0.0, 2*
PI);
80 const JAngle3D angle(theta, phi);
82 for (
size_t j = 0;
j != omega.size(); ++
j) {
84 const int pos = omega[
j].find(angle);
85 const double dot = angle.getDot(omega[
j][pos]);
87 quantile[
j].put(acos(dot) * 180.0/
PI);
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());
103 out << h0 <<
h1 << h2;
109 for (
int i = 1; i <= h2.GetNbinsX(); ++i) {
111 const Double_t x = h2.GetBinCenter (i);
112 const Double_t y = h2.GetBinContent(i);
114 NOTICE(
"Grid test " << x <<
" [deg]: " << y <<
" [deg]." << endl);
Utility class to parse command line options.
then for HISTOGRAM in h0 h1
#define ASSERT(A,...)
Assert macro.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
General purpose messaging.
Utility class to parse command line options.
then usage $script[input file[working directory[option]]] nWhere option can be N
#define DEBUG(A)
Message macros.
int main(int argc, char *argv[])