Skip to content
Snippets Groups Projects
AbsLhNew.hh 1.07 KiB
#pragma once

#include <iostream>
#include <vector>
#include <complex>
#include <map>
#include <string>
#include <boost/shared_ptr.hpp>

#include "PwaUtils/EvtDataBaseListNew.hh"
#include "PwaUtils/FitParamsBaseNew.hh"


class AbsLhNew {

public:
  AbsLhNew(boost::shared_ptr<const EvtDataBaseListNew>);
  AbsLhNew(boost::shared_ptr<AbsLhNew>);
  virtual ~AbsLhNew();
  virtual AbsLhNew* clone_() const = 0;

  virtual double calcLogLh(fitParamsNew& theParamVal);
  virtual double calcEvtIntensity(EvtDataNew* theData, fitParamsNew& theParamVal)=0;
  virtual boost::shared_ptr<const EvtDataBaseListNew> getEventList() const {
    return _evtListPtr;
  }
  virtual void getDefaultParams(fitParamsNew& fitVal, fitParamsNew& fitErr)=0;
  virtual void print(std::ostream& os) const=0;

protected:
  boost::shared_ptr<const EvtDataBaseListNew> _evtListPtr;
  std::vector<EvtDataNew*> _evtDataVec;
  std::vector<EvtDataNew*> _evtMCVec;
  std::map<const std::string, bool> _hypMap;

  virtual void setHyps( const std::map<const std::string, bool>& theMap, 
			bool& theHyp, std::string& theKey);
};