laura is hosted by Hepforge, IPPP Durham
Laura++  v3r1
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauAbsFitModel.hh
Go to the documentation of this file.
1 
2 // Copyright University of Warwick 2004 - 2014.
3 // Distributed under the Boost Software License, Version 1.0.
4 // (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5 
6 // Authors:
7 // Thomas Latham
8 // John Back
9 // Paul Harrison
10 
49 #ifndef LAU_ABS_FIT_MODEL
50 #define LAU_ABS_FIT_MODEL
51 
52 #include "TMatrixD.h"
53 #include "TString.h"
54 #include "TStopwatch.h"
55 #include "TVectorDfwd.h"
56 
57 #include <iosfwd>
58 #include <set>
59 #include <vector>
60 
61 #include "LauFitObject.hh"
62 #include "LauFormulaPar.hh"
63 #include "LauSimFitSlave.hh"
64 // LauSPlot included to get LauSPlot::NameSet typedef
65 #include "LauSPlot.hh"
66 
67 class TMessage;
68 class TMonitor;
69 class TSocket;
70 class TTree;
71 class LauAbsCoeffSet;
72 class LauAbsPdf;
73 class LauComplex;
74 class LauFitDataTree;
75 class LauFitNtuple;
76 class LauGenNtuple;
77 class LauAbsRValue;
78 class LauParameter;
79 
80 class LauAbsFitModel : public LauFitObject, public LauSimFitSlave {
81 
82  public:
85 
87  virtual ~LauAbsFitModel();
88 
90  Bool_t useDP() const { return usingDP_; }
91 
93 
96  void useDP(Bool_t usingDP) { usingDP_ = usingDP; }
97 
99  Bool_t doSFit() const { return doSFit_; }
100 
102 
106  void doSFit( const TString& sWeightBranchName, Double_t scaleFactor = 1.0 );
107 
109  Bool_t doEMLFit() const {return emlFit_;}
110 
112 
115  void doEMLFit(Bool_t emlFit) {emlFit_ = emlFit;}
116 
118  virtual Bool_t twoStageFit() const {return twoStageFit_;}
119 
121 
131  virtual void twoStageFit(Bool_t doTwoStageFit) {twoStageFit_ = doTwoStageFit;}
132 
134  Bool_t useAsymmFitErrors() const {return useAsymmFitErrors_;}
135 
137 
140  void useAsymmFitErrors(Bool_t useAsymmErrors) {useAsymmFitErrors_ = useAsymmErrors;}
141 
143  Bool_t doPoissonSmearing() const {return poissonSmear_;}
144 
146 
149  void doPoissonSmearing(Bool_t poissonSmear) {poissonSmear_ = poissonSmear;}
150 
152  Bool_t enableEmbedding() const {return enableEmbedding_;}
153 
155 
158  void enableEmbedding(Bool_t enable) {enableEmbedding_ = enable;}
159 
161 
167  virtual void withinAsymErrorCalc(Bool_t inAsymErrCalc) {withinAsymErrorCalc_ = inAsymErrCalc;}
168 
170  Bool_t writeLatexTable() const {return writeLatexTable_;}
171 
173 
176  void writeLatexTable(Bool_t writeTable) {writeLatexTable_ = writeTable;}
177 
179  Bool_t saveFilePDF() const {return savePDF_;}
180 
182 
185  void saveFilePDF(Bool_t savePDF) {savePDF_ = savePDF;}
186 
188 
194  void writeSPlotData(const TString& fileName, const TString& treeName, Bool_t storeDPEfficiency, const TString& verbosity = "q");
195 
197  Bool_t writeSPlotData() const {return writeSPlotData_;}
198 
200  Bool_t storeDPEff() const {return storeDPEff_;}
201 
203  Bool_t useRandomInitFitPars() const {return randomFit_;}
204 
206  void useRandomInitFitPars(Bool_t boolean) {randomFit_ = boolean;}
207 
209 
213  void setNExpts(UInt_t nExperiments, UInt_t firstExperiment = 0) {
214  nExpt_ = nExperiments;
215  firstExpt_ = firstExperiment;
216  }
217 
219  UInt_t eventsPerExpt() const {return evtsPerExpt_;}
220 
222  UInt_t nExpt() const {return nExpt_;}
223 
225  UInt_t firstExpt() const {return firstExpt_;}
226 
228  UInt_t iExpt() const {return iExpt_;}
229 
231 
234  virtual void setBkgndClassNames( const std::vector<TString>& names );
235 
237  inline UInt_t nBkgndClasses() const {return bkgndClassNames_.size();}
238 
240 
243  virtual void setNSigEvents(LauParameter* nSigEvents) = 0;
244 
246 
252  virtual void setNBkgndEvents(LauParameter* nBkgndEvents) = 0;
253 
255 
262  virtual void setAmpCoeffSet(LauAbsCoeffSet* coeffSet) = 0;
263 
265 
273  void compareFitData(UInt_t toyMCScale = 10, const TString& mcFileName = "fitToyMC.root",
274  const TString& tableFileName = "fitToyMCTable.tex", Bool_t poissonSmearing = kTRUE);
275 
277 
281  virtual void weightEvents( const TString& dataFileName, const TString& dataTreeName ) = 0;
282 
284 
291  void run(const TString& applicationCode, const TString& dataFileName, const TString& dataTreeName,
292  const TString& histFileName, const TString& tableFileName = "");
293 
295 
303  void runSlave(const TString& dataFileName, const TString& dataTreeName,
304  const TString& histFileName, const TString& tableFileName = "",
305  const TString& addressMaster = "localhost", const UInt_t portMaster = 9090);
306 
308 
315  virtual void setParsFromMinuit(Double_t* par, Int_t npar);
316 
318 
322  virtual Double_t getTotNegLogLikelihood();
323 
325 
331  virtual void addConstraint(const TString& formula, const std::vector<TString>& pars, const Double_t mean, const Double_t width);
332 
333  protected:
334 
335  // Some typedefs
336 
338  typedef std::vector<LauAbsPdf*> LauPdfList;
340  typedef std::vector<LauParameter*> LauParameterPList;
342  typedef std::vector<LauAbsRValue*> LauAbsRValuePList;
344  typedef std::set<LauParameter*> LauParameterPSet;
346  typedef std::vector<LauParameter> LauParameterList;
348  typedef std::map<UInt_t,TString> LauBkgndClassMap;
349 
351  void clearFitParVectors();
352 
354  void clearExtraVarVectors();
355 
357 
363  virtual void generate(const TString& dataFileName, const TString& dataTreeName, const TString& histFileName, const TString& tableFileNameBase);
364 
366 
369  virtual Bool_t genExpt() = 0;
370 
372 
378  void fit(const TString& dataFileName, const TString& dataTreeName, const TString& histFileName, const TString& tableFileNameBase);
379 
381 
387  void fitSlave(const TString& dataFileName, const TString& dataTreeName, const TString& histFileName, const TString& tableFileNameBase);
388 
390  void fitExpt();
391 
393 
396  Bool_t runMinimisation();
397 
399 
403  void createFitToyMC(const TString& mcFileName, const TString& tableFileName);
404 
406 
410  virtual UInt_t readExperimentData( const UInt_t exptIndex );
411 
413 
417  Bool_t cacheFitData(const TString& dataFileName, const TString& dataTreeName);
418 
420  virtual void cacheInputFitVars() = 0;
421 
423  virtual void cacheInputSWeights();
424 
426 
432  virtual void initialise() = 0;
433 
435  virtual void recalculateNormalisation() = 0;
436 
438  virtual void initialiseDPModels() = 0;
439 
447  virtual void updateCoeffs() = 0;
448 
450  virtual void propagateParUpdates() = 0;
451 
453 
457  Double_t getLogLikelihood( UInt_t iStart, UInt_t iEnd );
458 
460  Double_t getLogLikelihoodPenalty();
461 
463 
466  virtual Double_t getTotEvtLikelihood(UInt_t iEvt) = 0;
467 
469  virtual Double_t getEventSum() const = 0;
470 
472 
475  virtual void printEventInfo(UInt_t iEvt) const;
476 
478  virtual void printVarsInfo() const;
479 
481  virtual void checkInitFitParams() = 0;
482 
484 
487  virtual void prepareInitialParArray( TObjArray& array );
488 
490 
501  virtual void finaliseResults( const Int_t fitStat, const Double_t NLL, const TObjArray* parsFromMaster, const TMatrixD* covMat, TObjArray& parsToMaster );
502 
504 
507  virtual void finaliseFitResults(const TString& tableFileName) = 0;
508 
510 
513  virtual void savePDFPlots(const TString& label) = 0;
514 
516 
520  virtual void savePDFPlotsWave(const TString& label, const Int_t& spin) = 0;
521 
523 
526  virtual void writeOutTable(const TString& outputFile) = 0;
527 
529  virtual void storePerEvtLlhds() = 0;
530 
532  virtual void writeOutAllFitResults();
533 
535  virtual void calculateSPlotData();
536 
538  void setGenValues();
539 
541  virtual void setupBkgndVectors() = 0;
542 
544 
548  Bool_t validBkgndClass( const TString& className ) const;
549 
551 
555  UInt_t bkgndClassID( const TString& className ) const;
556 
558 
562  const TString& bkgndClassName( UInt_t classID ) const;
563 
565  void eventsPerExpt(UInt_t nEvents) {evtsPerExpt_ = nEvents;}
566 
568  virtual void setupGenNtupleBranches() = 0;
569 
571 
574  virtual void addGenNtupleIntegerBranch(const TString& name);
575 
577 
580  virtual void addGenNtupleDoubleBranch(const TString& name);
581 
583 
587  virtual void setGenNtupleIntegerBranchValue(const TString& name, Int_t value);
588 
590 
594  virtual void setGenNtupleDoubleBranchValue(const TString& name, Double_t value);
595 
597 
601  virtual Int_t getGenNtupleIntegerBranchValue(const TString& name) const;
602 
604 
608  virtual Double_t getGenNtupleDoubleBranchValue(const TString& name) const;
609 
611  virtual void fillGenNtupleBranches();
612 
614  virtual void setupSPlotNtupleBranches() = 0;
615 
617 
620  virtual void addSPlotNtupleIntegerBranch(const TString& name);
621 
623 
626  virtual void addSPlotNtupleDoubleBranch(const TString& name);
627 
629 
633  virtual void setSPlotNtupleIntegerBranchValue(const TString& name, Int_t value);
634 
636 
640  virtual void setSPlotNtupleDoubleBranchValue(const TString& name, Double_t value);
641 
643  virtual void fillSPlotNtupleBranches();
644 
646  virtual LauSPlot::NameSet variableNames() const = 0;
647 
649  virtual LauSPlot::NumbMap freeSpeciesNames() const = 0;
650 
652  virtual LauSPlot::NumbMap fixdSpeciesNames() const = 0;
653 
655  virtual LauSPlot::TwoDMap twodimPDFs() const = 0;
656 
658  virtual Bool_t splitSignal() const = 0;
659 
661  virtual Bool_t scfDPSmear() const = 0;
662 
664 
668  UInt_t addFitParameters(LauPdfList& pdfList);
669 
671  void addConParameters();
672 
674 
678  void printFitParameters(const LauPdfList& pdfList, std::ostream& fout) const;
679 
681 
684  void updateFitParameters(LauPdfList& pdfList);
685 
687 
691  void cacheInfo(LauPdfList& pdfList, const LauFitDataTree& theData);
692 
694 
698  Double_t prodPdfValue(LauPdfList& pdfList, UInt_t iEvt);
699 
701 
704  Bool_t pdfsDependOnDP() const {return pdfsDependOnDP_;}
705 
707 
710  void pdfsDependOnDP(Bool_t dependOnDP) { pdfsDependOnDP_ = dependOnDP; }
711 
713  const LauParameterPList& fitPars() const {return fitVars_;}
715 
717  const LauParameterPSet& resPars() const {return resVars_;}
719 
721  const LauParameterList& extraPars() const {return extraVars_;}
723 
725  const LauAbsRValuePList& conPars() const {return conVars_;}
727 
729  const LauFitNtuple* fitNtuple() const {return fitNtuple_;}
731 
733  const LauGenNtuple* genNtuple() const {return genNtuple_;}
735 
737  const LauGenNtuple* sPlotNtuple() const {return sPlotNtuple_;}
739 
741  const LauFitDataTree* fitData() const {return inputFitData_;}
743 
745  Double_t nll() const {return NLL_;}
746 
748  Int_t fitStatus() const {return fitStatus_;}
749 
751  const TMatrixD& covarianceMatrix() const {return covMatrix_;}
752 
753  private:
755  LauAbsFitModel(const LauAbsFitModel& rhs);
756 
759 
761  std::vector<StoreConstraints> storeCon_;
762 
763  // Various control booleans
764 
766  Bool_t twoStageFit_;
772  Bool_t savePDF_;
778  Bool_t storeDPEff_;
780  Bool_t randomFit_;
782  Bool_t emlFit_;
784  Bool_t poissonSmear_;
788  Bool_t usingDP_;
791 
792  // Info on number of experiments and number of events
793 
795  UInt_t firstExpt_;
797  UInt_t nExpt_;
799  UInt_t evtsPerExpt_;
801  UInt_t iExpt_;
802 
805 
808 
811 
814 
815  // Input data and output ntuple
816 
825 
826  // Fit bookeeping variables
827 
829  Int_t fitStatus_;
831  Double_t NLL_;
833  TMatrixD covMatrix_;
835  UInt_t numberOKFits_;
837  UInt_t numberBadFits_;
839  UInt_t nParams_;
841  UInt_t nFreeParams_;
843  Double_t worstLogLike_;
846 
847  // Background class names
851  const TString nullString_;
852 
853  // sFit related variables
854 
856  Bool_t doSFit_;
860  std::vector<Double_t> sWeights_;
863 
864  // Fit timers
865 
867  TStopwatch timer_;
869  TStopwatch cumulTimer_;
870 
873 
874  // Comparison toy MC related variables
875 
884 
885  // sPlot related variables
886 
888  TString sPlotFileName_;
890  TString sPlotTreeName_;
893 
894  ClassDef(LauAbsFitModel,0) // Abstract interface to fit/toyMC model
895 };
896 
897 #endif
TString fitToyMCTableName_
The output table name for Toy MC.
virtual void addSPlotNtupleIntegerBranch(const TString &name)
Add a branch to the sPlot tree for storing an integer.
virtual Bool_t twoStageFit() const
Determine whether the two-stage fit is enabled.
virtual Bool_t genExpt()=0
The method that actually generates the toy MC events for the given experiment.
File containing declaration of LauFormulaPar class.
void createFitToyMC(const TString &mcFileName, const TString &tableFileName)
Create a toy MC sample from the fitted parameters.
UInt_t firstExpt() const
Obtain the number of the first experiment.
std::vector< LauParameter > LauParameterList
List of parameters.
virtual Double_t getEventSum() const =0
Returns the sum of the expected events over all hypotheses; used in the EML fit scenario.
UInt_t eventsPerExpt() const
Obtain the total number of events in the current experiment.
void setGenValues()
Make sure all parameters hold their genValue as the current value.
TString sPlotFileName_
The name of the sPlot file.
void saveFilePDF(Bool_t savePDF)
Turn on or off the save of files containing graphs of the resonance&#39;s PDFs.
virtual void writeOutTable(const TString &outputFile)=0
Write the latex table.
Bool_t writeLatexTable() const
Determine whether writing out of the latex table is enabled.
Bool_t doSFit_
Option to perfom the sFit.
Bool_t writeSPlotData() const
Determine whether the sPlot data is to be written out.
TStopwatch timer_
The fit timer.
UInt_t nParams_
The number of fit parameters.
virtual Double_t getTotNegLogLikelihood()
Calculates the total negative log-likelihood.
LauAbsRValuePList conVars_
Internal vectors of Gaussian parameters.
Bool_t storeDPEff_
Option to store DP efficiencies in the sPlot ntuple.
void cacheInfo(LauPdfList &pdfList, const LauFitDataTree &theData)
Have all PDFs in the list cache the data.
virtual void setGenNtupleIntegerBranchValue(const TString &name, Int_t value)
Set the value of an integer branch in the gen tree.
void writeLatexTable(Bool_t writeTable)
Turn on or off the writing out of the latex table.
virtual void setupBkgndVectors()=0
Method to set up the storage for background-related quantities called by setBkgndClassNames.
LauGenNtuple * genNtuple_
The generated ntuple.
Bool_t withinAsymErrorCalc_
Flag to indicate if the asymmetric error calculation (e.g. MINOS) is currently running.
Bool_t useAsymmFitErrors() const
Determine whether calculation of asymmetric errors is enabled.
virtual void setupGenNtupleBranches()=0
Setup the generation ntuple branches.
UInt_t addFitParameters(LauPdfList &pdfList)
Add parameters of the PDFs in the list to the list of all fit parameters.
virtual void generate(const TString &dataFileName, const TString &dataTreeName, const TString &histFileName, const TString &tableFileNameBase)
Generate toy MC.
virtual void setBkgndClassNames(const std::vector< TString > &names)
Setup the background class names.
Bool_t useDP() const
Is the Dalitz plot term in the likelihood.
void doPoissonSmearing(Bool_t poissonSmear)
Turn Poisson smearing (for the toy MC generation) on or off.
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 compareFitData(UInt_t toyMCScale=10, const TString &mcFileName="fitToyMC.root", const TString &tableFileName="fitToyMCTable.tex", Bool_t poissonSmearing=kTRUE)
Specify that a toy MC sample should be created for a successful fit to an experiment.
Bool_t randomFit_
Option to randomise the initial values of the fit parameters.
virtual void cacheInputSWeights()
Cache the value of the sWeights to be used in the sFit.
virtual void setGenNtupleDoubleBranchValue(const TString &name, Double_t value)
Set the value of a double branch in the gen tree.
virtual void setNSigEvents(LauParameter *nSigEvents)=0
Set the number of signal events.
virtual void savePDFPlotsWave(const TString &label, const Int_t &spin)=0
Save the pdf Plots for the sum of ressonances correspondint to &quot;sin&quot; of experiment number fitExp...
void eventsPerExpt(UInt_t nEvents)
Set the number of events in the current experiment.
virtual void storePerEvtLlhds()=0
Store the per-event likelihood values.
virtual void printEventInfo(UInt_t iEvt) const
Prints the values of all the fit variables for the specified event - useful for diagnostics.
ClassDef(LauSimFitSlave, 0)
Bool_t pdfsDependOnDP() const
Do any of the PDFs have a dependence on the DP?
virtual ~LauAbsFitModel()
Destructor.
Int_t fitStatus() const
Access the fit status information.
Bool_t compareFitData_
Option to make toy from 1st successful experiment.
Bool_t writeLatexTable_
Option to output a Latex format table.
Double_t prodPdfValue(LauPdfList &pdfList, UInt_t iEvt)
Calculate the product of the per-event likelihoods of the PDFs in the list.
Bool_t emlFit_
Option to perform an extended ML fit.
LauFitDataTree * fitData()
virtual void addConstraint(const TString &formula, const std::vector< TString > &pars, const Double_t mean, const Double_t width)
Store constraint information for fit parameters.
std::vector< LauAbsPdf * > LauPdfList
List of Pdfs.
virtual Int_t getGenNtupleIntegerBranchValue(const TString &name) const
Get the value of an integer branch in the gen tree.
Bool_t poissonSmear_
Option to perform Poisson smearing.
virtual LauSPlot::NumbMap fixdSpeciesNames() const =0
Returns the names and yields of species that are fixed in the fit.
LauBkgndClassMap bkgndClassNames_
The background class names.
Bool_t twoStageFit_
Option to perform a two stage fit.
virtual void setupSPlotNtupleBranches()=0
Setup the branches of the sPlot tuple.
virtual void fillGenNtupleBranches()
Fill the gen tuple branches.
void fitSlave(const TString &dataFileName, const TString &dataTreeName, const TString &histFileName, const TString &tableFileNameBase)
Slaves required when performing a simultaneous fit.
std::set< LauParameter * > LauParameterPSet
Set of parameter pointers.
Bool_t useAsymmFitErrors_
Option to use asymmetric errors.
virtual void setSPlotNtupleDoubleBranchValue(const TString &name, Double_t value)
Set the value of a double branch in the sPlot tree.
void printFitParameters(const LauPdfList &pdfList, std::ostream &fout) const
Print the fit parameters for all PDFs in the list.
virtual UInt_t readExperimentData(const UInt_t exptIndex)
Read in the data for the specified experiment.
Bool_t enableEmbedding_
Option to enable embedding.
std::vector< LauAbsRValue * > LauAbsRValuePList
List of parameter pointers.
LauParameterList & extraPars()
LauFitNtuple * fitNtuple()
virtual Double_t getTotEvtLikelihood(UInt_t iEvt)=0
Calculates the likelihood for a given event.
TStopwatch cumulTimer_
The total fit timer.
virtual void propagateParUpdates()=0
This function (specific to each model) calculates anything that depends on the fit parameter values...
void addConParameters()
Add parameters to the list of Gaussian constrained parameters.
virtual void recalculateNormalisation()=0
Recalculate normalisation the signal DP model(s)
LauFitDataTree * inputFitData_
The input data.
const LauParameterList & extraPars() const
Access the extra variables.
void doEMLFit(Bool_t emlFit)
Choice to perform an extended maximum likelihood fit.
Bool_t doSFit() const
Return the flag to store the status of using an sFit or not.
void run(const TString &applicationCode, const TString &dataFileName, const TString &dataTreeName, const TString &histFileName, const TString &tableFileName="")
Start the toy generation / fitting.
std::vector< LauParameter * > LauParameterPList
List of parameter pointers.
LauParameterList extraVars_
Extra variables that aren&#39;t in the fit but are stored in the ntuple.
std::vector< StoreConstraints > storeCon_
Store the constraints for fit parameters until initialisation is complete.
TMatrixD covMatrix_
The fit covariance matrix.
Abstract interface to the fitting and toy MC model.
UInt_t iExpt() const
Obtain the number of the current experiment.
UInt_t numberBadFits_
The number of bad fits.
virtual void addGenNtupleIntegerBranch(const TString &name)
Add a branch to the gen tree for storing an integer.
const LauFitNtuple * fitNtuple() const
Access the fit ntuple.
virtual void prepareInitialParArray(TObjArray &array)
Package the initial fit parameters for transmission to the master.
UInt_t nExpt() const
Obtain the number of experiments.
virtual void withinAsymErrorCalc(Bool_t inAsymErrCalc)
Mark that the fit is calculating asymmetric errors.
Bool_t doPoissonSmearing() const
Determine whether Poisson smearing is enabled for the toy MC generation.
Bool_t saveFilePDF() const
save files containing graphs of the resonance&#39;s PDFs
virtual Double_t getGenNtupleDoubleBranchValue(const TString &name) const
Get the value of a double branch in the gen tree.
const LauAbsRValuePList & conPars() const
Access the Gaussian constrained variables.
void setNExpts(UInt_t nExperiments, UInt_t firstExperiment=0)
Set the number of experiments and the first experiment.
virtual void setAmpCoeffSet(LauAbsCoeffSet *coeffSet)=0
Set the DP amplitude coefficients.
virtual void weightEvents(const TString &dataFileName, const TString &dataTreeName)=0
Reweighting - allows e.g. MC events to be weighted by the DP model.
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.
std::map< UInt_t, TString > LauBkgndClassMap
A type to store background classes.
virtual void twoStageFit(Bool_t doTwoStageFit)
Turn on or off the two stage fit.
UInt_t numberOKFits_
The number of good fits.
virtual LauSPlot::NumbMap freeSpeciesNames() const =0
Returns the names and yields of species that are free in the fit.
Class to store the results from the toy MC generation into an ntuple.
Definition: LauGenNtuple.hh:32
File containing declaration of LauSPlot class.
virtual Bool_t splitSignal() const =0
Check if the signal is split into well-reconstructed and mis-reconstructed types. ...
LauParameterPList & fitPars()
Double_t worstLogLike_
The worst LL value found so far.
TString sPlotTreeName_
The name of the sPlot tree.
virtual void initialiseDPModels()=0
Initialise the DP models.
Class for defining the abstract interface for complex coefficient classes.
Double_t nll() const
Access the current NLL value.
LauAbsFitModel()
Constructor.
LauGenNtuple * sPlotNtuple_
The sPlot ntuple.
TString sPlotVerbosity_
Control the verbosity of the sFit.
const TString nullString_
An empty string.
void clearFitParVectors()
Clear the vectors containing fit parameters.
Class for defining the fit parameter objects.
Definition: LauParameter.hh:35
virtual void addSPlotNtupleDoubleBranch(const TString &name)
Add a branch to the sPlot tree for storing a double.
void clearExtraVarVectors()
Clear the vectors containing extra ntuple variables.
virtual void setNBkgndEvents(LauParameter *nBkgndEvents)=0
Set the number of background events.
virtual void cacheInputFitVars()=0
Cache the input data values to calculate the likelihood during the fit.
void fitExpt()
Routine to perform the actual fit for a given experiment.
const LauGenNtuple * genNtuple() const
Access the gen ntuple.
LauGenNtuple * sPlotNtuple()
LauGenNtuple * genNtuple()
Double_t sWeightScaleFactor_
The sWeight scaling factor.
Bool_t storeDPEff() const
Determine whether the efficiency information should be stored in the sPlot ntuple.
const LauGenNtuple * sPlotNtuple() const
Access the sPlot ntuple.
UInt_t bkgndClassID(const TString &className) const
The number assigned to a background class.
virtual void writeOutAllFitResults()
Write out any fit results.
File containing declaration of LauSimFitSlave class.
Bool_t useRandomInitFitPars() const
Determine whether the initial values of the fit parameters, in particular the isobar coefficient para...
virtual void finaliseFitResults(const TString &tableFileName)=0
Write the results of the fit into the ntuple.
const LauFitDataTree * fitData() const
Access the data store.
UInt_t firstExpt_
The number of the first experiment to consider.
virtual void checkInitFitParams()=0
Update initial fit parameters if required.
virtual void printVarsInfo() const
Same as printEventInfo, but printing out the values of the variables in the fit.
Bool_t writeSPlotData_
Option to write sPlot data.
Bool_t validBkgndClass(const TString &className) const
Check if the given background class is in the list.
Bool_t fitToyMCPoissonSmear_
Option to perform Poisson smearing.
TString sWeightBranchName_
The name of the sWeight branch.
UInt_t iExpt_
The number of the current experiment.
LauParameterPList fitVars_
Internal vector of fit parameters.
virtual Bool_t scfDPSmear() const =0
Check if the mis-reconstructed signal is to be smeared in the DP.
Bool_t cacheFitData(const TString &dataFileName, const TString &dataTreeName)
Store variables from the input file into the internal data storage.
const LauParameterPSet & resPars() const
Access the fit variables which affect the DP normalisation.
virtual void finaliseResults(const Int_t fitStat, const Double_t NLL, const TObjArray *parsFromMaster, const TMatrixD *covMat, TObjArray &parsToMaster)
Perform all finalisation actions.
void fit(const TString &dataFileName, const TString &dataTreeName, const TString &histFileName, const TString &tableFileNameBase)
Perform the total fit.
void enableEmbedding(Bool_t enable)
Turn on or off embedding of events in the generation.
void pdfsDependOnDP(Bool_t dependOnDP)
Do any of the PDFs have a dependence on the DP?
virtual void setSPlotNtupleIntegerBranchValue(const TString &name, Int_t value)
Set the value of an integer branch in the sPlot tree.
LauAbsRValuePList & conPars()
UInt_t fitToyMCScale_
The scaling factor (toy vs data statistics)
Bool_t runMinimisation()
Routine to perform the minimisation.
File containing declaration of LauFitObject class.
virtual void fillSPlotNtupleBranches()
Fill the sPlot tuple.
virtual void updateCoeffs()=0
TString fitToyMCFileName_
The output file name for Toy MC.
Bool_t usingDP_
Option to include the DP as part of the fit.
Class to store the results from the fit into an ntuple.
Definition: LauFitNtuple.hh:42
void runSlave(const TString &dataFileName, const TString &dataTreeName, const TString &histFileName, const TString &tableFileName="", const TString &addressMaster="localhost", const UInt_t portMaster=9090)
Start the slave process for simultaneous fitting.
virtual LauSPlot::TwoDMap twodimPDFs() const =0
Returns the species and variables for all 2D PDFs in the fit.
Double_t getLogLikelihoodPenalty()
Calculate the penalty terms to the log likelihood from Gaussian constraints.
Class for defining a complex number.
Definition: LauComplex.hh:47
virtual void savePDFPlots(const TString &label)=0
Save the pdf Plots for all the resonances of experiment number fitExp.
UInt_t nBkgndClasses() const
Returns the number of background classes.
The base class for any slave process for simultaneous/combined fits.
const TString & bkgndClassName(UInt_t classID) const
Get the name of a background class from the number.
void useRandomInitFitPars(Bool_t boolean)
Randomise the initial values of the fit parameters, in particular the isobar coefficient parameters...
LauParameterPSet resVars_
Internal set of fit parameters upon which the DP normalisation depends.
void useDP(Bool_t usingDP)
Switch on/off the Dalitz plot term in the Likelihood (allows fits to other quantities, e.g. B mass)
Bool_t enableEmbedding() const
Determine whether embedding of events is enabled in the generation.
Bool_t savePDF_
Option to output a .C file of PDF&#39;s.
Double_t NLL_
The negative log-likelihood.
Class for defining the abstract interface for PDF classes.
Definition: LauAbsPdf.hh:41
Double_t getLogLikelihood(UInt_t iStart, UInt_t iEnd)
Calculate the sum of the log-likelihood over the specified events.
const TMatrixD & covarianceMatrix() const
Access the fit covariance matrix.
const LauParameterPList & fitPars() const
Access the fit variables.
UInt_t nExpt_
The number of experiments to consider.
LauFitNtuple * fitNtuple_
The fit ntuple.
virtual LauSPlot::NameSet variableNames() const =0
Returns the names of all variables in the fit.
UInt_t evtsPerExpt_
The number of events per experiment.
virtual void addGenNtupleDoubleBranch(const TString &name)
Add a branch to the gen tree for storing a double.
void useAsymmFitErrors(Bool_t useAsymmErrors)
Turn on or off the computation of asymmetric errors (e.g. MINOS routine in Minuit) ...
void updateFitParameters(LauPdfList &pdfList)
Update the fit parameters for all PDFs in the list.
Bool_t pdfsDependOnDP_
Option to state if pdfs depend on DP position.
LauParameterPSet & resPars()
TString outputTableName_
The output table name.
virtual void setParsFromMinuit(Double_t *par, Int_t npar)
This function sets the parameter values from Minuit.
Pure abstract base class for defining a parameter containing an R value.
Definition: LauAbsRValue.hh:29
Int_t fitStatus_
The status of the fit.
virtual void initialise()=0
Initialise the fit par vectors.
Class to store the input fit variables.
std::set< TString > NameSet
Type to store names, e.g. of the discriminating/control variables.
Definition: LauSPlot.hh:59
The abstract interface for the objects that control the calculation of the likelihood.
Definition: LauFitObject.hh:26
virtual void calculateSPlotData()
Calculate the sPlot data.
LauAbsFitModel & operator=(const LauAbsFitModel &rhs)
Copy assignment operator (not implemented)
std::vector< Double_t > sWeights_
The vector of sWeights.
UInt_t nFreeParams_
The number of free fit parameters.