#ifndef FITDATA_H
#define FITDATA_H

#include "Rtypes.h"
#include "FitBeam.h"
#include "TObject.h"
class FitData :public TObject
{
public:
   
  FitData() {}
  virtual ~FitData() {}

  void TrueEnergy(const double value)      { trueenu = value; }
  void RecoEnergy(const double value)      { enu = value; }
  void RecoTrkEnergy(const double value)   { emu = value; }
  void RecoShwEnergy(const double value)   { eshw = value; }
  void TargetPt(const double value)        { pt = value; }
  void TargetPz(const double value)        { pz = value; }
  void GeneratorWeight(const double value) { genweight = value; }
  void GeneratorError(const double value)  { generror = value; }
   
  void NuType(const int value)          { nutype = value; }
  void ParentType(const int value)      { tptype = value; }
  void InteractionType(const int value) { ccnc = value; }
  void InteractionProcess(const int value)  { resonance = value; }
  void IsContained(const int value)     { iscev = value; }
  void BeamType(const FitBeam::FitBeam_t value)     { beam = value; }
  void ShwError(const double value)     { shwerror= value; }
  //--------------------------------------------------------------------------
  // const methods below this line
  //--------------------------------------------------------------------------
   
  Double_t TrueEnergy()      const { return trueenu; }
  Double_t RecoEnergy()      const { return enu; }
  Double_t RecoTrkEnergy()   const { return emu; }
  Double_t RecoShwEnergy()   const { return eshw; }
  Double_t TargetPt()        const { return pt; }
  Double_t TargetPz()        const { return pz; }
  Double_t GeneratorWeight() const { return genweight; }
  Double_t GeneratorError() const { return generror; }
   
  Int_t NuType()          const { return nutype; }
  Int_t ParentType()      const { return tptype; }
  Int_t InteractionType() const { return ccnc; }
  Int_t InteractionProcess() const { return resonance; }
  Int_t IsContained()     const { return iscev; }
  FitBeam::FitBeam_t Beam()           const { return beam;}
  Double_t ShwError()     const { return shwerror; }


private:

  Double_t trueenu;
  Double_t enu;
  Double_t emu;
  Double_t eshw;
  Double_t pt;
  Double_t pz;
  Double_t genweight;
  Double_t generror;
  
  Int_t nutype;
  Int_t tptype;
  Int_t ccnc;   
  Int_t resonance;   
  Int_t iscev;
  Double_t shwerror;
  FitBeam::FitBeam_t beam;

private:
  ClassDef(FitData,1);
   
};
#endif
