#ifndef FITBEAM_H
#define FITBEAM_H

#include <string>
#include "Rtypes.h"

namespace FitBeam
{
  typedef enum EFitBeam
  {
    kUnknown          = 0,
    kNuMuLE000z200i   = 5601,
    kNuMuLE010z000i   = 5608,
    kNuMuLE010z170i   = 5606,
    kNuMuLE010z185i   = 5602,
    kNuMuLE010z185iN  = 5611,
    kNuMuLE010z200i   = 5607,
    kNuMuLE100z200i   = 5603,
    kNuMuLE150z200i   = 5609,
    kNuMuLE250z200i   = 5604,
    kNuMuLE250z200iN  = 5610,
    kAntiNuMuLE000z200i   = 5501,
    kAntiNuMuLE010z000i   = 5508,
    kAntiNuMuLE010z170i   = 5506,
    kAntiNuMuLE010z185i   = 5502,
    kAntiNuMuLE010z185iN  = 5511,
    kAntiNuMuLE010z200i   = 5507,
    kAntiNuMuLE100z200i   = 5503,
    kAntiNuMuLE150z200i   = 5509,
    kAntiNuMuLE250z200i   = 5504,
    kAntiNuMuLE250z200iN  = 5510,
    kBeamNueLE000z200i   = 5301,
    kBeamNueLE010z000i   = 5308,
    kBeamNueLE010z170i   = 5306,
    kBeamNueLE010z185i   = 5302,
    kBeamNueLE010z185iN  = 5311,
    kBeamNueLE010z200i   = 5307,
    kBeamNueLE100z200i   = 5303,
    kBeamNueLE150z200i   = 5309,
    kBeamNueLE250z200i   = 5304,
    kBeamNueLE250z200iN  = 5310

  } FitBeam_t;

  std::string BeamTypeAsString(FitBeam_t beam);
  std::string NeutrinoTypeAsString(FitBeam_t beam);
  Int_t AsInt(FitBeam_t beam);
  Int_t AsZbeamCode(FitBeam_t beam);
  FitBeam_t IntToEnum(Int_t beamint);
  FitBeam_t StringToEnum(std::string beamstring);

}

#endif
