26int main(
int argc, 
char **argv)
 
   46    JParser<> zap(
"Auxiliary program to draw K40 fit function.");
 
   54  catch(
const exception &error) {
 
   55    FATAL(error.what() << endl);
 
   59  const JModule module = getModule<JKM3NeT_t>(1001);
 
   63  for (JModule::const_iterator i = module.begin(); i != module.end(); ++i) {
 
   64    for (JModule::const_iterator j = module.begin(); j != i; ++j) {
 
   66      if (getDot(i->getDirection(), j->getDirection()) > ct) {
 
   67        ct = getDot(i->getDirection(), j->getDirection());
 
   74  cout << 
"Cosine minimal angle between PMT axes " << 
FIXED(5,3) << ct << endl;
 
   75  cout << 
"Default  rate [Hz] " << 
FIXED(6,3) << JK40Parameters::getInstance().getValue(ct) << 
'/' << 
FIXED(6,3) << JK40Parameters::getInstance().getValue(+1.0) << endl;
 
   76  cout << 
"Modified rate [Hz] " << 
FIXED(6,3) << 
K40                          .getValue(ct) << 
'/' << 
FIXED(6,3) << 
K40                          .getValue(+1.0) << endl;
 
   81  const Double_t xmin = -0.5;
 
   82  const Double_t xmax = nx - 0.5;
 
   84  TH1D h0(
"h0", NULL, 5000, -1.0, +1.0);
 
   85  TH1D h1(
"h1", NULL, nx, xmin, xmax);
 
   87  for (Int_t i = 1; i <= h0.GetXaxis()->GetNbins(); ++i) {
 
   89    const Double_t x = h0.GetBinCenter(i);
 
   91    h0.SetBinContent(i, 
K40.getValue(x));
 
   94  for (Int_t i = 1; i <= h1.GetXaxis()->GetNbins(); ++i) {
 
   96    const int index = h1.GetBinCenter(i);
 
   98    const JCombinatorics_t::pair_type 
pair = combinatorics.
getPair(index);
 
  100    const double x = getDot(module[
pair.first].getDirection(), module[
pair.second].getDirection());
 
  102    h1.SetBinContent(i, 
K40.getValue(x));