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

Class that implements the efficiency description across the signal Dalitz plot. More...

#include <LauEffModel.hh>

Inheritance diagram for LauEffModel:
LauAbsEffModel

Public Member Functions

 LauEffModel (const LauDaughters *daughters, const LauVetoes *vetoes)
 Constructor. More...
 
virtual ~LauEffModel ()
 Destructor. More...
 
void setEffHisto (const TH2 *effHisto, Bool_t useInterpolation=kTRUE, Bool_t fluctuateBins=kFALSE, Double_t avEff=-1.0, Double_t absError=-1.0, Bool_t useUpperHalfOnly=kFALSE, Bool_t squareDP=kFALSE)
 Set the efficiency variation across the phase space using a predetermined 2D histogram. More...
 
void setEffHisto (const TH2 *effHisto, const TH2 *errorHi, const TH2 *errorLo, Bool_t useInterpolation=kTRUE, Bool_t fluctuateBins=kFALSE, Double_t avEff=-1.0, Double_t absError=-1.0, Bool_t useUpperHalfOnly=kFALSE, Bool_t squareDP=kFALSE)
 Set the efficiency variation across the phase space using a predetermined 2D histogram. More...
 
void setEffSpline (const TH2 *effHisto, Bool_t fluctuateBins=kFALSE, Double_t avEff=-1.0, Double_t absError=-1.0, Bool_t useUpperHalfOnly=kFALSE, Bool_t squareDP=kFALSE)
 Set the efficiency variation across the phase space using a spline based on a predetermined 2D histogram. More...
 
void setEffSpline (const TH2 *effHisto, const TH2 *errorHi, const TH2 *errorLo, Bool_t fluctuateBins=kFALSE, Double_t avEff=-1.0, Double_t absError=-1.0, Bool_t useUpperHalfOnly=kFALSE, Bool_t squareDP=kFALSE)
 Set the efficiency variation across the phase space using a spline based on a predetermined 2D histogram. More...
 
void addEffHisto (const TH2 *effHisto, Bool_t useInterpolation=kTRUE, Double_t avEff=-1.0, Double_t absError=-1.0, Bool_t useUpperHalfOnly=kFALSE, Bool_t squareDP=kFALSE)
 Add a multiplicative efficiency variation across the phase space using a predetermined 2D histogram. More...
 
void addEffHisto (const TH2 *effHisto, const TH2 *errorHi, const TH2 *errorLo, Bool_t useInterpolation=kTRUE, Double_t avEff=-1.0, Double_t absError=-1.0, Bool_t useUpperHalfOnly=kFALSE, Bool_t squareDP=kFALSE)
 Add a multiplicative efficiency variation across the phase space using a predetermined 2D histogram. More...
 
void addEffSpline (const TH2 *effHisto, Double_t avEff=-1.0, Double_t absError=-1.0, Bool_t useUpperHalfOnly=kFALSE, Bool_t squareDP=kFALSE)
 Add a multiplicative efficiency variation across the phase space using a spline based on a predetermined 2D histogram. More...
 
void addEffSpline (const TH2 *effHisto, const TH2 *errorHi, const TH2 *errorLo, Double_t avEff=-1.0, Double_t absError=-1.0, Bool_t useUpperHalfOnly=kFALSE, Bool_t squareDP=kFALSE)
 Add a multiplicative efficiency variation across the phase space using a spline based on a predetermined 2D histogram. More...
 
Double_t calcEfficiency (const LauKinematics *kinematics) const
 Determine the efficiency for a given point in the Dalitz plot. More...
 
Bool_t passVeto (const LauKinematics *kinematics) const
 Determine whether the given DP position is outside the vetoes. More...
 
Bool_t fluctuateEffHisto () const
 Determine whether the efficiency histogram has had its bins fluctuated within their errors. More...
 
const LauDaughtersgetDaughters () const
 Return the daughters object. More...
 
- Public Member Functions inherited from LauAbsEffModel
 LauAbsEffModel ()
 Constructor. More...
 
virtual ~LauAbsEffModel ()
 Destructor. More...
 

Private Member Functions

 LauEffModel (const LauEffModel &rhs)
 Copy constructor - not implemented. More...
 
