#include <string>
#include <iostream>
#include <iomanip>

#include "km3net-dataformat/online/JDAQTriggerMask.hh"
#include "JTrigger/JTriggerBits.hh"

#include "Jeep/JParser.hh"
#include "Jeep/JMessage.hh"


/**
 * \file
 *
 * Example program to test I/O of trigger mask.
 * \author mdejong
 */
int main(int argc, char **argv)
{
  using namespace std;
  using namespace KM3NETDAQ;

  JDAQTriggerMask trigger_mask;
  int             debug;

  try {

    JParser<> zap("Example program to test I/O of trigger mask.");

    zap['T'] = make_field(trigger_mask);
    zap['d'] = make_field(debug)               = 0;

    zap(argc, argv);
  }
  catch(const exception& error) {
    FATAL(error.what() << endl);
  }


  using namespace JPP;


  cout << trigger_mask.getTriggerMask() << endl;
  cout << trigger_mask                  << endl;

  cout << setw(16) << left << "JTrigger3DMuon"   << ' ' << trigger_mask.hasTriggerBit(getTriggerBit<JTrigger3DMuon>())   << endl;
  cout << setw(16) << left << "JTrigger3DShower" << ' ' << trigger_mask.hasTriggerBit(getTriggerBit<JTrigger3DShower>()) << endl;
}