#ifndef ZDETWEIGHT_H_
#define ZDETWEIGHT_H_

#include "SkzpWeight.h"

class FitData;
class Zbeam;
class ZdetWeight : virtual public SkzpWeight {

public:
      
  ZdetWeight();
  ~ZdetWeight();

  virtual double GetWeight(FitData& data);

  inline virtual double GetPT() const;

  virtual bool SetProperty(const std::string);


  virtual void GetParameters(std::vector<FitPar> &par) {
    std::copy(fParameters.begin(),fParameters.end(),
	      std::back_inserter(par));
  }
  
  virtual void SetParameters(const std::vector<double> &par) {
    fPars.clear();
    std::copy(par.begin(),par.end(),std::back_inserter(fPars));
  }

  inline virtual int GetNParameters() {return fParameters.size();}

  inline virtual const std::string& GetName() const {return fName;}

  inline virtual void SetName(std::string name) {fName=name;}

  virtual bool Init() {return true;}

  virtual void Write() {};

private:
  
  std::string fName;
  std::vector<FitPar> fParameters;
  std::vector<double> fPars;
  double fAntiNuXsError;
  bool   fUseShwScale;

};

#endif // FITSTATE_H_
