LauIsobarDynamics.cc
Go to the documentation of this file.
49 LauIsobarDynamics::LauIsobarDynamics(LauDaughters* daughters, LauAbsEffModel* effModel, LauAbsEffModel* scfFractionModel) :
104 // for Kspipi, we need a scfFraction 2D histogram for each tagging category. They are provided by the map.
105 // Also, we need to know the place that the tagging category of the current event occupies in the data structure inputFitTree
106 LauIsobarDynamics::LauIsobarDynamics(LauDaughters* daughters, LauAbsEffModel* effModel, LauTagCatScfFractionModelMap scfFractionModel) :
163 for ( std::vector<LauCacheData*>::iterator iter = data_.begin(); iter != data_.end(); ++iter ) {
168 for (std::vector<LauDPPartialIntegralInfo*>::iterator it = dpPartialIntegralInfo_.begin(); it != dpPartialIntegralInfo_.end(); ++it)
221 // For those that have changed mark the corresponding resonance(s) as needing to be re-evaluated
257 for ( std::vector<LauAbsResonance*>::iterator resIter = sigResonances_.begin(); resIter != sigResonances_.end(); ++resIter ) {
264 for ( std::vector<LauParameter*>::const_iterator parIter = resPars.begin(); parIter != resPars.end(); ++parIter ) {
292 for ( std::vector<LauAbsIncohRes*>::iterator resIter = sigIncohResonances_.begin(); resIter != sigIncohResonances_.end(); ++resIter ) {
299 for ( std::vector<LauParameter*>::const_iterator parIter = resPars.begin(); parIter != resPars.end(); ++parIter ) {
337 std::cout << "INFO in LauIsobarDynamics::initialise : No contributions to DP model, not performing normalisation integrals." << std::endl;
342 std::cout<<"INFO in LauIsobarDynamics::initialise : Starting special run to generate the integrals for normalising the PDF..."<<std::endl;
397 std::cout<<"INFO in LauIsobarDynamics::initialise : Initial fit fraction for amplitude ("<<i<<","<<j<<") = "<<fitFrac_[i][j].genValue()<<std::endl;
402 std::cout<<"INFO in LauIsobarDynamics::initialise : Initial fit fraction for incoherent amplitude ("<<i<<","<<i<<") = "<<fitFrac_[i+nAmp_][i+nAmp_].genValue()<<std::endl;
405 std::cout<<"INFO in LauIsobarDynamics::initialise : Initial efficiency = "<<meanDPEff_.initValue()<<std::endl;
407 std::cout<<"INFO in LauIsobarDynamics::initialise : Initial DPRate = "<<DPRate_.initValue()<<std::endl;
419 std::cout<<"INFO in LauIsobarDynamics::initSummary : We are going to do a DP with "<<nameP<<" going to "<<name1<<" "<<name2<<" "<<name3<<std::endl;
538 std::cout<<"INFO in LauIsobarDynamics::writeIntegralsFile : Writing integral output to integrals file "<<intFileName_.Data()<<std::endl;
654 LauAbsResonance* LauIsobarDynamics::addResonance(const TString& resName, const Int_t resPairAmpInt, const LauAbsResonance::LauResonanceModel resType, const LauBlattWeisskopfFactor::BlattWeisskopfCategory bwCategory, const LauBlattWeisskopfFactor::BarrierType bwType)
672 LauAbsResonance *theResonance = resonanceMaker.getResonance(daughters_, resName, resPairAmpInt, resType, bwCategory, bwType);
675 std::cerr<<"ERROR in LauIsobarDynamics::addResonance : Couldn't create the resonance \""<<resName<<"\""<<std::endl;
680 if (flipHelicity_ && daughters_->getCharge(resPairAmpInt) == 0 && daughters_->getChargeParent() == 0 && daughters_->getTypeParent() > 0 ) {
681 if ( ( resPairAmpInt == 1 && TMath::Abs(daughters_->getTypeDaug2()) == TMath::Abs(daughters_->getTypeDaug3()) ) ||
682 ( resPairAmpInt == 2 && TMath::Abs(daughters_->getTypeDaug1()) == TMath::Abs(daughters_->getTypeDaug3()) ) ||
683 ( resPairAmpInt == 3 && TMath::Abs(daughters_->getTypeDaug1()) == TMath::Abs(daughters_->getTypeDaug2()) ) ) {
696 std::cout<<"INFO in LauIsobarDynamics::addResonance : Setting resPairAmp to 0 for "<<resonanceName<<" contribution."<<std::endl;
708 std::cout<<"INFO in LauIsobarDynamics::addResonance : Successfully added resonance. Total number of resonances so far = "<<nAmp_<<std::endl;
713 LauAbsResonance* LauIsobarDynamics::addIncoherentResonance(const TString& resName, const Int_t resPairAmpInt, const LauAbsResonance::LauResonanceModel resType)
731 LauAbsIncohRes *theResonance = (LauAbsIncohRes*)resonanceMaker.getResonance(daughters_, resName, resPairAmpInt, resType);
734 std::cerr<<"ERROR in LauIsobarDynamics::addIncohResonance : Couldn't create the resonance \""<<resName<<"\""<<std::endl;
749 std::cout<<"INFO in LauIsobarDynamics::addIncohResonance : Successfully added incoherent resonance. Total number of incoherent resonances so far = "<<nIncohAmp_<<std::endl;
754 void LauIsobarDynamics::defineKMatrixPropagator(const TString& propName, const TString& paramFileName, Int_t resPairAmpInt,
757 // Define the K-matrix propagator. The resPairAmpInt integer specifies which mass combination should be used
758 // for the invariant mass-squared variable "s". The pole masses and coupling constants are defined in the
760 // The number of channels and poles are defined by the nChannels and nPoles integers, respectively.
766 std::cerr << "ERROR in LauIsobarDynamics::defineKMatrixPropagator. The rowIndex, which is set to "
774 LauKMatrixPropagator* thePropagator = LauKMatrixPropFactory::getInstance()->getPropagator(propagatorName, parameterFile,
781 void LauIsobarDynamics::addKMatrixProdPole(const TString& poleName, const TString& propName, Int_t poleIndex)
804 LauAbsResonance* prodPole = new LauKMatrixProdPole(poleName, poleIndex, resPairAmpInt, thePropagator, daughters_);
816 std::cout<<"INFO in LauIsobarDynamics::addKMatrixProdPole : Successfully added K-matrix production pole term. Total number of resonances so far = "<<nAmp_<<std::endl;
820 std::cerr<<"ERROR in LauIsobarDynamics::addKMatrixProdPole : The propagator of the name "<<propName
828 void LauIsobarDynamics::addKMatrixProdSVP(const TString& SVPName, const TString& propName, Int_t channelIndex)
851 LauAbsResonance* prodSVP = new LauKMatrixProdSVP(SVPName, channelIndex, resPairAmpInt, thePropagator, daughters_);
863 std::cout<<"INFO in LauIsobarDynamics::addKMatrixProdSVP : Successfully added K-matrix production slowly-varying (SVP) term. Total number of resonances so far = "<<nAmp_<<std::endl;
867 std::cerr<<"ERROR in LauIsobarDynamics::addKMatrixProdSVP : The propagator of the name "<<propName
879 for (std::vector<LauAbsResonance*>::iterator iter=sigResonances_.begin(); iter!=sigResonances_.end(); ++iter) {
890 for (std::vector<LauAbsIncohRes*>::iterator iter=sigIncohResonances_.begin(); iter!=sigIncohResonances_.end(); ++iter) {
901 std::cerr<<"ERROR in LauIsobarDynamics::findResonance : Couldn't find resonance \""<<name<<"\" in the model."<<std::endl;
911 for (std::vector<LauAbsResonance*>::const_iterator iter=sigResonances_.begin(); iter!=sigResonances_.end(); ++iter) {
922 for (std::vector<LauAbsIncohRes*>::const_iterator iter=sigIncohResonances_.begin(); iter!=sigIncohResonances_.end(); ++iter) {
933 std::cerr<<"ERROR in LauIsobarDynamics::findResonance : Couldn't find resonance \""<<name<<"\" in the model."<<std::endl;
955 for (std::vector<LauDPPartialIntegralInfo*>::iterator it = dpPartialIntegralInfo_.begin(); it != dpPartialIntegralInfo_.end(); ++it)
969 std::cerr<<"ERROR in LauIsobarDynamics::calcDPNormalisationScheme : Scheme already stored!"<<std::endl;
988 for ( std::vector<LauAbsResonance*>::const_iterator iter = sigResonances_.begin(); iter != sigResonances_.end(); ++iter ) {
994 std::cout<<"INFO in LauIsobarDynamics::calcDPNormalisationScheme : Found narrow resonance: "<<name<<", mass = "<<mass<<", width = "<<width<<", pair int = "<<pair<<std::endl;
1005 std::cerr<<"WARNING in LauIsobarDynamics::calcDPNormalisationScheme : strange pair integer, "<<pair<<", for resonance \""<<(*iter)->getResonanceName()<<std::endl;
1009 for ( std::vector<LauAbsIncohRes*>::const_iterator iter = sigIncohResonances_.begin(); iter != sigIncohResonances_.end(); ++iter ) {
1015 std::cout<<"INFO in LauIsobarDynamics::calcDPNormalisationScheme : Found narrow resonance: "<<name<<", mass = "<<mass<<", width = "<<width<<", pair int = "<<pair<<std::endl;
1026 std::cerr<<"WARNING in LauIsobarDynamics::calcDPNormalisationScheme : strange pair integer, "<<pair<<", for resonance \""<<(*iter)->getResonanceName()<<std::endl;
1050 std::cout<<"INFO in LauIsobarDynamics::calcDPNormalisationScheme : No narrow resonances found, integrating over whole Dalitz plot..."<<std::endl;
1051 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, maxm13, minm23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1057 std::cout<<"INFO in LauIsobarDynamics::calcDPNormalisationScheme : One or more narrow resonances found in m12, integrating over whole Dalitz plot with bin width of "<<m13BinWidth<<" GeV/c2..."<<std::endl;
1058 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, maxm13, minm23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1071 std::cout<<"INFO in LauIsobarDynamics::calcDPNormalisationScheme : One narrow resonance found in m13, close to threshold, dividing Dalitz plot into two regions..."<<std::endl;
1072 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMax, maxm13, minm23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1074 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, resMax, minm23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1076 std::cout<<"INFO in LauIsobarDynamics::calcDPNormalisationScheme : One narrow resonance found in m13, dividing Dalitz plot into three regions..."<<std::endl;
1077 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, resMin, minm23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1078 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMax, maxm13, minm23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1080 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMin, resMax, minm23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1087 for ( std::map<Double_t,Double_t>::const_iterator iter = m13NarrowRes.begin(); iter != m13NarrowRes.end(); ++iter ) {
1103 std::cout<<"INFO in LauIsobarDynamics::calcDPNormalisationScheme : Two narrow resonances found in m13, both close to threshold, dividing Dalitz plot into two regions..."<<std::endl;
1104 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(res2Max, maxm13, minm23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1106 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, res2Max, minm23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1108 std::cout<<"INFO in LauIsobarDynamics::calcDPNormalisationScheme : Two narrow resonances found in m13, one close to threshold, dividing Dalitz plot into four regions..."<<std::endl;
1109 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(res1Max, res2Min, minm23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1110 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(res2Max, maxm13, minm23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1112 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, res1Max, minm23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1114 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(res2Min, res2Max, minm23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1118 std::cout<<"INFO in LauIsobarDynamics::calcDPNormalisationScheme : Two narrow resonances found close together in m13, dividing Dalitz plot into three regions..."<<std::endl;
1119 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, res1Min, minm23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1120 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(res2Max, maxm13, minm23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1122 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(res1Min, res2Max, minm23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1124 std::cout<<"INFO in LauIsobarDynamics::calcDPNormalisationScheme : Two narrow resonances found in m13, dividing Dalitz plot into five regions..."<<std::endl;
1125 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, res1Min, minm23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1126 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(res1Max, res2Min, minm23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1127 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(res2Max, maxm13, minm23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1129 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(res1Min, res1Max, minm23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1131 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(res2Min, res2Max, minm23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1146 std::cout<<"INFO in LauIsobarDynamics::calcDPNormalisationScheme : One narrow resonance found in m23, close to threshold, dividing Dalitz plot into two regions..."<<std::endl;
1147 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, maxm13, resMax, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1149 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, maxm13, minm23, resMax, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1151 std::cout<<"INFO in LauIsobarDynamics::calcDPNormalisationScheme : One narrow resonance found in m23, dividing Dalitz plot into three regions..."<<std::endl;
1152 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, maxm13, minm23, resMin, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1153 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, maxm13, resMax, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1155 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, maxm13, resMin, resMax, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1162 for ( std::map<Double_t,Double_t>::const_iterator iter = m23NarrowRes.begin(); iter != m23NarrowRes.end(); ++iter ) {
1178 std::cout<<"INFO in LauIsobarDynamics::calcDPNormalisationScheme : Two narrow resonances found in m23, both close to threshold, dividing Dalitz plot into two regions..."<<std::endl;
1179 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, maxm13, res2Max, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1181 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, maxm13, minm23, res2Max, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1183 std::cout<<"INFO in LauIsobarDynamics::calcDPNormalisationScheme : Two narrow resonances found in m23, one close to threshold, dividing Dalitz plot into four regions..."<<std::endl;
1184 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, maxm13, res1Max, res2Min, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1185 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, maxm13, res2Max, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1187 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, maxm13, minm23, res1Max, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1189 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, maxm13, res2Min, res2Max, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1193 std::cout<<"INFO in LauIsobarDynamics::calcDPNormalisationScheme : Two narrow resonances found close together in m23, dividing Dalitz plot into three regions..."<<std::endl;
1194 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, maxm13, minm23, res1Min, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1195 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, maxm13, res2Max, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1197 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, maxm13, res1Min, res2Max, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1199 std::cout<<"INFO in LauIsobarDynamics::calcDPNormalisationScheme : Two narrow resonances found in m23, dividing Dalitz plot into five regions..."<<std::endl;
1200 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, maxm13, minm23, res1Min, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1201 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, maxm13, res1Max, res2Min, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1202 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, maxm13, res2Max, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1204 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, maxm13, res1Min, res1Max, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1206 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, maxm13, res2Min, res2Max, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1226 std::cout<<"INFO in LauIsobarDynamics::calcDPNormalisationScheme : One narrow resonance found in m13 and one in m23, both close to threshold, dividing Dalitz plot into four regions..."<<std::endl;
1229 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMax13, maxm13, resMax23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1232 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMax13, maxm13, minm23, resMax23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1235 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, resMax13, resMax23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1238 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, resMax13, minm23, resMax23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1240 std::cout<<"INFO in LauIsobarDynamics::calcDPNormalisationScheme : One narrow resonance found in m13, close to threshold, and one in m23, not close to threshold, dividing Dalitz plot into six regions..."<<std::endl;
1241 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMax13, maxm13, minm23, resMin23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1242 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMax13, maxm13, resMax23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1245 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMax13, maxm13, resMin23, resMax23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1248 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, resMax13, minm23, resMin23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1249 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, resMax13, resMax23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1252 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, resMax13, resMin23, resMax23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1254 std::cout<<"INFO in LauIsobarDynamics::calcDPNormalisationScheme : One narrow resonance found in m23, close to threshold, and one in m13, not close to threshold, dividing Dalitz plot into six regions..."<<std::endl;
1255 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, resMin13, resMax23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1256 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMax13, maxm13, resMax23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1259 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, resMin13, minm23, resMax23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1260 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMax13, maxm13, minm23, resMax23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1263 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMin13, resMax13, resMax23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1266 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMin13, resMax13, minm23, resMax23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1268 std::cout<<"INFO in LauIsobarDynamics::calcDPNormalisationScheme : One narrow resonance found in both m13 and m23, neither close to threshold, dividing Dalitz plot into nine regions..."<<std::endl;
1269 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, resMin13, minm23, resMin23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1270 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, resMin13, resMax23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1271 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMax13, maxm13, minm23, resMin23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1272 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMax13, maxm13, resMax23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1275 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, resMin13, resMin23, resMax23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1276 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMax13, maxm13, resMin23, resMax23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1279 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMin13, resMax13, minm23, resMin23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1280 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMin13, resMax13, resMax23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1283 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMin13, resMax13, resMin23, resMax23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1289 std::cout<<"INFO in LauIsobarDynamics::calcDPNormalisationScheme : Multiple narrow resonances found in m13, dividing Dalitz plot into two regions..."<<std::endl;
1292 for ( std::map<Double_t,Double_t>::const_iterator iter = m13NarrowRes.begin(); iter != m13NarrowRes.end(); ++iter ) {
1299 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMax, maxm13, minm23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1301 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, resMax, minm23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1306 std::cout<<"INFO in LauIsobarDynamics::calcDPNormalisationScheme : Multiple narrow resonances found in m23, dividing Dalitz plot into two regions..."<<std::endl;
1309 for ( std::map<Double_t,Double_t>::const_iterator iter = m23NarrowRes.begin(); iter != m23NarrowRes.end(); ++iter ) {
1316 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, maxm13, resMax, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1318 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, maxm13, minm23, resMax, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1324 for ( std::map<Double_t,Double_t>::const_iterator iter = m23NarrowRes.begin(); iter != m23NarrowRes.end(); ++iter ) {
1339 std::cout<<"INFO in LauIsobarDynamics::calcDPNormalisationScheme : Multiple narrow resonances found in m23 and one in m13, close to threshold, dividing Dalitz plot into four regions..."<<std::endl;
1342 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMax13, maxm13, resMax23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1345 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMax13, maxm13, minm23, resMax23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1348 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, resMax13, resMax23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1351 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, resMax13, minm23, resMax23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1353 std::cout<<"INFO in LauIsobarDynamics::calcDPNormalisationScheme : Multiple narrow resonances found in m23 and one in m13, not close to threshold, dividing Dalitz plot into six regions..."<<std::endl;
1356 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, resMin13, resMax23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1357 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMax13, maxm13, resMax23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1360 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, resMin13, minm23, resMax23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1361 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMax13, maxm13, minm23, resMax23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1364 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMin13, resMax13, resMax23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1367 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMin13, resMax13, minm23, resMax23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1374 for ( std::map<Double_t,Double_t>::const_iterator iter = m13NarrowRes.begin(); iter != m13NarrowRes.end(); ++iter ) {
1389 std::cout<<"INFO in LauIsobarDynamics::calcDPNormalisationScheme : Multiple narrow resonances found in m13 and one in m23, close to threshold, dividing Dalitz plot into four regions..."<<std::endl;
1392 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMax13, maxm13, resMax23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1395 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMax13, maxm13, minm23, resMax23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1398 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, resMax13, resMax23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1401 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, resMax13, minm23, resMax23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1403 std::cout<<"INFO in LauIsobarDynamics::calcDPNormalisationScheme : Multiple narrow resonances found in m13 and one in m23, not close to threshold, dividing Dalitz plot into six regions..."<<std::endl;
1404 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMax13, maxm13, minm23, resMin23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1405 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMax13, maxm13, resMax23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1408 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMax13, maxm13, resMin23, resMax23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1411 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, resMax13, minm23, resMin23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1412 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, resMax13, resMax23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1415 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, resMax13, resMin23, resMax23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1420 std::cout<<"INFO in LauIsobarDynamics::calcDPNormalisationScheme : Multiple narrow resonances found in both m13 and m23, dividing Dalitz plot into four regions..."<<std::endl;
1423 for ( std::map<Double_t,Double_t>::const_iterator iter = m13NarrowRes.begin(); iter != m13NarrowRes.end(); ++iter ) {
1433 for ( std::map<Double_t,Double_t>::const_iterator iter = m23NarrowRes.begin(); iter != m23NarrowRes.end(); ++iter ) {
1443 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMax13, maxm13, resMax23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1446 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(resMax13, maxm13, minm23, resMax23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1449 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, resMax13, resMax23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1452 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, resMax13, minm23, resMax23, m13BinWidth, m23BinWidth, precision, nAmp_, nIncohAmp_));
1458 void LauIsobarDynamics::setIntegralBinWidths(const Double_t m13BinWidth, const Double_t m23BinWidth)
1460 // Specify whether we're going to use Gauss-Legendre integration to calculate the normalisation
1461 // integrals, and the bin widths we require for the m13 and m23 axes. Note that the integration
1462 // is done over m13, m23 space, with the appropriate Jacobian applied, and not m13^2, m23^2 space.
1511 void LauIsobarDynamics::calculateAmplitudes( LauDPPartialIntegralInfo* intInfo, const UInt_t m13Point, const UInt_t m23Point )
1657 std::cerr<<"ERROR in LauIsobarDynamics::resAmp : index = "<<index<<" is not within the range 0 to "<<nAmp_-1<<std::endl;
1665 std::cerr<<"ERROR in LauIsobarDynamics::resAmp : Couldn't retrieve valid resonance with index = "<<index<<std::endl;
1718 std::cerr<<"ERROR in LauIsobarDynamics::incohResAmp : index = "<<index<<" is not within the range 0 to "<<nIncohAmp_-1<<std::endl;
1726 std::cerr<<"ERROR in LauIsobarDynamics::incohResAmp : Couldn't retrieve valid incoherent resonance with index = "<<index<<std::endl;
1781 void LauIsobarDynamics::setFFTerm(const UInt_t index, const Double_t realPart, const Double_t imagPart)
1785 std::cerr<<"ERROR in LauIsobarDynamics::setFFTerm : index = "<<index<<" is not within the range 0 to "<<nAmp_-1<<std::endl;
1794 // Function to set the internal incoherent intensity term (normally calculated using incohResAmp(index).
1796 std::cerr<<"ERROR in LauIsobarDynamics::setFFTerm : index = "<<index<<" is not within the range 0 to "<<nIncohAmp_-1<<std::endl;
1931 // Now loop over all resonances and find those which are K-matrix components for this propagator
1974 std::cout<<"INFO in LauIsobarDynamics::calcExtraInfo : Total K-matrix fit fraction for propagator "<<propName<<" is "<<kMatrixTotFitFrac<<std::endl;
2106 LauIsobarDynamics::ToyMCStatus LauIsobarDynamics::checkToyMC(Bool_t printErrorMessages, Bool_t printInfoMessages)
2114 std::cerr<<"WARNING in LauIsobarDynamics::checkToyMC : More than "<<iterationsMax_<<" iterations performed and no event accepted."<<std::endl;
2119 std::cerr<<" : |A|^2 maximum was set to "<<aSqMaxSet_<<" but this appears to be too high."<<std::endl;
2121 std::cerr<<" : The value of |A|^2 maximum will be decreased and the generation restarted."<<std::endl;
2124 std::cout<<"INFO in LauIsobarDynamics::checkToyMC : |A|^2 max reset to "<<aSqMaxSet_<<std::endl;
2128 std::cerr<<" : |A|^2 maximum was set to "<<aSqMaxSet_<<", which seems to be correct for the given model."<<std::endl;
2129 std::cerr<<" : However, the generation is very inefficient - please check your model."<<std::endl;
2130 std::cerr<<" : The maximum number of iterations will be increased and the generation restarted."<<std::endl;
2133 std::cout<<"INFO in LauIsobarDynamics::checkToyMC : max number of iterations reset to "<<iterationsMax_<<std::endl;
2139 std::cerr<<"WARNING in LauIsobarDynamics::checkToyMC : |A|^2 maximum was set to "<<aSqMaxSet_<<" but a value exceeding this was found: "<<aSqMaxVar_<<std::endl;
2140 std::cerr<<" : Run was invalid, as any generated MC will be biased, according to the accept/reject method!"<<std::endl;
2141 std::cerr<<" : The value of |A|^2 maximum be reset to be > "<<aSqMaxVar_<<" and the generation restarted."<<std::endl;
2144 std::cout<<"INFO in LauIsobarDynamics::checkToyMC : |A|^2 max reset to "<<aSqMaxSet_<<std::endl;
2147 std::cout<<"INFO in LauIsobarDynamics::checkToyMC : aSqMaxSet = "<<aSqMaxSet_<<" and aSqMaxVar = "<<aSqMaxVar_<<std::endl;
2159 std::cerr<<"ERROR in LauIsobarDynamics::setDataEventNo : Event index too large: "<<iEvt<<" >= "<<data_.size()<<"."<<std::endl;
2168 scfFraction_ = currentEvent_->retrieveScfFraction(); // These two are necessary, even though the dynamics don't actually use scfFraction_ or jacobian_,
2169 jacobian_ = currentEvent_->retrieveJacobian(); // since this is at the heart of the caching mechanism.
2208 void LauIsobarDynamics::calcLikelihoodInfo(const Double_t m13Sq, const Double_t m23Sq, const Int_t tagCat)
2279 // Since this is the first caching, we need to make sure to calculate everything for every resonance
2288 std::cerr<<"ERROR in LauIsobarDynamics::fillDataTree : Expecting at least 2 variables " <<"in input data tree, but there are "<<nBranches<<"!\n";
2289 std::cerr<<" : Make sure you have the right number of variables in your input data file!"<<std::endl;
2295 for ( std::vector<LauCacheData*>::iterator iter = data_.begin(); iter != data_.end(); ++iter ) {
2368 // then calculate totAmp_ and finally ASq_ = totAmp_.abs2() (without the efficiency correction!)
2385 // then calculate totAmp_ and finally ASq_ = totAmp_.abs2() (without the efficiency correction!)
2399 std::cerr << "ERROR in LauIsobarDynamics::updateCoeffs : Expected " << this->getnTotAmp() << " but got " << coeffs.size() << std::endl;
2410 // TODO should perhaps keep track of whether the resonance parameters have changed here and if none of those and none of the coeffs have changed then we don't need to update the norm
KMStringMap kMatrixPropSet_ The names of the M-matrix components in the model mapped to their propagators. Definition: LauIsobarDynamics.hh:673 std::vector< LauComplex > Amp_ The complex coefficients for the amplitude components. Definition: LauIsobarDynamics.hh:637 void modifyDataTree() Recache the amplitude values for those that have changed. Definition: LauIsobarDynamics.cc:2237 Int_t nSigGenLoop_ The number of unsucessful attempts to generate an event so far. Definition: LauIsobarDynamics.hh:784 TString getNameDaug1() const Get name of the first daughter particle. Definition: LauDaughters.cc:231 Double_t getm23Max() const Get the m23 maximum defined as (mParent - m1) Definition: LauKinematics.hh:280 Double_t retrievemPrime() const Retrieve the square Dalitz plot coordinate, m'. Definition: LauCacheData.hh:133 Bool_t squareDP() const Are the square Dalitz plot co-ordinates being calculated? Definition: LauKinematics.hh:51 TRandom * randomFun() Access the singleton random number generator with a particular seed. Definition: LauRandom.cc:20 File containing declaration of LauKMatrixPropFactory class. File containing declaration of LauFitDataTree class. File containing declaration of LauNRAmplitude class. Bool_t recalcNormalisation_ Flag to recalculate the normalisation. Definition: LauIsobarDynamics.hh:796 void storeIntensity(const UInt_t m13Point, const UInt_t m23Point, const UInt_t iAmp, const Double_t intensity) Store the intensity for the given grid point and intensity index. Definition: LauDPPartialIntegralInfo.hh:178 Double_t retrievem23Sq() const Retrieve the invariant mass squared of the second and third daugthers. Definition: LauCacheData.hh:127 Int_t getTypeDaug1() const Get PDG code of the first daughter particle. Definition: LauDaughters.cc:251 const TString & getResonanceName() const Get the name of the resonance. Definition: LauAbsResonance.hh:103 void updateCoeffs(const std::vector< LauComplex > &coeffs) Update the complex coefficients for the resonances. Definition: LauIsobarDynamics.cc:2395 std::set< UInt_t > integralsToBeCalculated_ Resonance indices for which the amplitudes and integrals should be recalculated. Definition: LauIsobarDynamics.hh:808 Double_t m13BinWidth_ The bin width to use when integrating over m13. Definition: LauIsobarDynamics.hh:709 Bool_t flipHelicity_ The helicity flip flag for new amplitude components. Definition: LauIsobarDynamics.hh:793 File containing declaration of LauAbsEffModel class. ClassImp(LauAbsCoeffSet) std::vector< Int_t > resPairAmp_ The index of the daughter not produced by the resonance for each amplitude component. Definition: LauIsobarDynamics.hh:679 Bool_t hasResonance(const TString &resName) const Check whether this model includes a named resonance. Definition: LauIsobarDynamics.cc:2416 std::vector< LauParameter > extraParameters_ any extra parameters/quantities (e.g. K-matrix total fit fractions) Definition: LauIsobarDynamics.hh:661 File containing declaration of LauKMatrixProdPole class. Class that defines the particular 3-body decay under study. Definition: LauDaughters.hh:33 const std::vector< Double_t > & retrieveImagAmp() const Retrieve the imaginary parts of the amplitudes. Definition: LauCacheData.hh:175 Int_t getCharge(Int_t resPairAmpInt) const Get charge of a particular two-daughter combination. Definition: LauDaughters.cc:291 Double_t getEvtJacobian() const Retrieve the Jacobian, for the transformation into square DP coordinates, for the current event... Definition: LauIsobarDynamics.hh:286 File containing declaration of LauBelleNR class. void defineKMatrixPropagator(const TString &propName, const TString ¶mFileName, Int_t resPairAmpInt, Int_t nChannels, Int_t nPoles, Int_t rowIndex=1) Define a new K-matrix Propagator. Definition: LauIsobarDynamics.cc:754 std::vector< Double_t > fSqEffSum_ The event-by-event running total of the dynamical amplitude squared for each amplitude component... Definition: LauIsobarDynamics.hh:775 File containing declaration of LauKMatrixProdSVP class. void calcDPNormalisationScheme() Calculate the Dalitz plot normalisation integrals across the whole Dalitz plot. Definition: LauIsobarDynamics.cc:966 LauAbsEffModel * effModel_ The efficiency model across the Dalitz plot. Definition: LauIsobarDynamics.hh:621 void calcExtraInfo(const Bool_t init=kFALSE) Calculate the fit fractions, mean efficiency and total DP rate. Definition: LauIsobarDynamics.cc:1803 std::vector< Int_t > incohResPairAmp_ The index of the daughter not produced by the resonance for each incoherent amplitude component... Definition: LauIsobarDynamics.hh:685 Double_t DPNorm_ The normalisation factor for the log-likelihood function. Definition: LauIsobarDynamics.hh:640 LauTagCatScfFractionModelMap scfFractionModel_ The self cross feed fraction models across the Dalitz plot. Definition: LauIsobarDynamics.hh:628 LauParArray fitFrac_ The fit fractions for the amplitude components. Definition: LauIsobarDynamics.hh:643 File containing declaration of LauDaughters class. Double_t aSqMaxVar_ The maximum value of A squared that has been seen so far while generating. Definition: LauIsobarDynamics.hh:790 Double_t scfFraction_ The fraction of events that are poorly reconstructed (the self cross feed fraction) at the current po... Definition: LauIsobarDynamics.hh:739 Abstract class for defining incoherent resonant amplitude models. Definition: LauAbsIncohRes.hh:29 Double_t m13Sq_ The invariant mass squared of the first and third daughters. Definition: LauIsobarDynamics.hh:721 LauAbsResonance * getResonance(const LauDaughters *daughters, const TString &resName, const Int_t resPairAmpInt, const LauAbsResonance::LauResonanceModel resType, const LauBlattWeisskopfFactor::BlattWeisskopfCategory bwCategory=LauBlattWeisskopfFactor::Default, const LauBlattWeisskopfFactor::BarrierType bwType=LauBlattWeisskopfFactor::BWPrimeBarrier) Create a resonance. Definition: LauResonanceMaker.cc:477 Int_t iterationsMax_ The maximum allowed number of attempts when generating an event. Definition: LauIsobarDynamics.hh:781 TString getConjResName(const TString &resName) const Retrieve the name of the charge conjugate of a named resonance. Definition: LauIsobarDynamics.cc:2426 Definition: LauAbsResonance.hh:52 std::vector< Double_t > resonanceParValues_ List of floating resonance parameter values from previous calculation. Definition: LauIsobarDynamics.hh:802 File containing declaration of LauBelleSymNR class. File containing declaration of LauPrint class. Pure abstract base class for defining the efficiency description across the signal Dalitz plot... Definition: LauAbsEffModel.hh:32 void setIncohIntenTerm(const UInt_t index, const Double_t value) Set the dynamic part of the intensity for a given incoherent amplitude component at the current point... Definition: LauIsobarDynamics.cc:1792 Double_t getm13Min() const Get the m13 minimum defined as (m1 + m3) Definition: LauKinematics.hh:269 Class for defining (a section of) the Dalitz plot integration binning scheme. Definition: LauDPPartialIntegralInfo.hh:33 Double_t retrieveJacobian() const Retrieve the Jacobian for the transformation into square-Dalitz-plot coordinates. ... Definition: LauCacheData.hh:163 std::map< TString, Double_t > LauFitData Type for holding event data. Definition: LauFitDataTree.hh:31 void calcDPNormalisation() Calculate the Dalitz plot normalisation integrals across the whole Dalitz plot. Definition: LauIsobarDynamics.cc:949 TString getNameDaug2() const Get name of the second daughter particle. Definition: LauDaughters.cc:236 Double_t getM23Value(const UInt_t m23Point) const Retrieve the m23 value at the given grid point. Definition: LauDPPartialIntegralInfo.hh:126 std::vector< TString > incohResTypAmp_ The resonance types of all of the incoherent amplitude components. Definition: LauIsobarDynamics.hh:682 std::vector< LauAbsIncohRes * > sigIncohResonances_ The incoherent resonances in the model. Definition: LauIsobarDynamics.hh:667 UInt_t nBranches() const Obtain the number of branches in the tree. Definition: LauFitDataTree.cc:170 Double_t getEvtScfFraction() const Retrieve the fraction of events that are poorly reconstructed (the self cross feed fraction) for the ... Definition: LauIsobarDynamics.hh:280 void resAmp(const UInt_t index) Calculate the dynamic part of the amplitude for a given component at the current point in the Dalitz ... Definition: LauIsobarDynamics.cc:1651 LauKMatrixPropagator * getPropagator(const TString &name, const TString ¶mFileName, Int_t resPairAmpInt, Int_t nChannels, Int_t nPoles, Int_t rowIndex) Retrieve the propagator if it already exists, otherwise create one. Definition: LauKMatrixPropFactory.cc:53 void calcLikelihoodInfo(const UInt_t iEvt) Calculate the likelihood (and all associated information) for the given event number. Definition: LauIsobarDynamics.cc:2172 std::vector< Double_t > fSqSum_ The event-by-event running total of the dynamical amplitude squared for each amplitude component... Definition: LauIsobarDynamics.hh:772 File containing declaration of LauKinematics class. UInt_t getnm23Points() const Retrieve the number of bins in m23. Definition: LauDPPartialIntegralInfo.hh:104 File containing declaration of LauKMatrixPropagator class. Double_t getm13Max() const Get the m13 maximum defined as (mParent - m2) Definition: LauKinematics.hh:285 UInt_t getnm13Points() const Retrieve the number of bins in m13. Definition: LauDPPartialIntegralInfo.hh:98 Definition: LauIsobarDynamics.hh:47 Class for defining a K-matrix production pole amplitude term. Definition: LauKMatrixProdPole.hh:31 Double_t getm12Min() const Get the m12 minimum defined as (m1 + m2) Definition: LauKinematics.hh:274 Double_t retrievem13Sq() const Retrieve the invariant mass squared of the first and third daugthers. Definition: LauCacheData.hh:121 Double_t m23Sq_ The invariant mass squared of the second and third daughters. Definition: LauIsobarDynamics.hh:724 Double_t evtLike_ The normalised likelihood for the current event. Definition: LauIsobarDynamics.hh:748 File containing declaration of LauIsobarDynamics class. std::vector< std::vector< LauComplex > > fifjEffSum_ The event-by-event running total of efficiency corrected amplitude cross terms for each pair of ampli... Definition: LauIsobarDynamics.hh:757 Singleton factory class for creating resonances. Definition: LauResonanceMaker.hh:35 void updateKinematics(Double_t m13Sq, Double_t m23Sq) Update all kinematic quantities based on the DP co-ordinates m13Sq and m23Sq. Definition: LauKinematics.cc:82 Bool_t fullySymmetricDP_ Whether the Dalitz plot is fully symmetric. Definition: LauIsobarDynamics.hh:694 void fillDataTree(const LauFitDataTree &fitDataTree) Fill the internal data structure that caches the resonance dynamics. Definition: LauIsobarDynamics.cc:2274 LauAbsResonance * findResonance(const TString &name) Retrieve the named resonance. Definition: LauIsobarDynamics.cc:873 void resetNormVectors() Zero the various values used to store integrals info. Definition: LauIsobarDynamics.cc:175 Double_t abs2() const Obtain the square of the absolute value of the complex number. Definition: LauComplex.hh:232 Bool_t gotSymmetricalDP() const Is Dalitz plot symmetric, i.e. 2 identical particles. Definition: LauDaughters.hh:66 static LauKMatrixPropFactory * getInstance() Get a static instance of this factory class. Only one is created per application. ... Definition: LauKMatrixPropFactory.cc:45 File containing declaration of LauResonanceMaker class. Double_t m23BinWidth_ The bin width to use when integrating over m23. Definition: LauIsobarDynamics.hh:712 File containing declaration of LauCacheData class. virtual LauResonanceModel getResonanceModel() const =0 Get the resonance model type. Double_t getm12Max() const Get the m12 maximum defined as (mParent - m3) Definition: LauKinematics.hh:290 void addKMatrixProdPole(const TString &poleName, const TString &propName, Int_t poleIndex) Add a K-matrix production pole term to the model. Definition: LauIsobarDynamics.cc:781 void calcTotalAmp(const Bool_t useEff) Calculate the total Dalitz plot amplitude at the current point in the Dalitz plot. Definition: LauIsobarDynamics.cc:1568 Double_t retrieveScfFraction(Int_t tagCat) Obtain the self cross feed fraction of the current event from the model. Definition: LauIsobarDynamics.cc:2452 std::vector< TString > resTypAmp_ The resonance types of all of the amplitude components. Definition: LauIsobarDynamics.hh:676 const std::vector< Double_t > & retrieveIncohIntensities() const Retrieve the incoherent intensities. Definition: LauCacheData.hh:181 const std::vector< Double_t > & retrieveRealAmp() const Retrieve the real parts of the amplitudes. Definition: LauCacheData.hh:169 LauIsobarDynamics(LauDaughters *daughters, LauAbsEffModel *effModel, LauAbsEffModel *scfFractionModel=0) Constructor. Definition: LauIsobarDynamics.cc:49 LauCacheData * currentEvent_ The cached data for the current event. Definition: LauIsobarDynamics.hh:658 void initialiseVectors() Initialise the internal storage for this model. Definition: LauIsobarDynamics.cc:477 Double_t jacobian_ The Jacobian, for the transformation into square DP coordinates at the current point in the Dalitz pl... Definition: LauIsobarDynamics.hh:742 void flipAndUpdateKinematics() Flips the DP variables m13^2 <-> m23^2 and recalculates all kinematic quantities. ... Definition: LauKinematics.cc:476 std::map< Int_t, LauAbsEffModel * > LauTagCatScfFractionModelMap The type used for containing multiple self cross feed fraction models for different categories (e... Definition: LauIsobarDynamics.hh:43 Double_t narrowWidth_ The value below which a resonance width is considered to be narrow. Definition: LauIsobarDynamics.hh:715 Double_t getM13Value(const UInt_t m13Point) const Retrieve the m13 value at the given grid point. Definition: LauDPPartialIntegralInfo.hh:119 Definition: LauAbsResonance.hh:54 void incohResAmp(const UInt_t index) Calculate the dynamic part of the intensity for a given incoherent component at the current point in ... Definition: LauIsobarDynamics.cc:1712 File containing declaration of LauDPPartialIntegralInfo class. std::vector< std::vector< LauComplex > > fifjSum_ The event-by-event running total of the amplitude cross terms for each pair of amplitude components... Definition: LauIsobarDynamics.hh:763 Double_t getm23Min() const Get the m23 minimum defined as (m2 + m3) Definition: LauKinematics.hh:264 Double_t retrieveScfFraction() const Retrieve the fraction of poorly reconstructed events (the so-called self cross feed fraction) ... Definition: LauCacheData.hh:157 Double_t retrievethPrime() const Retrieve the square Dalitz plot coordinate, theta'. Definition: LauCacheData.hh:139 UInt_t getnTotAmp() const Retrieve the total number of amplitude components. Definition: LauIsobarDynamics.hh:384 virtual Double_t calcEfficiency(const LauKinematics *kinematics) const =0 Determine the efficiency for a given point in the Dalitz plot. Double_t calcSigDPNorm() Calculate the normalisation factor for the log-likelihood function. Definition: LauIsobarDynamics.cc:2013 Bool_t withinDPLimits(Double_t m13Sq, Double_t m23Sq) const Check whether a given (m13Sq,m23Sq) point is within the kinematic limits of the Dalitz plot... Definition: LauKinematics.cc:348 Int_t getTypeDaug3() const Get PDG code of the third daughter particle. Definition: LauDaughters.cc:261 void addGridPointToIntegrals(const Double_t weight) Add the amplitude values (with the appropriate weight) at the current grid point to the running integ... Definition: LauIsobarDynamics.cc:1611 const LauFitData & getData(UInt_t iEvt) const Retrieve the data for a given event. Definition: LauFitDataTree.cc:312 File containing LauRandom namespace. LauAbsResonance * addResonance(const TString &resName, const Int_t resPairAmpInt, const LauAbsResonance::LauResonanceModel resType, const LauBlattWeisskopfFactor::BlattWeisskopfCategory bwCategory=LauBlattWeisskopfFactor::Default, const LauBlattWeisskopfFactor::BarrierType bwType=LauBlattWeisskopfFactor::BWPrimeBarrier) Add a resonance to the Dalitz plot. Definition: LauIsobarDynamics.cc:654 void rotateAndUpdateKinematics() Cyclically rotates the DP variables (m12 -> m23, m23 -> m13, m13 -> m12) and recalculates all kinemat... Definition: LauKinematics.cc:485 void removeCharge(TString &string) const Remove the charge from the given particle name. Definition: LauIsobarDynamics.cc:937 Double_t eff_ The efficiency at the current point in the Dalitz plot. Definition: LauIsobarDynamics.hh:736 void calculateAmplitudes() Calculate the amplitudes for all resonances for the current kinematics. Definition: LauIsobarDynamics.cc:1549 Int_t getTypeDaug2() const Get PDG code of the second daughter particle. Definition: LauDaughters.cc:256 Double_t getWeight(const UInt_t m13Point, const UInt_t m23Point) const Retrieve the weight for the given grid point. Definition: LauDPPartialIntegralInfo.hh:112 Bool_t gotReweightedEvent() Calculates whether an event with the current kinematics should be accepted in order to produce a dist... Definition: LauIsobarDynamics.cc:2360 Abstract class for defining type for resonance amplitude models (Breit-Wigner, Flatte etc... Definition: LauAbsResonance.hh:37 Double_t binningFactor_ The factor relating the width of the narrowest resonance and the binning size. Definition: LauIsobarDynamics.hh:718 void addKMatrixProdSVP(const TString &SVPName, const TString &propName, Int_t channelIndex) Add a K-matrix slowly-varying part (SVP) term to the model. Definition: LauIsobarDynamics.cc:828 std::vector< LauCacheData * > data_ The cached data for all events. Definition: LauIsobarDynamics.hh:655 Bool_t gotFullySymmetricDP() const Is Dalitz plot fully symmetric, i.e. 3 identical particles. Definition: LauDaughters.hh:72 void findIntegralsToBeRecalculated() Determine which amplitudes and integrals need to be recalculated. Definition: LauIsobarDynamics.cc:218 Class for defining signal dynamics using the isobar model. Definition: LauIsobarDynamics.hh:39 Double_t getEventWeight() Calculate the acceptance rate, for events with the current kinematics, when generating events accordi... Definition: LauIsobarDynamics.cc:2381 LauAbsResonance * addIncoherentResonance(const TString &resName, const Int_t resPairAmpInt, const LauAbsResonance::LauResonanceModel resType) Add an incoherent resonance to the Dalitz plot. Definition: LauIsobarDynamics.cc:713 File containing LauConstants namespace. void writeIntegralsFile() Write the results of the integrals (and related information) to a file. Definition: LauIsobarDynamics.cc:533 File containing declaration of LauAbsResonance class. void calcDPPartialIntegral(LauDPPartialIntegralInfo *intInfo) Calculate the Dalitz plot normalisation integrals over a given range. Definition: LauIsobarDynamics.cc:1469 ToyMCStatus checkToyMC(Bool_t printErrorMessages=kTRUE, Bool_t printInfoMessages=kFALSE) Check the status of the toy MC generation. Definition: LauIsobarDynamics.cc:2106 Double_t getEvtEff() const Retrieve the efficiency for the current event. Definition: LauIsobarDynamics.hh:274 UInt_t nIncohAmp_ The number of incoherent amplitude components. Definition: LauIsobarDynamics.hh:634 Bool_t gotKMatrixMatch(UInt_t resAmpInt, const TString &propName) const Check whether a resonance is a K-matrix component of a given propagator. Definition: LauIsobarDynamics.cc:1983 std::vector< LauDPPartialIntegralInfo * > dpPartialIntegralInfo_ The storage of the integration scheme. Definition: LauIsobarDynamics.hh:703 Double_t getIntensity(const UInt_t m13Point, const UInt_t m23Point, const UInt_t iAmp) const Retrieve the intensity for the given grid point and intensity index. Definition: LauDPPartialIntegralInfo.hh:169 void genFlatPhaseSpace(Double_t &m13Sq, Double_t &m23Sq) const Routine to generate events flat in phase-space. Definition: LauKinematics.cc:316 void setDataEventNo(UInt_t iEvt) Load the data for a given event. Definition: LauIsobarDynamics.cc:2153 Definition: LauAbsResonance.hh:53 void setIntegralBinWidths(const Double_t m13BinWidth, const Double_t m23BinWidth) Set the widths of the bins to use when integrating across the Dalitz plot. Definition: LauIsobarDynamics.cc:1458 Bool_t normalizationSchemeDone_ Whether the scheme for the integration has been determined. Definition: LauIsobarDynamics.hh:700 std::vector< LauParameter * > resonancePars_ List of floating resonance parameters. Definition: LauIsobarDynamics.hh:799 std::vector< std::vector< UInt_t > > resonanceParResIndex_ Indices in sigResonances_ to point to the corresponding signal resonance(s) for each floating paramet... Definition: LauIsobarDynamics.hh:805 BlattWeisskopfCategory Define resonance categories that will share common barrier factor radii. Definition: LauBlattWeisskopfFactor.hh:41 Double_t calcSqDPJacobian() Calculate the Jacobian for the transformation m23^2, m13^2 -> m', theta' (square DP) ... Definition: LauKinematics.cc:125 void storeEfficiency(const UInt_t m13Point, const UInt_t m23Point, const Double_t efficiency) Store the efficiency for the given grid point. Definition: LauDPPartialIntegralInfo.hh:142 const LauComplex & getAmplitude(const UInt_t m13Point, const UInt_t m23Point, const UInt_t iAmp) const Retrieve the amplitude for the given grid point and amplitude index. Definition: LauDPPartialIntegralInfo.hh:151 LauParameter meanDPEff_ The mean efficiency across the Dalitz plot. Definition: LauIsobarDynamics.hh:652 Bool_t integralsDone_ Whether the integrals have been performed. Definition: LauIsobarDynamics.hh:697 std::vector< Double_t > incohInten_ The dynamic part of the intensity for each incoherent amplitude component at the current point in the... Definition: LauIsobarDynamics.hh:769 virtual LauComplex amplitude(const LauKinematics *kinematics) Calculate the complex amplitude. Definition: LauAbsResonance.cc:135 void storeAmplitude(const UInt_t m13Point, const UInt_t m23Point, const UInt_t iAmp, const LauComplex &litude) Store the amplitude for the given grid point and amplitude index. Definition: LauDPPartialIntegralInfo.hh:160 std::vector< LauComplex > ff_ The dynamic part of the amplitude for each amplitude component at the current point in the Dalitz plo... Definition: LauIsobarDynamics.hh:766 void initialise(const std::vector< LauComplex > &coeffs) Initialise the Dalitz plot dynamics. Definition: LauIsobarDynamics.cc:241 TString getNameDaug3() const Get name of the third daughter particle. Definition: LauDaughters.cc:241 std::vector< Double_t > fNorm_ The normalisation factors for the dynamic parts of the amplitude for each amplitude component... Definition: LauIsobarDynamics.hh:778 Class for defining a K-matrix production "slowly-varying part" (SVP) amplitude. Definition: LauKMatrixProdSVP.hh:31 File containing declaration of LauAbsIncohRes class. std::vector< LauAbsResonance * > sigResonances_ The resonances in the model. Definition: LauIsobarDynamics.hh:664 virtual Double_t intensityFactor(const LauKinematics *kinematics)=0 Get intensity factor. void setFFTerm(const UInt_t index, const Double_t realPart, const Double_t imagPart) Set the dynamic part of the amplitude for a given amplitude component at the current point in the Dal... Definition: LauIsobarDynamics.cc:1781 Double_t retrieveEfficiency() Obtain the efficiency of the current event from the model. Definition: LauIsobarDynamics.cc:2443 LauParArray fitFracEffUnCorr_ The efficiency-uncorrected fit fractions for the amplitude components. Definition: LauIsobarDynamics.hh:646 Class for defining a K-matrix propagator. Definition: LauKMatrixPropagator.hh:36 Generated by 1.8.5 |