Skip to content
Snippets Groups Projects
Commit 6894f4ac authored by Marc Pelizaeus's avatar Marc Pelizaeus
Browse files

Add mass indep. fits

parent 5575e700
No related branches found
No related tags found
No related merge requests found
...@@ -61,159 +61,41 @@ double JpsiGamKsKlKKProdLh::calcEvtIntensity(EvtData* theData, fitParams& thePar ...@@ -61,159 +61,41 @@ double JpsiGamKsKlKKProdLh::calcEvtIntensity(EvtData* theData, fitParams& thePar
double result=0.; double result=0.;
Vector4<double> fv2Phi = theData->FourVecs[enumJpsiGamKsKlKKData::V4_KsKlKpKm_HeliPsi];
complex<double> JmpGmp(0.,0.); complex<double> JmpGmp(0.,0.);
complex<double> JmpGmm(0.,0.); complex<double> JmpGmm(0.,0.);
complex<double> JmmGmp(0.,0.); complex<double> JmmGmp(0.,0.);
complex<double> JmmGmm(0.,0.); complex<double> JmmGmm(0.,0.);
if(_massIndependentFit){ if(_massIndependentFit){
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > etaMag=theParamVal.Mags[paramEnumJpsiGamKsKlKK::PsiToEtacGamma];
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > etaPhi=theParamVal.Phis[paramEnumJpsiGamKsKlKK::PsiToEtacGamma]; if(_etacHyp) calcEtacGammaAmp(theData, theParamVal, JmpGmp,JmpGmm, JmmGmp,JmmGmm,dynamicModelParams::MassIndependent );
JmpGmp+=etaGammaAmp(1, 0, 1, theData, etaMag, etaPhi ); if(_f02020Hyp) calcF02020Amp( theData, theParamVal, JmpGmp,JmpGmm, JmmGmp,JmmGmm, dynamicModelParams::MassIndependent );
JmpGmm+=etaGammaAmp(1, 0, -1, theData, etaMag, etaPhi ); if(_f22300Hyp) calcF22300Amp( theData, theParamVal, JmpGmp,JmpGmm, JmmGmp,JmmGmm, dynamicModelParams::MassIndependent);
JmmGmp+=etaGammaAmp(-1, 0, 1, theData, etaMag, etaPhi ); if(_eta21870Hyp) calcE21870Amp(theData, theParamVal, JmpGmp,JmpGmm, JmmGmp,JmmGmm, dynamicModelParams::MassIndependent);
JmmGmm+=etaGammaAmp(-1, 0, -1, theData, etaMag, etaPhi ); if(_f1Hyp) calcF1Amp(theData, theParamVal, JmpGmp,JmpGmm, JmmGmp,JmmGmm, dynamicModelParams::MassIndependent);
result=norm(JmpGmp)+norm(JmpGmm)+norm(JmmGmp)+norm(JmmGmm); result=norm(JmpGmp)+norm(JmpGmm)+norm(JmmGmp)+norm(JmmGmm);
return result; return result;
} }
//
//dynamic is parameterized by Breit-Wigner or Flatte
//
if(_etacHyp) calcEtacGammaAmp(theData, theParamVal, JmpGmp,JmpGmm, JmmGmp,JmmGmm,dynamicModelParams::BreitWigner );
if(_eta2225Hyp) calcEta2225Amp(theData, theParamVal, JmpGmp,JmpGmm, JmmGmp,JmmGmm,dynamicModelParams::BreitWigner );
if(_f02020Hyp) calcF02020Amp( theData, theParamVal, JmpGmp,JmpGmm, JmmGmp,JmmGmm, dynamicModelParams::BreitWigner );
if(_f02020FlatteHyp ) calcF02020Amp( theData, theParamVal, JmpGmp,JmpGmm, JmmGmp,JmmGmm, dynamicModelParams::Flatte );
if(_f22300Hyp) calcF22300Amp( theData, theParamVal, JmpGmp,JmpGmm, JmmGmp,JmmGmm, dynamicModelParams::BreitWigner);
if(_eta21870Hyp) calcE21870Amp(theData, theParamVal, JmpGmp,JmpGmm, JmmGmp,JmmGmm, dynamicModelParams::BreitWigner);
if(_f1Hyp) calcF1Amp(theData, theParamVal, JmpGmp,JmpGmm, JmmGmp,JmmGmm, dynamicModelParams::BreitWigner);
if(_etacHyp){ result=norm(JmpGmp)+norm(JmpGmm)+norm(JmmGmp)+norm(JmmGmm);
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > PsiToEtacGamMag=theParamVal.Mags[paramEnumJpsiGamKsKlKK::PsiToEtacGamma]; if(_usePhasespace){
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > PsiToEtacGamPhi=theParamVal.Phis[paramEnumJpsiGamKsKlKK::PsiToEtacGamma]; result = result + theParamVal.otherParams[paramEnumJpsiGamKsKlKK::phaseSpace];
double mass = theParamVal.Masses[paramEnumJpsiGamKsKlKK::etac];
double width = theParamVal.Widths[paramEnumJpsiGamKsKlKK::etac];
complex<double> theDynamicPart = BreitWigner(fv2Phi, mass, width);
//complex<double> theDynamicPart = BreitWignerBlattW(fv2Phi, _phiMass, _phiMass, mass, width, 1);
JmpGmp+=etaGammaAmp(1, 0, 1, theData, PsiToEtacGamMag, PsiToEtacGamPhi )*theDynamicPart;
JmpGmm+=etaGammaAmp(1, 0, -1, theData, PsiToEtacGamMag, PsiToEtacGamPhi )*theDynamicPart;
JmmGmp+=etaGammaAmp(-1, 0, 1, theData, PsiToEtacGamMag, PsiToEtacGamPhi )*theDynamicPart;
JmmGmm+=etaGammaAmp(-1, 0, -1, theData, PsiToEtacGamMag, PsiToEtacGamPhi )*theDynamicPart;
}
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];
double mass = theParamVal.Masses[paramEnumJpsiGamKsKlKK::eta2225];
double width = theParamVal.Widths[paramEnumJpsiGamKsKlKK::eta2225];
complex<double> theDynamicPart = BreitWigner(fv2Phi, mass, width);
//complex<double> theDynamicPart = BreitWignerBlattW(fv2Phi, _phiMass, _phiMass, mass, width, 1);
JmpGmp+=etaGammaAmp(1, 0, 1, theData, PsiToEta2225GamMag, PsiToEta2225GamPhi )*theDynamicPart;
JmpGmm+=etaGammaAmp(1, 0, -1, theData, PsiToEta2225GamMag, PsiToEta2225GamPhi )*theDynamicPart;
JmmGmp+=etaGammaAmp(-1, 0, 1, theData, PsiToEta2225GamMag, PsiToEta2225GamPhi )*theDynamicPart;
JmmGmm+=etaGammaAmp(-1, 0, -1, theData, PsiToEta2225GamMag, PsiToEta2225GamPhi )*theDynamicPart;
}
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];
dynamicModelParams theDynModel;
double mass = theParamVal.Masses[paramEnumJpsiGamKsKlKK::f02020];
if( _f02020FlatteHyp ){
double gKK = theParamVal.gFactors[paramEnumJpsiGamKsKlKK::f02020gKK];
double gPhiPhi = theParamVal.gFactors[paramEnumJpsiGamKsKlKK::f02020gPhiPhi];
initializeFlatteModel( theDynModel, fv2Phi, mass, gPhiPhi, gKK );
}else if( _f02020Hyp ){
double width = theParamVal.Widths[paramEnumJpsiGamKsKlKK::f02020];
initializeBreitWignerModel( theDynModel, fv2Phi, mass, width, dynamicModelParams::BreitWigner );
}
JmpGmp+=f0GammaAmp(1, 1, theData, PsiTof02020GamMag, PsiTof02020GamPhi,F02020ToPhiPhiMag,F02020ToPhiPhiPhi,_useCommonProductionPhase, theDynModel );
JmpGmm+=f0GammaAmp(1, -1, theData, PsiTof02020GamMag, PsiTof02020GamPhi,F02020ToPhiPhiMag,F02020ToPhiPhiPhi,_useCommonProductionPhase, theDynModel );
JmmGmp+=f0GammaAmp(-1, 1, theData, PsiTof02020GamMag, PsiTof02020GamPhi,F02020ToPhiPhiMag,F02020ToPhiPhiPhi,_useCommonProductionPhase, theDynModel );
JmmGmm+=f0GammaAmp(-1, -1, theData, PsiTof02020GamMag, PsiTof02020GamPhi,F02020ToPhiPhiMag,F02020ToPhiPhiPhi,_useCommonProductionPhase, theDynModel );
} }
if (_f22300Hyp){ return result;
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];
double mass = theParamVal.Masses[paramEnumJpsiGamKsKlKK::f22300];
double width = theParamVal.Widths[paramEnumJpsiGamKsKlKK::f22300];
Spin f2Spin=2;
dynamicModelParams theDynModel;
initializeBreitWignerModel( theDynModel, fv2Phi, mass, width, dynamicModelParams::BreitWigner );
JmpGmp+=f2GammaAmp(1, 1, f2Spin, theData, PsiTof2GamMag, PsiTof2GamPhi,F2ToPhiPhiMag,F2ToPhiPhiPhi,mass,width, _useCommonProductionPhase, theDynModel );
JmpGmm+=f2GammaAmp(1, -1, f2Spin, theData, PsiTof2GamMag, PsiTof2GamPhi,F2ToPhiPhiMag,F2ToPhiPhiPhi,mass,width, _useCommonProductionPhase, theDynModel );
JmmGmp+=f2GammaAmp(-1, 1, f2Spin, theData, PsiTof2GamMag, PsiTof2GamPhi,F2ToPhiPhiMag,F2ToPhiPhiPhi,mass,width, _useCommonProductionPhase, theDynModel );
JmmGmm+=f2GammaAmp(-1, -1, f2Spin, theData, PsiTof2GamMag, PsiTof2GamPhi,F2ToPhiPhiMag,F2ToPhiPhiPhi,mass,width, _useCommonProductionPhase, theDynModel );
}
if (_eta21870Hyp){
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > PsiToEta2GamMag=theParamVal.Mags[paramEnumJpsiGamKsKlKK::PsiToEta21870Gamma];
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > PsiToEta2GamPhi=theParamVal.Phis[paramEnumJpsiGamKsKlKK::PsiToEta21870Gamma];
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > Eta2ToPhiPhiMag=theParamVal.Mags[paramEnumJpsiGamKsKlKK::Eta21870ToPhiPhi];
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > Eta2ToPhiPhiPhi=theParamVal.Phis[paramEnumJpsiGamKsKlKK::Eta21870ToPhiPhi];
double mass = theParamVal.Masses[paramEnumJpsiGamKsKlKK::eta21870];
double width = theParamVal.Widths[paramEnumJpsiGamKsKlKK::eta21870];
Spin eta2Spin=2;
dynamicModelParams theDynModel;
initializeBreitWignerModel( theDynModel, fv2Phi, mass, width, dynamicModelParams::BreitWigner );
JmpGmp+=f2GammaAmp(1, 1, eta2Spin, theData, PsiToEta2GamMag, PsiToEta2GamPhi,Eta2ToPhiPhiMag,Eta2ToPhiPhiPhi,mass,width, _useCommonProductionPhase,theDynModel );
JmpGmm+=f2GammaAmp(1, -1, eta2Spin,theData, PsiToEta2GamMag, PsiToEta2GamPhi,Eta2ToPhiPhiMag,Eta2ToPhiPhiPhi,mass,width, _useCommonProductionPhase,theDynModel );
JmmGmp+=f2GammaAmp(-1, 1, eta2Spin,theData, PsiToEta2GamMag, PsiToEta2GamPhi,Eta2ToPhiPhiMag,Eta2ToPhiPhiPhi,mass,width, _useCommonProductionPhase,theDynModel );
JmmGmm+=f2GammaAmp(-1, -1, eta2Spin, theData, PsiToEta2GamMag, PsiToEta2GamPhi,Eta2ToPhiPhiMag,Eta2ToPhiPhiPhi,mass,width , _useCommonProductionPhase,theDynModel );
}
if(_f1Hyp){
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > PsiTof1GamMag=theParamVal.Mags[paramEnumJpsiGamKsKlKK::PsiToF1Gamma];
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > PsiTof1GamPhi=theParamVal.Phis[paramEnumJpsiGamKsKlKK::PsiToF1Gamma];
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > F1ToPhiPhiMag=theParamVal.Mags[paramEnumJpsiGamKsKlKK::F1ToPhiPhi];
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > F1ToPhiPhiPhi=theParamVal.Phis[paramEnumJpsiGamKsKlKK::F1ToPhiPhi];
double mass = theParamVal.Masses[paramEnumJpsiGamKsKlKK::f1];
double width = theParamVal.Widths[paramEnumJpsiGamKsKlKK::f1];
Spin f1Spin=1;
dynamicModelParams theDynModel;
initializeBreitWignerModel( theDynModel, fv2Phi, mass, width, dynamicModelParams::BreitWigner );
JmpGmp+=f2GammaAmp(1, 1, f1Spin, theData, PsiTof1GamMag, PsiTof1GamPhi,F1ToPhiPhiMag,F1ToPhiPhiPhi,mass,width, _useCommonProductionPhase, theDynModel );
JmpGmm+=f2GammaAmp(1, -1, f1Spin, theData, PsiTof1GamMag, PsiTof1GamPhi,F1ToPhiPhiMag,F1ToPhiPhiPhi,mass,width, _useCommonProductionPhase, theDynModel );
JmmGmp+=f2GammaAmp(-1, 1, f1Spin, theData, PsiTof1GamMag, PsiTof1GamPhi,F1ToPhiPhiMag,F1ToPhiPhiPhi,mass,width, _useCommonProductionPhase, theDynModel );
JmmGmm+=f2GammaAmp(-1, -1, f1Spin, theData, PsiTof1GamMag, PsiTof1GamPhi,F1ToPhiPhiMag,F1ToPhiPhiPhi,mass,width, _useCommonProductionPhase, theDynModel );
}
result=norm(JmpGmp)+norm(JmpGmm)+norm(JmmGmp)+norm(JmmGmm);
if(_usePhasespace){
result = result + theParamVal.otherParams[paramEnumJpsiGamKsKlKK::phaseSpace];
}
return result;
} }
complex<double> JpsiGamKsKlKKProdLh::calcCoherentAmp(Spin Minit, Spin lamGam, fitParams& theParamVal, EvtData* theData){ complex<double> JpsiGamKsKlKKProdLh::calcCoherentAmp(Spin Minit, Spin lamGam, fitParams& theParamVal, EvtData* theData){
...@@ -223,7 +105,6 @@ complex<double> JpsiGamKsKlKKProdLh::calcCoherentAmp(Spin Minit, Spin lamGam, fi ...@@ -223,7 +105,6 @@ complex<double> JpsiGamKsKlKKProdLh::calcCoherentAmp(Spin Minit, Spin lamGam, fi
complex<double> JpsiGamKsKlKKProdLh::etaGammaAmp(Spin Minit, Spin Metac, Spin Mgamma, EvtData* theData, 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 >& PsiToEtaMag,
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >& PsiToEtaPhi ){ std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >& PsiToEtaPhi ){
...@@ -719,3 +600,273 @@ JpsiGamKsKlKKProdLh::initializeHypothesisMap( const std::map<const std::string, ...@@ -719,3 +600,273 @@ JpsiGamKsKlKKProdLh::initializeHypothesisMap( const std::map<const std::string,
return true; return true;
} }
double
JpsiGamKsKlKKProdLh::calcComponentIntensity( EvtData* theData, fitParams& theParamVal, std::string component ){
double result=0.0;
complex<double> JmpGmp(0.0,0.0);
complex<double> JmpGmm(0.0,0.0);
complex<double> JmmGmp(0.0,0.0);
complex<double> JmmGmm(0.0,0.0);
std::map<const std::string, bool>::const_iterator iter= _hypMap.find(component);
if (iter ==_hypMap.end()){
Alert << "Component " << component << " was not included in fit hypothesis" <<endmsg ;
return 0;
}
if (iter !=_hypMap.end() && !iter->second ){
Alert << "Component " << component << " was disabled in fit hypothesis" <<endmsg ;
return 0;
}
if(_massIndependentFit){
if(component == "etacHyp" ){
calcEtacGammaAmp( theData, theParamVal, JmpGmp,JmpGmm, JmmGmp,JmmGmm,dynamicModelParams::MassIndependent );
}
else if( component == "f02020Hyp" ){
calcF02020Amp( theData, theParamVal, JmpGmp,JmpGmm, JmmGmp,JmmGmm, dynamicModelParams::MassIndependent );
}
else if(component == "f22300Hyp"){
calcF22300Amp( theData, theParamVal, JmpGmp,JmpGmm, JmmGmp,JmmGmm, dynamicModelParams::MassIndependent);
}
else if(component == "eta21870Hyp"){
calcE21870Amp(theData, theParamVal, JmpGmp,JmpGmm, JmmGmp,JmmGmm, dynamicModelParams::MassIndependent);
}
else if(component == "f1Hyp"){
calcF1Amp(theData, theParamVal, JmpGmp,JmpGmm, JmmGmp,JmmGmm, dynamicModelParams::MassIndependent);
}
result=norm(JmpGmp)+norm(JmpGmm)+norm(JmmGmp)+norm(JmmGmm);
return result;
}
//
//mass-dependent parameterization
//
if(component == "etacHyp" ){
calcEtacGammaAmp( theData, theParamVal, JmpGmp,JmpGmm, JmmGmp,JmmGmm, dynamicModelParams::BreitWigner );
}
else if(component == "eta2225Hyp"){
calcEta2225Amp(theData, theParamVal, JmpGmp,JmpGmm, JmmGmp,JmmGmm,dynamicModelParams::BreitWigner );
}
else if( component == "f02020Hyp" ){
calcF02020Amp( theData, theParamVal, JmpGmp,JmpGmm, JmmGmp,JmmGmm, dynamicModelParams::BreitWigner );
}
else if(component == "f02020FlatteHyp"){
calcF02020Amp( theData, theParamVal, JmpGmp,JmpGmm, JmmGmp,JmmGmm, dynamicModelParams::Flatte );
}
else if(component == "f22300Hyp"){
calcF22300Amp( theData, theParamVal, JmpGmp,JmpGmm, JmmGmp,JmmGmm, dynamicModelParams::BreitWigner);
}
else if(component == "eta21870Hyp"){
calcE21870Amp(theData, theParamVal, JmpGmp,JmpGmm, JmmGmp,JmmGmm, dynamicModelParams::BreitWigner);
}
else if(component == "f1Hyp"){
calcF1Amp(theData, theParamVal, JmpGmp,JmpGmm, JmmGmp,JmmGmm, dynamicModelParams::BreitWigner);
}
return norm(JmpGmp)+norm(JmpGmm)+norm(JmmGmp)+norm(JmmGmm);
return 0.0;
}
void
JpsiGamKsKlKKProdLh::calcEtacGammaAmp( EvtData* theData, fitParams& theParamVal,
complex<double> &JmpGmp, complex<double> &JmpGmm, complex<double> &JmmGmp, complex<double> &JmmGmm,
dynamicModelParams::enumDynamicModel theModel){
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];
Vector4<double> fv2Phi = theData->FourVecs[enumJpsiGamKsKlKKData::V4_KsKlKpKm_HeliPsi];
double mass = theParamVal.Masses[paramEnumJpsiGamKsKlKK::etac];
double width = theParamVal.Widths[paramEnumJpsiGamKsKlKK::etac];
complex<double> theDynamicPart(1.,0.);
if(theModel == dynamicModelParams::BreitWigner) theDynamicPart = BreitWigner(fv2Phi, mass, width);
//complex<double> theDynamicPart = BreitWignerBlattW(fv2Phi, _phiMass, _phiMass, mass, width, 1);
JmpGmp+=etaGammaAmp(1, 0, 1, theData, PsiToEtacGamMag, PsiToEtacGamPhi )*theDynamicPart;
JmpGmm+=etaGammaAmp(1, 0, -1, theData, PsiToEtacGamMag, PsiToEtacGamPhi )*theDynamicPart;
JmmGmp+=etaGammaAmp(-1, 0, 1, theData, PsiToEtacGamMag, PsiToEtacGamPhi )*theDynamicPart;
JmmGmm+=etaGammaAmp(-1, 0, -1, theData, PsiToEtacGamMag, PsiToEtacGamPhi )*theDynamicPart;
}
void
JpsiGamKsKlKKProdLh::calcEta2225Amp(EvtData* theData, fitParams& theParamVal,
complex<double> &JmpGmp, complex<double> &JmpGmm, complex<double> &JmmGmp, complex<double> &JmmGmm,
dynamicModelParams::enumDynamicModel theModel){
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];
Vector4<double> fv2Phi = theData->FourVecs[enumJpsiGamKsKlKKData::V4_KsKlKpKm_HeliPsi];
double mass = theParamVal.Masses[paramEnumJpsiGamKsKlKK::eta2225];
double width = theParamVal.Widths[paramEnumJpsiGamKsKlKK::eta2225];
complex<double> theDynamicPart(1.,0.);
if(theModel == dynamicModelParams::BreitWigner) theDynamicPart = BreitWigner(fv2Phi, mass, width);
//complex<double> theDynamicPart = BreitWignerBlattW(fv2Phi, _phiMass, _phiMass, mass, width, 1);
JmpGmp+=etaGammaAmp(1, 0, 1, theData, PsiToEta2225GamMag, PsiToEta2225GamPhi )*theDynamicPart;
JmpGmm+=etaGammaAmp(1, 0, -1, theData, PsiToEta2225GamMag, PsiToEta2225GamPhi )*theDynamicPart;
JmmGmp+=etaGammaAmp(-1, 0, 1, theData, PsiToEta2225GamMag, PsiToEta2225GamPhi )*theDynamicPart;
JmmGmm+=etaGammaAmp(-1, 0, -1, theData, PsiToEta2225GamMag, PsiToEta2225GamPhi )*theDynamicPart;
}
void
JpsiGamKsKlKKProdLh::calcF02020Amp(EvtData* theData, fitParams& theParamVal,
complex<double> &JmpGmp, complex<double> &JmpGmm, complex<double> &JmmGmp, complex<double> &JmmGmm,
dynamicModelParams::enumDynamicModel theModel){
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];
Vector4<double> fv2Phi = theData->FourVecs[enumJpsiGamKsKlKKData::V4_KsKlKpKm_HeliPsi];
dynamicModelParams theDynModel;
double mass = theParamVal.Masses[paramEnumJpsiGamKsKlKK::f02020];
if( theModel == dynamicModelParams::Flatte ){
double gKK = theParamVal.gFactors[paramEnumJpsiGamKsKlKK::f02020gKK];
double gPhiPhi = theParamVal.gFactors[paramEnumJpsiGamKsKlKK::f02020gPhiPhi];
initializeFlatteModel( theDynModel, fv2Phi, mass, gPhiPhi, gKK );
}else if( theModel == dynamicModelParams::BreitWigner ){
double width = theParamVal.Widths[paramEnumJpsiGamKsKlKK::f02020];
initializeBreitWignerModel( theDynModel, fv2Phi, mass, width, dynamicModelParams::BreitWigner );
}else if( theModel == dynamicModelParams::MassIndependent ){
theDynModel.value=complex<double>(1.,0.);
theDynModel.dynamicModel = dynamicModelParams::MassIndependent;
}
JmpGmp+=f0GammaAmp(1, 1, theData, PsiTof02020GamMag, PsiTof02020GamPhi,F02020ToPhiPhiMag,F02020ToPhiPhiPhi,_useCommonProductionPhase, theDynModel );
JmpGmm+=f0GammaAmp(1, -1, theData, PsiTof02020GamMag, PsiTof02020GamPhi,F02020ToPhiPhiMag,F02020ToPhiPhiPhi,_useCommonProductionPhase, theDynModel );
JmmGmp+=f0GammaAmp(-1, 1, theData, PsiTof02020GamMag, PsiTof02020GamPhi,F02020ToPhiPhiMag,F02020ToPhiPhiPhi,_useCommonProductionPhase, theDynModel );
JmmGmm+=f0GammaAmp(-1, -1, theData, PsiTof02020GamMag, PsiTof02020GamPhi,F02020ToPhiPhiMag,F02020ToPhiPhiPhi,_useCommonProductionPhase, theDynModel );
}
void JpsiGamKsKlKKProdLh::calcF22300Amp(EvtData* theData, fitParams& theParamVal,
complex<double> &JmpGmp, complex<double> &JmpGmm, complex<double> &JmmGmp, complex<double> &JmmGmm,
dynamicModelParams::enumDynamicModel theModel){
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];
Vector4<double> fv2Phi = theData->FourVecs[enumJpsiGamKsKlKKData::V4_KsKlKpKm_HeliPsi];
double mass = theParamVal.Masses[paramEnumJpsiGamKsKlKK::f22300];
double width = theParamVal.Widths[paramEnumJpsiGamKsKlKK::f22300];
Spin f2Spin=2;
dynamicModelParams theDynModel;
if(theModel==dynamicModelParams::BreitWigner) {
initializeBreitWignerModel( theDynModel, fv2Phi, mass, width, dynamicModelParams::BreitWigner );
}
else if(theModel == dynamicModelParams::MassIndependent){
theDynModel.value=complex<double>(1.,0);
theDynModel.dynamicModel=dynamicModelParams::MassIndependent;
}
JmpGmp+=f2GammaAmp(1, 1, f2Spin, theData, PsiTof2GamMag, PsiTof2GamPhi,F2ToPhiPhiMag,F2ToPhiPhiPhi,mass,width, _useCommonProductionPhase, theDynModel );
JmpGmm+=f2GammaAmp(1, -1, f2Spin, theData, PsiTof2GamMag, PsiTof2GamPhi,F2ToPhiPhiMag,F2ToPhiPhiPhi,mass,width, _useCommonProductionPhase, theDynModel );
JmmGmp+=f2GammaAmp(-1, 1, f2Spin, theData, PsiTof2GamMag, PsiTof2GamPhi,F2ToPhiPhiMag,F2ToPhiPhiPhi,mass,width, _useCommonProductionPhase, theDynModel );
JmmGmm+=f2GammaAmp(-1, -1, f2Spin, theData, PsiTof2GamMag, PsiTof2GamPhi,F2ToPhiPhiMag,F2ToPhiPhiPhi,mass,width, _useCommonProductionPhase, theDynModel );
}
void
JpsiGamKsKlKKProdLh::calcE21870Amp(EvtData* theData, fitParams& theParamVal,
complex<double> &JmpGmp, complex<double> &JmpGmm, complex<double> &JmmGmp, complex<double> &JmmGmm,
dynamicModelParams::enumDynamicModel theModel){
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > PsiToEta2GamMag=theParamVal.Mags[paramEnumJpsiGamKsKlKK::PsiToEta21870Gamma];
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > PsiToEta2GamPhi=theParamVal.Phis[paramEnumJpsiGamKsKlKK::PsiToEta21870Gamma];
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > Eta2ToPhiPhiMag=theParamVal.Mags[paramEnumJpsiGamKsKlKK::Eta21870ToPhiPhi];
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > Eta2ToPhiPhiPhi=theParamVal.Phis[paramEnumJpsiGamKsKlKK::Eta21870ToPhiPhi];
Vector4<double> fv2Phi = theData->FourVecs[enumJpsiGamKsKlKKData::V4_KsKlKpKm_HeliPsi];
double mass = theParamVal.Masses[paramEnumJpsiGamKsKlKK::eta21870];
double width = theParamVal.Widths[paramEnumJpsiGamKsKlKK::eta21870];
Spin eta2Spin=2;
dynamicModelParams theDynModel;
if(theModel==dynamicModelParams::BreitWigner){ initializeBreitWignerModel( theDynModel, fv2Phi, mass, width, dynamicModelParams::BreitWigner );
}
else if(theModel == dynamicModelParams::MassIndependent){
theDynModel.value=complex<double>(1.,0);
theDynModel.dynamicModel=dynamicModelParams::MassIndependent;
}
JmpGmp+=f2GammaAmp(1, 1, eta2Spin, theData, PsiToEta2GamMag, PsiToEta2GamPhi,Eta2ToPhiPhiMag,Eta2ToPhiPhiPhi,mass,width, _useCommonProductionPhase,theDynModel );
JmpGmm+=f2GammaAmp(1, -1, eta2Spin,theData, PsiToEta2GamMag, PsiToEta2GamPhi,Eta2ToPhiPhiMag,Eta2ToPhiPhiPhi,mass,width, _useCommonProductionPhase,theDynModel );
JmmGmp+=f2GammaAmp(-1, 1, eta2Spin,theData, PsiToEta2GamMag, PsiToEta2GamPhi,Eta2ToPhiPhiMag,Eta2ToPhiPhiPhi,mass,width, _useCommonProductionPhase,theDynModel );
JmmGmm+=f2GammaAmp(-1, -1, eta2Spin, theData, PsiToEta2GamMag, PsiToEta2GamPhi,Eta2ToPhiPhiMag,Eta2ToPhiPhiPhi,mass,width , _useCommonProductionPhase,theDynModel );
}
void
JpsiGamKsKlKKProdLh::calcF1Amp(EvtData* theData, fitParams& theParamVal,
complex<double> &JmpGmp, complex<double> &JmpGmm, complex<double> &JmmGmp, complex<double> &JmmGmm,
dynamicModelParams::enumDynamicModel theModel){
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > PsiTof1GamMag=theParamVal.Mags[paramEnumJpsiGamKsKlKK::PsiToF1Gamma];
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > PsiTof1GamPhi=theParamVal.Phis[paramEnumJpsiGamKsKlKK::PsiToF1Gamma];
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > F1ToPhiPhiMag=theParamVal.Mags[paramEnumJpsiGamKsKlKK::F1ToPhiPhi];
std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > F1ToPhiPhiPhi=theParamVal.Phis[paramEnumJpsiGamKsKlKK::F1ToPhiPhi];
Vector4<double> fv2Phi = theData->FourVecs[enumJpsiGamKsKlKKData::V4_KsKlKpKm_HeliPsi];
double mass = theParamVal.Masses[paramEnumJpsiGamKsKlKK::f1];
double width = theParamVal.Widths[paramEnumJpsiGamKsKlKK::f1];
Spin f1Spin=1;
dynamicModelParams theDynModel;
if(theModel == dynamicModelParams::BreitWigner ){
initializeBreitWignerModel( theDynModel, fv2Phi, mass, width, dynamicModelParams::BreitWigner );
}
else if(theModel == dynamicModelParams::MassIndependent){
theDynModel.value=complex<double>(1.,0);
theDynModel.dynamicModel=dynamicModelParams::MassIndependent;
}
JmpGmp+=f2GammaAmp(1, 1, f1Spin, theData, PsiTof1GamMag, PsiTof1GamPhi,F1ToPhiPhiMag,F1ToPhiPhiPhi,mass,width, _useCommonProductionPhase, theDynModel );
JmpGmm+=f2GammaAmp(1, -1, f1Spin, theData, PsiTof1GamMag, PsiTof1GamPhi,F1ToPhiPhiMag,F1ToPhiPhiPhi,mass,width, _useCommonProductionPhase, theDynModel );
JmmGmp+=f2GammaAmp(-1, 1, f1Spin, theData, PsiTof1GamMag, PsiTof1GamPhi,F1ToPhiPhiMag,F1ToPhiPhiPhi,mass,width, _useCommonProductionPhase, theDynModel );
JmmGmm+=f2GammaAmp(-1, -1, f1Spin, theData, PsiTof1GamMag, PsiTof1GamPhi,F1ToPhiPhiMag,F1ToPhiPhiPhi,mass,width, _useCommonProductionPhase, theDynModel );
}
...@@ -52,6 +52,10 @@ public: ...@@ -52,6 +52,10 @@ public:
void useCommonProductionPhase( bool commonPhase ){_useCommonProductionPhase=commonPhase;} void useCommonProductionPhase( bool commonPhase ){_useCommonProductionPhase=commonPhase;}
void massIndependentFit( bool massIndep){ _massIndependentFit=massIndep; } void massIndependentFit( bool massIndep){ _massIndependentFit=massIndep; }
double calcComponentIntensity( EvtData* theData, fitParams& theParamVal, std::string component );
protected: protected:
virtual complex<double> calcCoherentAmp(Spin Minit, Spin lamGam, fitParams& theParamVal, EvtData* theData); virtual complex<double> calcCoherentAmp(Spin Minit, Spin lamGam, fitParams& theParamVal, EvtData* theData);
...@@ -91,6 +95,25 @@ protected: ...@@ -91,6 +95,25 @@ protected:
bool initializeFlatteModel( dynamicModelParams &theDynModel, const Vector4<double> &fv2Phi, double mass, double gPhiPhi, double gKK ); bool initializeFlatteModel( dynamicModelParams &theDynModel, const Vector4<double> &fv2Phi, double mass, double gPhiPhi, double gKK );
bool initializeBreitWignerModel(dynamicModelParams &theDynModel,const Vector4<double> &fv2Phi, double mass, double width, dynamicModelParams::enumDynamicModel theModel ); bool initializeBreitWignerModel(dynamicModelParams &theDynModel,const Vector4<double> &fv2Phi, double mass, double width, dynamicModelParams::enumDynamicModel theModel );
void calcEtacGammaAmp( EvtData* theData, fitParams& theParamVal, complex<double> &JmpGmp, complex<double> &JmpGmm, complex<double> &JmmGmp, complex<double> &JmmGmm,
dynamicModelParams::enumDynamicModel theModel);
void calcEta2225Amp(EvtData* theData, fitParams& theParamVal, complex<double> &JmpGmp, complex<double> &JmpGmm, complex<double> &JmmGmp, complex<double> &JmmGmm,
dynamicModelParams::enumDynamicModel theModel);
void calcF02020Amp(EvtData* theData, fitParams& theParamVal, complex<double> &JmpGmp, complex<double> &JmpGmm, complex<double> &JmmGmp, complex<double> &JmmGmm,
dynamicModelParams::enumDynamicModel theModel);
void calcF22300Amp(EvtData* theData, fitParams& theParamVal,complex<double> &JmpGmp, complex<double> &JmpGmm, complex<double> &JmmGmp, complex<double> &JmmGmm,
dynamicModelParams::enumDynamicModel theModel);
void calcE21870Amp(EvtData* theData, fitParams& theParamVal, complex<double> &JmpGmp, complex<double> &JmpGmm, complex<double> &JmmGmp, complex<double> &JmmGmm,
dynamicModelParams::enumDynamicModel theModel);
void calcF1Amp(EvtData* theData, fitParams& theParamVal, complex<double> &JmpGmp, complex<double> &JmpGmm, complex<double> &JmmGmp, complex<double> &JmmGmm,
dynamicModelParams::enumDynamicModel theModel);
bool _etacHyp; bool _etacHyp;
bool _eta2225Hyp; bool _eta2225Hyp;
bool _f02020Hyp; bool _f02020Hyp;
......
...@@ -265,10 +265,28 @@ int main(int __argc,char *__argv[]){ ...@@ -265,10 +265,28 @@ int main(int __argc,char *__argv[]){
//calculate intensity contributions //calculate intensity contributions
//EvtData* evtdata = eventsData.getDataVecs(); JpsiGamKsKlKKProdLh* contrLh = new JpsiGamKsKlKKProdLh(theJpsiGamKsKlKKEventListPtr, hypMap);
//theLhPtr->calcEvtIntensity( evtdata , finalFitParams ); contrLh->massIndependentFit( theAppParams.massIndependentFit() );
contrLh->useCommonProductionPhase( theAppParams.useCommonProductionPhases() );
boost::shared_ptr<const EvtDataBaseList> theEvtList=contrLh->getEventList();
const std::vector<EvtData*> mcList=theEvtList->getDataVecs();
std::map<const std::string, bool>::const_iterator hypo= hypMap.begin();
while(hypo !=hypMap.end()){
if( hypo->second ){
std::vector<EvtData*>::const_iterator it=mcList.begin();
double integral=0.0;
while(it!=mcList.end()){
integral+=contrLh->calcComponentIntensity( *it, finalFitParams, hypo->first );
//integral+= theLhPtr->calcComponentIntensity( *it, finalFitParams, "etacHyp" );
it++;
}
Info << "Events for component " << hypo->first << ": " << integral << endmsg;
}
hypo++;
}
JpsiGamKsKlKKHist theHist(theLhPtr, finalFitParams); JpsiGamKsKlKKHist theHist(theLhPtr, finalFitParams);
......
...@@ -46,8 +46,8 @@ void plotQA(TString fName="./JpsiGamKsKlKK.root"){ ...@@ -46,8 +46,8 @@ void plotQA(TString fName="./JpsiGamKsKlKK.root"){
c2->cd(ipad); c2->cd(ipad);
plotHist("_chi"); plotHist("_chi");
c1->Print("qaPlots.pdf("); c1->Print("qaPlots.ps(");
c2->Print("qaPlots.pdf)"); c2->Print("qaPlots.ps)");
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment