laura is hosted by Hepforge, IPPP Durham
Laura++  3.6.0
A maximum likelihood fitting package for performing Dalitz-plot analysis.

Abstract base class for defining a model independent partial wave component. More...

#include <LauAbsModIndPartWave.hh>

Inheritance diagram for LauAbsModIndPartWave:
LauAbsResonance LauModIndPartWaveMagPhase LauModIndPartWaveRealImag

Public Member Functions

 LauAbsModIndPartWave (LauResonanceInfo *resInfo, Int_t resPairAmpInt, const LauDaughters *daughters)
 Constructor. More...
 
virtual ~LauAbsModIndPartWave ()
 Destructor.
 
virtual void initialise ()
 Initialise the model.
 
void defineKnots (const std::set< Double_t > &masses)
 Define the knot positions. More...
 
UInt_t nKnots () const
 Return the number of knots that have been defined (including those at the upper and lower kinematic limits) More...
 
virtual void setKnotAmp (const UInt_t knot, const Double_t ampVal1, const Double_t ampVal2, const Bool_t fixAmpVal1, const Bool_t fixAmpVal2)=0
 Set the values of the two real parameters that define the amplitude at a given knot. More...
 
void floatKnotsSecondStage (const Bool_t secondStage)
 Set whether the parameters should be floated only in the second-stage of a two-stage fit. More...
 
Bool_t floatKnotsSecondStage () const
 Retrieve the value of the second stage flag.
 
virtual const std::vector< LauParameter * > & getFloatingParameters ()
 Retrieve the resonance parameters, e.g. so that they can be loaded into a fit. More...
 
- Public Member Functions inherited from LauAbsResonance
 LauAbsResonance (LauResonanceInfo *resInfo, const Int_t resPairAmpInt, const LauDaughters *daughters)
 Constructor (for use by standard resonances) More...
 
 LauAbsResonance (const TString &resName, const Int_t resPairAmpInt, const LauDaughters *daughters, const Int_t resSpin)
 Constructor (for use by K-matrix components) More...
 
virtual ~LauAbsResonance ()
 Destructor.
 
virtual LauComplex amplitude (const LauKinematics *kinematics)
 Calculate the complex amplitude. More...
 
virtual LauResonanceModel getResonanceModel () const =0
 Get the resonance model type. More...
 
LauSpinType getSpinType () const
 Get the spin type. More...
 
const TString & getResonanceName () const
 Get the name of the resonance. More...
 
const TString & getSanitisedName () const
 Get the name of the resonance. More...
 
Int_t getPairInt () const
 Get the integer to identify which DP axis the resonance belongs to. More...
 
Int_t getSpin () const
 Get the spin of the resonance. More...
 
Int_t getCharge () const
 Get the charge of the resonance. More...
 
Double_t getMass () const
 Get the mass of the resonance. More...
 
Double_t getWidth () const
 Get the width of the resonance. More...
 
LauParametergetMassPar ()
 Get the mass parameter of the resonance. More...
 
LauParametergetWidthPar ()
 Get the width parameter of the resonance. More...
 
virtual Bool_t preSymmetrised () const
 Is the amplitude pre-symmetrised? More...
 
Bool_t flipHelicity () const
 Get the helicity flip flag. More...
 
void flipHelicity (const Bool_t boolean)
 Set the helicity flip flag. More...
 
Bool_t ignoreMomenta () const
 Get the ignore momenta flag. More...
 
void ignoreMomenta (const Bool_t boolean)
 Set the ignore momenta flag. More...
 
Bool_t ignoreSpin () const
 Get the ignore spin flag. More...
 
void ignoreSpin (const Bool_t boolean)
 Set the ignore spin flag. More...
 
Bool_t ignoreBarrierScaling () const
 Get the ignore barrier factor scaling flag. More...
 
void ignoreBarrierScaling (const Bool_t boolean)
 Set the ignore barrier factor scaling flag. More...
 
void changeResonance (const Double_t newMass, const Double_t newWidth, const Int_t newSpin)
 Allow the mass, width and spin of the resonance to be changed. More...
 
