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);
 
   83  JManager<int, TH2D>      H2(
new TH2D(
"[%].tiltdeviation", NULL, 300, -4.0, +4.0, 300, -4.0, +4.0), 
'%', format);
 
   87  for (
counter_type counter = 0; in.
hasNext() && counter != inputFile.getLimit(); ++counter) {
 
   89    STATUS(
"event: " << setw(10) << counter << 
'\r'); 
DEBUG(endl);
 
  106    for (JEvt::const_iterator i = evt->begin(); i != evt->end(); ++i) {
 
  108      const int    id =  i->id;
 
  109      const double tx = (i->tx + i->tx2 * Z) * 1.0e3;  
 
  110      const double ty = (i->ty + i->ty2 * Z) * 1.0e3;  
 
  111      const double vs =  i->vs * 1.0e2;                
 
  112      const double ts = sqrt(tx*tx + ty*ty);
 
  122      H1[id]->Fill(ts, vs);
 
  124      GO[id].put(t1, atan2(ty, tx));
 
  134    for (JEvt::const_iterator i = evt->begin(); i != evt->end(); ++i) {
 
  136      const double tx = (i->tx + i->tx2 * Z) * 1.0e3;  
 
  137      const double ty = (i->ty + i->ty2 * Z) * 1.0e3;  
 
  139      H2       ->Fill(tx - Tx, ty - Ty);
 
  140      H2[i->id]->Fill(tx - Tx, ty - Ty);
 
  142      GO[-1].put(t1, atan2(Ty, Tx));
 
  149  TH1D hx(
"hx", NULL, H2.size(), -0.5, H2.size() + 0.5);
 
  150  TH1D hy(
"hy", NULL, H2.size(), -0.5, H2.size() + 0.5);
 
  156    const int ix = 
distance(H2.cbegin(), i) + 1;
 
  161    hx.SetBinContent(ix, i->second->GetMean(1));
 
  162    hy.SetBinContent(ix, i->second->GetMean(2));
 
  163    hx.SetBinError  (ix, i->second->GetStdDev(1));
 
  164    hy.SetBinError  (ix, i->second->GetStdDev(2));
 
  166    Qx.
put(i->second->GetMean(1));
 
  167    Qy.
put(i->second->GetMean(2));
 
  176  out << h1 << h2 << hx << hy 
 
  181  out << H1 << *H1 << H2 << *H2;