laura is hosted by Hepforge, IPPP Durham
Laura++  v3r5
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauAbsFitModel.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 
63 #ifndef LAU_ABS_FIT_MODEL
64 #define LAU_ABS_FIT_MODEL
65 
66 #include "TMatrixDfwd.h"
67 #include "TString.h"
68 #include "TStopwatch.h"
69 
70 #include <iosfwd>
71 #include <set>
72 #include <vector>
73 
74 #include "LauFitObject.hh"
75 #include "LauFormulaPar.hh"
76 #include "LauSimFitSlave.hh"
77 // LauSPlot included to get LauSPlot::NameSet typedef
78 #include "LauSPlot.hh"
79 
80 class LauAbsCoeffSet;
81 class LauAbsPdf;
82 class LauFitDataTree;
83 class LauGenNtuple;
84 class LauAbsRValue;
85 class LauParameter;
86 
88 
89  public:
92 
94  virtual ~LauAbsFitModel();
95 
97  Bool_t useDP() const { return usingDP_; }
98 
100 
103  void useDP(Bool_t usingDP) { usingDP_ = usingDP; }
104 
106  Bool_t doSFit() const { return doSFit_; }
107 
109 
113  void doSFit( const TString& sWeightBranchName, Double_t scaleFactor = 1.0 );
114 
116  Bool_t doEMLFit() const {return emlFit_;}
117 
119 
122  void doEMLFit(Bool_t emlFit) {emlFit_ = emlFit;}
123 
125  Bool_t doPoissonSmearing() const {return poissonSmear_;}
126 
128 
131  void doPoissonSmearing(Bool_t poissonSmear) {poissonSmear_ = poissonSmear;}
132 
134  Bool_t enableEmbedding() const {return enableEmbedding_;}
135 
137 
140  void enableEmbedding(Bool_t enable) {enableEmbedding_ = enable;}
141 
143  Bool_t writeLatexTable() const {return writeLatexTable_;}
144 
146 
149  void writeLatexTable(Bool_t writeTable) {writeLatexTable_ = writeTable;}
150 
152  Bool_t saveFilePDF() const {return savePDF_;}
153 
155 
158  void saveFilePDF(Bool_t savePDF) {savePDF_ = savePDF;}
159 
161 
167  void writeSPlotData(const TString& fileName, const TString& treeName, Bool_t storeDPEfficiency, const TString& verbosity = "q");
168 
170  Bool_t writeSPlotData() const {return writeSPlotData_;}
171 
173  Bool_t storeDPEff() const {return storeDPEff_;}
174 
176  Bool_t useRandomInitFitPars() const {return randomFit_;}
177 
179  void useRandomInitFitPars(Bool_t boolean) {randomFit_ = boolean;}
180 
182 
185  virtual void setBkgndClassNames( const std::vector<TString>& names );
186 
188  inline UInt_t nBkgndClasses() const {return bkgndClassNames_.size();}
189 
191 
194  virtual void setNSigEvents(LauParameter* nSigEvents) = 0;
195 
197 
203  virtual void setNBkgndEvents(LauAbsRValue* nBkgndEvents) = 0;
204 
206 
213  virtual void setAmpCoeffSet(LauAbsCoeffSet* coeffSet) = 0;
214 
216 
224  void compareFitData(UInt_t toyMCScale = 10, const TString& mcFileName = "fitToyMC.root",
225  const TString& tableFileName = "fitToyMCTable.tex", Bool_t poissonSmearing = kTRUE);
226 
228 
235  void run(const TString& applicationCode, const TString& dataFileName, const TString& dataTreeName,
236  const TString& histFileName, const TString& tableFileName = "");
237 
239 
246  virtual void setParsFromMinuit(Double_t* par, Int_t npar);
247 
249 
253  virtual Double_t getTotNegLogLikelihood();
254 
256 
261  void setParametersFromFile(const TString& fileName, const TString& treeName, const Bool_t fix);
262 
264 
271  void setParametersFromMap(const std::map<TString, Double_t>& parameters, const Bool_t fix);
272 
274 
283  void setNamedParameters(const TString& fileName, const TString& treeName, const std::set<TString>& parameters, const Bool_t fix);
284 
286 
295  void setParametersFileFallback(const TString& fileName, const TString& treeName, const std::map<TString, Double_t>& parameters, const Bool_t fix);
296 
297  protected:
298 
299  // Some typedefs
300 
302  typedef std::vector<LauAbsPdf*> LauPdfList;
304  typedef std::vector<LauParameter*> LauParameterPList;
306  typedef std::vector<LauAbsRValue*> LauAbsRValuePList;
308  typedef std::set<LauParameter*> LauParameterPSet;
310  typedef std::vector<LauParameter> LauParameterList;
312  typedef std::map<UInt_t,TString> LauBkgndClassMap;
313 
315  void clearFitParVectors();
316 
318  void clearExtraVarVectors();
319 
321 
325  virtual void weightEvents( const TString& dataFileName, const TString& dataTreeName ) = 0;
326 
328 
334  virtual void generate(const TString& dataFileName, const TString& dataTreeName, const TString& histFileName, const TString& tableFileNameBase);
335 
337 
340  virtual Bool_t genExpt() = 0;
341 
343 
349  void fit(const TString& dataFileName, const TString& dataTreeName, const TString& histFileName, const TString& tableFileNameBase);
350 
352  void fitExpt();
353 
355 
358  Bool_t runMinimisation();
359 
361 
365  void createFitToyMC(const TString& mcFileName, const TString& tableFileName);
366 
368 
371  virtual UInt_t readExperimentData();
372 
374 
378  virtual Bool_t verifyFitData(const TString& dataFileName, const TString& dataTreeName);
379 
381  virtual void cacheInputFitVars() = 0;
382 
384  virtual void cacheInputSWeights();
385 
387 
393  virtual void initialise() = 0;
394 
396  virtual void recalculateNormalisation() = 0;
397 
399  virtual void initialiseDPModels() = 0;
400 
408  virtual void updateCoeffs() = 0;
409 
411  virtual void propagateParUpdates() = 0;
412 
414 
418  Double_t getLogLikelihood( UInt_t iStart, UInt_t iEnd );
419 
421  Double_t getLogLikelihoodPenalty();
422 
424 
427  virtual Double_t getTotEvtLikelihood(UInt_t iEvt) = 0;
428 
430  virtual Double_t getEventSum() const = 0;
431 
433 
436  virtual void printEventInfo(UInt_t iEvt) const;
437 
439  virtual void printVarsInfo() const;
440 
442  virtual void checkInitFitParams() = 0;
443 
445 
449  virtual void setupResultsOutputs( const TString& histFileName, const TString& tableFileName );
450 
452 
455  virtual void prepareInitialParArray( TObjArray& array );
456 
458 
468  virtual void finaliseExperiment( const LauAbsFitter::FitStatus& fitStat, const TObjArray* parsFromMaster, const TMatrixD* covMat, TObjArray& parsToMaster );
469 
471 
474  virtual void finaliseFitResults(const TString& tableFileName) = 0;
475 
477 
480  virtual void savePDFPlots(const TString& label) = 0;
481 
483 
487  virtual void savePDFPlotsWave(const TString& label, const Int_t& spin) = 0;
488 
490 
493  virtual void writeOutTable(const TString& outputFile) = 0;
494 
496  virtual void storePerEvtLlhds() = 0;
497 
499  virtual void calculateSPlotData();
500 
502  void setGenValues();
503 
505  virtual void setupBkgndVectors() = 0;
506 
508 
512  Bool_t validBkgndClass( const TString& className ) const;
513 
515 
519  UInt_t bkgndClassID( const TString& className ) const;
520 
522 
526  const TString& bkgndClassName( UInt_t classID ) const;
527 
529  virtual void setupGenNtupleBranches() = 0;
530 
532 
535  virtual void addGenNtupleIntegerBranch(const TString& name);
536 
538 
541  virtual void addGenNtupleDoubleBranch(const TString& name);
542 
544 
548  virtual void setGenNtupleIntegerBranchValue(const TString& name, Int_t value);
549 
551 
555  virtual void setGenNtupleDoubleBranchValue(const TString& name, Double_t value);
556 
558 
562  virtual Int_t getGenNtupleIntegerBranchValue(const TString& name) const;
563 
565 
569  virtual Double_t getGenNtupleDoubleBranchValue(const TString& name) const;
570 
572  virtual void fillGenNtupleBranches();
573 
575  virtual void setupSPlotNtupleBranches() = 0;
576 
578 
581  virtual void addSPlotNtupleIntegerBranch(const TString& name);
582 
584 
587  virtual void addSPlotNtupleDoubleBranch(const TString& name);
588 
590 
594  virtual void setSPlotNtupleIntegerBranchValue(const TString& name, Int_t value);
595 
597 
601  virtual void setSPlotNtupleDoubleBranchValue(const TString& name, Double_t value);
602 
604  virtual void fillSPlotNtupleBranches();
605 
607  virtual LauSPlot::NameSet variableNames() const = 0;
608 
610  virtual LauSPlot::NumbMap freeSpeciesNames() const = 0;
611 
613  virtual LauSPlot::NumbMap fixdSpeciesNames() const = 0;
614 
616  virtual LauSPlot::TwoDMap twodimPDFs() const = 0;
617 
619  virtual Bool_t splitSignal() const = 0;
620 
622  virtual Bool_t scfDPSmear() const = 0;
623 
625 
629  UInt_t addFitParameters(LauPdfList& pdfList);
630 
632  void addConParameters();
633 
635 
639  void printFitParameters(const LauPdfList& pdfList, std::ostream& fout) const;
640 
642 
645  void updateFitParameters(LauPdfList& pdfList);
646 
648 
652  void cacheInfo(LauPdfList& pdfList, const LauFitDataTree& theData);
653 
655 
659  Double_t prodPdfValue(LauPdfList& pdfList, UInt_t iEvt);
660 
662 
665  Bool_t pdfsDependOnDP() const {return pdfsDependOnDP_;}
666 
668 
671  void pdfsDependOnDP(Bool_t dependOnDP) { pdfsDependOnDP_ = dependOnDP; }
672 
674  const LauParameterPList& fitPars() const {return fitVars_;}
677 
679  const LauParameterPSet& resPars() const {return resVars_;}
682 
684  const LauParameterList& extraPars() const {return extraVars_;}
687 
689  const LauAbsRValuePList& conPars() const {return conVars_;}
692 
694  const LauGenNtuple* genNtuple() const {return genNtuple_;}
697 
699  const LauGenNtuple* sPlotNtuple() const {return sPlotNtuple_;}
702 
704  const LauFitDataTree* fitData() const {return inputFitData_;}
707 
710 
713 
715  std::map<TString, Double_t> fixParamMap_;
716 
718  std::set<TString> fixParamNames_;
719 
721  Bool_t fixParams_;
722 
724  // set to be fixed in the fit. In addition to those from fixParamNames_, these
725  // include those imported from a file.
726  std::set<LauParameter*> allImportedFreeParams_;
727 
728  private:
730  LauAbsFitModel(const LauAbsFitModel& rhs);
731 
734 
735  // Various control booleans
736 
740  Bool_t savePDF_;
746  Bool_t storeDPEff_;
748  Bool_t randomFit_;
750  Bool_t emlFit_;
756  Bool_t usingDP_;
759 
760  // Info on number of experiments and number of events
761 
764 
767 
770 
773 
774  // Input data and output ntuple
775 
782 
783  // Background class names
784 
788  const TString nullString_;
789 
790  // sFit related variables
791 
793  Bool_t doSFit_;
797  std::vector<Double_t> sWeights_;
800 
801  // Fit timers
802 
804  TStopwatch timer_;
806  TStopwatch cumulTimer_;
807 
810 
811  // Comparison toy MC related variables
812 
821 
822  // sPlot related variables
823 
825  TString sPlotFileName_;
827  TString sPlotTreeName_;
830 
831  ClassDef(LauAbsFitModel,0) // Abstract interface to fit/toyMC model
832 };
833 
834 #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 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.
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.
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.
virtual UInt_t readExperimentData()
Read in the data for the current experiment.
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.
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.
virtual Bool_t verifyFitData(const TString &dataFileName, const TString &dataTreeName)
Open the input file and verify that all required variables are present.
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:82
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 finaliseExperiment(const LauAbsFitter::FitStatus &fitStat, const TObjArray *parsFromMaster, const TMatrixD *covMat, TObjArray &parsToMaster)
Perform all finalisation actions.
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...
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.
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.
void setParametersFileFallback(const TString &fileName, const TString &treeName, const std::map< TString, Double_t > &parameters, const Bool_t fix)
Set named model parameters from a given std::map, with fallback to those from a file.
LauFitDataTree * fitData()
Access the data store.
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.
virtual void setupSPlotNtupleBranches()=0
Setup the branches of the sPlot tuple.
virtual void fillGenNtupleBranches()
Fill the gen tuple branches.
TString fixParamFileName_
Imported parameters file name.
std::set< LauParameter * > LauParameterPSet
Set of parameter pointers.
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.
std::map< TString, Double_t > fixParamMap_
Map from imported parameter name to value.
virtual void setNBkgndEvents(LauAbsRValue *nBkgndEvents)=0
Set the number of background events.
Bool_t enableEmbedding_
Option to enable embedding.
std::vector< LauAbsRValue * > LauAbsRValuePList
List of parameter pointers.
LauParameterList & extraPars()
Access the extra variables.
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.
void setParametersFromMap(const std::map< TString, Double_t > &parameters, const Bool_t fix)
Set model parameters from a given std::map.
virtual void recalculateNormalisation()=0
Recalculate normalisation the signal DP model(s)
LauFitDataTree * inputFitData_
The input data.
const LauParameterList & extraPars() const
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.
void setNamedParameters(const TString &fileName, const TString &treeName, const std::set< TString > &parameters, const Bool_t fix)
Set named model parameters from a file.
LauParameterList extraVars_
Extra variables that aren&#39;t in the fit but are stored in the ntuple.
Abstract interface to the fitting and toy MC model.
virtual void addGenNtupleIntegerBranch(const TString &name)
Add a branch to the gen tree for storing an integer.
Bool_t fixParams_
Whether to fix the loaded parameters (kTRUE) or leave them floating (kFALSE)
virtual void prepareInitialParArray(TObjArray &array)
Package the initial fit parameters for transmission to the master.
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
Struct to store fit status information.
Definition: LauAbsFitter.hh:55
virtual Double_t getGenNtupleDoubleBranchValue(const TString &name) const
Get the value of a double branch in the gen tree.
const LauAbsRValuePList & conPars() const
Const access the Gaussian constrained variables.
virtual void setAmpCoeffSet(LauAbsCoeffSet *coeffSet)=0
Set the DP amplitude coefficients.
virtual void weightEvents(const TString &dataFileName, const TString &dataTreeName)=0
Weighting - 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:76
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 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:46
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()
Access the fit variables.
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.
LauAbsFitModel()
Constructor.
void setParametersFromFile(const TString &fileName, const TString &treeName, const Bool_t fix)
Set model parameters from a file.
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:49
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 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
Const access the gen ntuple.
LauGenNtuple * sPlotNtuple()
Access the sPlot ntuple.
LauGenNtuple * genNtuple()
Access the gen ntuple.
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
Const access the sPlot ntuple.
UInt_t bkgndClassID(const TString &className) const
The number assigned to a background class.
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
Const access the data store.
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.
std::set< LauParameter * > allImportedFreeParams_
The set of parameters that are imported (either from a file or by value) and not. ...
TString sWeightBranchName_
The name of the sWeight branch.
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.
const LauParameterPSet & resPars() const
Const access the fit variables which affect the DP normalisation.
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?
TString fixParamTreeName_
Imported parameters tree name.
virtual void setSPlotNtupleIntegerBranchValue(const TString &name, Int_t value)
Set the value of an integer branch in the sPlot tree.
LauAbsRValuePList & conPars()
Access the Gaussian constrained variables.
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.
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.
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.
Class for defining the abstract interface for PDF classes.
Definition: LauAbsPdf.hh:55
Double_t getLogLikelihood(UInt_t iStart, UInt_t iEnd)
Calculate the sum of the log-likelihood over the specified events.
const LauParameterPList & fitPars() const
Const access the fit variables.
virtual LauSPlot::NameSet variableNames() const =0
Returns the names of all variables in the fit.
virtual void addGenNtupleDoubleBranch(const TString &name)
Add a branch to the gen tree for storing a double.
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()
Access the fit variables which affect the DP normalisation.
std::set< TString > fixParamNames_
Imported parameter names.
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:43
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:73
virtual void setupResultsOutputs(const TString &histFileName, const TString &tableFileName)
Setup saving of fit results to ntuple/LaTeX table etc.
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.