LauEffModeloperator= (const LauEffModel &rhs)
 Copy assignment operator - not implemented. More...
 
Double_t getEffHistValue (const LauKinematics *kinematics) const
 Get the efficiency from a two-dimensional histogram. More...
 

Private Attributes

const LauDaughtersdaughters_
 The daughters object. More...
 
const LauVetoesvetoes_
 The vetoes object. More...
 
std::vector< Lau2DAbsDP * > effHisto_
 The efficiency histogram objects. More...
 
Bool_t fluctuateEffHisto_
 Fluctuate histogram within the error. More...
 
Bool_t lowBinWarningIssued_
 Flag to track whether a warning has been issued for bin values less than zero. More...
 
Bool_t highBinWarningIssued_
 Flag to track whether a warning has been issued for bin values greater than one. More...
 

Detailed Description

Class that implements the efficiency description across the signal Dalitz plot.

Class that defines the efficiency model variation across the signal Dalitz plot. The method is based in a predetermined two-dimensional histogram to characterize the phase space acceptance. The efficiency variation is defined in terms of x = m_13^2, y = m_23^2 for the Dalitz plot (default) or x = m', y = theta' for the square Dalitz plot

Definition at line 51 of file LauEffModel.hh.

Constructor & Destructor Documentation

LauEffModel::LauEffModel ( const LauDaughters daughters,
const LauVetoes vetoes 
)

Constructor.

Parameters
[in]daughtersthe daughters particles of the Dalitz plot model
[in]vetoesthe object describing the vetoes applied in the phase space

Definition at line 43 of file LauEffModel.cc.

LauEffModel::~LauEffModel ( )
virtual

Destructor.

Definition at line 57 of file LauEffModel.cc.

LauEffModel::LauEffModel ( const LauEffModel rhs)
private

Copy constructor - not implemented.

Member Function Documentation

void LauEffModel::addEffHisto ( const TH2 *  effHisto,
Bool_t  useInterpolation = kTRUE,
Double_t  avEff = -1.0,
Double_t  absError = -1.0,
Bool_t  useUpperHalfOnly = kFALSE,
Bool_t  squareDP = kFALSE 
)

Add a multiplicative efficiency variation across the phase space using a predetermined 2D histogram.

The efficiency is defined in terms of x = m_13^2, y = m_23^2 or x = m', y = theta' for the square Dalitz plot

Parameters
[in]effHistothe 2-dimensional histogram that describes the efficiency variation
[in]useInterpolationboolean flag decision to switch on/off linear interpolation between bins should be used or simply the raw bin values.
[in]avEffthe desired average efficiency - see Lau2DHistDP::raiseOrLowerBins, values less than zero switch off this behaviour. The seed for the random number generator used to raise or lower the bins should first be set using LauRandom::setSeed.
[in]absErrorthe error on that efficiency - see Lau2DHistDP::raiseOrLowerBins, values less than zero switch off this behaviour
[in]useUpperHalfOnlyboolean flag to specify that the supplied histogram contains only the upper half of a symmetric DP (or lower half if using square DP coordinates)
[in]squareDPboolean flag to determine whether the supplied histogram is given in square DP coordinates

Definition at line 182 of file LauEffModel.cc.

void LauEffModel::addEffHisto ( const TH2 *  effHisto,
const TH2 *  errorHi,
const TH2 *  errorLo,
Bool_t  useInterpolation = kTRUE,
Double_t  avEff = -1.0,
Double_t  absError = -1.0,
Bool_t  useUpperHalfOnly = kFALSE,
Bool_t  squareDP = kFALSE 
)

Add a multiplicative efficiency variation across the phase space using a predetermined 2D histogram.

The efficiency is defined in terms of x = m_13^2, y = m_23^2 or x = m', y = theta' for the square Dalitz plot

