#include <getopt.h> #include <fstream> #include <string> #include "Examples/JpsiGamKsKlKK/JpsiGamKsKlKKProdLh.hh" #include "Examples/JpsiGamKsKlKK/JpsiGamKsKlKKEventList.hh" #include "Examples/JpsiGamKsKlKK/JpsiGamKsKlKKFitParams.hh" #include "ErrLogger/ErrLogger.hh" JpsiGamKsKlKKProdLh::JpsiGamKsKlKKProdLh(boost::shared_ptr<const EvtDataBaseList> theEvtList, const std::map<const std::string, bool>& hypMap) : AbsLh(theEvtList) ,_eta2225Hyp(true) ,_f02020Hyp(true) ,_f02020FlatteHyp(true) ,_f22300Hyp(true) { initializeHypothesisMap( hypMap); } JpsiGamKsKlKKProdLh::JpsiGamKsKlKKProdLh( boost::shared_ptr<AbsLh> theLhPtr, const std::map<const std::string, bool>& hypMap ) : AbsLh(theLhPtr->getEventList()) ,_eta2225Hyp(true) ,_f02020Hyp(true) ,_f02020FlatteHyp(true) ,_f22300Hyp(true) { initializeHypothesisMap( hypMap); } JpsiGamKsKlKKProdLh::~JpsiGamKsKlKKProdLh() {; } double JpsiGamKsKlKKProdLh::calcEvtIntensity(EvtData* theData, fitParams& theParamVal){ double result=0.; Vector4<double> fvKsKlKpKm = theData->FourVecs[enumJpsiGamKsKlKKData::V4_KsKlKpKm_HeliPsi]; std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > PsiToEtacGamMag=theParamVal.Mags[paramEnumJpsiGamKsKlKK::PsiToEtacGamma]; std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > PsiToEtacGamPhi=theParamVal.Phis[paramEnumJpsiGamKsKlKK::PsiToEtacGamma]; double mass = theParamVal.Masses[paramEnumJpsiGamKsKlKK::etac]; double width = theParamVal.Widths[paramEnumJpsiGamKsKlKK::etac]; complex<double> JmpGmp=etaGammaAmp(1, 0, 1, theData, PsiToEtacGamMag, PsiToEtacGamPhi, mass, width ); complex<double> JmpGmm=etaGammaAmp(1, 0, -1, theData, PsiToEtacGamMag, PsiToEtacGamPhi, mass, width ); complex<double> JmmGmp=etaGammaAmp(-1, 0, 1, theData, PsiToEtacGamMag, PsiToEtacGamPhi, mass, width ); complex<double> JmmGmm=etaGammaAmp(-1, 0, -1, theData, PsiToEtacGamMag, PsiToEtacGamPhi, mass, width ); if (_eta2225Hyp){ std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > PsiToEta2225GamMag=theParamVal.Mags[paramEnumJpsiGamKsKlKK::PsiToEta2225Gamma]; std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > PsiToEta2225GamPhi=theParamVal.Phis[paramEnumJpsiGamKsKlKK::PsiToEta2225Gamma]; mass = theParamVal.Masses[paramEnumJpsiGamKsKlKK::eta2225]; width = theParamVal.Widths[paramEnumJpsiGamKsKlKK::eta2225]; JmpGmp+=etaGammaAmp(1, 0, 1, theData, PsiToEta2225GamMag, PsiToEta2225GamPhi, mass, width ); JmpGmm+=etaGammaAmp(1, 0, -1, theData, PsiToEta2225GamMag, PsiToEta2225GamPhi, mass, width ); JmmGmp+=etaGammaAmp(-1, 0, 1, theData, PsiToEta2225GamMag, PsiToEta2225GamPhi, mass, width ); JmmGmm+=etaGammaAmp(-1, 0, -1, theData, PsiToEta2225GamMag, PsiToEta2225GamPhi, mass, width ); } if (_f02020Hyp || _f02020FlatteHyp ){ std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > PsiTof02020GamMag=theParamVal.Mags[paramEnumJpsiGamKsKlKK::PsiToF02020Gamma]; std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > PsiTof02020GamPhi=theParamVal.Phis[paramEnumJpsiGamKsKlKK::PsiToF02020Gamma]; std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > F02020ToPhiPhiMag=theParamVal.Mags[paramEnumJpsiGamKsKlKK::F02020ToPhiPhi]; std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > F02020ToPhiPhiPhi=theParamVal.Phis[paramEnumJpsiGamKsKlKK::F02020ToPhiPhi]; complex<double> dynamicPart(0.,0.); Vector4<double> fv2Phi = theData->FourVecs[enumJpsiGamKsKlKKData::V4_KsKlKpKm_HeliPsi]; mass = theParamVal.Masses[paramEnumJpsiGamKsKlKK::f02020]; if( _f02020FlatteHyp ){ double gKK = theParamVal.gFactors[paramEnumJpsiGamKsKlKK::f02020gKK]; double gPhiPhi = theParamVal.gFactors[paramEnumJpsiGamKsKlKK::f02020gPhiPhi]; const double phiMass = 1.019455; const double kaonMass = 0.493677; std::pair <const double, const double> kkPair=make_pair(kaonMass, kaonMass); std::pair <const double, const double> phiphiPair=make_pair(phiMass, phiMass); dynamicPart = Flatte( fv2Phi , phiphiPair, kkPair, mass, gPhiPhi, gKK ); } else{ width = theParamVal.Widths[paramEnumJpsiGamKsKlKK::f02020]; dynamicPart = BreitWigner( fv2Phi, mass, width); } JmpGmp+=f0GammaAmp(1, 1, theData, PsiTof02020GamMag, PsiTof02020GamPhi,F02020ToPhiPhiMag,F02020ToPhiPhiPhi ) * dynamicPart; JmpGmm+=f0GammaAmp(1, -1, theData, PsiTof02020GamMag, PsiTof02020GamPhi,F02020ToPhiPhiMag,F02020ToPhiPhiPhi ) * dynamicPart; JmmGmp+=f0GammaAmp(-1, 1, theData, PsiTof02020GamMag, PsiTof02020GamPhi,F02020ToPhiPhiMag,F02020ToPhiPhiPhi ) * dynamicPart; JmmGmm+=f0GammaAmp(-1, -1, theData, PsiTof02020GamMag, PsiTof02020GamPhi,F02020ToPhiPhiMag,F02020ToPhiPhiPhi ) * dynamicPart; } if (_f22300Hyp){ std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > PsiTof2GamMag=theParamVal.Mags[paramEnumJpsiGamKsKlKK::PsiToF22300Gamma]; std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > PsiTof2GamPhi=theParamVal.Phis[paramEnumJpsiGamKsKlKK::PsiToF22300Gamma]; std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > F2ToPhiPhiMag=theParamVal.Mags[paramEnumJpsiGamKsKlKK::F22300ToPhiPhi]; std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > F2ToPhiPhiPhi=theParamVal.Phis[paramEnumJpsiGamKsKlKK::F22300ToPhiPhi]; mass = theParamVal.Masses[paramEnumJpsiGamKsKlKK::f22300]; width = theParamVal.Widths[paramEnumJpsiGamKsKlKK::f22300]; JmpGmp+=f2GammaAmp(1, 1, theData, PsiTof2GamMag, PsiTof2GamPhi,F2ToPhiPhiMag,F2ToPhiPhiPhi,mass,width ); JmpGmp+=f2GammaAmp(1, -1, theData, PsiTof2GamMag, PsiTof2GamPhi,F2ToPhiPhiMag,F2ToPhiPhiPhi,mass,width ); JmpGmp+=f2GammaAmp(-1, 1, theData, PsiTof2GamMag, PsiTof2GamPhi,F2ToPhiPhiMag,F2ToPhiPhiPhi,mass,width ); JmpGmp+=f2GammaAmp(-1, -1, theData, PsiTof2GamMag, PsiTof2GamPhi,F2ToPhiPhiMag,F2ToPhiPhiPhi,mass,width ); } result=norm(JmpGmp)+norm(JmpGmm)+norm(JmmGmp)+norm(JmmGmm); return result; } complex<double> JpsiGamKsKlKKProdLh::calcCoherentAmp(Spin Minit, Spin lamGam, fitParams& theParamVal, EvtData* theData){ complex<double> dummyresult(0.,0.); return dummyresult; } complex<double> JpsiGamKsKlKKProdLh::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){ complex<double> result(0.,0.); Vector4<double> fv2Phi = theData->FourVecs[enumJpsiGamKsKlKKData::V4_KsKlKpKm_HeliPsi]; std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >::iterator itPsi; for ( itPsi=PsiToEtaMag.begin(); itPsi!=PsiToEtaMag.end(); ++itPsi){ boost::shared_ptr<const JPCLS> PsiState=itPsi->first; double thePsiMag=itPsi->second; double thePsiPhi=PsiToEtaPhi[PsiState]; complex<double> expiphiPsi(cos(thePsiPhi), sin(thePsiPhi)); Spin lambda = Metac-Mgamma; if( fabs(lambda)>PsiState->J || fabs(lambda)>PsiState->S) continue; complex<double> amp = thePsiMag*expiphiPsi*sqrt(2*PsiState->L+1) *Clebsch(PsiState->L, 0, PsiState->S, lambda, PsiState->J, lambda) *Clebsch(0, Metac, 1, -Mgamma, PsiState->S, lambda ) *conj( theData->WignerDs[enumJpsiGamKsKlKKData::Df_Psi][PsiState->J][Minit][lambda] ); result+= amp; } result*=BreitWigner( fv2Phi, mass, width)*etaToPhiPhiTo4KAmp(theData); return result; } complex<double> JpsiGamKsKlKKProdLh::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 ){ complex<double> result(0.,0.); Spin f0Spin=0; //Vector4<double> fv2Phi= theData->FourVecs[enumJpsiGamKsKlKKData::V4_KsKlKpKm_HeliPsi]; std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >::iterator itPsi; for ( itPsi=ampf0ProdMag.begin(); itPsi!=ampf0ProdMag.end(); ++itPsi){ boost::shared_ptr<const JPCLS> PsiState=itPsi->first; double thePsiMag=itPsi->second; double thePsiPhi=ampf0ProdPhi[PsiState]; complex<double> expiphiPsi(cos(thePsiPhi), sin(thePsiPhi)); Spin lambda = f0Spin-Mgamma; if( fabs(lambda)>PsiState->J || fabs(lambda)>PsiState->S) continue; complex<double> amp = thePsiMag*expiphiPsi*sqrt(2*PsiState->L+1) *Clebsch(PsiState->L, 0, PsiState->S, lambda, PsiState->J, lambda) *Clebsch(0, f0Spin, 1, -Mgamma, PsiState->S, lambda ) *conj( theData->WignerDs[enumJpsiGamKsKlKKData::Df_Psi][PsiState->J][Minit][lambda] ); result+= amp; } //result*=BreitWigner( fv2Phi, mass, width)*f0ToPhiPhiTo4KAmp(theData, ampf0DecMag,ampf0DecPhi ); result*=f0ToPhiPhiTo4KAmp(theData, ampf0DecMag,ampf0DecPhi ); return result; } complex<double> JpsiGamKsKlKKProdLh::etaToPhiPhiTo4KAmp(EvtData* theData){ complex<double> result(0.,0.); for (Spin lambdaPhi=-1; lambdaPhi<1; lambdaPhi++){ result+=Clebsch(1, lambdaPhi, 1, -lambdaPhi, 1, 0)*3.*conj(theData->WignerDs[enumJpsiGamKsKlKKData::Df_KsKl][1][lambdaPhi][0])*conj(theData->WignerDs[enumJpsiGamKsKlKKData::Df_KpKm][1][lambdaPhi][0]); //Clebsch(1, lambdaPhi, 1, -lambdaPhi, 1, 0): jj-coupling mother->phi phi; 3=sqrt(2L+1)*sqrt(2L+1) Cls=1 } return result; } complex<double> JpsiGamKsKlKKProdLh::f0ToPhiPhiTo4KAmp(EvtData* theData, std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > &f0DecMag , std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > &f0DecPhi ){ complex<double> result(0.,0.); std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >::iterator itf0; for ( itf0=ampf0DecMag.begin(); itf0!=ampf0DecMag.end(); ++itf0){ boost::shared_ptr<const JPCLS> f0ToPhiPhiState=itf0->first; double theMag=itf0->second; double thePhi=ampf0DecPhi[f0ToPhiPhiState]; complex<double> expiphi(cos(thePhi), sin(thePhi)); complex<double> tmp2PhiDecAmp(0.,0.); for (Spin lambdaPhi1=-1; lambdaPhi1<1; lambdaPhi1++){ Spin lambdaPhi2=lambdaPhi1; tmp2PhiDecAmp+=Clebsch(1, lambdaPhi1, 1, -lambdaPhi2, f0ToPhiPhiState->S, lambdaPhi1-lambdaPhi2) *3.*conj(theData->WignerDs[enumJpsiGamKsKlKKData::Df_KsKl][1][lambdaPhi1][0])*conj(theData->WignerDs[enumJpsiGamKsKlKKData::Df_KpKm][1][lambdaPhi2][0]); //3=sqrt(2L+1)*sqrt(2L+1) Cls=1 } result+= theMag*expiphi*sqrt(2*f0ToPhiPhiState->L+1)*tmp2PhiDecAmp; } return result; } complex<double> JpsiGamKsKlKKProdLh::f2GammaAmp(Spin Minit, Spin Mgamma, EvtData* theData, std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >& ampf2ProdMag, std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >& ampf2ProdPhi, std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >& ampf2DecMag, std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >& ampf2DecPhi, double mass, double width ){ complex<double> result(0.,0.); Vector4<double> fv2Phi= theData->FourVecs[enumJpsiGamKsKlKKData::V4_KsKlKpKm_HeliPsi]; std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >::iterator itPsi; for ( itPsi=ampf2ProdMag.begin(); itPsi!=ampf2ProdMag.end(); ++itPsi){ boost::shared_ptr<const JPCLS> PsiState=itPsi->first; double thePsiMag=itPsi->second; double thePsiPhi=ampf2ProdPhi[PsiState]; complex<double> expiphiPsi(cos(thePsiPhi), sin(thePsiPhi)); for(Spin f2Lambda=-2;f2Lambda<=2; f2Lambda++){ Spin lambda = f2Lambda-Mgamma; if( fabs(lambda)>PsiState->J || fabs(lambda)>PsiState->S) continue; complex<double> amp = thePsiMag*expiphiPsi*sqrt(2*PsiState->L+1) *Clebsch(PsiState->L, 0, PsiState->S, lambda, PsiState->J, lambda) *Clebsch(2, f2Lambda, 1, -Mgamma, PsiState->S, lambda ) *conj( theData->WignerDs[enumJpsiGamKsKlKKData::Df_Psi][PsiState->J][Minit][lambda] ); amp=amp*f2ToPhiPhiTo4KAmp(theData, f2Lambda, ampf2DecMag,ampf2DecPhi ); result+= amp; } } result*=BreitWigner( fv2Phi, mass, width); return result; } complex<double> JpsiGamKsKlKKProdLh::f2ToPhiPhiTo4KAmp( EvtData* theData, Spin f2Lambda, std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > &f2DecMag , std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > &f2DecPhi ){ complex<double> result(0.,0.); std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >::iterator itf2; for ( itf2=ampf2DecMag.begin(); itf2!=ampf2DecMag.end(); ++itf2){ boost::shared_ptr<const JPCLS> f2State=itf2->first; double theMag=itf2->second; double thePhi=ampf2DecPhi[f2State]; complex<double> expiphi(cos(thePhi), sin(thePhi)); for(Spin lambdaPhi1=-1; lambdaPhi1<=1; lambdaPhi1++){ for(Spin lambdaPhi2=-1; lambdaPhi2<=1; lambdaPhi2++){ Spin lambda = lambdaPhi1-lambdaPhi2; if( fabs(lambda)>f2State->J || fabs(lambda)>f2State->S) continue; complex<double> amp = theMag*expiphi*sqrt(2*f2State->L+1) *Clebsch(f2State->L, 0, f2State->S, lambda, f2State->J, lambda) *Clebsch(1, lambdaPhi1, 1, -lambdaPhi2, f2State->S, lambda ) *conj( theData->WignerDs[enumJpsiGamKsKlKKData::Df_Spin2][f2State->J][f2Lambda][lambda] ); amp = amp * phiphiTo4KAmp( theData, lambdaPhi1, lambdaPhi2 ); result +=amp; } } } return result; } complex<double> JpsiGamKsKlKKProdLh::phiphiTo4KAmp( EvtData* theData, Spin lambdaPhi1, Spin lambdaPhi2 ){ complex<double> result(0.,0.); result = 3. * conj(theData->WignerDs[enumJpsiGamKsKlKKData::Df_KsKl][1][lambdaPhi1][0]) * conj(theData->WignerDs[enumJpsiGamKsKlKKData::Df_KpKm][1][lambdaPhi2][0]); return result; } void JpsiGamKsKlKKProdLh::print(std::ostream& os) const{ os << "JpsiGamKsKlKKProdLh::print\n"; } void JpsiGamKsKlKKProdLh::getDefaultParams(fitParams& fitVal, fitParams& fitErr){ JpsiGamKsKlKKFitParams theFitParams; std::map<int, std::vector< boost::shared_ptr<const JPCLS> > > theAmpMap; theAmpMap[paramEnumJpsiGamKsKlKK::PsiToEtacGamma] = theFitParams.jpclsVec(paramEnumJpsiGamKsKlKK::PsiToEtacGamma); if(_eta2225Hyp){ theAmpMap[paramEnumJpsiGamKsKlKK::PsiToEta2225Gamma] = theFitParams.jpclsVec(paramEnumJpsiGamKsKlKK::PsiToEta2225Gamma); } if(_f02020Hyp || _f02020FlatteHyp ){ theAmpMap[paramEnumJpsiGamKsKlKK::PsiToF02020Gamma] = theFitParams.jpclsVec(paramEnumJpsiGamKsKlKK::PsiToF02020Gamma); theAmpMap[paramEnumJpsiGamKsKlKK::F02020ToPhiPhi] = theFitParams.jpclsVec(paramEnumJpsiGamKsKlKK::F02020ToPhiPhi); } if(_f22300Hyp){ theAmpMap[paramEnumJpsiGamKsKlKK::PsiToF22300Gamma] = theFitParams.jpclsVec(paramEnumJpsiGamKsKlKK::PsiToF22300Gamma); theAmpMap[paramEnumJpsiGamKsKlKK::F22300ToPhiPhi] = theFitParams.jpclsVec(paramEnumJpsiGamKsKlKK::F22300ToPhiPhi); } std::map<int, std::vector< boost::shared_ptr<const JPCLS> > >::iterator itAmpMap; for (itAmpMap=theAmpMap.begin(); itAmpMap!=theAmpMap.end(); ++itAmpMap){ std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > valMagMap; std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > errMagMap; std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > valPhiMap; std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > errPhiMap; std::vector< boost::shared_ptr<const JPCLS> >::iterator itAmp; for (itAmp=itAmpMap->second.begin(); itAmp!=itAmpMap->second.end(); ++itAmp){ valMagMap[(*itAmp)]=0.6; errMagMap[(*itAmp)]=0.3; valPhiMap[(*itAmp)]=0.; errPhiMap[(*itAmp)]=0.2; } fitVal.Mags[itAmpMap->first]=valMagMap; fitVal.Phis[itAmpMap->first]=valPhiMap; fitErr.Mags[itAmpMap->first]=errMagMap; fitErr.Phis[itAmpMap->first]=errPhiMap; } //fill masses and wisths fitVal.Masses[paramEnumJpsiGamKsKlKK::etac]=2.95; fitErr.Masses[paramEnumJpsiGamKsKlKK::etac]=0.05; fitVal.Widths[paramEnumJpsiGamKsKlKK::etac]=.06; fitErr.Widths[paramEnumJpsiGamKsKlKK::etac]=0.03; if(_eta2225Hyp){ fitVal.Masses[paramEnumJpsiGamKsKlKK::eta2225]=2.225; fitErr.Masses[paramEnumJpsiGamKsKlKK::eta2225]=0.3; fitVal.Widths[paramEnumJpsiGamKsKlKK::eta2225]=.3; fitErr.Widths[paramEnumJpsiGamKsKlKK::eta2225]=0.1; } if(_f02020Hyp){ fitVal.Masses[paramEnumJpsiGamKsKlKK::f02020]=2.020; fitErr.Masses[paramEnumJpsiGamKsKlKK::f02020]=0.3; fitVal.Widths[paramEnumJpsiGamKsKlKK::f02020]=.30; fitErr.Widths[paramEnumJpsiGamKsKlKK::f02020]=0.1; } if(_f02020FlatteHyp){ fitVal.Masses[paramEnumJpsiGamKsKlKK::f02020]=2.020; fitErr.Masses[paramEnumJpsiGamKsKlKK::f02020]=0.3; fitVal.gFactors[paramEnumJpsiGamKsKlKK::f02020gKK]=.30; fitErr.gFactors[paramEnumJpsiGamKsKlKK::f02020gKK]=0.1; fitVal.gFactors[paramEnumJpsiGamKsKlKK::f02020gPhiPhi]=.7; fitErr.gFactors[paramEnumJpsiGamKsKlKK::f02020gPhiPhi]=0.3; } if(_f22300Hyp){ fitVal.Masses[paramEnumJpsiGamKsKlKK::f22300]=2.186; fitErr.Masses[paramEnumJpsiGamKsKlKK::f22300]=0.3; fitVal.Widths[paramEnumJpsiGamKsKlKK::f22300]=.55; fitErr.Widths[paramEnumJpsiGamKsKlKK::f22300]=0.4; } } bool JpsiGamKsKlKKProdLh::initializeHypothesisMap( const std::map<const std::string, bool>& hypMap ){ std::map<const std::string, bool>::const_iterator iter= hypMap.find("eta2225Hyp"); if (iter !=hypMap.end()){ _eta2225Hyp= iter->second; Info<< "hypothesis " << iter->first << "\t" << _eta2225Hyp <<endmsg; _hypMap[iter->first]= iter->second; } else Alert << "hypothesis eta2225Hyp not set!!!" <<endmsg; iter= hypMap.find("f02020Hyp"); if (iter !=hypMap.end()){ _f02020Hyp= iter->second; Info<< "hypothesis " << iter->first << "\t" << _f02020Hyp <<endmsg; _hypMap[iter->first]= iter->second; } else Alert << "hypothesis f02020Hyp not set!!!" <<endmsg; iter= hypMap.find("f02020FlatteHyp"); if (iter !=hypMap.end()){ _f02020FlatteHyp= iter->second; Info<< "hypothesis " << iter->first << "\t" << _f02020FlatteHyp <<endmsg; _hypMap[iter->first]= iter->second; } else Alert << "hypothesis f02020FlatteHyp not set!!!" <<endmsg; iter= hypMap.find("f22300Hyp"); if (iter !=hypMap.end()){ _f22300Hyp= iter->second; Info<< "hypothesis " << iter->first << "\t" << _f22300Hyp <<endmsg; _hypMap[iter->first]= iter->second; } else Alert << "hypothesis f22300Hyp not set!!!" <<endmsg; return true; }