void changeBWBarrierRadii (const Double_t resRadius, const Double_t parRadius)
 Allow the Blatt-Weisskopf radius for the resonance and parent factors to be changed. More...
 
virtual void setResonanceParameter (const TString &name, const Double_t value)
 Set value of the various parameters. More...
 
virtual void floatResonanceParameter (const TString &name)
 Allow the various parameters to float in the fit. More...
 
virtual LauParametergetResonanceParameter (const TString &name)
 Access the given resonance parameter. More...
 
void fixMass (const Bool_t parFixed)
 Fix or release the resonance mass. More...
 
void fixWidth (const Bool_t parFixed)
 Fix or release the resonance width. More...
 
Bool_t fixMass () const
 Get the status of resonance mass (fixed or released) More...
 
Bool_t fixWidth () const
 Get the status of resonance width (fixed or released) More...
 
void setSpinType (const LauSpinType spinType)
 Set the spin formalism to be used. More...
 
void setBarrierRadii (LauBlattWeisskopfFactor *resFactor, LauBlattWeisskopfFactor *parFactor)
 Set the form factor model and parameters. More...
 
void fixBarrierRadii (const Bool_t fixResRadius, const Bool_t fixParRadius)
 Fix or release the Blatt-Weisskopf barrier radii.
 
Bool_t fixResRadius () const
 Get the status of resonance barrier radius (fixed or released)
 
Bool_t fixParRadius () const
 Get the status of parent barrier radius (fixed or released)
 
Double_t getResRadius () const
 Get the radius of the resonance barrier factor.
 
Double_t getParRadius () const
 Get the radius of the parent barrier factor.
 

Protected Member Functions

virtual LauComplex resAmp (Double_t mass, Double_t spinTerm)
 Complex resonant amplitude. More...
 
virtual void evaluateAmplitude (const Double_t mass)=0
 Evaluate the amplitude at the given point from the splines. More...
 
virtual std::set< Double_t > checkKnots (const std::set< Double_t > &masses)
 Method to check that the supplied knot positions are valid. More...
 
virtual void createAmpParameters (const UInt_t iKnot)=0
 Method to create the parameter objects for the given knot. More...
 
void setSplineType (Lau1DCubicSpline::LauSplineType type1, Lau1DCubicSpline::LauSplineType type2)
 Method to set the type of interpolation used for the splines. More...
 
void setSplineBoundaryConditions (Lau1DCubicSpline::LauSplineBoundaryType leftBound1, Lau1DCubicSpline::LauSplineBoundaryType rightBound1, Lau1DCubicSpline::LauSplineBoundaryType leftBound2, Lau1DCubicSpline::LauSplineBoundaryType rightBound2, Double_t leftGrad1=0.0, Double_t rightGrad1=0.0, Double_t leftGrad2=0.0, Double_t rightGrad2=0.0)
 Method to set the boundary conditions of the splines. More...
 
void setAmp (const Double_t realPart, const Double_t imagPart)
 Helper function to set the current amplitude value. More...
 
const std::vector< Double_t > & getMasses ()
 Helper function to access the masses.
 
std::vector< Double_t > & getAmp1Vals ()
 Helper function to access the 1st parameter set.
 
std::vector< Double_t > & getAmp2Vals ()
 Helper function to access the 2nd parameter set.
 
std::vector< LauParameter * > & getAmp1Pars ()
 Helper function to access the 1st parameter set.
 
std::vector< LauParameter * > & getAmp2Pars ()
 Helper function to access the 2nd parameter set.
 
const Lau1DCubicSplinegetSpline1 () const
 Helper function to access the 1st spline.
 
const Lau1DCubicSplinegetSpline2 () const
 Helper function to access the 1st spline.
 
- Protected Member Functions inherited from LauAbsResonance
TString getNameParent () const
 Get the name of the parent particle.
 
TString getNameDaug1 () const
 Get the name of the first daughter of the resonance.
 
TString getNameDaug2 () const
 Get the name of the second daughter of the resonance.
 
TString getNameBachelor () const
 Get the name of the daughter that does not originate form the resonance.
 
Double_t getMassParent () const
 Get the parent particle mass.
 
Double_t getMassDaug1 () const
 Get the mass of daughter 1.
 