Parameters
[in]effHistothe 2-dimensional histogram that describes the efficiency variation
[in]errorHithe 2-dimensional histogram that describes the upper uncertainty on the efficiency variation
[in]errorLothe 2-dimensional histogram that describes the lower uncertainty on the efficiency variation
[in]useInterpolationboolean flag decision to switch on/off linear interpolation between bins should be used or simply the raw bin values.
[in]avEffthe desired average efficiency - see Lau2DHistDP::raiseOrLowerBins, values less than zero switch off this behaviour. The seed for the random number generator used to raise or lower the bins should first be set using LauRandom::setSeed.
[in]absErrorthe error on that efficiency - see Lau2DHistDP::raiseOrLowerBins, values less than zero switch off this behaviour
[in]useUpperHalfOnlyboolean flag to specify that the supplied histogram contains only the upper half of a symmetric DP (or lower half if using square DP coordinates)
[in]squareDPboolean flag to determine whether the supplied histogram is given in square DP coordinates

Definition at line 198 of file LauEffModel.cc.

void LauEffModel::addEffSpline ( const TH2 *  effHisto,
Double_t  avEff = -1.0,
Double_t  absError = -1.0,
Bool_t  useUpperHalfOnly = kFALSE,
Bool_t  squareDP = kFALSE 
)

Add a multiplicative efficiency variation across the phase space using a spline based on a predetermined 2D histogram.

The efficiency is defined in terms of x = m_13^2, y = m_23^2 or x = m', y = theta' for the square Dalitz plot

Parameters
[in]effHistothe 2-dimensional histogram that describes the efficiency variation
[in]avEffthe desired average efficiency - see Lau2DHistDP::raiseOrLowerBins, values less than zero switch off this behaviour. The seed for the random number generator used to raise or lower the bins should first be set using LauRandom::setSeed.
[in]absErrorthe error on that efficiency - see Lau2DHistDP::raiseOrLowerBins, values less than zero switch off this behaviour
[in]useUpperHalfOnlyboolean flag to specify that the supplied histogram contains only the upper half of a symmetric DP (or lower half if using square DP coordinates)
[in]squareDPboolean flag to determine whether the supplied histogram is given in square DP coordinates

Definition at line 214 of file LauEffModel.cc.

void LauEffModel::addEffSpline ( const TH2 *  effHisto,
const TH2 *  errorHi,
const TH2 *  errorLo,
Double_t  avEff = -1.0,
Double_t  absError = -1.0,
Bool_t  useUpperHalfOnly = kFALSE,
Bool_t  squareDP = kFALSE 
)

Add a multiplicative efficiency variation across the phase space using a spline based on a predetermined 2D histogram.

The efficiency is defined in terms of x = m_13^2, y = m_23^2 or x = m', y = theta' for the square Dalitz plot

Parameters
[in]effHistothe 2-dimensional histogram that describes the efficiency variation
[in]errorHithe 2-dimensional histogram that describes the upper uncertainty on the efficiency variation
[in]errorLothe 2-dimensional histogram that describes the lower uncertainty on the efficiency variation
[in]avEffthe desired average efficiency - see Lau2DHistDP::raiseOrLowerBins, values less than zero switch off this behaviour. The seed for the random number generator used to raise or lower the bins should first be set using LauRandom::setSeed.
[in]absErrorthe error on that efficiency - see Lau2DHistDP::raiseOrLowerBins, values less than zero switch off this behaviour
[in]useUpperHalfOnlyboolean flag to specify that the supplied histogram contains only the upper half of a symmetric DP (or lower half if using square DP coordinates)
[in]squareDPboolean flag to determine whether the supplied histogram is given in square DP coordinates

Definition at line 229 of file LauEffModel.cc.

Double_t LauEffModel::calcEfficiency ( const LauKinematics kinematics) const
virtual

Determine the efficiency for a given point in the Dalitz plot.

The method uses the 2D histogram set by the setEffHisto() function and the vetoes information.

Parameters
[in]kinematicsthe object that defines the DP position
Returns
the efficiency value at the given point in the DP

Implements LauAbsEffModel.

Definition at line 268 of file LauEffModel.cc.

Bool_t LauEffModel::fluctuateEffHisto ( ) const
inlinevirtual

Determine whether the efficiency histogram has had its bins fluctuated within their errors.

Implements LauAbsEffModel.

Definition at line 227 of file LauEffModel.hh.

const LauDaughters* LauEffModel::getDaughters ( ) const
inlinevirtual

Return the daughters object.

Implements LauAbsEffModel.

Definition at line 233 of file LauEffModel.hh.

