laura is hosted by Hepforge, IPPP Durham
Laura++  v3r1
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauIsobarDynamics.hh
Go to the documentation of this file.
1 
2 // Copyright University of Warwick 2005 - 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 
19 #ifndef LAU_ISOBAR_DYNAMICS
20 #define LAU_ISOBAR_DYNAMICS
21 
22 #include <set>
23 #include <vector>
24 
25 #include "TString.h"
26 
27 #include "LauAbsResonance.hh"
28 #include "LauComplex.hh"
29 
30 class LauCacheData;
31 class LauDaughters;
32 class LauAbsEffModel;
33 class LauAbsIncohRes;
34 class LauFitDataTree;
37 class LauKinematics;
38 
40 
41  public:
43  typedef std::map<Int_t,LauAbsEffModel*> LauTagCatScfFractionModelMap;
44 
46  enum ToyMCStatus {
50  };
51 
53 
58  LauIsobarDynamics(LauDaughters* daughters, LauAbsEffModel* effModel, LauAbsEffModel* scfFractionModel = 0);
59 
61 
66  LauIsobarDynamics(LauDaughters* daughters, LauAbsEffModel* effModel, LauTagCatScfFractionModelMap scfFractionModel);
67 
69  virtual ~LauIsobarDynamics();
70 
72 
75  void initialise(const std::vector<LauComplex>& coeffs);
76 
79 
81 
84  inline void setIntFileName(const TString& fileName) {intFileName_ = fileName;}
85 
86  // Integration
88 
101  void setIntegralBinWidths(const Double_t m13BinWidth, const Double_t m23BinWidth,
102  const Double_t mPrimeBinWidth = 0.001, const Double_t thPrimeBinWidth = 0.001);
103 
105 
111  void setNarrowResonanceThreshold(const Double_t narrowWidth) { narrowWidth_ = narrowWidth; }
112 
114 
120  void setIntegralBinningFactor(const Double_t binningFactor) { binningFactor_ = binningFactor; }
121 
123 
136 
138 
148  LauAbsResonance* addIncoherentResonance(const TString& resName, const Int_t resPairAmpInt, const LauAbsResonance::LauResonanceModel resType);
149 
151 
159  void defineKMatrixPropagator(const TString& propName, const TString& paramFileName,
160  Int_t resPairAmpInt, Int_t nChannels, Int_t nPoles, Int_t rowIndex = 1);
161 
163 
172  void addKMatrixProdPole(const TString& poleName, const TString& propName, Int_t poleIndex);
173 
175 
184  void addKMatrixProdSVP(const TString& SVPName, const TString& propName, Int_t channelIndex);
185 
187 
190  inline void setASqMaxValue(Double_t value) {aSqMaxSet_ = value;}
191 
193 
196  inline Double_t getASqMaxSetValue() const { return aSqMaxSet_; }
197 
199 
202  inline Double_t getASqMaxVarValue() const { return aSqMaxVar_; }
203 
205 
208  Bool_t generate();
209 
211 
216  ToyMCStatus checkToyMC(Bool_t printErrorMessages = kTRUE, Bool_t printInfoMessages = kFALSE);
217 
219 
222  inline Int_t maxGenIterations() const {return iterationsMax_;}
223 
225 
228  void calcLikelihoodInfo(const UInt_t iEvt);
229 
231 
235  void calcLikelihoodInfo(const Double_t m13Sq, const Double_t m23Sq);
236 
238 
244  void calcLikelihoodInfo(const Double_t m13Sq, const Double_t m23Sq, const Int_t tagCat);
245 
247 
250  void calcExtraInfo(const Bool_t init = kFALSE);
251 
253 
257  Bool_t gotReweightedEvent();
258 
260 
263  Double_t getEventWeight();
264 
266 
269  inline const LauComplex& getEvtDPAmp() const {return totAmp_;}
270 
272 
275  inline Double_t getEvtm13Sq() const {return m13Sq_;}
276 
278 
281  inline Double_t getEvtm23Sq() const {return m23Sq_;}
282 
284 
287  inline Double_t getEvtmPrime() const {return mPrime_;}
288 
290 
293  inline Double_t getEvtthPrime() const {return thPrime_;}
294 
296 
299  inline Double_t getEvtEff() const {return eff_;}
300 
302 
305  inline Double_t getEvtScfFraction() const {return scfFraction_;}
306 
308 
311  inline Double_t getEvtJacobian() const {return jacobian_;}
312 
314 
317  inline Double_t getEvtIntensity() const {return ASq_;}
318 
320 
326  inline Double_t getEvtLikelihood() const {return evtLike_;}
327 
329 
333  inline LauComplex getDynamicAmp(const Int_t resID) const {return ff_[resID].scale(fNorm_[resID]);}
334 
336 
340  inline LauComplex getFullAmplitude(const Int_t resID) const {return Amp_[resID] * this->getDynamicAmp(resID);}
341 
343 
346  inline const std::vector< std::vector<LauComplex> >& getFiFjSum() const {return fifjSum_;}
347 
349 
352  inline const std::vector< std::vector<LauComplex> >& getFiFjEffSum() const {return fifjEffSum_;}
353 
355 
358  inline const std::vector<Double_t>& getFNorm() const {return fNorm_;}
359 
361 
364  void fillDataTree(const LauFitDataTree& fitDataTree);
365 
367  void modifyDataTree();
368 
370 
374  Bool_t hasResonance(const TString& resName) const;
375 
377 
381  Int_t resonanceIndex(const TString& resName) const;
382 
384 
388  TString getConjResName(const TString& resName) const;
389 
391 
395  const LauAbsResonance* findResonance(const TString& resName) const;
396 
398 
402  const LauAbsResonance* getResonance(const UInt_t resIndex) const;
403 
405 
408  void updateCoeffs(const std::vector<LauComplex>& coeffs);
409 
411 
414  inline void flipHelicityForCPEigenstates(Bool_t boolean) {flipHelicity_ = boolean;}
415 
417 
420  inline const LauParameter& getMeanEff() const {return meanDPEff_;}
421 
423 
426  inline const LauParameter& getDPRate() const {return DPRate_;}
427 
429 
432  inline const LauParArray& getFitFractions() const {return fitFrac_;}
433 
435 
439 
441 
444  inline UInt_t getnTotAmp() const {return nAmp_+nIncohAmp_;}
445 
447 
450  inline UInt_t getnCohAmp() const {return nAmp_;}
451 
453 
456  inline UInt_t getnIncohAmp() const {return nIncohAmp_;}
457 
459 
462  inline Double_t getDPNorm() const {return DPNorm_;}
463 
465 
468  inline const LauDaughters* getDaughters() const {return daughters_;}
469 
471 
474  inline const LauKinematics* getKinematics() const {return kinematics_;}
475 
477 
481 
483 
486  inline const LauAbsEffModel* getEffModel() const {return effModel_;}
487 
489 
492  inline Bool_t usingScfModel() const { return ! scfFractionModel_.empty(); }
493 
495 
498  inline const std::vector<LauParameter>& getExtraParameters() const {return extraParameters_;}
499 
501 
504  inline std::vector<LauParameter*>& getFloatingParameters() {return resonancePars_;}
505 
506  protected:
508  void initSummary();
509 
511  void initialiseVectors();
512 
514  void resetNormVectors();
515 
517  void calcDPNormalisation();
518 
521 
524 
526 
530 
532  void writeIntegralsFile();
533 
535 
540  void setFFTerm(const UInt_t index, const Double_t realPart, const Double_t imagPart);
541 
543 
547  void setIncohIntenTerm(const UInt_t index, const Double_t value);
548 
550  void calculateAmplitudes();
551 
553 
558  void calculateAmplitudes( LauDPPartialIntegralInfo* intInfo, const UInt_t m13Point, const UInt_t m23Point );
559 
561 
564  void addGridPointToIntegrals(const Double_t weight);
565 
567 
570  void calcTotalAmp(const Bool_t useEff);
571 
573 
576  Double_t retrieveEfficiency();
577 
579 
583  Double_t retrieveScfFraction(Int_t tagCat);
584 
586 
589  inline void setASqMaxVarValue(Double_t value) {aSqMaxVar_ = value;}
590 
592 
595  Double_t calcSigDPNorm();
596 
598 
601  void resAmp(const UInt_t index);
602 
604 
607  void incohResAmp(const UInt_t index);
608 
610 
613  void setDataEventNo(UInt_t iEvt);
614 
616 
620  LauAbsResonance* findResonance(const TString& resName);
621 
623 
627  LauAbsResonance* getResonance(const UInt_t resIndex);
628 
630 
633  void removeCharge(TString& string) const;
634 
636 
641  Bool_t gotKMatrixMatch(UInt_t resAmpInt, const TString& propName) const;
642 
643  private:
646 
649 
651  typedef std::map<TString, LauKMatrixPropagator*> KMPropMap;
652 
654  typedef std::map<TString, TString> KMStringMap;
655 
658 
661 
664 
666 
671 
673  UInt_t nAmp_;
674 
676  UInt_t nIncohAmp_;
677 
679  std::vector<LauComplex> Amp_;
680 
682  Double_t DPNorm_;
683 
686 
689 
692 
695 
697  std::vector<LauCacheData*> data_;
698 
701 
703  std::vector<LauParameter> extraParameters_;
704 
706  std::vector<LauAbsResonance*> sigResonances_;
707 
709  std::vector<LauAbsIncohRes*> sigIncohResonances_;
710 
713 
716 
718  std::vector<TString> resTypAmp_;
719 
721  std::vector<Int_t> resPairAmp_;
722 
724  std::vector<TString> incohResTypAmp_;
725 
727  std::vector<Int_t> incohResPairAmp_;
728 
730  std::vector<Int_t> typDaug_;
731 
734 
737 
740 
743 
745  std::vector<LauDPPartialIntegralInfo*> dpPartialIntegralInfo_;
746 
748  TString intFileName_;
749 
751  Double_t m13BinWidth_;
752 
754  Double_t m23BinWidth_;
755 
757  Double_t mPrimeBinWidth_;
758 
761 
763  Double_t narrowWidth_;
764 
766  Double_t binningFactor_;
767 
769  Double_t m13Sq_;
770 
772  Double_t m23Sq_;
773 
775  Double_t mPrime_;
776 
778  Double_t thPrime_;
779 
781  Int_t tagCat_;
782 
784  Double_t eff_;
785 
787  Double_t scfFraction_;
788 
790  Double_t jacobian_;
791 
793  Double_t ASq_;
794 
796  Double_t evtLike_;
797 
800 
802 
805  std::vector< std::vector<LauComplex> > fifjEffSum_;
806 
808 
811  std::vector< std::vector<LauComplex> > fifjSum_;
812 
814  std::vector<LauComplex> ff_;
815 
817  std::vector<Double_t> incohInten_;
818 
820  std::vector<Double_t> fSqSum_;
821 
823  std::vector<Double_t> fSqEffSum_;
824 
826  std::vector<Double_t> fNorm_;
827 
830 
833 
835  Double_t aSqMaxSet_;
836 
838  Double_t aSqMaxVar_;
839 
842 
845 
847  std::vector<LauParameter*> resonancePars_;
848 
850  std::vector<Double_t> resonanceParValues_;
851 
853  std::vector< std::vector<UInt_t> > resonanceParResIndex_;
854 
856  std::set<UInt_t> integralsToBeCalculated_;
857 
858  ClassDef(LauIsobarDynamics,0)
859 };
860 
861 #endif
KMStringMap kMatrixPropSet_
The names of the M-matrix components in the model mapped to their propagators.
std::vector< LauComplex > Amp_
The complex coefficients for the amplitude components.
void modifyDataTree()
Recache the amplitude values for those that have changed.
Int_t nSigGenLoop_
The number of unsucessful attempts to generate an event so far.
Double_t getASqMaxVarValue() const
Retrieve the maximum of A squared that has been found while generating.
const LauParameter & getDPRate() const
Retrieve the overall Dalitz plot rate.
void setIntegralBinWidths(const Double_t m13BinWidth, const Double_t m23BinWidth, const Double_t mPrimeBinWidth=0.001, const Double_t thPrimeBinWidth=0.001)
Set the widths of the bins to use when integrating across the Dalitz plot or square Dalitz plot...
Bool_t recalcNormalisation_
Flag to recalculate the normalisation.
virtual ~LauIsobarDynamics()
Destructor.
const std::vector< Double_t > & getFNorm() const
Retrieve the normalisation factors for the dynamic parts of the amplitudes for all of the amplitude c...
void updateCoeffs(const std::vector< LauComplex > &coeffs)
Update the complex coefficients for the resonances.
std::set< UInt_t > integralsToBeCalculated_
Resonance indices for which the amplitudes and integrals should be recalculated.
Double_t m13BinWidth_
The bin width to use when integrating over m13.
Bool_t flipHelicity_
The helicity flip flag for new amplitude components.
std::vector< Int_t > resPairAmp_
The index of the daughter not produced by the resonance for each amplitude component.
Bool_t hasResonance(const TString &resName) const
Check whether this model includes a named resonance.
const LauParameter & getMeanEff() const
Retrieve the mean efficiency across the Dalitz plot.
const LauAbsResonance * findResonance(const TString &resName) const
Retrieve the named resonance.
std::vector< LauParameter > extraParameters_
any extra parameters/quantities (e.g. K-matrix total fit fractions)
const LauKinematics * getKinematics() const
Retrieve the Dalitz plot kinematics.
Class that defines the particular 3-body decay under study.
Definition: LauDaughters.hh:33
Double_t getEvtJacobian() const
Retrieve the Jacobian, for the transformation into square DP coordinates, for the current event...
void defineKMatrixPropagator(const TString &propName, const TString &paramFileName, Int_t resPairAmpInt, Int_t nChannels, Int_t nPoles, Int_t rowIndex=1)
Define a new K-matrix Propagator.
Double_t getDPNorm() const
Retrieve the normalisation factor for the log-likelihood function.
std::vector< Double_t > fSqEffSum_
The event-by-event running total of the dynamical amplitude squared for each amplitude component...
void calcDPNormalisationScheme()
Calculate the Dalitz plot normalisation integrals across the whole Dalitz plot.
LauAbsEffModel * effModel_
The efficiency model across the Dalitz plot.
void calcExtraInfo(const Bool_t init=kFALSE)
Calculate the fit fractions, mean efficiency and total DP rate.
std::vector< Int_t > incohResPairAmp_
The index of the daughter not produced by the resonance for each incoherent amplitude component...
void setASqMaxValue(Double_t value)
Set the maximum value of A squared to be used in the accept/reject.
Double_t DPNorm_
The normalisation factor for the log-likelihood function.
LauTagCatScfFractionModelMap scfFractionModel_
The self cross feed fraction models across the Dalitz plot.
LauParArray fitFrac_
The fit fractions for the amplitude components.
Double_t aSqMaxVar_
The maximum value of A squared that has been seen so far while generating.
Double_t scfFraction_
The fraction of events that are poorly reconstructed (the self cross feed fraction) at the current po...
Abstract class for defining incoherent resonant amplitude models.
Double_t m13Sq_
The invariant mass squared of the first and third daughters.
Int_t iterationsMax_
The maximum allowed number of attempts when generating an event.
LauComplex totAmp_
The total amplitude for the current event.
Double_t getEvtthPrime() const
Retrieve the square Dalitz plot coordinate, theta&#39;, for the current event.
Double_t getASqMaxSetValue() const
Retrieve the maximum value of A squared to be used in the accept/reject.
TString getConjResName(const TString &resName) const
Retrieve the name of the charge conjugate of a named resonance.
std::vector< std::vector< LauParameter > > LauParArray
Type to define an array of parameters.
Double_t aSqMaxSet_
The maximum allowed value of A squared.
std::vector< Double_t > resonanceParValues_
List of floating resonance parameter values from previous calculation.
Bool_t symmetricalDP_
Whether the Dalitz plot is symmetrical.
UInt_t getnIncohAmp() const
Retrieve the number of incoherent amplitude components.
Pure abstract base class for defining the efficiency description across the signal Dalitz plot...
void setIncohIntenTerm(const UInt_t index, const Double_t value)
Set the dynamic part of the intensity for a given incoherent amplitude component at the current point...
Class for defining (a section of) the Dalitz plot integration binning scheme.
Class to contain cached data relating to an event.
Definition: LauCacheData.hh:30
void calcDPNormalisation()
Calculate the Dalitz plot normalisation integrals across the whole Dalitz plot.
LauComplex getFullAmplitude(const Int_t resID) const
Retrieve the Amplitude of resonance resID.
const LauParArray & getFitFractions() const
Retrieve the fit fractions for the amplitude components.
void recalculateNormalisation()
recalculate Normalization
std::vector< TString > incohResTypAmp_
The resonance types of all of the incoherent amplitude components.
std::vector< LauAbsIncohRes * > sigIncohResonances_
The incoherent resonances in the model.
void setASqMaxVarValue(Double_t value)
Set the maximum of A squared that has been found.
Double_t getEvtScfFraction() const
Retrieve the fraction of events that are poorly reconstructed (the self cross feed fraction) for the ...
void resAmp(const UInt_t index)
Calculate the dynamic part of the amplitude for a given component at the current point in the Dalitz ...
LauParameter DPRate_
The overall Dalitz plot rate.
void calcLikelihoodInfo(const UInt_t iEvt)
Calculate the likelihood (and all associated information) for the given event number.
ToyMCStatus
The possible statuses for toy MC generation.
KMPropMap kMatrixPropagators_
The K-matrix propagators.
std::vector< Double_t > fSqSum_
The event-by-event running total of the dynamical amplitude squared for each amplitude component...
Bool_t usingScfModel() const
Check whether a self cross feed fraction model is being used.
const LauAbsResonance * getResonance(const UInt_t resIndex) const
Retrieve a resonance by its index.
Double_t getEvtmPrime() const
Retrieve the square Dalitz plot coordinate, m&#39;, for the current event.
UInt_t nAmp_
The number of amplitude components.
Double_t m23Sq_
The invariant mass squared of the second and third daughters.
Double_t thPrime_
The square Dalitz plot coordinate theta&#39;.
Double_t evtLike_
The normalised likelihood for the current event.
void setIntegralBinningFactor(const Double_t binningFactor)
Set the factor relating the width of a narrow resonance and the binning size in its integration regio...
std::vector< std::vector< LauComplex > > fifjEffSum_
The event-by-event running total of efficiency corrected amplitude cross terms for each pair of ampli...
void initSummary()
Print a summary of the model to be used.
Bool_t fullySymmetricDP_
Whether the Dalitz plot is fully symmetric.
void fillDataTree(const LauFitDataTree &fitDataTree)
Fill the internal data structure that caches the resonance dynamics.
void resetNormVectors()
Zero the various values used to store integrals info.
Double_t ASq_
The value of A squared for the current event.
const std::vector< std::vector< LauComplex > > & getFiFjSum() const
Retrieve the event-by-event running totals of amplitude cross terms for all pairs of amplitude compon...
Double_t getEvtm23Sq() const
Retrieve the invariant mass squared of the second and third daughters in the current event...
Double_t m23BinWidth_
The bin width to use when integrating over m23.
TString intFileName_
The name of the file to save integrals to.
std::vector< LauParameter * > & getFloatingParameters()
Retrieve the floating parameters of the resonance models.
void setNarrowResonanceThreshold(const Double_t narrowWidth)
Set the value below which a resonance width is considered to be narrow.
void addKMatrixProdPole(const TString &poleName, const TString &propName, Int_t poleIndex)
Add a K-matrix production pole term to the model.
void calcTotalAmp(const Bool_t useEff)
Calculate the total Dalitz plot amplitude at the current point in the Dalitz plot.
const LauComplex & getEvtDPAmp() const
Retrieve the total amplitude for the current event.
Double_t retrieveScfFraction(Int_t tagCat)
Obtain the self cross feed fraction of the current event from the model.
std::vector< TString > resTypAmp_
The resonance types of all of the amplitude components.
LauKinematics * getKinematics()
Retrieve the Dalitz plot kinematics.
LauIsobarDynamics(LauDaughters *daughters, LauAbsEffModel *effModel, LauAbsEffModel *scfFractionModel=0)
Constructor.
Int_t tagCat_
The tagging category.
LauCacheData * currentEvent_
The cached data for the current event.
void initialiseVectors()
Initialise the internal storage for this model.
Double_t jacobian_
The Jacobian, for the transformation into square DP coordinates at the current point in the Dalitz pl...
LauDaughters * daughters_
The daughters of the decay.
std::map< Int_t, LauAbsEffModel * > LauTagCatScfFractionModelMap
The type used for containing multiple self cross feed fraction models for different categories (e...
const LauDaughters * getDaughters() const
Retrieve the daughters.
Double_t narrowWidth_
The value below which a resonance width is considered to be narrow.
File containing declaration of LauComplex class.
void incohResAmp(const UInt_t index)
Calculate the dynamic part of the intensity for a given incoherent component at the current point in ...
const LauParArray & getFitFractionsEfficiencyUncorrected() const
Retrieve the fit fractions for the amplitude components.
std::vector< std::vector< LauComplex > > fifjSum_
The event-by-event running total of the amplitude cross terms for each pair of amplitude components...
Class for defining the fit parameter objects.
Definition: LauParameter.hh:35
UInt_t getnTotAmp() const
Retrieve the total number of amplitude components.
Double_t calcSigDPNorm()
Calculate the normalisation factor for the log-likelihood function.
const LauAbsEffModel * getEffModel() const
Retrieve the model for the efficiency across the Dalitz plot.
void addGridPointToIntegrals(const Double_t weight)
Add the amplitude values (with the appropriate weight) at the current grid point to the running integ...
Double_t getEvtIntensity() const
Retrieve the total intensity multiplied by the efficiency for the current event.
Double_t thPrimeBinWidth_
The bin width to use when integrating over thetaPrime.
Bool_t generate()
Generate a toy MC signal event.
LauAbsResonance * addResonance(const TString &resName, const Int_t resPairAmpInt, const LauAbsResonance::LauResonanceModel resType, const LauBlattWeisskopfFactor::BlattWeisskopfCategory bwCategory=LauBlattWeisskopfFactor::Default, const LauBlattWeisskopfFactor::BarrierType bwType=LauBlattWeisskopfFactor::BWPrimeBarrier)
Add a resonance to the Dalitz plot.
void removeCharge(TString &string) const
Remove the charge from the given particle name.
std::vector< Int_t > typDaug_
The PDG codes of the daughters.
LauResonanceModel
Define the allowed resonance types.
void flipHelicityForCPEigenstates(Bool_t boolean)
Set the helicity flip flag for new amplitude components.
Double_t eff_
The efficiency at the current point in the Dalitz plot.
void calculateAmplitudes()
Calculate the amplitudes for all resonances for the current kinematics.
BarrierType
Define the allowed types of barrier factors.
Int_t maxGenIterations() const
Retrieve the maximum number of iterations allowed when generating an event.
Int_t resonanceIndex(const TString &resName) const
Retrieve the index for the given resonance.
Bool_t gotReweightedEvent()
Calculates whether an event with the current kinematics should be accepted in order to produce a dist...
Abstract class for defining type for resonance amplitude models (Breit-Wigner, Flatte etc...
Double_t binningFactor_
The factor relating the width of the narrowest resonance and the binning size.
void addKMatrixProdSVP(const TString &SVPName, const TString &propName, Int_t channelIndex)
Add a K-matrix slowly-varying part (SVP) term to the model.
std::vector< LauCacheData * > data_
The cached data for all events.
void findIntegralsToBeRecalculated()
Determine which amplitudes and integrals need to be recalculated.
Class for defining signal dynamics using the isobar model.
Double_t getEventWeight()
Calculate the acceptance rate, for events with the current kinematics, when generating events accordi...
void setIntFileName(const TString &fileName)
Set the name of the file to which to save the results of the integrals.
LauAbsResonance * addIncoherentResonance(const TString &resName, const Int_t resPairAmpInt, const LauAbsResonance::LauResonanceModel resType)
Add an incoherent resonance to the Dalitz plot.
void writeIntegralsFile()
Write the results of the integrals (and related information) to a file.
File containing declaration of LauAbsResonance class.
void calcDPPartialIntegral(LauDPPartialIntegralInfo *intInfo)
Calculate the Dalitz plot normalisation integrals over a given range.
Double_t mPrimeBinWidth_
The bin width to use when integrating over mPrime.
ToyMCStatus checkToyMC(Bool_t printErrorMessages=kTRUE, Bool_t printInfoMessages=kFALSE)
Check the status of the toy MC generation.
LauKinematics * kinematics_
The kinematics of the decay.
UInt_t getnCohAmp() const
Retrieve the number of coherent amplitude components.
LauIsobarDynamics & operator=(const LauIsobarDynamics &rhs)
Copy assignment operator (not implemented)
Class for defining a complex number.
Definition: LauComplex.hh:47
Double_t getEvtEff() const
Retrieve the efficiency for the current event.
UInt_t nIncohAmp_
The number of incoherent amplitude components.
Bool_t gotKMatrixMatch(UInt_t resAmpInt, const TString &propName) const
Check whether a resonance is a K-matrix component of a given propagator.
Double_t getEvtLikelihood() const
Retrieve the likelihood for the current event.
std::vector< LauDPPartialIntegralInfo * > dpPartialIntegralInfo_
The storage of the integration scheme.
std::map< TString, TString > KMStringMap
The type used for mapping K-matrix components to their propagators.
void setDataEventNo(UInt_t iEvt)
Load the data for a given event.
std::map< TString, LauKMatrixPropagator * > KMPropMap
The type used for containing the K-matrix propagators.
Class for calculating 3-body kinematic quantities.
Bool_t normalizationSchemeDone_
Whether the scheme for the integration has been determined.
std::vector< LauParameter * > resonancePars_
List of floating resonance parameters.
std::vector< std::vector< UInt_t > > resonanceParResIndex_
Indices in sigResonances_ to point to the corresponding signal resonance(s) for each floating paramet...
BlattWeisskopfCategory
Define resonance categories that will share common barrier factor radii.
LauParameter meanDPEff_
The mean efficiency across the Dalitz plot.
Bool_t integralsDone_
Whether the integrals have been performed.
std::vector< Double_t > incohInten_
The dynamic part of the intensity for each incoherent amplitude component at the current point in the...
std::vector< LauComplex > ff_
The dynamic part of the amplitude for each amplitude component at the current point in the Dalitz plo...
const std::vector< LauParameter > & getExtraParameters() const
Retrieve any extra parameters/quantities (e.g. K-matrix total fit fractions)
void initialise(const std::vector< LauComplex > &coeffs)
Initialise the Dalitz plot dynamics.
const std::vector< std::vector< LauComplex > > & getFiFjEffSum() const
Retrieve the event-by-event running totals of efficiency corrected amplitude cross terms for all pair...
Double_t getEvtm13Sq() const
Retrieve the invariant mass squared of the first and third daughters in the current event...
Double_t mPrime_
The square Dalitz plot coordinate, m&#39;.
std::vector< Double_t > fNorm_
The normalisation factors for the dynamic parts of the amplitude for each amplitude component...
LauComplex getDynamicAmp(const Int_t resID) const
Retrieve the normalised dynamic part of the amplitude of the given amplitude component at the current...
Class to store the input fit variables.
std::vector< LauAbsResonance * > sigResonances_
The resonances in the model.
void setFFTerm(const UInt_t index, const Double_t realPart, const Double_t imagPart)
Set the dynamic part of the amplitude for a given amplitude component at the current point in the Dal...
Double_t retrieveEfficiency()
Obtain the efficiency of the current event from the model.
LauParArray fitFracEffUnCorr_
The efficiency-uncorrected fit fractions for the amplitude components.
Class for defining a K-matrix propagator.