29 int main(
int argc, 
char**argv)
 
   36   JRange<double> range_Deg;
 
   41     JParser<> zap(
"Example program to test JOmega3D class.");
 
   45     zap[
'G'] = 
make_field(range_Deg)           = JRange<double>(0.5, 10.5);
 
   50   catch(
const exception &error) {
 
   51     FATAL(error.what() << endl);
 
   57   TH1D h0(
"h0[grid",       NULL, 
N, range_Deg.getLowerLimit(), range_Deg.getUpperLimit());
 
   58   TH1D 
h1(
"h1[RMS]",       NULL, 
N, range_Deg.getLowerLimit(), range_Deg.getUpperLimit());
 
   59   TH1D h2(
"h2[deviation]", NULL, 
N, range_Deg.getLowerLimit(), range_Deg.getUpperLimit());
 
   65   for (
int i = 1; i <= h0.GetNbinsX(); ++i) {
 
   67     const Double_t x = h0.GetBinCenter(i);
 
   69     omega   .push_back(JOmega3D(x * 
PI/180.0));
 
   70     quantile.push_back(JQuantile());    
 
   74   for (
int i = 0; i != numberOfEvents; ++i) {
 
   76     STATUS(
"event: " << setw(10) << i << 
'\r'); 
DEBUG(endl);
 
   78     const double   theta = gRandom->Uniform(0.0, 
PI);
 
   79     const double   phi   = gRandom->Uniform(0.0, 2*
PI);
 
   81     const JAngle3D angle(theta, phi);
 
   83     for (
size_t j = 0; 
j != omega.size(); ++
j) {
 
   85       const int      pos = omega[
j].find(angle);
 
   86       const double   dot = angle.getDot(omega[
j][pos]);
 
   88       quantile[
j].put(acos(dot) * 180.0/
PI); 
 
   94   for (
int i = 1; i <= h0.GetNbinsX(); ++i) {
 
   95     h0.SetBinContent(i, omega   [i-1].size());
 
   96     h1.SetBinContent(i, quantile[i-1].getSTDev());
 
   97     h2.SetBinContent(i, quantile[i-1].getDeviation());
 
  104     out << h0 << 
h1 << h2;
 
  110   for (
int i = 1; i <= h2.GetNbinsX(); ++i) {
 
  112     const Double_t x = h2.GetBinCenter (i);
 
  113     const Double_t y = h2.GetBinContent(i);
 
  115     NOTICE(
"Grid test " << x << 
" [deg]: " << y << 
" [deg]." << endl); 
 
Utility class to parse command line options. 
 
int main(int argc, char *argv[])
 
then for HISTOGRAM in h0 h1
 
#define ASSERT(A,...)
Assert macro. 
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
static const double PI
Mathematical constants. 
 
General purpose messaging. 
 
Auxiliary class to define a range between two values. 
 
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.