laura is hosted by Hepforge, IPPP Durham
Laura++  v3r4
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauCPFitModel.hh
Go to the documentation of this file.
1 
2 /*
3 Copyright 2004 University of Warwick
4 
5 Licensed under the Apache License, Version 2.0 (the "License");
6 you may not use this file except in compliance with the License.
7 You may obtain a copy of the License at
8 
9  http://www.apache.org/licenses/LICENSE-2.0
10 
11 Unless required by applicable law or agreed to in writing, software
12 distributed under the License is distributed on an "AS IS" BASIS,
13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 See the License for the specific language governing permissions and
15 limitations under the License.
16 */
17 
18 /*
19 Laura++ package authors:
20 John Back
21 Paul Harrison
22 Thomas Latham
23 */
24 
40 #ifndef LAU_CP_FIT_MODEL
41 #define LAU_CP_FIT_MODEL
42 
43 #include <vector>
44 
45 #include "TString.h"
46 
47 #include "LauAbsFitModel.hh"
48 #include "LauComplex.hh"
49 #include "LauParameter.hh"
50 
51 class TH2;
52 class LauAbsBkgndDPModel;
53 class LauAbsCoeffSet;
54 class LauIsobarDynamics;
55 class LauAbsPdf;
56 class LauEffModel;
57 class LauEmbeddedData;
58 class LauKinematics;
59 class LauScfMap;
60 
61 
62 class LauCPFitModel : public LauAbsFitModel {
63 
64  public:
66 
72  LauCPFitModel(LauIsobarDynamics* negModel, LauIsobarDynamics* posModel, Bool_t tagged = kTRUE, const TString& tagVarName = "charge");
73 
75  virtual ~LauCPFitModel();
76 
78 
81  virtual void setNSigEvents(LauParameter* nSigEvents);
82 
84 
89  virtual void setNSigEvents(LauParameter* nSigEvents, LauParameter* sigAsym, Bool_t forceAsym = kFALSE);
90 
92 
97  virtual void setNBkgndEvents(LauAbsRValue* nBkgndEvents);
98 
100 
106  virtual void setNBkgndEvents(LauAbsRValue* nBkgndEvents, LauAbsRValue* bkgndAsym);
107 
109 
114  void setBkgndDPModels(const TString& bkgndClass, LauAbsBkgndDPModel* negModel, LauAbsBkgndDPModel* posModel);
115 
117 
127  void splitSignalComponent( const TH2* dpHisto, const Bool_t upperHalf = kFALSE, const Bool_t fluctuateBins = kFALSE, LauScfMap* scfMap = 0 );
128 
130 
137  void splitSignalComponent( const Double_t scfFrac, const Bool_t fixed );
138 
140  Bool_t useSCF() const { return useSCF_; }
141 
143  Bool_t useSCFHist() const { return useSCFHist_; }
144 
146  Bool_t smearSCFDP() const { return (scfMap_ != 0); }
147 
148  // Set the DeltaE and mES models, i.e. give us the PDFs
150 
154  void setSignalPdfs(LauAbsPdf* negPdf, LauAbsPdf* posPdf);
155 
157 
161  void setSCFPdfs(LauAbsPdf* negPdf, LauAbsPdf* posPdf);
162 
164 
169  void setBkgndPdfs(const TString& bkgndClass, LauAbsPdf* negPdf, LauAbsPdf* posPdf);
170 
172 
179  void embedNegSignal(const TString& fileName, const TString& treeName,
180  Bool_t reuseEventsWithinEnsemble, Bool_t reuseEventsWithinExperiment = kFALSE,
181  Bool_t useReweighting = kFALSE);
182 
184 
191  void embedNegBkgnd(const TString& bgClass, const TString& fileName, const TString& treeName,
192  Bool_t reuseEventsWithinEnsemble, Bool_t reuseEventsWithinExperiment = kFALSE);
193 
195 
202  void embedPosSignal(const TString& fileName, const TString& treeName,
203  Bool_t reuseEventsWithinEnsemble, Bool_t reuseEventsWithinExperiment = kFALSE,
204  Bool_t useReweighting = kFALSE);
205 
207 
214  void embedPosBkgnd(const TString& bgClass, const TString& fileName, const TString& treeName,
215  Bool_t reuseEventsWithinEnsemble, Bool_t reuseEventsWithinExperiment = kFALSE);
216 
218 
225  virtual void setAmpCoeffSet(LauAbsCoeffSet* coeffSet);
226 
227  protected:
229  typedef std::map< std::pair<TString,Int_t>, std::pair<Int_t,Double_t> > LauGenInfo;
230 
232  typedef std::vector<LauAbsBkgndDPModel*> LauBkgndDPModelList;
233 
235  typedef std::vector<LauPdfList> LauBkgndPdfsList;
236 
238  typedef std::vector<LauAbsRValue*> LauBkgndYieldList;
239 
241  typedef std::vector<LauEmbeddedData*> LauBkgndEmbDataList;
242 
244  typedef std::vector<Bool_t> LauBkgndReuseEventsList;
245 
246 
248 
252  virtual void weightEvents( const TString& dataFileName, const TString& dataTreeName );
253 
255  virtual void initialise();
256 
258  virtual void initialiseDPModels();
259 
261  virtual void recalculateNormalisation();
262 
264  virtual void updateCoeffs();
265 
267  virtual Bool_t genExpt();
268 
270  virtual void propagateParUpdates();
271 
273  virtual void cacheInputFitVars();
274 
276  virtual void checkInitFitParams();
277 
279 
282  virtual void finaliseFitResults(const TString& tablePrefixName);
283 
285 
288  virtual void printFitFractions(std::ostream& output);
289 
291 
294  virtual void printAsymmetries(std::ostream& output);
295 
297 
300  virtual void writeOutTable(const TString& outputFile);
301 
303 
306  virtual void savePDFPlots(const TString& label);
307 
309 
313  virtual void savePDFPlotsWave(const TString& label, const Int_t& spin);
314 
315 
317  virtual void storePerEvtLlhds();
318 
319  // Methods to do with calculating the likelihood functions
320  // and manipulating the fitting parameters.
322 
325  virtual Double_t getTotEvtLikelihood(UInt_t iEvt);
326 
328 
331  virtual void getEvtDPLikelihood(UInt_t iEvt);
332 
334 
337  virtual Double_t getEvtSCFDPLikelihood(UInt_t iEvt);
338 
340 
343  virtual void getEvtExtraLikelihoods(UInt_t iEvt);
344 
346 
349  virtual Double_t getEventSum() const;
350 
352  void setSignalDPParameters();
353 
355  void setExtraPdfParameters();
356 
358  void setFitNEvents();
359 
361  void setExtraNtupleVars();
362 
364  void randomiseInitFitPars();
365 
367 
370  void calcExtraFractions(Bool_t initValues = kFALSE);
371 
373 
376  void calcAsymmetries(Bool_t initValues = kFALSE);
377 
379  virtual void setupBkgndVectors();
380 
382  std::pair<LauGenInfo,Bool_t> eventsToGenerate();
383 
385  Bool_t generateSignalEvent();
386 
388 
391  Bool_t generateBkgndEvent(UInt_t bgID);
392 
394  void setupGenNtupleBranches();
395 
397  void setDPBranchValues();
398 
400 
404  void generateExtraPdfValues(LauPdfList* extraPdfs, LauEmbeddedData* embeddedData);
405 
407 
410  Bool_t storeSignalMCMatch(LauEmbeddedData* embeddedData);
411 
413 
417  void addSPlotNtupleBranches(const LauPdfList* extraPdfs, const TString& prefix);
418 
420 
425  Double_t setSPlotNtupleBranchValues(LauPdfList* extraPdfs, const TString& prefix, UInt_t iEvt);
426 
428  void updateSigEvents();
429 
431  virtual void setupSPlotNtupleBranches();
432 
434  virtual LauSPlot::NameSet variableNames() const;
435 
437  virtual LauSPlot::NumbMap freeSpeciesNames() const;
438 
440  virtual LauSPlot::NumbMap fixdSpeciesNames() const;
441 
443  virtual LauSPlot::TwoDMap twodimPDFs() const;
444 
446  virtual Bool_t splitSignal() const {return this->useSCF();}
447 
449  virtual Bool_t scfDPSmear() const {return (scfMap_ != 0);}
450 
452 
462  void appendBinCentres( LauFitDataTree* inputData );
463 
466 
467  private:
469  LauCPFitModel(const LauCPFitModel& rhs);
470 
473 
476 
479 
482 
485 
488 
491 
494 
497 
500 
503 
506 
509 
511  Bool_t usingBkgnd_;
512 
514  UInt_t nSigComp_;
515 
517  UInt_t nSigDPPar_;
518 
521 
523  UInt_t nNormPar_;
524 
526  std::vector<LauAbsCoeffSet*> coeffPars_;
527 
530 
533 
536 
539 
542 
545 
547  std::vector<LauParameter> fitFracAsymm_;
548 
550  std::vector<LauParameter> acp_;
551 
554 
557 
560 
563 
566 
569 
571  Bool_t forceAsym_;
572 
575 
578 
580  const Bool_t tagged_;
581 
583  const TString tagVarName_;
584 
587 
589  std::vector<Int_t> evtCharges_;
590 
592  Bool_t useSCF_;
593 
595  Bool_t useSCFHist_;
596 
599 
602 
605 
607  std::vector<Double_t> recoSCFFracs_;
608 
610  std::vector<Double_t> fakeSCFFracs_;
611 
613  std::vector<Double_t> recoJacobians_;
614 
616  std::vector<Double_t> fakeJacobians_;
617 
620 
622  TString negParent_;
623 
625  TString posParent_;
626 
628  std::vector<LauComplex> negCoeffs_;
629 
631  std::vector<LauComplex> posCoeffs_;
632 
633  // Embedding full simulation events
634 
637 
640 
643 
646 
648  Bool_t reuseSignal_;
649 
652 
655 
658 
659  // Likelihood values
661  Double_t sigDPLike_;
662 
664  Double_t scfDPLike_;
665 
667  std::vector<Double_t> bkgndDPLike_;
668 
670  Double_t sigExtraLike_;
671 
673  Double_t scfExtraLike_;
674 
676  std::vector<Double_t> bkgndExtraLike_;
677 
679  Double_t sigTotalLike_;
680 
682  Double_t scfTotalLike_;
683 
685  std::vector<Double_t> bkgndTotalLike_;
686 
687  ClassDef(LauCPFitModel,0) // CP fit/ToyMC model
688 
689 };
690 
691 #endif
void generateExtraPdfValues(LauPdfList *extraPdfs, LauEmbeddedData *embeddedData)
Generate from the extra PDFs.
Bool_t generateSignalEvent()
Generate signal event.
The abstract interface for a background Dalitz plot model.
std::vector< LauParameter > acp_
A_CP parameter.
virtual LauSPlot::NameSet variableNames() const
Returns the names of all variables in the fit.
LauKinematics * negKinematics_
The B- Dalitz plot kinematics object.
virtual void printAsymmetries(std::ostream &output)
Print the asymmetries.
LauPdfList negSignalPdfs_
The B- signal PDFs.
Bool_t smearSCFDP() const
Determine if we are smearing the SCF DP PDF.
void addSPlotNtupleBranches(const LauPdfList *extraPdfs, const TString &prefix)
Add sPlot branches for the extra PDFs.
Bool_t forceAsym_
Option to force an asymmetry.
Double_t scfTotalLike_
Total SCF likelihood.
void setExtraPdfParameters()
Set the fit parameters for the extra PDFs.
LauBkgndDPModelList posBkgndDPModels_
The B+ background Dalitz plot models.
UInt_t nNormPar_
Number of normalisation parameters (yields, asymmetries)
Bool_t useSCF() const
Determine whether we are splitting the signal into TM and SCF parts.
LauEmbeddedData * posSignalTree_
The B+ signal event tree.
LauIsobarDynamics * getPosSigModel()
File containing declaration of LauAbsFitModel class.
virtual void setNBkgndEvents(LauAbsRValue *nBkgndEvents)
Set the background event yield(s)
Int_t curEvtCharge_
Current event charge.
void calcExtraFractions(Bool_t initValues=kFALSE)
Calculate the CP-conserving and CP-violating fit fractions.
LauEmbeddedData * negSignalTree_
The B- signal event tree.
Bool_t useNegReweighting_
Boolean to use reweighting for B-.
std::vector< LauComplex > negCoeffs_
The complex coefficients for B-.
LauBkgndPdfsList posBkgndPdfs_
The B+ background PDFs.
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:82
Bool_t compareFitData_
Run choice variables.
virtual Bool_t scfDPSmear() const
Check if the mis-reconstructed signal is to be smeared in the DP.
LauParArray negFitFrac_
The B- fit fractions.
virtual void getEvtExtraLikelihoods(UInt_t iEvt)
Determine the signal and background likelihood for the extra variables for a given event...
Double_t sigDPLike_
Signal DP likelihood value.
LauPdfList negScfPdfs_
The B- SCF PDFs.
Bool_t useSCF_
Is the signal split into TM and SCF.
virtual Bool_t genExpt()
Toy MC generation and fitting overloaded functions.
TString negParent_
Name of the parent particle.
TString posParent_
Name of the parent particle.
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...
std::pair< LauGenInfo, Bool_t > eventsToGenerate()
Determine the number of events to generate for each hypothesis.
std::vector< Double_t > fakeSCFFracs_
The cached values of the SCF fraction for each bin centre.
ClassDef(LauSimFitSlave, 0)
std::vector< std::vector< LauParameter > > LauParArray
Type to define an array of parameters.
Bool_t storeSignalMCMatch(LauEmbeddedData *embeddedData)
Store the MC truth info on the TM/SCF nature of the embedded signal event.
Bool_t usingBkgnd_
Background boolean.
std::vector< LauAbsPdf * > LauPdfList
List of Pdfs.
LauBkgndYieldList bkgndAsym_
Background asymmetries(s)
LauIsobarDynamics * negSigModel_
The B- signal Dalitz plot model.
LauParameter negDPRate_
The average DP rate for B-.
std::vector< Double_t > bkgndTotalLike_
Total background likelihood(s)
std::vector< Double_t > recoSCFFracs_
The cached values of the SCF fraction for each event.
LauParameter posDPRate_
The average DP rate for B+.
std::vector< Double_t > bkgndExtraLike_
Background likelihood value(s) from extra PDFs.
void setupGenNtupleBranches()
Setup the required ntuple branches.
Double_t scfExtraLike_
SCF likelihood from extra PDFs.
Bool_t reuseSignal_
Boolean to reuse signal events.
LauParArray posFitFrac_
The B+ fit fractions.
virtual void cacheInputFitVars()
Read in the input fit data variables, e.g. m13Sq and m23Sq.
void setSignalDPParameters()
Set the fit parameters for the DP model.
void randomiseInitFitPars()
Randomise the initial fit parameters.
void appendBinCentres(LauFitDataTree *inputData)
Append fake data points to the inputData for each bin in the SCF smearing matrix. ...
virtual void savePDFPlotsWave(const TString &label, const Int_t &spin)
Save the pdf Plots for the sum of resonances of a given spin.
virtual void checkInitFitParams()
Check the initial fit parameters.
virtual void recalculateNormalisation()
Recalculate Normalization the signal DP models.
const Bool_t tagged_
IS the analysis tagged?
UInt_t nExtraPdfPar_
Number of extra PDF parameters.
virtual void finaliseFitResults(const TString &tablePrefixName)
Get the fit results and store them.
std::vector< LauAbsRValue * > LauBkgndYieldList
Typedef for a vector of background yields.
virtual void printFitFractions(std::ostream &output)
Print the fit fractions, total DP rate and mean efficiency.
LauParArray negFitFracEffUnCorr_
Fit B- fractions (uncorrected for the efficiency)
Class for defining a CP fit model.
Abstract interface to the fitting and toy MC model.
const TString tagVarName_
Event charge.
LauParameter * signalEvents_
Signal yield.
LauParArray posFitFracEffUnCorr_
Fit B+ fractions (uncorrected for the efficiency)
std::vector< LauAbsBkgndDPModel * > LauBkgndDPModelList
Typedef for a vector of background DP models.
std::vector< Int_t > evtCharges_
Vector to store event charges.
File containing declaration of LauParameter class.
virtual Bool_t splitSignal() const
Check if the signal is split into well-reconstructed and mis-reconstructed types. ...
std::vector< LauPdfList > LauBkgndPdfsList
Typedef for a vector of background PDFs.
void calcAsymmetries(Bool_t initValues=kFALSE)
Calculate the CP asymmetries.
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:76
LauScfMap * scfMap_
The smearing matrix for the SCF DP PDF.
File containing declaration of LauComplex class.
Double_t sigExtraLike_
Signal likelihood from extra PDFs.
virtual void initialise()
Initialise the fit.
virtual LauSPlot::NumbMap fixdSpeciesNames() const
Returns the names and yields of species that are fixed in the fit.
Class for defining the abstract interface for complex coefficient classes.
Double_t sigTotalLike_
Total signal likelihood.
virtual void setAmpCoeffSet(LauAbsCoeffSet *coeffSet)
Set the DP amplitude coefficients.
Class for defining the fit parameter objects.
Definition: LauParameter.hh:49
Class to store the data for embedding in toy experiments.
UInt_t nSigComp_
Number of signal components.
virtual void setupSPlotNtupleBranches()
Add branches to store experiment number and the event number within the experiment.
LauParameter * signalAsym_
Signal asymmetry.
void splitSignalComponent(const TH2 *dpHisto, const Bool_t upperHalf=kFALSE, const Bool_t fluctuateBins=kFALSE, LauScfMap *scfMap=0)
Split the signal component into well-reconstructed and mis-reconstructed parts.
virtual void savePDFPlots(const TString &label)
Save the pdf Plots for all the resonances.
std::vector< Double_t > bkgndDPLike_
Background DP likelihood value(s)
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...
LauBkgndEmbDataList negBkgndTree_
The B- background event tree.
LauIsobarDynamics * getNegSigModel()
LauBkgndReuseEventsList reuseBkgnd_
Vector of booleans to reuse background events.
std::vector< LauAbsCoeffSet * > coeffPars_
Magnitudes and Phases.
LauParameter posMeanEff_
The mean efficiency for B+ model.
LauParArray CPCFitFrac_
The CP conserving fit fraction.
virtual void setNSigEvents(LauParameter *nSigEvents)
Set the signal event yield.
virtual void weightEvents(const TString &dataFileName, const TString &dataTreeName)
Weight events based on the DP model.
Bool_t usePosReweighting_
Boolean to use reweighting for B+.
Bool_t generateBkgndEvent(UInt_t bgID)
Generate background event.
virtual void writeOutTable(const TString &outputFile)
Write the fit results in latex table format.
LauCPFitModel(LauIsobarDynamics *negModel, LauIsobarDynamics *posModel, Bool_t tagged=kTRUE, const TString &tagVarName="charge")
Constructor.
Bool_t useSCFHist() const
Determine whether the SCF fraction is DP-dependent.
Class that implements the efficiency description across the signal Dalitz plot.
Definition: LauEffModel.hh:51
virtual void updateCoeffs()
Update the coefficients.
Double_t setSPlotNtupleBranchValues(LauPdfList *extraPdfs, const TString &prefix, UInt_t iEvt)
Set the branches for the sPlot ntuple with extra PDFs.
virtual ~LauCPFitModel()
Destructor.
std::vector< LauComplex > posCoeffs_
The complex coefficients for B+.
virtual void initialiseDPModels()
Initialise the signal DP models.
void updateSigEvents()
Update the signal events after Minuit sets background parameters.
Class for defining signal dynamics using the isobar model.
virtual void setupBkgndVectors()
Define the length of the background vectors.
LauCPFitModel & operator=(const LauCPFitModel &rhs)
Copy assignment operator (not implemented)
void setSignalPdfs(LauAbsPdf *negPdf, LauAbsPdf *posPdf)
Set the signal PDFs.
void setFitNEvents()
Set the initial yields.
virtual LauSPlot::TwoDMap twodimPDFs() const
Returns the species and variables for all 2D PDFs in the fit.
virtual LauSPlot::NumbMap freeSpeciesNames() const
Returns the names and yields of species that are free in the fit.
LauEffModel * scfFracHist_
The histogram giving the DP-dependence of the SCF fraction.
UInt_t nSigDPPar_
Number of signal DP parameters.
virtual void propagateParUpdates()
Calculate things that depend on the fit parameters after they have been updated by Minuit...
Class for representing the 4D smearing matrix for mis-reconstructed signal (self cross feed) ...
Definition: LauScfMap.hh:43
virtual void storePerEvtLlhds()
Store the per event likelihood values.
Double_t scfDPLike_
SCF DP likelihood value.
std::vector< Double_t > recoJacobians_
The cached values of the sqDP jacobians for each event.
std::vector< Bool_t > LauBkgndReuseEventsList
Typedef for a vector of booleans to flag if events are reused.
virtual Double_t getEventSum() const
Get the total number of events.
Class for defining the abstract interface for PDF classes.
Definition: LauAbsPdf.hh:55
LauIsobarDynamics * posSigModel_
The B+ signal Dalitz plot model.
LauPdfList posScfPdfs_
The B+ SCF PDFs.
LauBkgndYieldList bkgndEvents_
Background yield(s)
Class for calculating 3-body kinematic quantities.
LauBkgndDPModelList negBkgndDPModels_
The B- background Dalitz plot models.
LauParArray CPVFitFrac_
The CP violating fit fraction.
LauPdfList posSignalPdfs_
The B+ signal PDFs.
std::vector< Double_t > fakeJacobians_
The cached values of the sqDP jacobians for each true bin.
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...
virtual Double_t getEvtSCFDPLikelihood(UInt_t iEvt)
Calculate the SCF likelihood for the DP for a given event.
std::vector< LauEmbeddedData * > LauBkgndEmbDataList
Typedef for a vector of embedded data objects.
void setSCFPdfs(LauAbsPdf *negPdf, LauAbsPdf *posPdf)
Set the SCF PDF for a given variable.
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.
Bool_t useSCFHist_
Is the SCF fraction DP-dependent.
LauParameter negMeanEff_
The mean efficiency for B- model.
void setBkgndPdfs(const TString &bkgndClass, LauAbsPdf *negPdf, LauAbsPdf *posPdf)
Set the background PDFs.
virtual Double_t getTotEvtLikelihood(UInt_t iEvt)
Get the total likelihood for each event.
virtual void getEvtDPLikelihood(UInt_t iEvt)
Calculate the signal and background likelihoods for the DP for a given event.
Pure abstract base class for defining a parameter containing an R value.
Definition: LauAbsRValue.hh:43
LauBkgndEmbDataList posBkgndTree_
The B+ background event tree.
void setBkgndDPModels(const TString &bkgndClass, LauAbsBkgndDPModel *negModel, LauAbsBkgndDPModel *posModel)
Set the background DP models.
LauBkgndPdfsList negBkgndPdfs_
The B- background PDFs.
Class to store the input fit variables.
LauParameter scfFrac_
The (global) SCF fraction parameter.
std::set< TString > NameSet
Type to store names, e.g. of the discriminating/control variables.
Definition: LauSPlot.hh:73
void setDPBranchValues()
Store all of the DP information.
LauKinematics * posKinematics_
The B+ Dalitz plot kinematics object.
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...
std::vector< LauParameter > fitFracAsymm_
The fit fraction asymmetries.
void setExtraNtupleVars()
Set-up other parameters that are derived from the fit results, e.g. fit fractions.