#ifndef _JpsiGamKsKlKKProdLh_H #define _JpsiGamKsKlKKProdLh_H #include <iostream> #include <fstream> #include <string> #include <vector> #include <complex> #include <cassert> #include <boost/shared_ptr.hpp> #include "TROOT.h" // #include <TSystem.h> #include "qft++/topincludes/relativistic-quantum-mechanics.hh" #include "PwaUtils/AbsLh.hh" #include "Examples/JpsiGamKsKlKK/JpsiGamKsKlKKData.hh" #include "PwaUtils/DataUtils.hh" #include "Minuit2/MnUserParameters.h" class JpsiGamKsKlKKProdLh : public AbsLh{ public: // create/copy/destroy: ///Constructor JpsiGamKsKlKKProdLh(boost::shared_ptr<const EvtDataBaseList>, const std::map<const std::string, bool>& hypMap); JpsiGamKsKlKKProdLh(boost::shared_ptr<AbsLh>, const std::map<const std::string, bool>& hypMap); /** Destructor */ virtual ~JpsiGamKsKlKKProdLh(); virtual AbsLh* clone_() const { return new JpsiGamKsKlKKProdLh(_evtListPtr, _hypMap); } virtual double calcEvtIntensity( EvtData* theData, fitParams& theParamVal); //Getters: virtual void getDefaultParams(fitParams& fitVal, fitParams& fitErr); virtual void print(std::ostream& os) const; protected: virtual complex<double> calcCoherentAmp(Spin Minit, Spin lamGam, fitParams& theParamVal, EvtData* theData); virtual complex<double> etaGammaAmp(Spin Minit, Spin Metac, Spin Mgamma, EvtData* theData, std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >& PsiToEtaMag, std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >& PsiToEtaPhi, double mass, double width); virtual complex<double> f0GammaAmp(Spin Minit, Spin Mgamma, EvtData* theData, std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >& ampf0ProdMag, std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >& ampf0ProdPhi, std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >& ampf0DecMag, std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >& ampf0DecPhi, double mass, double width ); virtual complex<double> etaToPhiPhiTo4KAmp(EvtData* theData); virtual complex<double> f0ToPhiPhiTo4KAmp( EvtData* theData, std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >& ampf0DecMag, std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >& ampf0DecPhi ); bool _eta2225Hyp; bool _f02020Hyp; std::map<const std::string, bool> _hypMap; private: }; #endif