Double_t getMassDaug2 () const
 Get the mass of daughter 2.
 
Double_t getMassBachelor () const
 Get the mass of the bachelor daughter.
 
Int_t getChargeParent () const
 Get the Charge of the parent particle.
 
Int_t getChargeDaug1 () const
 Get the charge of daughter 1.
 
Int_t getChargeDaug2 () const
 Get the charge of daughter 2.
 
Int_t getChargeBachelor () const
 Get the charge of the bachelor daughter.
 
Double_t getQ () const
 Get the current value of the daughter momentum in the resonance rest frame.
 
Double_t getP () const
 Get the current value of the bachelor momentum in the resonance rest frame.
 
Double_t getPstar () const
 Get the current value of the bachelor momentum in the parent rest frame.
 
Double_t getCovFactor () const
 Get the current value of the full spin-dependent covariant factor.
 
LauBlattWeisskopfFactorgetParBWFactor ()
 Get the centrifugal barrier for the parent decay.
 
const LauBlattWeisskopfFactorgetParBWFactor () const
 Get the centrifugal barrier for the parent decay.
 
LauBlattWeisskopfFactorgetResBWFactor ()
 Get the centrifugal barrier for the resonance decay.
 
const LauBlattWeisskopfFactorgetResBWFactor () const
 Get the centrifugal barrier for the resonance decay.
 
LauResonanceInfogetResInfo () const
 Access the resonance info object.
 
const LauDaughtersgetDaughters () const
 Access the daughters object.
 
Double_t calcZemachSpinFactor (const Double_t pProd) const
 Calculate the amplitude spin term using the Zemach tensor formalism. More...
 
Double_t calcCovSpinFactor (const Double_t pProd)
 Calculate the amplitude spin term using the covariant tensor formalism. More...
 
void calcCovFactor (const Double_t erm)
 Calculate the spin-dependent covariant factor. More...
 
Double_t calcLegendrePoly () const
 Calculate the Legendre polynomial for the spin factor. More...
 
Double_t calcLegendrePoly (const Double_t cosHel)
 Calculate the Legendre polynomial for the spin factor (specifying the cosHel value) More...
 
void clearFloatingParameters ()
 Clear list of floating parameters.
 
void addFloatingParameter (LauParameter *param)
 Add parameter to the list of floating parameters. More...
 
std::vector< LauParameter * > & getParameters ()
 Access the list of floating parameters.
 

Private Attributes

UInt_t nKnots_
 The number of knots.
 
std::vector< Double_t > masses_
 The masses at which knots are defined in the magnitude and phase splines.
 
std::vector< Double_t > amp1Vals_
 The values of the first real parameter at each knot.
 
std::vector< Double_t > amp2Vals_
 The values of the second real parameter at each knot.
 
std::vector< LauParameter * > amp1Pars_
 The parameters for the first real value at the knots.
 
std::vector< LauParameter * > amp2Pars_
 The parameters for the second real value at the knots.
 
Lau1DCubicSplinespline1_
 The spline used to interpolate the values of the first real parameter.
 
Lau1DCubicSplinespline2_
 The spline used to interpolate the values of the second real parameter.
 
Lau1DCubicSpline::LauSplineType type1_
 The type of interpolation used for the first spline.
 
Lau1DCubicSpline::LauSplineType type2_
 The type of interpolation used for the second spline.
 
Lau1DCubicSpline::LauSplineBoundaryType leftBound1_
 The lower boundary condition type for the first spline.
 
Lau1DCubicSpline::LauSplineBoundaryType rightBound1_
 The upper boundary condition type for the first spline.
 
Lau1DCubicSpline::LauSplineBoundaryType leftBound2_
 The lower boundary condition type for the second spline.
 
Lau1DCubicSpline::LauSplineBoundaryType rightBound2_
 The upper boundary condition type for the second spline.
 
Double_t leftGrad1_
 The gradient at the left boundary for the first spline if clamped.
 
Double_t rightGrad1_
 The gradient at the right boundary for the first spline if clamped.
 
Double_t leftGrad2_
 The gradient at the left boundary for the second spline if clamped.
 
