Something went wrong on our end
-
Michael Leyhe authored6728b6f1
XDecAmpBase.cc 19.62 KiB
#include <getopt.h>
#include <fstream>
#include <string>
#include "Examples/JpsiGamEtaPiPiNew/XDecAmpBase.hh"
#include "qft++/relativistic-quantum-mechanics/Utils.hh"
#include "ErrLogger/ErrLogger.hh"
// #include "PwaUtils/EvtDataBaseListNew.hh"
#include "Examples/JpsiGamEtaPiPiNew/JpsiGamEtaPiPiEventListNew.hh"
XDecAmpBase::XDecAmpBase(const std::string& name, const std::vector<std::string>& hypVec, boost::shared_ptr<JpsiGamEtaPiPiStates> theStates, Spin spinX) :
AbsXdecAmp(name, hypVec, spinX)
,_piPiEtaKey(name+"ToPiPiEta")
,_piPiEtaHyp(false)
,_a980piKey(name+"Toa980Pi")
,_a980piHyp(false)
,_sigmaEtaKey(name+"ToSigmaEta")
,_sigmaEtaHyp(false)
,_f980etaKey(name+"Tof980Eta")
,_f980etaHyp(false)
,_a2_1320piKey(name+"Toa2_1320Pi")
,_a2_1320piHyp(false)
,_f2_1270etaKey(name+"Tof2_1270Eta")
,_f2_1270etaHyp(false)
,_xBWKey(name+"BreitWigner")
,_massIndependent(true)
,_massPi(0.13957018)
,_massPi0(0.1349766)
,_massKplus(0.493677)
,_massK0(0.497614)
,_massEta(0.547853)
,_decPairKK(make_pair(_massKplus,_massK0))
,_decPairPiEta(make_pair(_massPi, _massEta))
,_decPairPi0Eta(make_pair(_massPi0, _massEta))
,_decPairPiPi(make_pair(_massPi, _massPi))
,_decPairPi0Pi0(make_pair(_massPi0, _massPi0))
,_theStatesPtr(theStates)
{
initialize();
}
XDecAmpBase::~XDecAmpBase()
{
}
complex<double> XDecAmpBase::XdecAmp(Spin lamX, EvtDataNew* theData, fitParamsNew& theParamVal){
complex<double> result(0.,0.);
if (_piPiEtaHyp){
result+=XToPiPiEtaAmp(lamX, theData, theParamVal.Mags[_piPiEtaKey], theParamVal.Phis[_piPiEtaKey]);
}
if(_a980piHyp){
double a0_980Mass=theParamVal.Masses["a0_980"];
double a0_980gPiEta=theParamVal.gFactors["a0_980gPiEta"];
double a0_980gKK=theParamVal.gFactors["a0_980gKK"];
result+=XToAPiFlatteAmp(lamX, theData, theParamVal.Mags[_a980piKey], theParamVal.Phis[_a980piKey], a0_980Mass, a0_980gPiEta, a0_980gKK);
}
if(_a2_1320piHyp){
double a2_1320Mass=theParamVal.Masses["a2_1320"];
double a2_1320Width=theParamVal.Widths["a2_1320"];
result+=XToAPiBWAmp(lamX, 2, theData, theParamVal.Mags[_a2_1320piKey], theParamVal.Phis[_a2_1320piKey] , a2_1320Mass, a2_1320Width);
}
if(_sigmaEtaHyp){
double sigmaMass=theParamVal.Masses["sigma"];
double sigmaWidth=theParamVal.Widths["sigma"];
result+=XToEtaFAmp(lamX, 0, theData, theParamVal.Mags[_sigmaEtaKey], theParamVal.Phis[_sigmaEtaKey],sigmaMass, sigmaWidth);
}
if(_f980etaHyp){
double f0_980Mass=theParamVal.Masses["f0_980"];
double f0_980gPiPi=theParamVal.gFactors["f0_980gPiPi"];
double f0_980gKK=theParamVal.gFactors["f0_980gKK"];
result+=XToFEtaFlatteAmp(lamX, theData, theParamVal.Mags[_f980etaKey], theParamVal.Phis[_f980etaKey], f0_980Mass, f0_980gPiPi, f0_980gKK);
}
if(_f2_1270etaHyp){
double f2_1270Mass=theParamVal.Masses["f2_1270"];
double f2_1270Width=theParamVal.Widths["f2_1270"];
result+=XToEtaFAmp(lamX, 2, theData, theParamVal.Mags[_f2_1270etaKey], theParamVal.Phis[_f2_1270etaKey], f2_1270Mass, f2_1270Width);
}
complex<double> dynModel(1.,0.);
if (!_massIndependent){
double xMass=theParamVal.Masses[_name];
double xWidth=theParamVal.Widths[_name];
Vector4<double> p4EtaPiPi = theData->FourVecsDec[enumJpsiGamEtaPiPi4V::EtaPipPim_HeliPsi];
dynModel=BreitWigner(p4EtaPiPi, xMass, xWidth);
}
result *=dynModel;
return result;
}
complex<double> XDecAmpBase::XToPiPiEtaAmp(Spin lamX, EvtDataNew* theData,
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >& XToPiPiEtaMag,
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >& XToPiPiEtaPhi){
complex<double> result(0.,0.);
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >::iterator itXMag;
for ( itXMag=XToPiPiEtaMag.begin(); itXMag!=XToPiPiEtaMag.end(); ++itXMag){
boost::shared_ptr<const JPCLS> XState=itXMag->first;
double theXMag=itXMag->second;
double theXPhi=XToPiPiEtaPhi[XState];
complex<double> expiphiX(cos(theXPhi), sin(theXPhi));
result+= theXMag*expiphiX*sqrt(2.*XState->L+1.)
*Clebsch(XState->L, 0, XState->S, 0, XState->J, 0)
*Clebsch(0, 0, 0, 0, XState->S, 0);
}
result*=conj(theData->WignerDsDec[enumJpsiGamEtaPiPiDfunc::etapipi][_J_X][lamX][0]);
return result;
}
complex<double> XDecAmpBase::XToAPiFlatteAmp(Spin lamX, EvtDataNew* theData,
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >& etaToA980PiMag,
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >& etaToA980PiPhi,
double a0_980Mass, double a0_980gPiEta,double a0_980gKK){
complex<double> result(0.,0.);
Vector4<double > p4EtaPiplus = theData->FourVecsDec[enumJpsiGamEtaPiPi4V::EtaPip_HeliPsi];
Vector4<double > p4EtaPiminus= theData->FourVecsDec[enumJpsiGamEtaPiPi4V::EtaPim_HeliPsi];
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >::iterator itXMag;
for ( itXMag=etaToA980PiMag.begin(); itXMag!=etaToA980PiMag.end(); ++itXMag){
boost::shared_ptr<const JPCLS> XState=itXMag->first;
double theXMag=itXMag->second;
double theXPhi=etaToA980PiPhi[XState];
complex<double> expiphiX(cos(theXPhi), sin(theXPhi));
complex<double> amp = theXMag*expiphiX*sqrt(2.*XState->L+1.)*
( conj(theData->WignerDsDec[enumJpsiGamEtaPiPiDfunc::XToAplusPiminus][_J_X][lamX][0])*Flatte(p4EtaPiplus , _decPairPiEta, _decPairKK, a0_980Mass, a0_980gPiEta, a0_980gKK)+
conj(theData->WignerDsDec[enumJpsiGamEtaPiPiDfunc::XToAminusPiplus][_J_X][lamX][0])*Flatte(p4EtaPiminus, _decPairPiEta, _decPairKK, a0_980Mass, a0_980gPiEta, a0_980gKK)
);
result+= amp;
}
return result;
}
complex<double> XDecAmpBase::XToFEtaFlatteAmp(Spin lamX, EvtDataNew* theData,
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >& XTof980etaMag,
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >& XTof980etaPhi,
double f0_980Mass, double f0_980gPiPi,double f0_980gKK){
complex<double> result(0.,0.);
Vector4<double > p4PiPi=theData->FourVecsDec[enumJpsiGamEtaPiPi4V::PipPim_HeliPsi];
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >::iterator itXMag;
for ( itXMag=XTof980etaMag.begin(); itXMag!=XTof980etaMag.end(); ++itXMag){
boost::shared_ptr<const JPCLS> XState=itXMag->first;
double theXMag=itXMag->second;
double theXPhi=XTof980etaPhi[XState];
complex<double> expiphiX(cos(theXPhi), sin(theXPhi));
complex<double> amp = theXMag*expiphiX*sqrt(2.*XState->L+1.)*
conj(theData->WignerDsDec[enumJpsiGamEtaPiPiDfunc::XTofEta][_J_X][lamX][0])*
Flatte(p4PiPi, _decPairPiPi, _decPairKK, f0_980Mass, f0_980gPiPi, f0_980gKK);
result+= amp;
}
return result;
}
complex<double> XDecAmpBase::XToEtaFAmp(Spin lamX, Spin jf, EvtDataNew* theData,
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >& XToEtaFMag,
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >& XToEtaFPhi,
double fMass, double fWidth){
complex<double> result(0.,0.);
Vector4<double > p4PiPi=theData->FourVecsDec[enumJpsiGamEtaPiPi4V::PipPim_HeliPsi];
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >::iterator itXMag;
for ( itXMag=XToEtaFMag.begin(); itXMag!=XToEtaFMag.end(); ++itXMag){
boost::shared_ptr<const JPCLS> XState=itXMag->first;
double theXMag=itXMag->second;
double theXPhi=XToEtaFPhi[XState];
complex<double> expiphiX(cos(theXPhi), sin(theXPhi));
complex<double> amp(0.,0.);
for(Spin lamf = -jf; lamf <= jf; lamf++){
if( fabs(lamf)> _J_X || fabs(lamf)>XState->S) continue;
amp += theXMag*expiphiX*sqrt(2.*XState->L+1.)*sqrt(2.*jf+1.)
*Clebsch(XState->L, 0, XState->S, lamf, _J_X, lamf)
*Clebsch(jf, lamf, 0, 0, XState->S, lamf)
*conj(theData->WignerDsDec[enumJpsiGamEtaPiPiDfunc::XTofEta][_J_X][lamX][lamf])
*conj(theData->WignerDsDec[enumJpsiGamEtaPiPiDfunc::fToPiPi][jf][lamf][0])
*BreitWignerBlattW(p4PiPi, _massPi, _massPi, fMass, fWidth, jf);
}
result+= amp;
}
return result;
}
complex<double> XDecAmpBase::XToAPiBWAmp(Spin lamX, Spin jA, EvtDataNew* theData,
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >& etaToAPiMag,
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >& etaToAPiPhi,
double aMass, double aWidth){
complex<double> result(0.,0.);
Vector4<double > p4EtaPiplus=theData->FourVecsDec[enumJpsiGamEtaPiPi4V::EtaPip_HeliPsi];
Vector4<double > p4EtaPiminus=theData->FourVecsDec[enumJpsiGamEtaPiPi4V::EtaPim_HeliPsi];
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >::iterator itXMag;
for ( itXMag=etaToAPiMag.begin(); itXMag!=etaToAPiMag.end(); ++itXMag){
boost::shared_ptr<const JPCLS> XState=itXMag->first;
double theXMag=itXMag->second;
double theXPhi=etaToAPiPhi[XState];
complex<double> expiphiX(cos(theXPhi), sin(theXPhi));
complex<double> amp(0.,0.);
for(Spin lamA = -jA; lamA <= jA; lamA++){
if(fabs(lamA)> _J_X || fabs(lamA)>XState->S) continue;
amp += theXMag*expiphiX*sqrt(2.*XState->L+1.)*sqrt(2.*jA+1.)
*Clebsch(XState->L, 0, XState->S, lamA, _J_X, lamA)
*Clebsch(jA, lamA, 0, 0, XState->S, lamA)
*( conj(theData->WignerDsDec[enumJpsiGamEtaPiPiDfunc::XToAplusPiminus][_J_X][lamX][lamA])
*BreitWignerBlattW(p4EtaPiplus, _massPi, _massEta, aMass, aWidth, jA)
*conj(theData->WignerDsDec[enumJpsiGamEtaPiPiDfunc::Aplus][jA][lamA][0])+
conj(theData->WignerDsDec[enumJpsiGamEtaPiPiDfunc::XToAminusPiplus][_J_X][lamX][lamA])
*BreitWignerBlattW(p4EtaPiminus, _massPi, _massEta, aMass, aWidth, jA)
*conj(theData->WignerDsDec[enumJpsiGamEtaPiPiDfunc::Aminus][jA][lamA][0])
);
}
result+= amp;
}
return result;
}
void XDecAmpBase::getDefaultParams(fitParamsNew& fitVal, fitParamsNew& fitErr){
if (_piPiEtaHyp){
std::vector< boost::shared_ptr<const JPCLS> > PiPiEtaStates;
if(_J_X==0) PiPiEtaStates=_theStatesPtr->EtaToa0PiStates();
else if(_J_X==1) PiPiEtaStates=_theStatesPtr->F1Toa0PiStates();
else if(_J_X==2) PiPiEtaStates=_theStatesPtr->Eta2Toa0PiStates();
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > currentMagValMap;
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > currentPhiValMap;
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > currentMagErrMap;
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > currentPhiErrMap;
std::vector< boost::shared_ptr<const JPCLS> >::const_iterator itLS;
for(itLS=PiPiEtaStates.begin(); itLS!=PiPiEtaStates.end(); ++itLS){
currentMagValMap[*itLS]=0.2;
currentPhiValMap[*itLS]=0.;
currentMagErrMap[*itLS]=0.8;
currentPhiErrMap[*itLS]=0.3;
}
fitVal.Mags[_piPiEtaKey]=currentMagValMap;
fitVal.Phis[_piPiEtaKey]=currentPhiValMap;
fitErr.Mags[_piPiEtaKey]=currentMagErrMap;
fitErr.Phis[_piPiEtaKey]=currentPhiErrMap;
}
if(_a980piHyp){
std::vector< boost::shared_ptr<const JPCLS> > a0PiStates;
if(_J_X==0) a0PiStates=_theStatesPtr->EtaToa0PiStates();
else if(_J_X==1) a0PiStates=_theStatesPtr->F1Toa0PiStates();
else if(_J_X==2) a0PiStates=_theStatesPtr->Eta2Toa0PiStates();
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > currentMagValMap;
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > currentPhiValMap;
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > currentMagErrMap;
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > currentPhiErrMap;
std::vector< boost::shared_ptr<const JPCLS> >::const_iterator itLS;
for(itLS=a0PiStates.begin(); itLS!=a0PiStates.end(); ++itLS){
currentMagValMap[*itLS]=0.2;
currentPhiValMap[*itLS]=0.;
currentMagErrMap[*itLS]=0.8;
currentPhiErrMap[*itLS]=0.3;
}
fitVal.Mags[_a980piKey]=currentMagValMap;
fitVal.Phis[_a980piKey]=currentPhiValMap;
fitErr.Mags[_a980piKey]=currentMagErrMap;
fitErr.Phis[_a980piKey]=currentPhiErrMap;
fitVal.Masses["a0_980"]=0.98;
fitErr.Masses["a0_980"]=0.03;
fitVal.gFactors["a0_980gPiEta"]=1.;
fitErr.gFactors["a0_980gPiEta"]=0.19;
fitVal.gFactors["a0_980gKK"]=1.;
fitErr.gFactors["a0_980gKK"]=0.19;
}
if(_sigmaEtaHyp){
std::vector< boost::shared_ptr<const JPCLS> > f0EtaStates;
if(_J_X==0) f0EtaStates=_theStatesPtr->EtaTof0EtaStates();
else if(_J_X==1) f0EtaStates=_theStatesPtr->F1Tof0EtaStates();
else if(_J_X==2) f0EtaStates=_theStatesPtr->Eta2Tof0EtaStates();
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > currentMagValMap;
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > currentPhiValMap;
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > currentMagErrMap;
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > currentPhiErrMap;
std::vector< boost::shared_ptr<const JPCLS> >::const_iterator itLS;
for(itLS=f0EtaStates.begin(); itLS!=f0EtaStates.end(); ++itLS){
currentMagValMap[*itLS]=0.2;
currentPhiValMap[*itLS]=0.;
currentMagErrMap[*itLS]=0.8;
currentPhiErrMap[*itLS]=0.3;
}
fitVal.Mags[_sigmaEtaKey]=currentMagValMap;
fitVal.Phis[_sigmaEtaKey]=currentPhiValMap;
fitErr.Mags[_sigmaEtaKey]=currentMagErrMap;
fitErr.Phis[_sigmaEtaKey]=currentPhiErrMap;
fitVal.Masses["sigma"]=0.475;
fitErr.Masses["sigma"]=0.015;
fitVal.Widths["sigma"]=0.550;
fitErr.Widths["sigma"]=0.03;
}
if(_f980etaHyp){
std::vector< boost::shared_ptr<const JPCLS> > f0EtaStates;
if(_J_X==0) f0EtaStates=_theStatesPtr->EtaTof0EtaStates();
else if(_J_X==1) f0EtaStates=_theStatesPtr->F1Tof0EtaStates();
else if(_J_X==2) f0EtaStates=_theStatesPtr->Eta2Tof0EtaStates();
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > currentMagValMap;
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > currentPhiValMap;
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > currentMagErrMap;
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > currentPhiErrMap;
std::vector< boost::shared_ptr<const JPCLS> >::const_iterator itLS;
for(itLS=f0EtaStates.begin(); itLS!=f0EtaStates.end(); ++itLS){
currentMagValMap[*itLS]=0.2;
currentPhiValMap[*itLS]=0.;
currentMagErrMap[*itLS]=0.8;
currentPhiErrMap[*itLS]=0.3;
}
fitVal.Mags[_f980etaKey]=currentMagValMap;
fitVal.Phis[_f980etaKey]=currentPhiValMap;
fitErr.Mags[_f980etaKey]=currentMagErrMap;
fitErr.Phis[_f980etaKey]=currentPhiErrMap;
fitVal.Masses["f0_980"]=0.98;
fitErr.Masses["f0_980"]=0.03;
fitVal.gFactors["f0_980gPiPi"]=0.7;
fitErr.gFactors["f0_980gPiPi"]=0.2;
fitVal.gFactors["f0_980gKK"]=1.2;
fitErr.gFactors["f0_980gKK"]=0.2;
}
if(_a2_1320piHyp){
std::vector< boost::shared_ptr<const JPCLS> > a2PiStates;
if(_J_X==0) a2PiStates=_theStatesPtr->EtaToa2PiStates();
else if(_J_X==1) a2PiStates=_theStatesPtr->F1Toa2PiStates();
else if(_J_X==2) a2PiStates=_theStatesPtr->Eta2Toa2PiStates();
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > currentMagValMap;
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > currentPhiValMap;
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > currentMagErrMap;
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > currentPhiErrMap;
std::vector< boost::shared_ptr<const JPCLS> >::const_iterator itLS;
for(itLS=a2PiStates.begin(); itLS!=a2PiStates.end(); ++itLS){
currentMagValMap[*itLS]=0.2;
currentPhiValMap[*itLS]=0.;
currentMagErrMap[*itLS]=0.8;
currentPhiErrMap[*itLS]=0.3;
}
fitVal.Mags[_a2_1320piKey]=currentMagValMap;
fitVal.Phis[_a2_1320piKey]=currentPhiValMap;
fitErr.Mags[_a2_1320piKey]=currentMagErrMap;
fitErr.Phis[_a2_1320piKey]=currentPhiErrMap;
fitVal.Masses["a2_1320"]=1.32;
fitErr.Masses["a2_1320"]=0.02;
fitVal.Widths["a2_1320"]=0.1;
fitErr.Widths["a2_1320"]=0.02;
}
if(_f2_1270etaHyp){
std::vector< boost::shared_ptr<const JPCLS> > f2EtaStates;
if(_J_X==0) f2EtaStates=_theStatesPtr->EtaTof2EtaStates();
else if(_J_X==1) f2EtaStates=_theStatesPtr->F1Tof2EtaStates();
else if(_J_X==2) f2EtaStates=_theStatesPtr->Eta2Tof2EtaStates();
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > currentMagValMap;
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > currentPhiValMap;
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > currentMagErrMap;
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > currentPhiErrMap;
std::vector< boost::shared_ptr<const JPCLS> >::const_iterator itLS;
for(itLS=f2EtaStates.begin(); itLS!=f2EtaStates.end(); ++itLS){
currentMagValMap[*itLS]=0.2;
currentPhiValMap[*itLS]=0.;
currentMagErrMap[*itLS]=0.8;
currentPhiErrMap[*itLS]=0.3;
}
fitVal.Mags[_f2_1270etaKey]=currentMagValMap;
fitVal.Phis[_f2_1270etaKey]=currentPhiValMap;
fitErr.Mags[_f2_1270etaKey]=currentMagErrMap;
fitErr.Phis[_f2_1270etaKey]=currentPhiErrMap;
fitVal.Masses["f2_1270"]=1.27;
fitErr.Masses["f2_1270"]=0.02;
fitVal.Widths["f2_1270"]=0.185;
fitErr.Widths["f2_1270"]=0.02;
}
if (!_massIndependent){
size_t pos=_name.find("_");
std::string massMeVString=_name.substr(pos+1);
stringstream massMeVStrStream(massMeVString);
int MassMeV;
massMeVStrStream >> MassMeV;
double MassGeV= ( (double) MassMeV)/1000.;
fitVal.Masses[_name]=MassGeV;
fitErr.Masses[_name]=0.01;
fitVal.Widths[_name]=0.2;
fitErr.Widths[_name]=0.02;
}
}
void XDecAmpBase::print(std::ostream& os) const{
return; //dummy
}
void XDecAmpBase::initialize(){
std::vector<std::string>::const_iterator it;
for (it=_hypVec.begin(); it!=_hypVec.end(); ++it){
if (it->compare(0, _piPiEtaKey.size(), _piPiEtaKey)== 0){
Info << "hypothesis\t" << _piPiEtaKey << "\t enabled" << endmsg;
_piPiEtaHyp=true;
}
if (it->compare(0, _a980piKey.size(), _a980piKey)== 0){
Info << "hypothesis\t" << _a980piKey << "\t enabled" << endmsg;
_a980piHyp=true;
}
else if (it->compare(0, _sigmaEtaKey.size(), _sigmaEtaKey)== 0){
Info << "hypothesis\t" << _sigmaEtaKey << "\t enabled" << endmsg;
_sigmaEtaHyp=true;
}
else if (it->compare(0, _f980etaKey.size(), _f980etaKey)== 0){
Info << "hypothesis\t" << _f980etaKey << "\t enabled" << endmsg;
_f980etaHyp=true;
}
else if (it->compare(0, _a2_1320piKey.size(), _a2_1320piKey)== 0){
Info << "hypothesis\t" << _a2_1320piKey << "\t enabled" << endmsg;
_a2_1320piHyp=true;
}
else if (it->compare(0, _f2_1270etaKey.size(), _f2_1270etaKey)== 0){
Info << "hypothesis\t" << _f2_1270etaKey << "\t enabled" << endmsg;
_f2_1270etaHyp=true;
}
else if (it->compare(0, _xBWKey.size(), _xBWKey) ==0){
_massIndependent=false;
}
}
}