LauIsobarDynamics.cc
Go to the documentation of this file.
65 LauIsobarDynamics::LauIsobarDynamics(LauDaughters* daughters, LauAbsEffModel* effModel, LauAbsEffModel* scfFractionModel) :
125 // for Kspipi, we need a scfFraction 2D histogram for each tagging category. They are provided by the map.
126 // Also, we need to know the place that the tagging category of the current event occupies in the data structure inputFitTree
127 LauIsobarDynamics::LauIsobarDynamics(LauDaughters* daughters, LauAbsEffModel* effModel, LauTagCatScfFractionModelMap scfFractionModel) :
189 for ( std::vector<LauCacheData*>::iterator iter = data_.begin(); iter != data_.end(); ++iter ) {
194 for (std::vector<LauDPPartialIntegralInfo*>::iterator it = dpPartialIntegralInfo_.begin(); it != dpPartialIntegralInfo_.end(); ++it)
247 // For those that have changed mark the corresponding resonance(s) as needing to be re-evaluated
276 for ( std::vector<LauAbsResonance*>::iterator resIter = sigResonances_.begin(); resIter != sigResonances_.end(); ++resIter ) {
283 for ( std::vector<LauParameter*>::const_iterator parIter = resPars.begin(); parIter != resPars.end(); ++parIter ) {
311 for ( std::vector<LauAbsIncohRes*>::iterator resIter = sigIncohResonances_.begin(); resIter != sigIncohResonances_.end(); ++resIter ) {
318 for ( std::vector<LauParameter*>::const_iterator parIter = resPars.begin(); parIter != resPars.end(); ++parIter ) {
368 std::cout << "INFO in LauIsobarDynamics::initialise : No contributions to DP model, not performing normalisation integrals." << std::endl;
373 std::cout<<"INFO in LauIsobarDynamics::initialise : Starting special run to generate the integrals for normalising the PDF..."<<std::endl;
428 std::cout<<"INFO in LauIsobarDynamics::initialise : Initial fit fraction for amplitude ("<<i<<","<<j<<") = "<<fitFrac_[i][j].genValue()<<std::endl;
433 std::cout<<"INFO in LauIsobarDynamics::initialise : Initial fit fraction for incoherent amplitude ("<<i<<","<<i<<") = "<<fitFrac_[i+nAmp_][i+nAmp_].genValue()<<std::endl;
436 std::cout<<"INFO in LauIsobarDynamics::initialise : Initial efficiency = "<<meanDPEff_.initValue()<<std::endl;
438 std::cout<<"INFO in LauIsobarDynamics::initialise : Initial DPRate = "<<DPRate_.initValue()<<std::endl;
450 std::cout<<"INFO in LauIsobarDynamics::initSummary : We are going to do a DP with "<<nameP<<" going to "<<name1<<" "<<name2<<" "<<name3<<std::endl;
463 std::cout<<" : A"<<nAmp_+i<<": "<<incohResTypAmp_[i]<<" (incoherent) to "<<name2<<", "<< name3<<std::endl;
476 std::cout<<" : A"<<nAmp_+i<<": "<<incohResTypAmp_[i]<<" (incoherent) to "<<name1<<", "<< name3<<std::endl;
489 std::cout<<" : A"<<nAmp_+i<<": "<<incohResTypAmp_[i]<<" (incoherent) to "<<name1<<", "<< name2<<std::endl;
564 std::cout<<"INFO in LauIsobarDynamics::writeIntegralsFile : Writing integral output to integrals file "<<intFileName_.Data()<<std::endl;
680 LauAbsResonance* LauIsobarDynamics::addResonance(const TString& resName, const Int_t resPairAmpInt, const LauAbsResonance::LauResonanceModel resType, const LauBlattWeisskopfFactor::BlattWeisskopfCategory bwCategory)
698 std::cerr<<"ERROR in LauIsobarDynamics::addResonance : Resonance type \""<<resType<<"\" not allowed for a coherent resonance"<<std::endl;
703 LauAbsResonance *theResonance = resonanceMaker.getResonance(daughters_, resName, resPairAmpInt, resType, bwCategory);
706 std::cerr<<"ERROR in LauIsobarDynamics::addResonance : Couldn't create the resonance \""<<resName<<"\""<<std::endl;
711 if (flipHelicity_ && daughters_->getCharge(resPairAmpInt) == 0 && daughters_->getChargeParent() == 0 && daughters_->getTypeParent() > 0 ) {
712 if ( ( resPairAmpInt == 1 && TMath::Abs(daughters_->getTypeDaug2()) == TMath::Abs(daughters_->getTypeDaug3()) ) ||
713 ( resPairAmpInt == 2 && TMath::Abs(daughters_->getTypeDaug1()) == TMath::Abs(daughters_->getTypeDaug3()) ) ||
714 ( resPairAmpInt == 3 && TMath::Abs(daughters_->getTypeDaug1()) == TMath::Abs(daughters_->getTypeDaug2()) ) ) {
727 std::cout<<"INFO in LauIsobarDynamics::addResonance : Setting resPairAmp to 0 for "<<resonanceName<<" contribution."<<std::endl;
739 std::cout<<"INFO in LauIsobarDynamics::addResonance : Successfully added resonance. Total number of resonances so far = "<<nAmp_<<std::endl;
744 LauAbsResonance* LauIsobarDynamics::addIncoherentResonance(const TString& resName, const Int_t resPairAmpInt, const LauAbsResonance::LauResonanceModel resType)
762 std::cerr<<"ERROR in LauIsobarDynamics::addIncohResonance : Resonance type \""<<resType<<"\" not allowed for an incoherent resonance"<<std::endl;
767 LauAbsIncohRes *theResonance = dynamic_cast<LauAbsIncohRes*>( resonanceMaker.getResonance(daughters_, resName, resPairAmpInt, resType) );
770 std::cerr<<"ERROR in LauIsobarDynamics::addIncohResonance : Couldn't create the resonance \""<<resName<<"\""<<std::endl;
785 std::cout<<"INFO in LauIsobarDynamics::addIncohResonance : Successfully added incoherent resonance. Total number of incoherent resonances so far = "<<nIncohAmp_<<std::endl;
790 void LauIsobarDynamics::defineKMatrixPropagator(const TString& propName, const TString& paramFileName, Int_t resPairAmpInt,
793 // Define the K-matrix propagator. The resPairAmpInt integer specifies which mass combination should be used
794 // for the invariant mass-squared variable "s". The pole masses and coupling constants are defined in the
796 // The number of channels and poles are defined by the nChannels and nPoles integers, respectively.
802 std::cerr << "ERROR in LauIsobarDynamics::defineKMatrixPropagator. The rowIndex, which is set to "
810 LauKMatrixPropagator* thePropagator = LauKMatrixPropFactory::getInstance()->getPropagator(propagatorName, parameterFile,
817 void LauIsobarDynamics::addKMatrixProdPole(const TString& poleName, const TString& propName, Int_t poleIndex, Bool_t useProdAdler)
853 std::cout<<"INFO in LauIsobarDynamics::addKMatrixProdPole : Successfully added K-matrix production pole term. Total number of resonances so far = "<<nAmp_<<std::endl;
857 std::cerr<<"ERROR in LauIsobarDynamics::addKMatrixProdPole : The propagator of the name "<<propName
865 void LauIsobarDynamics::addKMatrixProdSVP(const TString& SVPName, const TString& propName, Int_t channelIndex, Bool_t useProdAdler)
901 std::cout<<"INFO in LauIsobarDynamics::addKMatrixProdSVP : Successfully added K-matrix production slowly-varying (SVP) term. Total number of resonances so far = "<<nAmp_<<std::endl;
905 std::cerr<<"ERROR in LauIsobarDynamics::addKMatrixProdSVP : The propagator of the name "<<propName
916 for (std::vector<LauAbsResonance*>::const_iterator iter=sigResonances_.begin(); iter!=sigResonances_.end(); ++iter) {
927 for (std::vector<LauAbsIncohRes*>::const_iterator iter=sigIncohResonances_.begin(); iter!=sigIncohResonances_.end(); ++iter) {
958 std::cerr<<"ERROR in LauIsobarDynamics::getResonance : Couldn't find resonance with index \""<<resIndex<<"\" in the model."<<std::endl;
970 std::cerr<<"ERROR in LauIsobarDynamics::getResonance : Couldn't find resonance with index \""<<resIndex<<"\" in the model."<<std::endl;
979 std::cerr<<"ERROR in LauIsobarDynamics::findResonance : Couldn't find resonance with name \""<<resName<<"\" in the model."<<std::endl;
990 std::cerr<<"ERROR in LauIsobarDynamics::findResonance : Couldn't find resonance with name \""<<resName<<"\" in the model."<<std::endl;
1015 for (std::vector<LauDPPartialIntegralInfo*>::iterator it = dpPartialIntegralInfo_.begin(); it != dpPartialIntegralInfo_.end(); ++it)
1026 std::vector< std::pair<Double_t, Double_t> > LauIsobarDynamics::formGapsFromRegions( const std::vector< std::pair<Double_t, Double_t> >& regions, const Double_t min, const Double_t max ) const
1030 // Given some narrow resonance regions, find the regions that correspond to the gaps between them
1044 void LauIsobarDynamics::cullNullRegions( std::vector<LauDPPartialIntegralInfo*>& regions ) const
1050 void LauIsobarDynamics::correctDPOverlap( std::vector< std::pair<Double_t, Double_t> >& regions, const std::vector<Double_t>& binnings ) const
1056 // If the regions overlap, ensure that the one with the finest binning takes precedence (i.e., extends its full width)
1071 std::vector<LauDPPartialIntegralInfo*> LauIsobarDynamics::m13IntegrationRegions( const std::vector< std::pair<Double_t,Double_t> >& m13Regions,
1077 // Create integration regions for all narrow resonances in m13 except for the overlaps with narrow resonances in m23
1102 integrationRegions.push_back(this->newDPIntegrationRegion(resMin13, resMax13, m23Min, resMin23, m13Binning, defaultBinning, precision, nAmp_, nIncohAmp_));
1108 integrationRegions.push_back(this->newDPIntegrationRegion(resMin13, resMax13, resMax23, nextResMin23, m13Binning, defaultBinning, precision, nAmp_, nIncohAmp_));
1114 // Add the area between the last entry and the maximum m23 (which could be the whole strip if there are no entries in m23Regions)
1115 integrationRegions.push_back(this->newDPIntegrationRegion(resMin13, resMax13, lastResMax23, m23Max, m13Binning, defaultBinning, precision, nAmp_, nIncohAmp_));
1121 std::vector<LauDPPartialIntegralInfo*> LauIsobarDynamics::m23IntegrationRegions( const std::vector<std::pair<Double_t,Double_t> >& m13Regions,
1128 // Create integration regions for all narrow resonances in m23 (including the overlap regions with m13 narrow resonances)
1154 integrationRegions.push_back(this->newDPIntegrationRegion(resMin13, resMax13, resMin23, resMax23, m13Binning, m23Binning, precision, nAmp_, nIncohAmp_));
1158 integrationRegions.push_back(this->newDPIntegrationRegion(m13Min, resMin13, resMin23, resMax23, defaultBinning, m23Binning, precision, nAmp_, nIncohAmp_));
1164 integrationRegions.push_back(this->newDPIntegrationRegion(resMax13, nextResMin13, resMin23, resMax23, defaultBinning, m23Binning, precision, nAmp_, nIncohAmp_));
1170 // Add the area between the last entry and the maximum m13 (which could be the whole strip if there are no entries in m13Regions)
1171 integrationRegions.push_back(this->newDPIntegrationRegion(lastResMax13, m13Max, resMin23, resMax23, defaultBinning, m23Binning, precision, nAmp_, nIncohAmp_));
1177 LauDPPartialIntegralInfo* LauIsobarDynamics::newDPIntegrationRegion( const Double_t minm13, const Double_t maxm13,
1192 return new LauDPPartialIntegralInfo(minm13, maxm13, minm23, maxm23, m13BinWidth, m23BinWidth, precision, nAmp, nIncohAmp);
1198 std::cerr << "ERROR in LauIsobarDynamics::calcDPNormalisationScheme : Scheme already stored!" << std::endl;
1218 // Rho-omega mixing models implicitly contains omega(782) model, but width is of rho(770) - handle as a special case
1222 const Double_t omegaWidth = (omega_info!=0) ? omega_info->getWidth()->unblindValue() : 0.00849;
1224 for ( std::vector<LauAbsResonance*>::const_iterator iter = sigResonances_.begin(); iter != sigResonances_.end(); ++iter ) {
1244 std::cout << "INFO in LauIsobarDynamics::calcDPNormalisationScheme : Found narrow resonance: " << name << ", mass = " << mass << ", width = " << width << ", pair int = " << pair << std::endl;
1247 std::cout << std::string(53, ' ') << ": But its pole is outside the kinematically allowed range, so will not consider it narrow for the purposes of integration" << std::endl;
1259 std::cout << std::string(53, ' ') << ": But its pole is outside the kinematically allowed range, so will not consider it narrow for the purposes of integration" << std::endl;
1271 std::cout << std::string(53, ' ') << ": But its pole is outside the kinematically allowed range, so will not consider it narrow for the purposes of integration" << std::endl;
1280 std::cerr << "WARNING in LauIsobarDynamics::calcDPNormalisationScheme : strange pair integer, " << pair << ", for resonance \"" << (*iter)->getResonanceName() << std::endl;
1284 for ( std::vector<LauAbsIncohRes*>::const_iterator iter = sigIncohResonances_.begin(); iter != sigIncohResonances_.end(); ++iter ) {
1295 std::cout<<"INFO in LauIsobarDynamics::calcDPNormalisationScheme : Found narrow resonance: " << name << ", mass = " << mass << ", width = " << width << ", pair int = " << pair << std::endl;
1299 std::cout << std::string(53, ' ') << ": But its pole is outside the kinematically allowed range, so will not consider it narrow for the purposes of integration" << std::endl;
1311 std::cout << std::string(53, ' ') << ": But its pole is outside the kinematically allowed range, so will not consider it narrow for the purposes of integration" << std::endl;
1323 std::cout << std::string(53, ' ') << ": But its pole is outside the kinematically allowed range, so will not consider it narrow for the purposes of integration" << std::endl;
1332 std::cerr << "WARNING in LauIsobarDynamics::calcDPNormalisationScheme : strange pair integer, " << pair << ", for resonance \"" << (*iter)->getResonanceName() << std::endl;
1343 // - can later consider whether there's a need to split up the mPrime axis into regions around particularly narrow resonances in m12
1344 // - but it seems that this isn't really needed since even the default tune gives a good resolution for most narrow resonances such as phi / chi_c0
1345 std::cout<<"INFO in LauIsobarDynamics::calcDPNormalisationScheme : One or more narrow resonances found in m12, integrating over whole square Dalitz plot with bin widths of "<<mPrimeBinWidth_<<" in mPrime and "<<thPrimeBinWidth_<<" in thetaPrime..."<<std::endl;
1349 std::cerr << "WARNING in LauIsobarDynamics::calcDPNormalisationScheme : forcing kinematics to calculate the required square DP co-ordinates" << std::endl;
1353 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(0.0, 1.0, 0.0, 1.0, mPrimeBinWidth_, thPrimeBinWidth_, precision, nAmp_, nIncohAmp_, kTRUE, kinematics_));
1358 std::cout << "INFO in LauIsobarDynamics::calcDPNormalisationScheme : No narrow resonances found, integrating over whole Dalitz plot..." << std::endl;
1359 dpPartialIntegralInfo_.push_back(new LauDPPartialIntegralInfo(minm13, maxm13, minm23, maxm23, m13BinWidth_, m23BinWidth_, precision, nAmp_, nIncohAmp_));
1363 // Get regions in that correspond to narrow resonances in m13 and m23, and correct for overlaps in each dimension (to use the finest binning)
1373 for ( std::vector<std::pair<Double_t, Double_t> >::const_iterator iter = m13NarrowRes.begin(); iter != m13NarrowRes.end(); ++iter ) {
1383 std::cout << "INFO in LauIsobarDynamics::calcDPNormalisationScheme : Resonance at m13 = " << mass << " is close to threshold, extending integration region" << std::endl;
1387 std::cout << "INFO in LauIsobarDynamics::calcDPNormalisationScheme : Resonance at m13 = " << mass << " is close to upper edge of phase space, extending integration region" << std::endl;
1399 for ( std::vector<std::pair<Double_t, Double_t> >::const_iterator iter = m23NarrowRes.begin(); iter != m23NarrowRes.end(); ++iter ) {
1409 std::cout << "INFO in LauIsobarDynamics::calcDPNormalisationScheme : Resonance at m23 = " << mass << " is close to threshold, extending integration region" << std::endl;
1413 std::cout << "INFO in LauIsobarDynamics::calcDPNormalisationScheme : Resonance at m23 = " << mass << " is close to upper edge of phase space, extending integration region" << std::endl;
1426 std::vector<LauDPPartialIntegralInfo*> fineScheme13 = this->m13IntegrationRegions(m13Regions, m23Regions, m13Binnings, precision, m13BinWidth_);
1427 std::vector<LauDPPartialIntegralInfo*> fineScheme23 = this->m23IntegrationRegions(m13Regions, m23Regions, m13Binnings, m23Binnings, precision, m23BinWidth_);
1432 std::vector< std::pair<Double_t,Double_t> > coarseRegions = this->formGapsFromRegions(m13Regions, minm13, maxm13);
1434 std::vector<LauDPPartialIntegralInfo*> coarseScheme = this->m13IntegrationRegions(coarseRegions, m23Regions, coarseBinning, precision, m13BinWidth_);
1436 dpPartialIntegralInfo_.insert(dpPartialIntegralInfo_.end(), fineScheme13.begin(), fineScheme13.end());
1437 dpPartialIntegralInfo_.insert(dpPartialIntegralInfo_.end(), fineScheme23.begin(), fineScheme23.end());
1438 dpPartialIntegralInfo_.insert(dpPartialIntegralInfo_.end(), coarseScheme.begin(), coarseScheme.end());
1449 void LauIsobarDynamics::setIntegralBinWidths(const Double_t m13BinWidth, const Double_t m23BinWidth,
1485 Bool_t withinDP = squareDP ? kinematics_->withinSqDPLimits(m13, m23) : kinematics_->withinDPLimits(m13Sq, m23Sq);
1510 void LauIsobarDynamics::calculateAmplitudes( LauDPPartialIntegralInfo* intInfo, const UInt_t m13Point, const UInt_t m23Point )
1550 if ( (integralsToBeCalculated_.find(iAmp) != intEnd) && !sigResonances_[iAmp]->preSymmetrised() ) {
1562 if ( (integralsToBeCalculated_.find(iAmp+nAmp_) != intEnd) && !sigResonances_[iAmp]->preSymmetrised() ) {
1580 if ( (integralsToBeCalculated_.find(iAmp) != intEnd) && !sigResonances_[iAmp]->preSymmetrised() ) {
1588 if ( (integralsToBeCalculated_.find(iAmp+nAmp_) != intEnd) && !sigResonances_[iAmp]->preSymmetrised() ) {
1599 if ( (integralsToBeCalculated_.find(iAmp) != intEnd) && !sigResonances_[iAmp]->preSymmetrised() ) {
1607 if ( (integralsToBeCalculated_.find(iAmp+nAmp_) != intEnd) && !sigResonances_[iAmp]->preSymmetrised() ) {
1619 if ( (integralsToBeCalculated_.find(iAmp) != intEnd) && !sigResonances_[iAmp]->preSymmetrised() ) {
1627 if ( (integralsToBeCalculated_.find(iAmp+nAmp_) != intEnd) && !sigResonances_[iAmp]->preSymmetrised() ) {
1638 if ( (integralsToBeCalculated_.find(iAmp) != intEnd) && !sigResonances_[iAmp]->preSymmetrised() ) {
1646 if ( (integralsToBeCalculated_.find(iAmp+nAmp_) != intEnd) && !sigResonances_[iAmp]->preSymmetrised() ) {
1657 if ( (integralsToBeCalculated_.find(iAmp) != intEnd) && !sigResonances_[iAmp]->preSymmetrised() ) {
1665 if ( (integralsToBeCalculated_.find(iAmp+nAmp_) != intEnd) && !sigResonances_[iAmp]->preSymmetrised() ) {
1868 std::cerr<<"ERROR in LauIsobarDynamics::resAmp : index = "<<index<<" is not within the range 0 to "<<nAmp_-1<<std::endl;
1876 std::cerr<<"ERROR in LauIsobarDynamics::resAmp : Couldn't retrieve valid resonance with index = "<<index<<std::endl;
1893 std::cerr<<"ERROR in LauIsobarDynamics::incohResAmp : index = "<<index<<" is not within the range 0 to "<<nIncohAmp_-1<<std::endl;
1901 std::cerr<<"ERROR in LauIsobarDynamics::incohResAmp : Couldn't retrieve valid incoherent resonance with index = "<<index<<std::endl;
1912 void LauIsobarDynamics::setFFTerm(const UInt_t index, const Double_t realPart, const Double_t imagPart)
1916 std::cerr<<"ERROR in LauIsobarDynamics::setFFTerm : index = "<<index<<" is not within the range 0 to "<<nAmp_-1<<std::endl;
1925 // Function to set the internal incoherent intensity term (normally calculated using incohResAmp(index).
1927 std::cerr<<"ERROR in LauIsobarDynamics::setFFTerm : index = "<<index<<" is not within the range 0 to "<<nIncohAmp_-1<<std::endl;
2068 // Now loop over all resonances and find those which are K-matrix components for this propagator
2111 std::cout<<"INFO in LauIsobarDynamics::calcExtraInfo : Total K-matrix fit fraction for propagator "<<propName<<" is "<<kMatrixTotFitFrac<<std::endl;
2143 std::cout << "INFO in LauIsobarDynamics::calcExtraInfo : Calculating omega fit fraction from resonance " << omegaID << std::endl;
2144 std::cout << "INFO in LauIsobarDynamics::calcExtraInfo : Storing omega fit fraction in resonance " << storeID << std::endl;
2200 fitFrac_[omegaID][omegaID].value(fitFracPartRho * fNorm_[omegaID] * fNorm_[omegaID] / DPRate_.value());
2203 std::cout << "INFO in LauIsobarDynamics::calcExtraInfo : calculateRhoOmegaFitFractions is set, but the RhoOmegaMix model isn't in the right place. Ignoring this option." << std::endl;
2333 LauIsobarDynamics::ToyMCStatus LauIsobarDynamics::checkToyMC(Bool_t printErrorMessages, Bool_t printInfoMessages)
2341 std::cerr<<"WARNING in LauIsobarDynamics::checkToyMC : More than "<<iterationsMax_<<" iterations performed and no event accepted."<<std::endl;
2346 std::cerr<<" : |A|^2 maximum was set to "<<aSqMaxSet_<<" but this appears to be too high."<<std::endl;
2348 std::cerr<<" : The value of |A|^2 maximum will be decreased and the generation restarted."<<std::endl;
2351 std::cout<<"INFO in LauIsobarDynamics::checkToyMC : |A|^2 max reset to "<<aSqMaxSet_<<std::endl;
2355 std::cerr<<" : |A|^2 maximum was set to "<<aSqMaxSet_<<", which seems to be correct for the given model."<<std::endl;
2356 std::cerr<<" : However, the generation is very inefficient - please check your model."<<std::endl;
2357 std::cerr<<" : The maximum number of iterations will be increased and the generation restarted."<<std::endl;
2360 std::cout<<"INFO in LauIsobarDynamics::checkToyMC : max number of iterations reset to "<<iterationsMax_<<std::endl;
2366 std::cerr<<"WARNING in LauIsobarDynamics::checkToyMC : |A|^2 maximum was set to "<<aSqMaxSet_<<" but a value exceeding this was found: "<<aSqMaxVar_<<std::endl;
2367 std::cerr<<" : Run was invalid, as any generated MC will be biased, according to the accept/reject method!"<<std::endl;
2368 std::cerr<<" : The value of |A|^2 maximum be reset to be > "<<aSqMaxVar_<<" and the generation restarted."<<std::endl;
2371 std::cout<<"INFO in LauIsobarDynamics::checkToyMC : |A|^2 max reset to "<<aSqMaxSet_<<std::endl;
2374 std::cout<<"INFO in LauIsobarDynamics::checkToyMC : aSqMaxSet = "<<aSqMaxSet_<<" and aSqMaxVar = "<<aSqMaxVar_<<std::endl;
2386 std::cerr<<"ERROR in LauIsobarDynamics::setDataEventNo : Event index too large: "<<iEvt<<" >= "<<data_.size()<<"."<<std::endl;
2395 scfFraction_ = currentEvent_->retrieveScfFraction(); // These two are necessary, even though the dynamics don't actually use scfFraction_ or jacobian_,
2396 jacobian_ = currentEvent_->retrieveJacobian(); // since this is at the heart of the caching mechanism.
2435 void LauIsobarDynamics::calcLikelihoodInfo(const Double_t m13Sq, const Double_t m23Sq, const Int_t tagCat)
2506 // Since this is the first caching, we need to make sure to calculate everything for every resonance
2515 std::cerr<<"ERROR in LauIsobarDynamics::fillDataTree : Expecting at least 2 variables " <<"in input data tree, but there are "<<nBranches<<"!\n";
2516 std::cerr<<" : Make sure you have the right number of variables in your input data file!"<<std::endl;
2522 for ( std::vector<LauCacheData*>::iterator iter = data_.begin(); iter != data_.end(); ++iter ) {
2595 // then calculate totAmp_ and finally ASq_ = totAmp_.abs2() (without the efficiency correction!)
2613 // then calculate totAmp_ and finally ASq_ = totAmp_.abs2() (without the efficiency correction!)
2624 std::cerr << "ERROR in LauIsobarDynamics::updateCoeffs : Expected " << this->getnTotAmp() << " but got " << coeffs.size() << std::endl;
2635 // 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:828 Bool_t withinDPLimits(const Double_t m13Sq, const Double_t m23Sq) const Check whether a given (m13Sq,m23Sq) point is within the kinematic limits of the Dalitz plot... Definition: LauKinematics.cc:380 std::vector< LauComplex > Amp_ The complex coefficients for the amplitude components. Definition: LauIsobarDynamics.hh:792 void modifyDataTree() Recache the amplitude values for those that have changed. Definition: LauIsobarDynamics.cc:2464 Int_t nSigGenLoop_ The number of unsucessful attempts to generate an event so far. Definition: LauIsobarDynamics.hh:951 TString getNameDaug1() const Get name of the first daughter particle. Definition: LauDaughters.cc:257 Double_t getm23Max() const Get the m23 maximum defined as (mParent - m1) Definition: LauKinematics.hh:342 Double_t retrievemPrime() const Retrieve the square Dalitz plot coordinate, m'. Definition: LauCacheData.hh:147 std::vector< LauDPPartialIntegralInfo * > m23IntegrationRegions(const std::vector< std::pair< Double_t, Double_t > > &m13Regions, const std::vector< std::pair< Double_t, Double_t > > &m23Regions, const std::vector< Double_t > &m13Binnings, const std::vector< Double_t > &m23Binnings, const Double_t precision, const Double_t defaultBinning) const Create the integration grid objects for the m23 narrow resonance regions, including the overlap regio... Definition: LauIsobarDynamics.cc:1121 TRandom * randomFun() Access the singleton random number generator with a particular seed. Definition: LauRandom.cc:34 File containing declaration of LauKMatrixPropFactory class. File containing declaration of LauFitDataTree class. File containing declaration of LauNRAmplitude class. std::vector< LauDPPartialIntegralInfo * > m13IntegrationRegions(const std::vector< std::pair< Double_t, Double_t > > &m13Regions, const std::vector< std::pair< Double_t, Double_t > > &m23Regions, const std::vector< Double_t > &m13Binnings, const Double_t precision, const Double_t defaultBinning) const Create the integration grid objects for the m13 narrow resonance regions, excluding the overlap regio... Definition: LauIsobarDynamics.cc:1071 void setIntegralBinWidths(const Double_t m13BinWidth, const Double_t m23BinWidth, const Double_t mPrimeBinWidth=0.001, const Double_t thPrimeBinWidth=0.001) Set the widths of the bins to use when integrating across the Dalitz plot or square Dalitz plot... Definition: LauIsobarDynamics.cc:1449 Bool_t recalcNormalisation_ Flag to recalculate the normalisation. Definition: LauIsobarDynamics.hh:963 LauAbsResonance * addResonance(const TString &resName, const Int_t resPairAmpInt, const LauAbsResonance::LauResonanceModel resType, const LauBlattWeisskopfFactor::BlattWeisskopfCategory bwCategory=LauBlattWeisskopfFactor::Default) Add a resonance to the Dalitz plot. Definition: LauIsobarDynamics.cc:680 LauParameter * getMass() const Retrieve the mass of the resonant particle. Definition: LauResonanceInfo.hh:83 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:204 Double_t retrievem23Sq() const Retrieve the invariant mass squared of the second and third daugthers. Definition: LauCacheData.hh:141 Int_t getTypeDaug1() const Get PDG code of the first daughter particle. Definition: LauDaughters.cc:297 const TString & getResonanceName() const Get the name of the resonance. Definition: LauAbsResonance.hh:152 void updateCoeffs(const std::vector< LauComplex > &coeffs) Update the complex coefficients for the resonances. Definition: LauIsobarDynamics.cc:2620 std::set< UInt_t > integralsToBeCalculated_ Resonance indices for which the amplitudes and integrals should be recalculated. Definition: LauIsobarDynamics.hh:975 File containing declaration of LauResonanceInfo class. Double_t m13BinWidth_ The bin width to use when integrating over m13. Definition: LauIsobarDynamics.hh:870 Bool_t flipHelicity_ The helicity flip flag for new amplitude components. Definition: LauIsobarDynamics.hh:960 File containing declaration of LauAbsEffModel class. ClassImp(LauAbsCoeffSet) Double_t 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:1885 std::vector< std::pair< Double_t, Double_t > > formGapsFromRegions(const std::vector< std::pair< Double_t, Double_t > > ®ions, const Double_t min, const Double_t max) const Form the regions that are produced by the spaces between narrow resonances. Definition: LauIsobarDynamics.cc:1026 std::vector< Int_t > resPairAmp_ The index of the daughter not produced by the resonance for each amplitude component. Definition: LauIsobarDynamics.hh:834 void squareDP(const Bool_t calcSquareDPCoords) Enable/disable the calculation of square Dalitz plot co-ordinates. Definition: LauKinematics.hh:68 Bool_t hasResonance(const TString &resName) const Check whether this model includes a named resonance. Definition: LauIsobarDynamics.cc:941 const LauAbsResonance * findResonance(const TString &resName) const Retrieve the named resonance. Definition: LauIsobarDynamics.cc:986 Class for defining the properties of a resonant particle. Definition: LauResonanceInfo.hh:46 std::vector< LauParameter > extraParameters_ any extra parameters/quantities (e.g. K-matrix total fit fractions) Definition: LauIsobarDynamics.hh:816 File containing declaration of LauKMatrixProdPole class. Class that defines the particular 3-body decay under study. Definition: LauDaughters.hh:47 const std::vector< Double_t > & retrieveImagAmp() const Retrieve the imaginary parts of the amplitudes. Definition: LauCacheData.hh:189 Int_t getCharge(Int_t resPairAmpInt) const Get charge of a particular two-daughter combination. Definition: LauDaughters.cc:337 Double_t getEvtJacobian() const Retrieve the Jacobian, for the transformation into square DP coordinates, for the current event... Definition: LauIsobarDynamics.hh:334 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:790 std::vector< Double_t > fSqEffSum_ The event-by-event running total of the dynamical amplitude squared for each amplitude component... Definition: LauIsobarDynamics.hh:942 File containing declaration of LauKMatrixProdSVP class. void calcDPNormalisationScheme() Calculate the Dalitz plot normalisation integrals across the whole Dalitz plot. Definition: LauIsobarDynamics.cc:1195 LauAbsEffModel * effModel_ The efficiency model across the Dalitz plot. Definition: LauIsobarDynamics.hh:776 void calcExtraInfo(const Bool_t init=kFALSE) Calculate the fit fractions, mean efficiency and total DP rate. Definition: LauIsobarDynamics.cc:1934 std::vector< Int_t > incohResPairAmp_ The index of the daughter not produced by the resonance for each incoherent amplitude component... Definition: LauIsobarDynamics.hh:840 Double_t DPNorm_ The normalisation factor for the log-likelihood function. Definition: LauIsobarDynamics.hh:795 LauTagCatScfFractionModelMap scfFractionModel_ The self cross feed fraction models across the Dalitz plot. Definition: LauIsobarDynamics.hh:783 LauParArray fitFrac_ The fit fractions for the amplitude components. Definition: LauIsobarDynamics.hh:798 LauParameter * getWidth() const Retrieve the width of the resonant particle. Definition: LauResonanceInfo.hh:89 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:957 Double_t scfFraction_ The fraction of events that are poorly reconstructed (the self cross feed fraction) at the current po... Definition: LauIsobarDynamics.hh:906 Abstract class for defining incoherent resonant amplitude models. Definition: LauAbsIncohRes.hh:43 Double_t m13Sq_ The invariant mass squared of the first and third daughters. Definition: LauIsobarDynamics.hh:888 Int_t iterationsMax_ The maximum allowed number of attempts when generating an event. Definition: LauIsobarDynamics.hh:948 TString getConjResName(const TString &resName) const Retrieve the name of the charge conjugate of a named resonance. Definition: LauIsobarDynamics.cc:2641 Definition: LauAbsResonance.hh:67 std::vector< Double_t > resonanceParValues_ List of floating resonance parameter values from previous calculation. Definition: LauIsobarDynamics.hh:969 File containing declaration of LauBelleSymNR class. File containing declaration of LauPrint class. void updateSqDPKinematics(const Double_t mPrime, const Double_t thetaPrime) Update all kinematic quantities based on the square DP co-ordinates m' and theta'. Definition: LauKinematics.cc:117 Pure abstract base class for defining the efficiency description across the signal Dalitz plot... Definition: LauAbsEffModel.hh:46 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:1923 Double_t getm13Min() const Get the m13 minimum defined as (m1 + m3) Definition: LauKinematics.hh:331 Class for defining (a section of) the Dalitz plot integration binning scheme. Definition: LauDPPartialIntegralInfo.hh:49 Double_t retrieveJacobian() const Retrieve the Jacobian for the transformation into square-Dalitz-plot coordinates. ... Definition: LauCacheData.hh:177 std::map< TString, Double_t > LauFitData Type for holding event data. Definition: LauFitDataTree.hh:45 void calcDPNormalisation() Calculate the Dalitz plot normalisation integrals across the whole Dalitz plot. Definition: LauIsobarDynamics.cc:1009 TString getNameDaug2() const Get name of the second daughter particle. Definition: LauDaughters.cc:262 Double_t getM23Value(const UInt_t m23Point) const Retrieve the m23 value at the given grid point. Definition: LauDPPartialIntegralInfo.hh:152 std::vector< TString > incohResTypAmp_ The resonance types of all of the incoherent amplitude components. Definition: LauIsobarDynamics.hh:837 std::vector< LauAbsIncohRes * > sigIncohResonances_ The incoherent resonances in the model. Definition: LauIsobarDynamics.hh:822 UInt_t nBranches() const Obtain the number of branches in the tree. Definition: LauFitDataTree.cc:206 Double_t getEvtScfFraction() const Retrieve the fraction of events that are poorly reconstructed (the self cross feed fraction) for the ... Definition: LauIsobarDynamics.hh:328 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:70 void calcLikelihoodInfo(const UInt_t iEvt) Calculate the likelihood (and all associated information) for the given event number. Definition: LauIsobarDynamics.cc:2399 std::vector< Double_t > fSqSum_ The event-by-event running total of the dynamical amplitude squared for each amplitude component... Definition: LauIsobarDynamics.hh:939 File containing declaration of LauKinematics class. UInt_t getnm23Points() const Retrieve the number of bins in m23. Definition: LauDPPartialIntegralInfo.hh:124 File containing declaration of LauKMatrixPropagator class. LauComplex 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:1860 Double_t getm13Max() const Get the m13 maximum defined as (mParent - m2) Definition: LauKinematics.hh:347 UInt_t getnm13Points() const Retrieve the number of bins in m13. Definition: LauDPPartialIntegralInfo.hh:118 Definition: LauIsobarDynamics.hh:61 Class for defining a K-matrix production pole amplitude term. Definition: LauKMatrixProdPole.hh:45 Double_t getm12Min() const Get the m12 minimum defined as (m1 + m2) Definition: LauKinematics.hh:336 const LauAbsResonance * getResonance(const UInt_t resIndex) const Retrieve a resonance by its index. Definition: LauIsobarDynamics.cc:951 Double_t retrievem13Sq() const Retrieve the invariant mass squared of the first and third daugthers. Definition: LauCacheData.hh:135 Double_t m23Sq_ The invariant mass squared of the second and third daughters. Definition: LauIsobarDynamics.hh:891 Double_t evtLike_ The normalised likelihood for the current event. Definition: LauIsobarDynamics.hh:915 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:924 Singleton factory class for creating resonances. Definition: LauResonanceMaker.hh:49 Bool_t fullySymmetricDP_ Whether the Dalitz plot is fully symmetric. Definition: LauIsobarDynamics.hh:849 void setWhichAmpSq(Int_t which) Set which rho/omega amplitude to calculate for FF. Definition: LauRhoOmegaMix.hh:115 void fillDataTree(const LauFitDataTree &fitDataTree) Fill the internal data structure that caches the resonance dynamics. Definition: LauIsobarDynamics.cc:2501 void resetNormVectors() Zero the various values used to store integrals info. Definition: LauIsobarDynamics.cc:201 Double_t calcSqDPJacobian(const Double_t mPrime, const Double_t thPrime) const Calculate the Jacobian for the transformation m23^2, m13^2 -> m', theta' (square DP) at the given poin... Definition: LauKinematics.cc:148 Double_t abs2() const Obtain the square of the absolute value of the complex number. Definition: LauComplex.hh:246 Bool_t flavConjDP_ Whether the Dalitz plot is a flavour-conjugate final state. Definition: LauIsobarDynamics.hh:852 void collateResonanceParameters() Collate the resonance parameters to initialise (or re-initialise) the model. Definition: LauIsobarDynamics.cc:267 Bool_t gotSymmetricalDP() const Is Dalitz plot symmetric, i.e. 2 identical particles. Definition: LauDaughters.hh:80 static LauKMatrixPropFactory * getInstance() Get a static instance of this factory class. Only one is created per application. ... Definition: LauKMatrixPropFactory.cc:62 File containing declaration of LauResonanceMaker class. Double_t m23BinWidth_ The bin width to use when integrating over m23. Definition: LauIsobarDynamics.hh:873 File containing declaration of LauRhoOmegaMix class. LauDPPartialIntegralInfo * newDPIntegrationRegion(const Double_t minm13, const Double_t maxm13, const Double_t minm23, const Double_t maxm23, const Double_t m13BinWidth, const Double_t m23BinWidth, const Double_t precision, const UInt_t nAmp, const UInt_t nIncohAmp) const Wrapper for LauDPPartialIntegralInfo constructor. Definition: LauIsobarDynamics.cc:1177 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:352 void addKMatrixProdPole(const TString &poleName, const TString &propName, Int_t poleIndex, Bool_t useProdAdler=kFALSE) Add a K-matrix production pole term to the model. Definition: LauIsobarDynamics.cc:817 void calcTotalAmp(const Bool_t useEff) Calculate the total Dalitz plot amplitude at the current point in the Dalitz plot. Definition: LauIsobarDynamics.cc:1777 Double_t retrieveScfFraction(Int_t tagCat) Obtain the self cross feed fraction of the current event from the model. Definition: LauIsobarDynamics.cc:2666 std::vector< TString > resTypAmp_ The resonance types of all of the amplitude components. Definition: LauIsobarDynamics.hh:831 const std::vector< Double_t > & retrieveIncohIntensities() const Retrieve the incoherent intensities. Definition: LauCacheData.hh:195 const std::vector< Double_t > & retrieveRealAmp() const Retrieve the real parts of the amplitudes. Definition: LauCacheData.hh:183 LauIsobarDynamics(LauDaughters *daughters, LauAbsEffModel *effModel, LauAbsEffModel *scfFractionModel=0) Constructor. Definition: LauIsobarDynamics.cc:65 LauCacheData * currentEvent_ The cached data for the current event. Definition: LauIsobarDynamics.hh:813 void initialiseVectors() Initialise the internal storage for this model. Definition: LauIsobarDynamics.cc:503 Double_t jacobian_ The Jacobian, for the transformation into square DP coordinates at the current point in the Dalitz pl... Definition: LauIsobarDynamics.hh:909 void flipAndUpdateKinematics() Flips the DP variables m13^2 <-> m23^2 and recalculates all kinematic quantities. ... Definition: LauKinematics.cc:508 Bool_t calculateRhoOmegaFitFractions_ Whether to calculate separate rho and omega fit fractions from the LauRhoOmegaMix model... Definition: LauIsobarDynamics.hh:978 std::map< Int_t, LauAbsEffModel * > LauTagCatScfFractionModelMap The type used for containing multiple self cross feed fraction models for different categories (e... Definition: LauIsobarDynamics.hh:57 Double_t narrowWidth_ The value below which a resonance width is considered to be narrow. Definition: LauIsobarDynamics.hh:882 Double_t getM13Value(const UInt_t m13Point) const Retrieve the m13 value at the given grid point. Definition: LauDPPartialIntegralInfo.hh:145 Definition: LauAbsResonance.hh:69 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:930 Double_t getm23Min() const Get the m23 minimum defined as (m2 + m3) Definition: LauKinematics.hh:326 Double_t retrieveScfFraction() const Retrieve the fraction of poorly reconstructed events (the so-called self cross feed fraction) ... Definition: LauCacheData.hh:171 Double_t retrievethPrime() const Retrieve the square Dalitz plot coordinate, theta'. Definition: LauCacheData.hh:153 UInt_t getnTotAmp() const Retrieve the total number of amplitude components. Definition: LauIsobarDynamics.hh:474 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:2240 Class for defining the rho-omega resonance mixing model. Definition: LauRhoOmegaMix.hh:50 void updateKinematics(const Double_t m13Sq, const Double_t m23Sq) Update all kinematic quantities based on the DP co-ordinates m13Sq and m23Sq. Definition: LauKinematics.cc:100 Int_t getTypeDaug3() const Get PDG code of the third daughter particle. Definition: LauDaughters.cc:307 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:1820 Double_t thPrimeBinWidth_ The bin width to use when integrating over thetaPrime. Definition: LauIsobarDynamics.hh:879 const LauFitData & getData(UInt_t iEvt) const Retrieve the data for a given event. Definition: LauFitDataTree.cc:348 File containing LauRandom namespace. void rotateAndUpdateKinematics() Cyclically rotates the DP variables (m12 -> m23, m23 -> m13, m13 -> m12) and recalculates all kinemat... Definition: LauKinematics.cc:517 void removeCharge(TString &string) const Remove the charge from the given particle name. Definition: LauIsobarDynamics.cc:997 Double_t eff_ The efficiency at the current point in the Dalitz plot. Definition: LauIsobarDynamics.hh:903 void calculateAmplitudes() Calculate the amplitudes for all resonances for the current kinematics. Definition: LauIsobarDynamics.cc:1684 void correctDPOverlap(std::vector< std::pair< Double_t, Double_t > > ®ions, const std::vector< Double_t > &binnings) const Correct regions to ensure that the finest integration grid takes precedence. Definition: LauIsobarDynamics.cc:1050 Int_t getTypeDaug2() const Get PDG code of the second daughter particle. Definition: LauDaughters.cc:302 Double_t getWeight(const UInt_t m13Point, const UInt_t m23Point) const Retrieve the weight for the given grid point. Definition: LauDPPartialIntegralInfo.hh:138 LauAbsResonance * getResonance(const LauDaughters *daughters, const TString &resName, const Int_t resPairAmpInt, const LauAbsResonance::LauResonanceModel resType, const LauBlattWeisskopfFactor::BlattWeisskopfCategory bwCategory=LauBlattWeisskopfFactor::Default) Create a resonance. Definition: LauResonanceMaker.cc:676 Bool_t gotFlavourConjugateDP() const Is Dalitz plot flavour-conjugate, i.e. CP(d1) = d2 and CP(d3) = d3. Definition: LauDaughters.hh:92 Int_t resonanceIndex(const TString &resName) const Retrieve the index for the given resonance. Definition: LauIsobarDynamics.cc:911 Bool_t gotReweightedEvent() Calculates whether an event with the current kinematics should be accepted in order to produce a dist... Definition: LauIsobarDynamics.cc:2587 Abstract class for defining type for resonance amplitude models (Breit-Wigner, Flatte etc... Definition: LauAbsResonance.hh:51 Double_t binningFactor_ The factor relating the width of the narrowest resonance and the binning size. Definition: LauIsobarDynamics.hh:885 std::vector< LauCacheData * > data_ The cached data for all events. Definition: LauIsobarDynamics.hh:810 Bool_t gotFullySymmetricDP() const Is Dalitz plot fully symmetric, i.e. 3 identical particles. Definition: LauDaughters.hh:86 void findIntegralsToBeRecalculated() Determine which amplitudes and integrals need to be recalculated. Definition: LauIsobarDynamics.cc:244 Class for defining signal dynamics using the isobar model. Definition: LauIsobarDynamics.hh:53 Double_t getEventWeight() Calculate the acceptance rate, for events with the current kinematics, when generating events accordi... Definition: LauIsobarDynamics.cc:2608 LauAbsResonance * addIncoherentResonance(const TString &resName, const Int_t resPairAmpInt, const LauAbsResonance::LauResonanceModel resType) Add an incoherent resonance to the Dalitz plot. Definition: LauIsobarDynamics.cc:744 void addKMatrixProdSVP(const TString &SVPName, const TString &propName, Int_t channelIndex, Bool_t useProdAdler=kFALSE) Add a K-matrix slowly-varying part (SVP) term to the model. Definition: LauIsobarDynamics.cc:865 File containing LauConstants namespace. void writeIntegralsFile() Write the results of the integrals (and related information) to a file. Definition: LauIsobarDynamics.cc:559 File containing declaration of LauAbsResonance class. void calcDPPartialIntegral(LauDPPartialIntegralInfo *intInfo) Calculate the Dalitz plot normalisation integrals over a given range. Definition: LauIsobarDynamics.cc:1461 Double_t mPrimeBinWidth_ The bin width to use when integrating over mPrime. Definition: LauIsobarDynamics.hh:876 ToyMCStatus checkToyMC(Bool_t printErrorMessages=kTRUE, Bool_t printInfoMessages=kFALSE) Check the status of the toy MC generation. Definition: LauIsobarDynamics.cc:2333 UInt_t getnCohAmp() const Retrieve the number of coherent amplitude components. Definition: LauIsobarDynamics.hh:480 Double_t getEvtEff() const Retrieve the efficiency for the current event. Definition: LauIsobarDynamics.hh:322 UInt_t nIncohAmp_ The number of incoherent amplitude components. Definition: LauIsobarDynamics.hh:789 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:2210 std::vector< LauDPPartialIntegralInfo * > dpPartialIntegralInfo_ The storage of the integration scheme. Definition: LauIsobarDynamics.hh:864 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:195 void genFlatPhaseSpace(Double_t &m13Sq, Double_t &m23Sq) const Routine to generate events flat in phase-space. Definition: LauKinematics.cc:353 void cullNullRegions(std::vector< LauDPPartialIntegralInfo * > ®ions) const Removes entries in the vector of LauDPPartialIntegralInfo* that are null. Definition: LauIsobarDynamics.cc:1044 void setDataEventNo(UInt_t iEvt) Load the data for a given event. Definition: LauIsobarDynamics.cc:2380 Definition: LauAbsResonance.hh:68 Bool_t normalizationSchemeDone_ Whether the scheme for the integration has been determined. Definition: LauIsobarDynamics.hh:858 std::vector< LauParameter * > resonancePars_ List of floating resonance parameters. Definition: LauIsobarDynamics.hh:966 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:972 BlattWeisskopfCategory Define resonance categories that will share common barrier factor radii. Definition: LauBlattWeisskopfFactor.hh:62 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:168 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:177 LauParameter meanDPEff_ The mean efficiency across the Dalitz plot. Definition: LauIsobarDynamics.hh:807 Bool_t integralsDone_ Whether the integrals have been performed. Definition: LauIsobarDynamics.hh:855 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:936 virtual LauComplex amplitude(const LauKinematics *kinematics) Calculate the complex amplitude. Definition: LauAbsResonance.cc:201 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:186 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:933 Bool_t forceSymmetriseIntegration_ Force the symmetrisation of the integration in m13 <-> m23 for non-symmetric but flavour-conjugate fi... Definition: LauIsobarDynamics.hh:861 static bool isIncoherentModel(LauResonanceModel model) Is the resonance model incoherent? Definition: LauAbsResonance.cc:42 void initialise(const std::vector< LauComplex > &coeffs) Initialise the Dalitz plot dynamics. Definition: LauIsobarDynamics.cc:347 TString getNameDaug3() const Get name of the third daughter particle. Definition: LauDaughters.cc:267 Bool_t withinSqDPLimits(const Double_t mPrime, const Double_t thetaPrime) const Check whether a given (m',theta') point is within the kinematic limits of the Dalitz plot... Definition: LauKinematics.cc:452 std::vector< Double_t > fNorm_ The normalisation factors for the dynamic parts of the amplitude for each amplitude component... Definition: LauIsobarDynamics.hh:945 Class for defining a K-matrix production "slowly-varying part" (SVP) amplitude. Definition: LauKMatrixProdSVP.hh:45 LauResonanceInfo * getResInfo(const TString &resName) const Get the information for the given resonance name. Definition: LauResonanceMaker.cc:981 File containing declaration of LauAbsIncohRes class. std::vector< LauAbsResonance * > sigResonances_ The resonances in the model. Definition: LauIsobarDynamics.hh:819 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:1912 Double_t retrieveEfficiency() Obtain the efficiency of the current event from the model. Definition: LauIsobarDynamics.cc:2657 LauParArray fitFracEffUnCorr_ The efficiency-uncorrected fit fractions for the amplitude components. Definition: LauIsobarDynamics.hh:801 Class for defining a K-matrix propagator. Definition: LauKMatrixPropagator.hh:50 Generated by ![]() |