Double_t rightGrad2_
 The gradient at the right boundary for the second spline if clamped.
 
Bool_t secondStage_
 Flag to determine if the parameters should be floated only in the second stage of the fit.
 
LauComplex amp_
 The current value of the amplitude.
 

Additional Inherited Members

- Public Types inherited from LauAbsResonance
enum  LauResonanceModel {
  BW, RelBW, GS, Flatte,
  Sigma, Kappa, Dabba, LASS,
  LASS_BW, LASS_NR, EFKLLM, KMatrix,
  FlatNR, NRModel, BelleNR, PowerLawNR,
  BelleSymNR, BelleSymNRNoInter, TaylorNR, PolNR,
  Pole, PolarFFNR, PolarFFSymNR, PolarFFSymNRNoInter,
  Rescattering, Rescattering2, RescatteringNoInter, MIPW_MagPhase,
  MIPW_RealImag, GaussIncoh, RhoOmegaMix_GS, RhoOmegaMix_RBW,
  RhoOmegaMix_GS_1, RhoOmegaMix_RBW_1
}
 Define the allowed resonance types. More...
 
enum  LauSpinType { Zemach_P, Zemach_Pstar, Covariant, Legendre }
 Define the allowed spin formalisms. More...
 
- Static Public Member Functions inherited from LauAbsResonance
static bool isIncoherentModel (LauResonanceModel model)
 Is the resonance model incoherent? More...
 

Detailed Description

Abstract base class for defining a model independent partial wave component.

Abstract base class for defining a model independent partial wave component. This model uses splines to produce a partial wave from two sets of real numbers that represent the amplitude at a series of points in the phase space. These real numbers at each point can be floated in the fit. Classes inheriting from this define whether these real numbers are e.g. the magnitude and phase or e.g. the real and imaginary part of the amplitude.

Definition at line 47 of file LauAbsModIndPartWave.hh.

Constructor & Destructor Documentation

◆ LauAbsModIndPartWave()

LauAbsModIndPartWave::LauAbsModIndPartWave ( LauResonanceInfo resInfo,
Int_t  resPairAmpInt,
const LauDaughters daughters 
)

Constructor.

Parameters
[in]resInfothe object containing information on the resonance name, mass, width, spin, charge, etc.
[in]resPairAmpIntthe number of the daughter not produced by the resonance
[in]daughtersthe daughter particles

Definition at line 38 of file LauAbsModIndPartWave.cc.

Member Function Documentation

◆ checkKnots()

std::set< Double_t > LauAbsModIndPartWave::checkKnots ( const std::set< Double_t > &  masses)
protectedvirtual

Method to check that the supplied knot positions are valid.

Parameters
[in]massesthe mass values at which the knots are placed

Definition at line 81 of file LauAbsModIndPartWave.cc.

◆ createAmpParameters()

virtual void LauAbsModIndPartWave::createAmpParameters ( const UInt_t  iKnot)
protectedpure virtual

Method to create the parameter objects for the given knot.

Parameters
[in]iKnotthe index of the knot

Implemented in LauModIndPartWaveMagPhase, and LauModIndPartWaveRealImag.

◆ defineKnots()

void LauAbsModIndPartWave::defineKnots ( const std::set< Double_t > &  masses)

Define the knot positions.

If absent from the set provided, knots are added automatically at the upper and lower kinematic limits

Parameters
[in]massesthe mass values at which the knots are placed

Definition at line 124 of file LauAbsModIndPartWave.cc.

◆ evaluateAmplitude()

virtual void LauAbsModIndPartWave::evaluateAmplitude ( const Double_t  mass)
protectedpure virtual

Evaluate the amplitude at the given point from the splines.

Parameters
[in]massappropriate invariant mass for the resonance

Implemented in LauModIndPartWaveMagPhase, and LauModIndPartWaveRealImag.

◆ floatKnotsSecondStage()

void LauAbsModIndPartWave::floatKnotsSecondStage ( const Bool_t  secondStage)

Set whether the parameters should be floated only in the second-stage of a two-stage fit.

By default, the parameters describing the amplitude at each knot will float from the outset of a fit. If, however, a good estimate of these is already known, it can be more efficient to initially fix them and then to float them only in a second stage (as is done for other resonance lineshape parameters). This function allows the toggling of this behaviour.

