Skip to content
Snippets Groups Projects
D0ToKsPipPimLh.hh 1.7 KiB
Newer Older
#pragma once

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

#include "qft++/topincludes/relativistic-quantum-mechanics.hh"

#include "PwaUtils/AbsLhNew.hh"
#include "Examples/D0ToKsPipPim/D0ToKsPipPimStates.hh"
#include "PwaUtils/DataUtils.hh"
#include "Minuit2/MnUserParameters.h"
#include "PwaDynamics/FVector.hh"
#include "PwaDynamics/FVectorPiPiS.hh"

class D0ToKsPipPimLh : public AbsLhNew {

public:
  D0ToKsPipPimLh(boost::shared_ptr<const EvtDataBaseListNew>, 
		   const std::vector<std::string>& hypVec, 
		   boost::shared_ptr<D0ToKsPipPimStates> theStates);
  D0ToKsPipPimLh(boost::shared_ptr<AbsLhNew>, const std::vector<std::string>& hypVec, 
		   boost::shared_ptr<D0ToKsPipPimStates> theStates);
  virtual ~D0ToKsPipPimLh();

  virtual AbsLhNew* clone_() const{
    return new D0ToKsPipPimLh(_evtListPtr, _hypVec, _theStatesPtr);
  }
  virtual double calcEvtIntensity( EvtDataNew* theData, fitParamsNew& theParamVal);
  
  virtual void getDefaultParams(fitParamsNew& fitVal, fitParamsNew& fitErr);
  virtual void print(std::ostream& os) const;

protected:
  const std::vector<std::string> _hypVec;
  boost::shared_ptr<D0ToKsPipPimStates> _theStatesPtr;
 
  bool _usePhasespace;
  const std::string _phasespaceKey;

  bool _pipiSHyp;
  const std::string _pipiSKey;

  bool _KpiSHyp;
  const std::string _KpiSKey;

  std::map< std::string,std::vector<std::string> > _hypMaps;

private:

  void getDefaultLSParams(const std::vector<std::string>& hyps, 
			  std::vector< boost::shared_ptr<const JPCLS> > lsAmps, 
			  fitParamsNew& fitVal, fitParamsNew& fitErr);
  void initializeHypothesis();