Double_t LauEffModel::getEffHistValue ( const LauKinematics kinematics) const
private

Get the efficiency from a two-dimensional histogram.

Parameters
[in]kinematicsthe object that defines the DP position

Definition at line 244 of file LauEffModel.cc.

LauEffModel& LauEffModel::operator= ( const LauEffModel rhs)
private

Copy assignment operator - not implemented.

Bool_t LauEffModel::passVeto ( const LauKinematics kinematics) const
virtual

Determine whether the given DP position is outside the vetoes.

Parameters
[in]kinematicsthe object that defines the DP position
Returns
kTRUE if the DP position is outside all veto regions, kFALSE otherwise

Implements LauAbsEffModel.

Definition at line 315 of file LauEffModel.cc.

void LauEffModel::setEffHisto ( const TH2 *  effHisto,
Bool_t  useInterpolation = kTRUE,
Bool_t  fluctuateBins = kFALSE,
Double_t  avEff = -1.0,
Double_t  absError = -1.0,
Bool_t  useUpperHalfOnly = kFALSE,
Bool_t  squareDP = kFALSE 
)

Set the efficiency variation across the phase space using a predetermined 2D histogram.

The efficiency is defined in terms of x = m_13^2, y = m_23^2 or x = m', y = theta' for the square Dalitz plot

Parameters
[in]effHistothe 2-dimensional histogram that describes the efficiency variation
[in]useInterpolationboolean flag decision to switch on/off linear interpolation between bins should be used or simply the raw bin values.
[in]fluctuateBinsboolean flag to determine whether the bin contents should be fluctuated in accordance with their errors. The seed for the random number generator used to fluctuate the bins should first be set using LauRandom::setSeed.
[in]avEffthe desired average efficiency - see Lau2DHistDP::raiseOrLowerBins, values less than zero switch off this behaviour. The seed for the random number generator used to raise or lower the bins should first be set using LauRandom::setSeed.
[in]absErrorthe error on that efficiency - see Lau2DHistDP::raiseOrLowerBins, values less than zero switch off this behaviour
[in]useUpperHalfOnlyboolean flag to specify that the supplied histogram contains only the upper half of a symmetric DP (or lower half if using square DP coordinates)
[in]squareDPboolean flag to determine whether the supplied histogram is given in square DP coordinates

Definition at line 68 of file LauEffModel.cc.

void LauEffModel::setEffHisto ( const TH2 *  effHisto,
const TH2 *  errorHi,
const TH2 *  errorLo,
Bool_t  useInterpolation = kTRUE,
Bool_t  fluctuateBins = kFALSE,
Double_t  avEff = -1.0,
Double_t  absError = -1.0,
Bool_t  useUpperHalfOnly = kFALSE,
Bool_t  squareDP = kFALSE 
)

Set the efficiency variation across the phase space using a predetermined 2D histogram.

The efficiency is defined in terms of x = m_13^2, y = m_23^2 or x = m', y = theta' for the square Dalitz plot

Parameters
[in]effHistothe 2-dimensional histogram that describes the efficiency variation
[in]errorHithe 2-dimensional histogram that describes the upper uncertainty on the efficiency variation
[in]errorLothe 2-dimensional histogram that describes the lower uncertainty on the efficiency variation
[in]useInterpolationboolean flag decision to switch on/off linear interpolation between bins should be used or simply the raw bin values.
[in]fluctuateBinsboolean flag to determine whether the bin contents should be fluctuated in accordance with their errors. The seed for the random number generator used to fluctuate the bins should first be set using LauRandom::setSeed.
[in]avEffthe desired average efficiency - see Lau2DHistDP::raiseOrLowerBins, values less than zero switch off this behaviour. The seed for the random number generator used to raise or lower the bins should first be set using LauRandom::setSeed.
[in]absErrorthe error on that efficiency - see Lau2DHistDP::raiseOrLowerBins, values less than zero switch off this behaviour
[in]useUpperHalfOnlyboolean flag to specify that the supplied histogram contains only the upper half of a symmetric DP (or lower half if using square DP coordinates)
[in]squareDPboolean flag to determine whether the supplied histogram is given in square DP coordinates

