laura is hosted by Hepforge, IPPP Durham
Laura++  v2r2
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...
 
Bool_t usingSquareDP () const
 Determine whether the efficiency histogram is in the square DP. 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...
 
Double_t getEffHistValue (Double_t xVal, Double_t yVal) const
 Get the efficiency from a two-dimensional histogram by interpolating in x and y. 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 squareDP_
 Use of the square Dalitz plot. 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 37 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 29 of file LauEffModel.cc.

LauEffModel::~LauEffModel ( )
virtual

Destructor.

Definition at line 44 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 determine whether, in the case of a symmetric DP, the histogram supplied only includes the upper half of the DP.
[in]squareDPboolean flag to determine whether the supplied histogram is given in square DP coordinates

Definition at line 177 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 determine whether, in the case of a symmetric DP, the histogram supplied only includes the upper half of the DP.
[in]squareDPboolean flag to determine whether the supplied histogram is given in square DP coordinates

Definition at line 195 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 determine whether, in the case of a symmetric DP, the histogram supplied only includes the upper half of the DP.
[in]squareDPboolean flag to determine whether the supplied histogram is given in square DP coordinates

Definition at line 213 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 determine whether, in the case of a symmetric DP, the histogram supplied only includes the upper half of the DP.
[in]squareDPboolean flag to determine whether the supplied histogram is given in square DP coordinates

Definition at line 230 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 261 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 213 of file LauEffModel.hh.

const LauDaughters* LauEffModel::getDaughters ( ) const
inlinevirtual

Return the daughters object.

Implements LauAbsEffModel.

Definition at line 219 of file LauEffModel.hh.

Double_t LauEffModel::getEffHistValue ( Double_t  xVal,
Double_t  yVal 
) const
private

Get the efficiency from a two-dimensional histogram by interpolating in x and y.

Parameters
[in]xValthe value to be interpolated in x
[in]yValthe value to be interpolated in y

Definition at line 247 of file LauEffModel.cc.

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 314 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 determine whether, in the case of a symmetric DP, the histogram supplied only includes the upper half of the DP.
[in]squareDPboolean flag to determine whether the supplied histogram is given in square DP coordinates

Definition at line 55 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 determine whether, in the case of a symmetric DP, the histogram supplied only includes the upper half of the DP.
[in]squareDPboolean flag to determine whether the supplied histogram is given in square DP coordinates

Definition at line 86 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 determine whether, in the case of a symmetric DP, the histogram supplied only includes the upper half of the DP.
[in]squareDPboolean flag to determine whether the supplied histogram is given in square DP coordinates

Definition at line 117 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 determine whether, in the case of a symmetric DP, the histogram supplied only includes the upper half of the DP.
[in]squareDPboolean flag to determine whether the supplied histogram is given in square DP coordinates

Definition at line 147 of file LauEffModel.cc.

Bool_t LauEffModel::usingSquareDP ( ) const
inlinevirtual

Determine whether the efficiency histogram is in the square DP.

Implements LauAbsEffModel.

Definition at line 225 of file LauEffModel.hh.

Member Data Documentation

const LauDaughters* LauEffModel::daughters_
private

The daughters object.

Definition at line 239 of file LauEffModel.hh.

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

The efficiency histogram objects.

Definition at line 245 of file LauEffModel.hh.

Bool_t LauEffModel::fluctuateEffHisto_
private

Fluctuate histogram within the error.

Definition at line 250 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 256 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 253 of file LauEffModel.hh.

Bool_t LauEffModel::squareDP_
private

Use of the square Dalitz plot.

Definition at line 248 of file LauEffModel.hh.

const LauVetoes* LauEffModel::vetoes_
private

The vetoes object.

Definition at line 242 of file LauEffModel.hh.


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