Newer
Older
#ifndef _PsiProdBaseLhNew_H
#define _PsiProdBaseLhNew_H
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <complex>
#include <cassert>
#include <boost/shared_ptr.hpp>
#include <boost/function.hpp>
#include "TROOT.h"
// #include <TSystem.h>
#include "qft++/topincludes/relativistic-quantum-mechanics.hh"
#include "PwaUtils/AbsLhNew.hh"
#include "PwaUtils/PsiToXGamStates.hh"
#include "PwaUtils/DataUtils.hh"
#include "Minuit2/MnUserParameters.h"
class AbsXdecAmp;
class PsiProdBaseLhNew : public AbsLhNew{
public:
// create/copy/destroy:
///Constructor
PsiProdBaseLhNew(boost::shared_ptr<const EvtDataBaseListNew>, const std::vector<std::string>& hypVec, boost::shared_ptr<PsiToXGamStates> theStates);
PsiProdBaseLhNew(boost::shared_ptr<AbsLhNew>, const std::vector<std::string>& hypVec, boost::shared_ptr<PsiToXGamStates> theStates);
// virtual AbsLhNew* clone_() const {
// return new PsiProdBaseLhNew(_evtListPtr, _hypVec, _theStatesPtr);
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
// }
virtual AbsLhNew* clone_() const =0;
virtual double calcEvtIntensity( EvtDataNew* theData, fitParamsNew& theParamVal);
//Getters:
virtual void getDefaultParams(fitParamsNew& fitVal, fitParamsNew& fitErr);
virtual void print(std::ostream& os) const;
protected:
const std::vector<std::string> _hypVec;
std::vector<std::string> _GammaEtaHyps;
std::vector<std::string> _GammaEta2Hyps;
std::vector<std::string> _GammaF1Hyps;
boost::shared_ptr<PsiToXGamStates> _theStatesPtr;
bool _usePhasespace;
const std::string _GammaEtaKey;
const std::string _GammaEta2Key;
const std::string _GammaF1Key;
const std::string _EtaKey;
const std::string _Eta2Key;
const std::string _F1Key;
std::map<std::string, boost::shared_ptr<AbsXdecAmp> > _etaDecAmpMap;
std::map<std::string, boost::shared_ptr<AbsXdecAmp> > _f1DecAmpMap;
std::map<std::string, boost::shared_ptr<AbsXdecAmp> > _eta2DecAmpMap;
virtual complex<double> psiToXGammaAmp(Spin Minit, Spin jX, Spin lamX, Spin lamGamma, EvtDataNew* theData,
double PsiToXGamMag, double PsiToXGamPhi);
private:
void getDefaultLamLamParams(std::vector<std::string>& hyps, std::vector< boost::shared_ptr<const JPClamlam> > lamLamAmps, fitParamsNew& fitVal, fitParamsNew& fitErr);
void initializeHypothesis();
};
#endif