LauCPFitModel.cc
Go to the documentation of this file.
53 LauCPFitModel::LauCPFitModel(LauAbsDPDynamics* negModel, LauAbsDPDynamics* posModel, Bool_t tagged, const TString& tagVarName) : LauAbsFitModel(),
97 for (LauBkgndEmbDataList::iterator iter = negBkgndTree_.begin(); iter != negBkgndTree_.end(); ++iter) {
100 for (LauBkgndEmbDataList::iterator iter = posBkgndTree_.begin(); iter != posBkgndTree_.end(); ++iter) {
138 void LauCPFitModel::setNSigEvents( Double_t nSigEvents, Bool_t fixSigEvents, Double_t sigAsym, Bool_t fixSigAsym, Bool_t forceAsym )
155 void LauCPFitModel::setNBkgndEvents( const TString& bkgndClass, Double_t nBkgndEvents, Bool_t fixBkgndEvents )
158 cerr << "ERROR in LauCPFitModel::setNBkgndEvents : Invalid background class \"" << bkgndClass << "\"." << std::endl;
159 cerr << " : Background class names must be provided in \"setBkgndClassNames\" before any other background-related actions can be performed." << endl;
166 bkgndEvents_[bkgndID].range(-2.0*(TMath::Abs(nBkgndEvents)+1.0), 2.0*(TMath::Abs(nBkgndEvents)+1.0));
180 void LauCPFitModel::setNBkgndEvents(const TString& bkgndClass, Double_t nBkgndEvents, Bool_t fixBkgndEvents, Double_t bkgndAsym, Bool_t fixBkgndAsym)
183 cerr << "ERROR in LauCPFitModel::setNBkgndEvents : Invalid background class \"" << bkgndClass << "\"." << std::endl;
184 cerr << " : Background class names must be provided in \"setBkgndClassNames\" before any other background-related actions can be performed." << endl;
191 bkgndEvents_[bkgndID].range(-2.0*(TMath::Abs(nBkgndEvents)+1.0), 2.0*(TMath::Abs(nBkgndEvents)+1.0));
205 void LauCPFitModel::splitSignalComponent( const TH2* dpHisto, Bool_t upperHalf, LauScfMap* scfMap )
213 cerr << "ERROR in LauCPFitModel::splitSignalComponent : The histogram pointer is null." << endl;
219 scfFracHist_->setEffHisto( dpHisto, kTRUE, kFALSE, 0.0, 0.0, upperHalf, daughters->squareDP() );
242 void LauCPFitModel::setBkgndDPModels(const TString& bkgndClass, LauAbsBkgndDPModel* negModel, LauAbsBkgndDPModel* posModel)
245 cerr << "ERROR in LauCPFitModel::setBkgndDPModels : One or both of the model pointers is null." << endl;
251 cerr << "ERROR in LauCPFitModel::setBkgndDPModel : Invalid background class \"" << bkgndClass << "\"." << std::endl;
252 cerr << " : Background class names must be provided in \"setBkgndClassNames\" before any other background-related actions can be performed." << endl;
267 cerr << "ERROR in LauCPFitModel::setSignalPdfs : One or both of the PDF pointers is null." << endl;
277 cerr << "WARNING in LauCPFitModel::setSignalPdfs : Doing an untagged fit so will not use the positive PDF." << endl;
288 cerr << "ERROR in LauCPFitModel::setSCFPdfs : One or both of the PDF pointers is null." << endl;
298 cerr << "WARNING in LauCPFitModel::setSCFPdfs : Doing an untagged fit so will not use the positive PDF." << endl;
305 void LauCPFitModel::setBkgndPdfs(const TString& bkgndClass, LauAbsPdf* negPdf, LauAbsPdf* posPdf)
309 cerr << "ERROR in LauCPFitModel::setBkgndPdfs : One or both of the PDF pointers is null." << endl;
319 cerr << "WARNING in LauCPFitModel::setBkgndPdfs : Doing an untagged fit so will not use the positive PDF." << endl;
325 cerr << "ERROR in LauCPFitModel::setBkgndPdfs : Invalid background class \"" << bkgndClass << "\"." << std::endl;
326 cerr << " : Background class names must be provided in \"setBkgndClassNames\" before any other background-related actions can be performed." << endl;
345 cout << "ERROR in LauCPFitModel::setMagPhase : " << negParent_ << " signal DP model doesn't contain component \"" << compName << "\"." << endl;
349 cout << "ERROR in LauCPFitModel::setMagPhase : " << posParent_ << " signal DP model doesn't contain component \"" << conjName << "\"." << endl;
354 for (std::vector<LauAbsCoeffSet*>::const_iterator iter=coeffPars_.begin(); iter!=coeffPars_.end(); ++iter) {
356 cerr << "ERROR in LauCPFitModel::setAmpCoeffSet : Have already set coefficients for \"" << compName << "\"." << endl;
380 cerr << "ERROR in LauCPFitModel::initialise : the pointer to one (neg or pos) of the signal DP models is null.\n";
390 for (LauBkgndDPModelList::const_iterator dpmodel_iter = negBkgndDPModels_.begin(); dpmodel_iter != negBkgndDPModels_.end(); ++dpmodel_iter ) {
392 cerr << "ERROR in LauCPFitModel::initialise : The pointer to one of the background DP models is null.\n";
398 for (LauBkgndDPModelList::const_iterator dpmodel_iter = posBkgndDPModels_.begin(); dpmodel_iter != posBkgndDPModels_.end(); ++dpmodel_iter ) {
400 cerr << "ERROR in LauCPFitModel::initialise : The pointer to one of the background DP models is null.\n";
414 for ( LauPdfList::const_iterator pdf_iter = negSignalPdfs_.begin(); pdf_iter != negSignalPdfs_.end(); ++pdf_iter ) {
416 for ( std::vector<TString>::const_iterator var_iter = varNames.begin(); var_iter != varNames.end(); ++var_iter ) {
424 for ( LauPdfList::const_iterator pdf_iter = negScfPdfs_.begin(); pdf_iter != negScfPdfs_.end(); ++pdf_iter ) {
426 for ( std::vector<TString>::const_iterator var_iter = varNames.begin(); var_iter != varNames.end(); ++var_iter ) {
433 cerr << "ERROR in LauCPFitModel::initialise : There are " << nsigpdfvars << " TM signal PDF variables but " << nscfpdfvars << " SCF signal PDF variables." << endl;
438 for (LauBkgndPdfsList::const_iterator bgclass_iter = negBkgndPdfs_.begin(); bgclass_iter != negBkgndPdfs_.end(); ++bgclass_iter) {
441 for ( LauPdfList::const_iterator pdf_iter = pdfList.begin(); pdf_iter != pdfList.end(); ++pdf_iter ) {
443 for ( std::vector<TString>::const_iterator var_iter = varNames.begin(); var_iter != varNames.end(); ++var_iter ) {
450 cerr << "ERROR in LauCPFitModel::initialise : There are " << nsigpdfvars << " signal PDF variables but " << nbkgndpdfvars << " bkgnd PDF variables." << endl;
471 cerr << "ERROR in LauCPFitModel::initialise : Number of fit parameters not of expected size. Exiting" << endl;
485 cerr << "ERROR in LauCPFitModel::initialise : Signal model doesn't exist for any variable." << endl;
499 for (LauBkgndDPModelList::iterator iter = negBkgndDPModels_.begin(); iter != negBkgndDPModels_.end(); ++iter) {
502 for (LauBkgndDPModelList::iterator iter = posBkgndDPModels_.begin(); iter != posBkgndDPModels_.end(); ++iter) {
517 cout << "INFO in LauCPFitModel::setSignalDPParameters : Setting the initial fit parameters for the signal DP model." << endl;
523 cerr << "ERROR in LauCPFitModel::setSignalDPParameters : Number of signal DP components with magnitude and phase set not right." << endl;
544 // NB all of them are passed to the fit, even though some have been fixed through parameter.fixed(kTRUE)
563 for (LauBkgndPdfsList::iterator iter = negBkgndPdfs_.begin(); iter != negBkgndPdfs_.end(); ++iter) {
567 for (LauBkgndPdfsList::iterator iter = posBkgndPdfs_.begin(); iter != posBkgndPdfs_.end(); ++iter) {
580 for (LauBkgndYieldList::const_iterator iter = bkgndEvents_.begin(); iter != bkgndEvents_.end(); ++iter) {
589 cout << "INFO in LauCPFitModel::setFitNEvents : Initialising number of events for signal and background components..." << endl;
594 cout << "INFO in LauCPFitModel::setFitNEvents : Initialising number of events for background components (and hence signal)..." << endl;
609 for (LauBkgndYieldList::iterator iter = bkgndEvents_.begin(); iter != bkgndEvents_.end(); ++iter) {
636 cerr << "ERROR in LauCPFitModel::setExtraNtupleVars : Initial Fit Fraction array of unexpected dimension: " << negFitFrac_.size() << endl;
641 cerr << "ERROR in LauCPFitModel::setExtraNtupleVars : Initial Fit Fraction array of unexpected dimension: " << negFitFrac_[i].size() << endl;
659 cerr << "ERROR in LauCPFitModel::setExtraNtupleVars : Initial Fit Fraction array of unexpected dimension: " << posFitFrac_.size() << endl;
664 cerr << "ERROR in LauCPFitModel::setExtraNtupleVars : Initial Fit Fraction array of unexpected dimension: " << posFitFrac_[i].size() << endl;
846 for (LauBkgndYieldList::iterator iter = bkgndEvents_.begin(); iter != bkgndEvents_.end(); ++iter) {
862 for (LauBkgndPdfsList::iterator iter = negBkgndPdfs_.begin(); iter != negBkgndPdfs_.end(); ++iter) {
865 for (LauBkgndPdfsList::iterator iter = posBkgndPdfs_.begin(); iter != posBkgndPdfs_.end(); ++iter) {
880 cerr << "ERROR in LauCPFitModel::finaliseFitResults : Fit Fraction array of unexpected dimension: " << negFitFrac.size() << endl;
885 cerr << "ERROR in LauCPFitModel::finaliseFitResults : Fit Fraction array of unexpected dimension: " << negFitFrac[i].size() << endl;
892 cerr << "ERROR in LauCPFitModel::finaliseFitResults : Fit Fraction array of unexpected dimension: " << posFitFrac.size() << endl;
897 cerr << "ERROR in LauCPFitModel::finaliseFitResults : Fit Fraction array of unexpected dimension: " << posFitFrac[i].size() << endl;
1002 output << negParent_ << " FitFraction for component " << i << " (" << compName << ") = " << negFitFrac_[i][i] << endl;
1004 output << negParent_ << " overall DP rate (integral of matrix element squared) = " << negDPRate_ << endl;
1005 output << negParent_ << " average efficiency weighted by whole DP dynamics = " << negMeanEff_ << endl;
1011 output << posParent_ << " FitFraction for component " << i << " (" << conjName << ") = " << posFitFrac_[i][i] << endl;
1013 output << posParent_ << " overall DP rate (integral of matrix element squared) = " << posDPRate_ << endl;
1014 output << posParent_ << " average efficiency weighted by whole DP dynamics = " << posMeanEff_ << endl;
1021 output << "Fit Fraction asymmetry for component " << i << " (" << compName << ") = " << fitFracAsymm_[i] << endl;
1050 fout << "Component & " << negParent_ << " Fit Fraction & " << posParent_ << " Fit Fraction & Fit Fraction Asymmetry & ACP \\\\" << endl;
1133 for (LauBkgndPdfsList::const_iterator iter = negBkgndPdfs_.begin(); iter != negBkgndPdfs_.end(); ++iter) {
1137 for (LauBkgndPdfsList::const_iterator iter = posBkgndPdfs_.begin(); iter != posBkgndPdfs_.end(); ++iter) {
1228 cout << "Signal asymmetry = " << sigAsym << " and number of signal events = " << signalEvents_.genValue() << endl;
1233 cout << bkgndClass << " asymmetry = " << asymPar.genValue() << " and number of " << bkgndClass << " events = " << evtsPar.genValue() << endl;
1315 if (iEvt%500 == 0) {cout << "Generated event number " << iEvt << " out of " << nEvtsGen << " " << type << " events." << endl;}
1332 cerr << "ERROR in LauCPFitModel::genExpt : Fit Fraction array of unexpected dimension: " << negFitFrac.size() << endl;
1337 cerr << "ERROR in LauCPFitModel::genExpt : Fit Fraction array of unexpected dimension: " << negFitFrac[i].size() << endl;
1343 cerr << "ERROR in LauCPFitModel::genExpt : Fit Fraction array of unexpected dimension: " << posFitFrac.size() << endl;
1348 cerr << "ERROR in LauCPFitModel::genExpt : Fit Fraction array of unexpected dimension: " << posFitFrac[i].size() << endl;
1530 cerr << "WARNING in LauCPFitModel::generateSignalEvent : Source of embedded signal events used up, clearing the list of used events." << endl;
1573 cerr << "ERROR in LauCPFitModel::generateBkgndEvent : Can't find the DP model for background class \"" << bkgndClass << "\"." << endl;
1590 cerr << "WARNING in LauCPFitModel::generateBkgndEvent : Source of embedded " << bkgndClass << " events used up, clearing the list of used events." << endl;
1630 for (LauPdfList::const_iterator pdf_iter = negSignalPdfs_.begin(); pdf_iter != negSignalPdfs_.end(); ++pdf_iter) {
1632 for ( std::vector<TString>::const_iterator var_iter = varNames.begin(); var_iter != varNames.end(); ++var_iter ) {
1665 void LauCPFitModel::generateExtraPdfValues(LauPdfList* extraPdfs, LauEmbeddedData* embeddedData)
1675 std::cerr << "ERROR in LauCPFitModel::generateExtraPdfValues : Null pointer to PDF list." << std::endl;
1680 //std::cerr << "WARNING in LauCPFitModel::generateExtraPdfValues : PDF list is empty." << std::endl;
1685 for (LauPdfList::iterator pdf_iter = extraPdfs->begin(); pdf_iter != extraPdfs->end(); ++pdf_iter) {
1692 for ( LauFitData::const_iterator var_iter = genValues.begin(); var_iter != genValues.end(); ++var_iter ) {
1750 for (LauBkgndYieldList::iterator iter = bkgndEvents_.begin(); iter != bkgndEvents_.end(); ++iter) {
1761 for (LauBkgndYieldList::const_iterator iter = bkgndEvents_.begin(); iter != bkgndEvents_.end(); ++iter) {
1789 for (LauBkgndDPModelList::iterator iter = negBkgndDPModels_.begin(); iter != negBkgndDPModels_.end(); ++iter) {
1792 for (LauBkgndDPModelList::iterator iter = posBkgndDPModels_.begin(); iter != posBkgndDPModels_.end(); ++iter) {
1801 for (LauBkgndPdfsList::iterator iter = negBkgndPdfs_.begin(); iter != negBkgndPdfs_.end(); ++iter) {
1807 for (LauBkgndPdfsList::iterator iter = posBkgndPdfs_.begin(); iter != posBkgndPdfs_.end(); ++iter) {
1815 cerr << "ERROR in LauCPFitModel::cacheInputFitVars : Input data does not contain DP branches and so can't cache the SCF fraction." << endl;
1843 cerr << "ERROR in LauCPFitModel::cacheInputFitVars : Input data does not contain branch \"" << tagVarName_ << "\"." << endl;
1862 // given true bin in the LauScfMap object. (What this means is that when Laura is provided with
1908 cerr << "ERROR in LauCPFitModel::getTotEvtLikelihood : Charge/tag not accepted value: " << curEvtCharge_ << endl;
1957 Double_t bkgndEvents = bkgndEvents_[bkgndID] * 0.5 * (1.0 - curEvtCharge_ * bkgndAsym_[bkgndID]);
1971 for (LauBkgndYieldList::const_iterator iter = bkgndEvents_.begin(); iter != bkgndEvents_.end(); ++iter) {
2092 for (std::vector<Int_t>::const_iterator iter = trueBins->begin(); iter != trueBins->end(); ++iter)
2258 for (LauPdfList::const_iterator pdf_iter = extraPdfs->begin(); pdf_iter != extraPdfs->end(); ++pdf_iter) {
2265 for ( std::vector<TString>::const_iterator var_iter = varNames.begin(); var_iter != varNames.end(); ++var_iter ) {
2284 for ( std::vector<TString>::const_iterator var_iter = varNames.begin(); var_iter != varNames.end(); ++var_iter ) {
2296 cerr << "WARNING in LauCPFitModel::addSPlotNtupleBranches : Can't yet deal with 3D PDFs." << endl;
2302 Double_t LauCPFitModel::setSPlotNtupleBranchValues(LauPdfList* extraPdfs, const TString& prefix, UInt_t iEvt)
2308 for (LauPdfList::iterator pdf_iter = extraPdfs->begin(); pdf_iter != extraPdfs->end(); ++pdf_iter) {
2320 for ( std::vector<TString>::const_iterator var_iter = varNames.begin(); var_iter != varNames.end(); ++var_iter ) {
2339 for ( std::vector<TString>::const_iterator var_iter = varNames.begin(); var_iter != varNames.end(); ++var_iter ) {
2352 cerr << "WARNING in LauCPFitModel::setSPlotNtupleBranchValues : Can't yet deal with 3D PDFs." << endl;
2366 for (LauPdfList::const_iterator pdf_iter = negSignalPdfs_.begin(); pdf_iter != negSignalPdfs_.end(); ++pdf_iter) {
2369 for ( std::vector<TString>::const_iterator var_iter = varNames.begin(); var_iter != varNames.end(); ++var_iter ) {
2424 for (LauPdfList::const_iterator pdf_iter = negSignalPdfs_.begin(); pdf_iter != negSignalPdfs_.end(); ++pdf_iter) {
2428 for ( std::vector<TString>::const_iterator var_iter = varNames.begin(); var_iter != varNames.end(); ++var_iter ) {
2443 for (LauPdfList::const_iterator pdf_iter = negScfPdfs_.begin(); pdf_iter != negScfPdfs_.end(); ++pdf_iter) {
2447 for ( std::vector<TString>::const_iterator var_iter = varNames.begin(); var_iter != varNames.end(); ++var_iter ) {
2463 for (LauPdfList::const_iterator pdf_iter = pdfList.begin(); pdf_iter != pdfList.end(); ++pdf_iter) {
2467 for ( std::vector<TString>::const_iterator var_iter = varNames.begin(); var_iter != varNames.end(); ++var_iter ) {
2546 this->setSPlotNtupleDoubleBranchValue("efficiency",0.5*(posSigModel_->getEvtEff() + negSigModel_->getEvtEff()) );
2548 this->setSPlotNtupleDoubleBranchValue("scffraction",0.5*(posSigModel_->getEvtScfFraction() + negSigModel_->getEvtScfFraction()));
2637 cerr << "ERROR in LauCPFitModel::embedNegSignal : Already embedding signal from a file." << endl;
2642 cerr << "WARNING in LauCPFitModel::embedNegSignal : Conflicting options provided, will not reuse events at all." << endl;
2650 cerr << "ERROR in LauCPFitModel::embedNegSignal : Problem creating data tree for embedding." << endl;
2658 void LauCPFitModel::embedNegBkgnd(const TString& bkgndClass, const TString& fileName, const TString& treeName,
2662 cerr << "ERROR in LauCPFitModel::embedBkgnd : Invalid background class \"" << bkgndClass << "\"." << std::endl;
2663 cerr << " : Background class names must be provided in \"setBkgndClassNames\" before any other background-related actions can be performed." << endl;
2670 cerr << "ERROR in LauCPFitModel::embedNegBkgnd : Already embedding background from a file." << endl;
2675 cerr << "WARNING in LauCPFitModel::embedNegBkgnd : Conflicting options provided, will not reuse events at all." << endl;
2683 cerr << "ERROR in LauCPFitModel::embedNegBkgnd : Problem creating data tree for embedding." << endl;
2695 cerr << "ERROR in LauCPFitModel::embedPosSignal : Already embedding signal from a file." << endl;
2700 cerr << "WARNING in LauCPFitModel::embedPosSignal : Conflicting options provided, will not reuse events at all." << endl;
2708 cerr << "ERROR in LauCPFitModel::embedPosSignal : Problem creating data tree for embedding." << endl;
2716 void LauCPFitModel::embedPosBkgnd(const TString& bkgndClass, const TString& fileName, const TString& treeName,
2720 cerr << "ERROR in LauCPFitModel::embedBkgnd : Invalid background class \"" << bkgndClass << "\"." << std::endl;
2721 cerr << " : Background class names must be provided in \"setBkgndClassNames\" before any other background-related actions can be performed." << endl;
2728 cerr << "ERROR in LauCPFitModel::embedPosBkgnd : Already embedding background from a file." << endl;
2733 cerr << "WARNING in LauCPFitModel::embedPosBkgnd : Conflicting options provided, will not reuse events at all." << endl;
2741 cerr << "ERROR in LauCPFitModel::embedPosBkgnd : Problem creating data tree for embedding." << endl;
2748 void LauCPFitModel::weightEvents( const TString& /*dataFileName*/, const TString& /*dataTreeName*/ )
2750 cerr << "ERROR in LauCPFitModel::weightEvents : Method not available for this fit model." << endl;
void generateExtraPdfValues(LauPdfList *extraPdfs, LauEmbeddedData *embeddedData) Generate from the extra PDFs. Definition: LauCPFitModel.cc:1665 void splitSignalComponent(const TH2 *dpHisto, Bool_t upperHalf=kFALSE, LauScfMap *scfMap=0) Split the signal component into well-reconstructed and mis-reconstructed parts. Definition: LauCPFitModel.cc:205 virtual void addSPlotNtupleIntegerBranch(const TString &name) Add a branch to the sPlot tree for storing an integer. Definition: LauAbsFitModel.cc:523 Class for defining the abstract interface for signal Dalitz plot dynamics. Definition: LauAbsDPDynamics.hh:39 The abstract interface for a background Dalitz plot model. Definition: LauAbsBkgndDPModel.hh:31 void storeCorrMatrix(UInt_t iExpt, Double_t NLL, Int_t fitStatus) Store the correlation matrix and other fit information. Definition: LauFitNtuple.cc:61 Bool_t squareDP() const Are the square Dalitz plot co-ordinates being calculated? Definition: LauKinematics.hh:51 virtual LauSPlot::NameSet variableNames() const Returns the names of all variables in the fit. Definition: LauCPFitModel.cc:2359 Double_t getc23() const Get the cosine of the helicity angle theta23. Definition: LauKinematics.hh:193 TRandom * randomFun() Access the singleton random number generator with a particular seed. Definition: LauRandom.cc:20 Bool_t fixed() const Check whether the parameter is fixed or floated. Definition: LauParameter.hh:192 LauKinematics * negKinematics_ The B- Dalitz plot kinematics object. Definition: LauCPFitModel.hh:444 UInt_t eventsPerExpt() const Obtain the total number of events in the current experiment. Definition: LauAbsFitModel.hh:188 virtual Double_t getEvtthPrime() const =0 Retrieve the square Dalitz plot coordinate, theta', for the current event. virtual void setNBkgndEvents(const TString &bkgndClass, Double_t nBkgndEvents, Bool_t fixBkgndEvents=kFALSE) Set the background event yield(s) Definition: LauCPFitModel.cc:155 virtual void printAsymmetries(std::ostream &output) Print the asymmetries. Definition: LauCPFitModel.cc:1017 Bool_t writeLatexTable() const Determine whether writing out of the latex table is enabled. Definition: LauAbsFitModel.hh:148 void addSPlotNtupleBranches(const LauPdfList *extraPdfs, const TString &prefix) Add sPlot branches for the extra PDFs. Definition: LauCPFitModel.cc:2254 void setExtraPdfParameters() Set the fit parameters for the extra PDFs. Definition: LauCPFitModel.cc:541 void updateSqDPKinematics(Double_t mPrime, Double_t thetaPrime) Update all kinematic quantities based on the square DP co-ordinates m' and theta'. Definition: LauKinematics.cc:102 LauBkgndDPModelList posBkgndDPModels_ The B+ background Dalitz plot models. Definition: LauCPFitModel.hh:441 void setEffHisto(const TH2 *effHisto, Bool_t useInterpolation=kTRUE, Bool_t fluctuateBins=kFALSE, Double_t avEff=-1.0, Double_t absError=-1.0, Bool_t useUpperHalfOnly=kFALSE, Bool_t squareDP=kFALSE) Set the efficiency variation across the phase space using a predetermined 2D histogram. Definition: LauEffModel.cc:60 void cacheInfo(LauPdfList &pdfList, const LauFitDataTree &theData) Have all PDFs in the list cache the data. Definition: LauAbsFitModel.cc:1294 virtual void setGenNtupleIntegerBranchValue(const TString &name, Int_t value) Set the value of an integer branch in the gen tree. Definition: LauAbsFitModel.cc:498 File containing declaration of LauAsymmCalc class. virtual TString baseName() const Retrieve the base name of the coefficient set. Definition: LauAbsCoeffSet.hh:117 void calcExtraFractions(Bool_t initValues=kFALSE) Calculate the CP-conserving and CP-violating fit fractions. Definition: LauCPFitModel.cc:745 Class that defines the particular 3-body decay under study. Definition: LauDaughters.hh:33 UInt_t addFitParameters(LauPdfList &pdfList) Add parameters of the PDFs in the list to the list of all fit parameters. Definition: LauAbsFitModel.cc:1246 Class for calculating the asymmetry between two variables. Definition: LauAsymmCalc.hh:25 Double_t getc13() const Get the cosine of the helicity angle theta13. Definition: LauKinematics.hh:199 File containing declaration of LauAbsCoeffSet class. TH2 * trueHist(Int_t trueBin) Retrieve the migration histogram for trueBin. Definition: LauScfMap.cc:176 std::vector< LauComplex > negCoeffs_ The complex coefficients for B-. Definition: LauCPFitModel.hh:579 std::multimap< TString, std::pair< TString, TString > > TwoDMap Type to associate the name of the species that have 2D PDFs with the names of the two variables invol... Definition: LauSPlot.hh:68 void listBinCentres(std::vector< Double_t > &xCoords, std::vector< Double_t > &yCoords) const Create lists of the co-ordinates of the centres of true bins. Definition: LauScfMap.cc:114 virtual void getEvtExtraLikelihoods(UInt_t iEvt) Determine the signal and background likelihood for the extra variables for a given event... Definition: LauCPFitModel.cc:2137 File containing declaration of LauDaughters class. const std::vector< Int_t > * trueBins(Int_t recoBin) const Find which true bins contribute to the given reco bin. Definition: LauScfMap.cc:155 virtual Bool_t genExpt() Toy MC generation and fitting overloaded functions. Definition: LauCPFitModel.cc:1239 virtual void setGenNtupleDoubleBranchValue(const TString &name, Double_t value) Set the value of a double branch in the gen tree. Definition: LauAbsFitModel.cc:503 void embedNegSignal(const TString &fileName, const TString &treeName, Bool_t reuseEventsWithinEnsemble, Bool_t reuseEventsWithinExperiment=kFALSE, Bool_t useReweighting=kFALSE) Embed full simulation events for the B- signal, rather than generating toy from the PDFs... Definition: LauCPFitModel.cc:2632 File containing declaration of LauScfMap class. std::vector< Double_t > fakeSCFFracs_ The cached values of the SCF fraction for each bin centre. Definition: LauCPFitModel.hh:561 std::vector< std::vector< LauParameter > > LauParArray Type to define an array of parameters. Definition: LauParameter.hh:510 LauParameter getDPRate() const Retrieve the overall Dalitz plot rate. Definition: LauAbsDPDynamics.hh:251 Bool_t storeSignalMCMatch(LauEmbeddedData *embeddedData) Store the MC truth info on the TM/SCF nature of the embedded signal event. Definition: LauCPFitModel.cc:1702 File containing declaration of LauPrint class. virtual void calcLikelihoodInfo(Double_t m13Sq, Double_t m23Sq)=0 Calculate the likelihood (and all associated information) given values of the Dalitz plot coordinates... LauGenInfo eventsToGenerate() Determine the number of events to generate for each hypothesis. Definition: LauCPFitModel.cc:1168 Double_t prodPdfValue(LauPdfList &pdfList, UInt_t iEvt) Calculate the product of the per-event likelihoods of the PDFs in the list. Definition: LauAbsFitModel.cc:1301 std::map< TString, Double_t > LauFitData Type for holding event data. Definition: LauFitDataTree.hh:31 Bool_t squareDP() const Determine to use or not the square Dalitz plot. Definition: LauDaughters.hh:72 virtual Bool_t hasResonance(const TString &resName) const Check whether this model includes a named resonance. Definition: LauAbsDPDynamics.cc:107 std::vector< LauParameter > getExtraParameters() Retrieve any extra parameters/quantities (e.g. K-matrix total fit fractions) Definition: LauAbsDPDynamics.hh:335 Double_t getValue(const TString &name) const Get the value of a specified branch. Definition: LauEmbeddedData.cc:175 std::vector< Double_t > bkgndTotalLike_ Total background likelihood(s) Definition: LauCPFitModel.hh:635 std::vector< Double_t > recoSCFFracs_ The cached values of the SCF fraction for each event. Definition: LauCPFitModel.hh:558 File containing declaration of LauKinematics class. virtual void setSPlotNtupleDoubleBranchValue(const TString &name, Double_t value) Set the value of a double branch in the sPlot tree. Definition: LauAbsFitModel.cc:538 LauParameter getMeanEff() const Retrieve the mean efficiency across the Dalitz plot. Definition: LauAbsDPDynamics.hh:245 File containing declaration of LauEmbeddedData class. std::vector< Double_t > bkgndExtraLike_ Background likelihood value(s) from extra PDFs. Definition: LauCPFitModel.hh:626 void printFitParameters(const LauPdfList &pdfList, std::ostream &fout) const Print the fit parameters for all PDFs in the list. Definition: LauAbsFitModel.cc:1273 Bool_t haveBranch(const TString &name) const Boolean to determine whether branch exists. Definition: LauEmbeddedData.hh:75 File containing declaration of LauCPFitModel class. virtual void cacheInputFitVars() Read in the input fit data variables, e.g. m13Sq and m23Sq. Definition: LauCPFitModel.cc:1768 void setSignalDPParameters() Set the fit parameters for the DP model. Definition: LauCPFitModel.cc:508 void appendBinCentres(LauFitDataTree *inputData) Definition: LauCPFitModel.cc:1857 virtual UInt_t index() const Retrieve the index number of the coefficient set. Definition: LauAbsCoeffSet.hh:131 void updateKinematics(Double_t m13Sq, Double_t m23Sq) Update all kinematic quantities based on the DP co-ordinates m13Sq and m23Sq. Definition: LauKinematics.cc:85 virtual void checkInitFitParams() Check the initial fit parameters. Definition: LauCPFitModel.cc:1146 const LauParameterList & extraPars() const Access the extra variables. Definition: LauAbsFitModel.hh:645 Double_t abs2() const Obtain the square of the absolute value of the complex number. Definition: LauComplex.hh:229 std::vector< LauParameter * > LauParameterPList List of parameter pointers. Definition: LauAbsFitModel.hh:308 virtual void fillDataTree(const LauFitDataTree &inputFitTree)=0 Obtain data from a fit tree. virtual void finaliseFitResults(const TString &tablePrefixName) Get the fit results and store them. Definition: LauCPFitModel.cc:817 Bool_t passVeto(const LauKinematics *kinematics) const Determine whether the given DP position is outside the vetoes. Definition: LauEffModel.cc:134 virtual void printFitFractions(std::ostream &output) Print the fit fractions, total DP rate and mean efficiency. Definition: LauCPFitModel.cc:996 Double_t calcEfficiency(const LauKinematics *kinematics) const Determine the efficiency for a given point in the Dalitz plot. Definition: LauEffModel.cc:95 virtual void calcExtraInfo(Bool_t init=kFALSE)=0 Calculate the fit fractions, mean efficiency and total DP rate. virtual Double_t getEvtScfFraction() const =0 Retrieve the fraction of events that are poorly reconstructed (the self cross feed fraction) in the D... virtual void addGenNtupleIntegerBranch(const TString &name) Add a branch to the gen tree for storing an integer. Definition: LauAbsFitModel.cc:488 Int_t binNumber(Double_t xCoord, Double_t yCoord) const Find the global bin number for the given co-ordinates. Definition: LauScfMap.cc:144 Bool_t doPoissonSmearing() const Determine whether Poisson smearing is enabled for the toy MC generation. Definition: LauAbsFitModel.hh:109 Double_t getc12() const Get the cosine of the helicity angle theta12. Definition: LauKinematics.hh:187 std::vector< LauPdfList > LauBkgndPdfsList Typedef for a vector of background PDFs. Definition: LauCPFitModel.hh:226 void calcAsymmetries(Bool_t initValues=kFALSE) Calculate the CP asymmetries. Definition: LauCPFitModel.cc:798 std::map< TString, Double_t > NumbMap Type to associate a category name with a double precision number, e.g. a yield or PDF value for a giv... Definition: LauSPlot.hh:62 Bool_t doEMLFit() const Determine whether an extended maximum likelihood fit it being performed. Definition: LauAbsFitModel.hh:100 File containing declaration of LauComplex class. virtual TString getConjResName(const TString &resName) const Retrieve the name of the charge conjugate of a named resonance. Definition: LauAbsDPDynamics.cc:117 LauFitData getValues(const std::vector< TString > &names) const Get values of specified branches. Definition: LauEmbeddedData.cc:186 virtual LauSPlot::NumbMap fixdSpeciesNames() const Returns the names and yields of species that are fixed in the fit. Definition: LauCPFitModel.cc:2398 virtual void setNSigEvents(Double_t nSigEvents, Bool_t fixSigEvents=kFALSE) Set the signal event yield. Definition: LauCPFitModel.cc:123 Class for defining the abstract interface for complex coefficient classes. Definition: LauAbsCoeffSet.hh:34 void clearFitParVectors() Clear the vectors containing fit parameters. Definition: LauAbsFitModel.cc:378 void setAmpCoeffSet(LauAbsCoeffSet *coeffSet) Set the DP amplitude coefficients. Definition: LauCPFitModel.cc:337 Class to store the data for embedding in toy experiments. Definition: LauEmbeddedData.hh:33 virtual Double_t getEvtmPrime() const =0 Retrieve the square Dalitz plot coordinate, m', for the current event. virtual void addSPlotNtupleDoubleBranch(const TString &name) Add a branch to the sPlot tree for storing a double. Definition: LauAbsFitModel.cc:528 virtual void setupSPlotNtupleBranches() Add branches to store experiment number and the event number within the experiment. Definition: LauCPFitModel.cc:2187 void clearExtraVarVectors() Clear the vectors containing extra ntuple variables. Definition: LauAbsFitModel.cc:384 void getEmbeddedEvent(LauKinematics *kinematics) Retrieve an event from the data sample. Definition: LauEmbeddedData.cc:140 std::vector< Double_t > bkgndDPLike_ Background DP likelihood value(s) Definition: LauCPFitModel.hh:617 void embedNegBkgnd(const TString &bgClass, const TString &fileName, const TString &treeName, Bool_t reuseEventsWithinEnsemble, Bool_t reuseEventsWithinExperiment=kFALSE) Embed full simulation events for the given background class, rather than generating toy from the PDFs... Definition: LauCPFitModel.cc:2658 void appendFakePoints(const std::vector< Double_t > &xCoords, const std::vector< Double_t > &yCoords) Add fake events to the data. Definition: LauFitDataTree.cc:182 virtual ToyMCStatus checkToyMC(Bool_t printErrorMessages=kTRUE, Bool_t printInfoMessages=kFALSE)=0 Check the status of the toy MC generation. File containing declaration of LauAbsPdf class. Bool_t storeDPEff() const Determine whether the efficiency information should be stored in the sPlot ntuple. Definition: LauAbsFitModel.hh:169 LauBkgndReuseEventsList reuseBkgnd_ Vector of booleans to reuse background events. Definition: LauCPFitModel.hh:607 UInt_t bkgndClassID(const TString &className) const The number assigned to a background class. Definition: LauAbsFitModel.cc:348 const LauFitData & getData(UInt_t iEvt) const Retrieve the data for a given event. Definition: LauFitDataTree.cc:312 File containing LauRandom namespace. UInt_t getnAmp() const Retrieve the number of amplitude components. Definition: LauAbsDPDynamics.hh:269 Bool_t useRandomInitFitPars() const Determine whether the initial values of the fit parameters, in particular the isobar coefficient para... Definition: LauAbsFitModel.hh:172 File containing declaration of LauEffModel class. File containing declaration of LauAbsDPDynamics class. virtual void weightEvents(const TString &dataFileName, const TString &dataTreeName) Weight events based on the DP model. Definition: LauCPFitModel.cc:2748 Bool_t validBkgndClass(const TString &className) const Check if the given background class is in the list. Definition: LauAbsFitModel.cc:331 virtual Double_t getEvtm23Sq() const =0 Retrieve the invariant mass squared of the second and third daughters in the current event... virtual void writeOutTable(const TString &outputFile) Write the fit results in latex table format. Definition: LauCPFitModel.cc:1029 Double_t getDPNorm() const Retrieve the normalisation factor for the log-likelihood function. Definition: LauAbsDPDynamics.hh:275 Class that implements the efficiency description across the signal Dalitz plot. Definition: LauEffModel.hh:37 UInt_t nUsedEvents() const Retrieve the number of events that have already been sampled. Definition: LauEmbeddedData.hh:69 virtual void updateCoeffs(const std::vector< LauComplex > &coeffs) Update the complex coefficients for the resonances. Definition: LauAbsDPDynamics.cc:88 void storeParsAndErrors(const std::vector< LauParameter * > &fitVars, const std::vector< LauParameter > &extraVars) Store parameters and their errors. Definition: LauFitNtuple.cc:156 virtual void setSPlotNtupleIntegerBranchValue(const TString &name, Int_t value) Set the value of an integer branch in the sPlot tree. Definition: LauAbsFitModel.cc:533 Double_t setSPlotNtupleBranchValues(LauPdfList *extraPdfs, const TString &prefix, UInt_t iEvt) Set the branches for the sPlot ntuple with extra PDFs. Definition: LauCPFitModel.cc:2302 std::vector< LauComplex > posCoeffs_ The complex coefficients for B+. Definition: LauCPFitModel.hh:582 void updateSigEvents() Update the signal events after Minuit sets background parameters. Definition: LauCPFitModel.cc:1743 virtual Double_t getEvtm13Sq() const =0 Retrieve the invariant mass squared of the first and third daughters in the current event... Bool_t getReweightedEvent(LauAbsDPDynamics *dynamics) Retrieve an event from the data sample, applying an accept/reject based on the given DP model... Definition: LauEmbeddedData.cc:59 virtual void setupBkgndVectors() Define the length of the background vectors. Definition: LauCPFitModel.cc:106 File containing LauConstants namespace. void setSignalPdfs(LauAbsPdf *negPdf, LauAbsPdf *posPdf) Set the signal PDFs. Definition: LauCPFitModel.cc:263 virtual LauSPlot::TwoDMap twodimPDFs() const Returns the species and variables for all 2D PDFs in the fit. Definition: LauCPFitModel.cc:2417 virtual LauSPlot::NumbMap freeSpeciesNames() const Returns the names and yields of species that are free in the fit. Definition: LauCPFitModel.cc:2379 LauEffModel * scfFracHist_ The histogram giving the DP-dependence of the SCF fraction. Definition: LauCPFitModel.hh:552 void printFormat(std::ostream &stream, Double_t value) const Method to choose the printing format to a specified level of precision. Definition: LauPrint.cc:32 Bool_t haveBranch(const TString &name) const Check if the named branch is stored. Definition: LauFitDataTree.cc:237 virtual void propagateParUpdates() Definition: LauCPFitModel.cc:1728 Class for representing the 4D smearing matrix for mis-reconstructed signal (self cross feed) ... Definition: LauScfMap.hh:29 virtual void storePerEvtLlhds() Store the per event likelihood values. Definition: LauCPFitModel.cc:2482 UInt_t nBkgndClasses() const Returns the number of background classes. Definition: LauAbsFitModel.hh:206 const TString & bkgndClassName(UInt_t classID) const Get the name of a background class from the number. Definition: LauAbsFitModel.cc:366 std::vector< Double_t > recoJacobians_ The cached values of the sqDP jacobians for each event. Definition: LauCPFitModel.hh:564 Bool_t enableEmbedding() const Determine whether embedding of events is enabled in the generation. Definition: LauAbsFitModel.hh:118 virtual Double_t getEventSum() const Get the total number of events. Definition: LauCPFitModel.cc:1966 virtual TString name() const Retrieve the name of the coefficient set. Definition: LauAbsCoeffSet.hh:102 const LauParameterPList & fitPars() const Access the fit variables. Definition: LauAbsFitModel.hh:641 virtual const LauComplex & getEvtDPAmp() const =0 Retrieve the total amplitude of all amplitude components at the current point in the Dalitz plot... LauBkgndDPModelList negBkgndDPModels_ The B- background Dalitz plot models. Definition: LauCPFitModel.hh:438 const LauParArray & getFitFractions() const Retrieve the fit fractions for the amplitude components. Definition: LauAbsDPDynamics.hh:257 virtual void addGenNtupleDoubleBranch(const TString &name) Add a branch to the gen tree for storing a double. Definition: LauAbsFitModel.cc:493 Double_t calcSqDPJacobian() Calculate the Jacobian for the transformation m23^2, m13^2 -> m', theta' (square DP) ... Definition: LauKinematics.cc:128 void updateFitParameters(LauPdfList &pdfList) Update the fit parameters for all PDFs in the list. Definition: LauAbsFitModel.cc:1266 void embedPosBkgnd(const TString &bgClass, const TString &fileName, const TString &treeName, Bool_t reuseEventsWithinEnsemble, Bool_t reuseEventsWithinExperiment=kFALSE) Embed full simulation events for the given background class, rather than generating toy from the PDFs... Definition: LauCPFitModel.cc:2716 std::vector< Double_t > fakeJacobians_ The cached values of the sqDP jacobians for each true bin. Definition: LauCPFitModel.hh:567 virtual Double_t getEvtEff() const =0 Retrieve the efficiency for the current event. virtual Double_t getEvtSCFDPLikelihood(UInt_t iEvt) Calculate the SCF likelihood for the DP for a given event. Definition: LauCPFitModel.cc:2065 Bool_t usingScfModel() Check whether a self cross feed fraction model is being used. Definition: LauAbsDPDynamics.hh:329 File containing declaration of LauAbsBkgndDPModel class. void setSCFPdfs(LauAbsPdf *negPdf, LauAbsPdf *posPdf) Set the SCF PDF for a given variable. Definition: LauCPFitModel.cc:284 std::map< std::pair< TString, Int_t >, std::pair< Int_t, Double_t > > LauGenInfo Define a map to be used to store a category name and numbers. Definition: LauCPFitModel.hh:220 void setBkgndPdfs(const TString &bkgndClass, LauAbsPdf *negPdf, LauAbsPdf *posPdf) Set the background PDFs. Definition: LauCPFitModel.cc:305 Double_t prob(Int_t recoBin, Int_t trueBin) const Probability of a true event in the given true bin migrating to the reco bin. Definition: LauScfMap.cc:165 virtual Double_t getTotEvtLikelihood(UInt_t iEvt) Get the total likelihood for each event. Definition: LauCPFitModel.cc:1900 virtual void getEvtDPLikelihood(UInt_t iEvt) Calculate the signal and background likelihoods for the DP for a given event. Definition: LauCPFitModel.cc:1978 LauEffModel * getEffModel() Retrieve the model for the efficiency across the Dalitz plot. Definition: LauAbsDPDynamics.hh:311 void setBkgndDPModels(const TString &bkgndClass, LauAbsBkgndDPModel *negModel, LauAbsBkgndDPModel *posModel) Set the background DP models. Definition: LauCPFitModel.cc:242 virtual void initialise(const std::vector< LauComplex > &coeffs)=0 Initialise the Dalitz plot dynamics. std::set< TString > NameSet Type to store names, e.g. of the discriminating/control variables. Definition: LauSPlot.hh:59 File containing declaration of LauFitNtuple class. LauKinematics * posKinematics_ The B+ Dalitz plot kinematics object. Definition: LauCPFitModel.hh:447 void embedPosSignal(const TString &fileName, const TString &treeName, Bool_t reuseEventsWithinEnsemble, Bool_t reuseEventsWithinExperiment=kFALSE, Bool_t useReweighting=kFALSE) Embed full simulation events for the B+ signal, rather than generating toy from the PDFs... Definition: LauCPFitModel.cc:2690 std::vector< LauParameter > fitFracAsymm_ The fit fraction asymmetries. Definition: LauCPFitModel.hh:498 void setExtraNtupleVars() Set-up other parameters that are derived from the fit results, e.g. fit fractions. Definition: LauCPFitModel.cc:622 Generated by 1.8.5 |