Parameters
secondStagewhether the parameters should float only in the second stage

Definition at line 65 of file LauAbsModIndPartWave.cc.

◆ getFloatingParameters()

const std::vector< LauParameter * > & LauAbsModIndPartWave::getFloatingParameters ( )
virtual

Retrieve the resonance parameters, e.g. so that they can be loaded into a fit.

Returns
floating parameters of the resonance

Reimplemented from LauAbsResonance.

Definition at line 258 of file LauAbsModIndPartWave.cc.

◆ nKnots()

UInt_t LauAbsModIndPartWave::nKnots ( ) const
inline

Return the number of knots that have been defined (including those at the upper and lower kinematic limits)

Returns
the number of knots

Definition at line 78 of file LauAbsModIndPartWave.hh.

◆ resAmp()

LauComplex LauAbsModIndPartWave::resAmp ( Double_t  mass,
Double_t  spinTerm 
)
protectedvirtual

Complex resonant amplitude.

Parameters
[in]massappropriate invariant mass for the resonance
[in]spinTermspin term

Implements LauAbsResonance.

Definition at line 193 of file LauAbsModIndPartWave.cc.

◆ setAmp()

void LauAbsModIndPartWave::setAmp ( const Double_t  realPart,
const Double_t  imagPart 
)
inlineprotected

Helper function to set the current amplitude value.

Parameters
[in]realPartthe real part of the amplitude
[in]imagPartthe imaginary part of the amplitude

Definition at line 175 of file LauAbsModIndPartWave.hh.

◆ setKnotAmp()

virtual void LauAbsModIndPartWave::setKnotAmp ( const UInt_t  knot,
const Double_t  ampVal1,
const Double_t  ampVal2,
const Bool_t  fixAmpVal1,
const Bool_t  fixAmpVal2 
)
pure virtual

Set the values of the two real parameters that define the amplitude at a given knot.

Parameters
[in]knotthe knot to be updated
[in]ampVal1the value of first real parameter representing the amplitude at the knot
[in]ampVal2the value of second real parameter representing the amplitude at the knot
[in]fixAmpVal1whether the first real parameter should be fixed
[in]fixAmpVal2whether the second real parameter should be fixed

Implemented in LauModIndPartWaveRealImag, and LauModIndPartWaveMagPhase.

◆ setSplineBoundaryConditions()

void LauAbsModIndPartWave::setSplineBoundaryConditions ( Lau1DCubicSpline::LauSplineBoundaryType  leftBound1,
Lau1DCubicSpline::LauSplineBoundaryType  rightBound1,
Lau1DCubicSpline::LauSplineBoundaryType  leftBound2,
Lau1DCubicSpline::LauSplineBoundaryType  rightBound2,
Double_t  leftGrad1 = 0.0,
Double_t  rightGrad1 = 0.0,
Double_t  leftGrad2 = 0.0,
Double_t  rightGrad2 = 0.0 
)
protected

Method to set the boundary conditions of the splines.

Parameters
[in]leftBound1the type of boundary condition for the left edge of the first spline
[in]rightBound1the type of boundary condition for the right edge of the first spline
[in]leftBound2the type of boundary condition for the left edge of the second spline
[in]rightBound2the type of boundary condition for the right edge of the second spline
[in]leftGrad1the gradient at the left edge of the first spline if clamped
[in]rightGrad1the gradient at the right edge of the first spline if clamped
[in]leftGrad2the gradient at the left edge of the second spline if clamped
[in]rightGrad2the gradient at the right edge of the second spline if clamped

Definition at line 238 of file LauAbsModIndPartWave.cc.

◆ setSplineType()

void LauAbsModIndPartWave::setSplineType ( Lau1DCubicSpline::LauSplineType  type1,
Lau1DCubicSpline::LauSplineType  type2 
)
protected

Method to set the type of interpolation used for the splines.

Parameters
[in]type1the type of interpolation for the first spline
[in]type2the type of interpolation for the second spline

Definition at line 231 of file LauAbsModIndPartWave.cc.


The documentation for this class was generated from the following files: