38int main(
int argc, 
char **argv)
 
   46  JLimit_t&           numberOfEvents = inputFile.getLimit();
 
   53    JParser<> zap(
"Example program to plot acoustic fit results.");
 
   55    zap[
'f'] = 
make_field(inputFile,       
"input file (output of JKatoomba[.sh]/JFremantle[.sh])");
 
   58    zap[
'Z'] = 
make_field(Z,               
"detector height (for 2nd order tilt correction)")  = 0.0;
 
   63  catch(
const exception &error) {
 
   64    FATAL(error.what() << endl);
 
   69  const JFormat_t format(4, 0, std::ios_base::fmtflags(), 
'0');
 
   71  TH1D h1(
"chi2/NDF",  NULL, 500, 0.0,  10.0);
 
   72  TH1D h2(
"amplitude", NULL, 500, 0.0, 100.0);
 
   82  JManager<int, TH2D>      H2(
new TH2D(
"[%].tiltdeviation", NULL, 300, -4.0, +4.0, 300, -4.0, +4.0), 
'%', format);
 
   86  for (
counter_type counter = 0; in.
hasNext() && counter != inputFile.getLimit(); ++counter) {
 
   88    STATUS(
"event: " << setw(10) << counter << 
'\r'); 
DEBUG(endl);
 
  104    for (JEvt::const_iterator i = evt->begin(); i != evt->end(); ++i) {
 
  106      const int    id =  i->id;
 
  107      const double tx = (i->tx + i->tx2 * Z) * 1.0e3;  
 
  108      const double ty = (i->ty + i->ty2 * Z) * 1.0e3;  
 
  109      const double vs =  i->vs * 1.0e2;                
 
  110      const double ts = sqrt(tx*tx + ty*ty);
 
  120      H1[id]->Fill(ts, 
vs);
 
  122      GO[id].put(t1, atan2(ty, tx));
 
  132    for (JEvt::const_iterator i = evt->begin(); i != evt->end(); ++i) {
 
  134      const double tx = (i->tx + i->tx2 * Z) * 1.0e3;  
 
  135      const double ty = (i->ty + i->ty2 * Z) * 1.0e3;  
 
  137      H2       ->Fill(tx - Tx, ty - Ty);
 
  138      H2[i->id]->Fill(tx - Tx, ty - Ty);
 
  140      GO[-1].put(t1, atan2(Ty, Tx));
 
  147  TH1D hx(
"hx", NULL, H2.size(), -0.5, H2.size() + 0.5);
 
  148  TH1D hy(
"hy", NULL, H2.size(), -0.5, H2.size() + 0.5);
 
  154    const int ix = 
distance(H2.cbegin(), i) + 1;
 
  159    hx.SetBinContent(ix, i->second->GetMean(1));
 
  160    hy.SetBinContent(ix, i->second->GetMean(2));
 
  161    hx.SetBinError  (ix, i->second->GetStdDev(1));
 
  162    hy.SetBinError  (ix, i->second->GetStdDev(2));
 
  164    Qx.
put(i->second->GetMean(1));
 
  165    Qy.
put(i->second->GetMean(2));
 
  174  out << h1 << h2 << hx << hy 
 
  178  out << H1 << *H1 << H2 << *H2;