Definition at line 97 of file LauEffModel.cc.

void LauEffModel::setEffSpline ( const TH2 *  effHisto,
Bool_t  fluctuateBins = kFALSE,
Double_t  avEff = -1.0,
Double_t  absError = -1.0,
Bool_t  useUpperHalfOnly = kFALSE,
Bool_t  squareDP = kFALSE 
)

Set the efficiency variation across the phase space using a spline based on a predetermined 2D histogram.

The efficiency is defined in terms of x = m_13^2, y = m_23^2 or x = m', y = theta' for the square Dalitz plot

Parameters
[in]effHistothe 2-dimensional histogram that describes the efficiency variation
[in]fluctuateBinsboolean flag to determine whether the bin contents should be fluctuated in accordance with their errors. The seed for the random number generator used to fluctuate the bins should first be set using LauRandom::setSeed.
[in]avEffthe desired average efficiency - see Lau2DHistDP::raiseOrLowerBins, values less than zero switch off this behaviour. The seed for the random number generator used to raise or lower the bins should first be set using LauRandom::setSeed.
[in]absErrorthe error on that efficiency - see Lau2DHistDP::raiseOrLowerBins, values less than zero switch off this behaviour
[in]useUpperHalfOnlyboolean flag to specify that the supplied histogram contains only the upper half of a symmetric DP (or lower half if using square DP coordinates)
[in]squareDPboolean flag to determine whether the supplied histogram is given in square DP coordinates

Definition at line 126 of file LauEffModel.cc.

void LauEffModel::setEffSpline ( const TH2 *  effHisto,
const TH2 *  errorHi,
const TH2 *  errorLo,
Bool_t  fluctuateBins = kFALSE,
Double_t  avEff = -1.0,
Double_t  absError = -1.0,
Bool_t  useUpperHalfOnly = kFALSE,
Bool_t  squareDP = kFALSE 
)

Set the efficiency variation across the phase space using a spline based on a predetermined 2D histogram.

The efficiency is defined in terms of x = m_13^2, y = m_23^2 or x = m', y = theta' for the square Dalitz plot

Parameters
[in]effHistothe 2-dimensional histogram that describes the efficiency variation
[in]errorHithe 2-dimensional histogram that describes the upper uncertainty on the efficiency variation
[in]errorLothe 2-dimensional histogram that describes the lower uncertainty on the efficiency variation
[in]fluctuateBinsboolean flag to determine whether the bin contents should be fluctuated in accordance with their errors. The seed for the random number generator used to fluctuate the bins should first be set using LauRandom::setSeed.
[in]avEffthe desired average efficiency - see Lau2DHistDP::raiseOrLowerBins, values less than zero switch off this behaviour. The seed for the random number generator used to raise or lower the bins should first be set using LauRandom::setSeed.
[in]absErrorthe error on that efficiency - see Lau2DHistDP::raiseOrLowerBins, values less than zero switch off this behaviour
[in]useUpperHalfOnlyboolean flag to specify that the supplied histogram contains only the upper half of a symmetric DP (or lower half if using square DP coordinates)
[in]squareDPboolean flag to determine whether the supplied histogram is given in square DP coordinates

Definition at line 154 of file LauEffModel.cc.

Member Data Documentation

const LauDaughters* LauEffModel::daughters_
private

The daughters object.

Definition at line 249 of file LauEffModel.hh.

std::vector<Lau2DAbsDP*> LauEffModel::effHisto_
private

The efficiency histogram objects.

Definition at line 255 of file LauEffModel.hh.

Bool_t LauEffModel::fluctuateEffHisto_
private

Fluctuate histogram within the error.

Definition at line 258 of file LauEffModel.hh.

Bool_t LauEffModel::highBinWarningIssued_
mutableprivate

Flag to track whether a warning has been issued for bin values greater than one.

Definition at line 264 of file LauEffModel.hh.

Bool_t LauEffModel::lowBinWarningIssued_
mutableprivate

Flag to track whether a warning has been issued for bin values less than zero.

Definition at line 261 of file LauEffModel.hh.

const LauVetoes* LauEffModel::vetoes_
private

The vetoes object.

Definition at line 252 of file LauEffModel.hh.


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