1 #ifndef __HADRONICPARAMETERS_H__ 2 #define __HADRONICPARAMETERS_H__ 25 std::complex<double>
amp ;
41 virtual std::string
type()
const = 0 ;
42 virtual void Print(
const std::string&, std::ostream& os = std::cout)
const = 0 ;
44 const unsigned nBins ;
55 virtual std::string
type()
const override ;
56 virtual void Print(
const std::string&, std::ostream& os = std::cout)
const override ;
58 fromConfig(
const std::string&,
const std::string& fname =
"") ;
71 virtual std::string
type()
const override ;
73 fromConfig(
const std::string&,
const std::string& fname =
"") ;
85 std::complex<double>
m_X ;
102 double _R(
double,
double,
double,
const std::complex<double>&,
const std::complex<double>&,
103 double,
double,
const std::complex<double>&,
const std::complex<double>&)
const ;
106 Bin(
double,
double,
const std::complex<double>&,
double,
double,
const std::complex<double>&,
107 double norm = 1.,
double normbar = 1.,
double sumw = 1.,
double sumw2 = 1.) ;
111 Bin(
const std::string&,
unsigned,
const std::string& fname =
"") ;
116 double Fplus()
const ;
120 std::complex<double>
Xplus()
const ;
122 std::complex<double>
Xminus()
const ;
128 std::complex<double>
Xbarplus()
const ;
140 void Print(
const std::string& name,
unsigned, std::ostream& os=std::cout)
const ;
142 static std::string
getName(
const std::string&,
unsigned) ;
145 double R(
double,
double,
double,
const std::complex<double>&,
const std::complex<double>&)
const ;
148 double Rbar(
double,
double,
double,
const std::complex<double>&,
const std::complex<double>&)
const ;
172 const Bin&
bin(
unsigned)
const ;
182 std::pair<double, double>
integral()
const ;
185 std::pair<double, double>
normalise(
double norm = 1.,
double normBar = 1.) ;
187 void Print(
const std::string&, std::ostream& os = std::cout)
const ;
189 void write(
const std::string&,
const std::string&)
const ;
double getNorm() const
Get the normalisation.
double Fminus() const
Get the magnitude sq in the suppressed region.
std::complex< double > Xbarplus() const
Get the cross term for the favoured region, for the CP-conjugate decay.
void Print(const std::string &name, unsigned, std::ostream &os=std::cout) const
Print the parameters.
std::complex< double > m_Xbar
Cross term, for the CP-conjugate decay.
void Print(const std::string &, std::ostream &os=std::cout) const
Print the parameters.
std::complex< double > Xbarminus() const
Get the cross term for the suppressed region, for the CP-conjugate decay.
static BinningPtr getPhaseBinning(const std::string &, const std::string &fname="")
Get the PhaseBinning type.
double Fplus() const
Get the magnitude sq in the favoured region.
std::complex< double > amp
std::complex< double > Xplus() const
Get the cross term for the favoured region.
std::complex< double > m_X
Cross term.
virtual std::string type() const override
void setNormBar(double)
Set the normalisation, for the CP-conjugate decay.
virtual ~ModelPhaseBinning()
static std::string getName(const std::string &, unsigned)
Get the name string.
virtual void Print(const std::string &, std::ostream &os=std::cout) const =0
HadronicParameters::BinningPtr binningPtr() const
Get a pointer to the binning scheme.
double m_Fbarminus
Magnitude sq. in the suppressed region, for the CP-conjugate decay.
const PhaseBinningBase & binning() const
Get the binning scheme.
ModelBinning3Body(ModelPtr, ModelPtr, unsigned)
Bin()
Initialise an empty bin.
double m_normBar
The normalisation scale for the CP-conjugate decay.
double m_Fminus
Magnitude sq. in the suppressed region.
Hadronic parameters in a bin of phase space.
static MINT::counted_ptr< PhaseBinningBase > fromConfig(const std::string &, const std::string &fname="")
double m_norm
The normalisation scale. - Are there potentially issues with having different normalisation for D0 an...
double m_sumw
Sum of weights.
virtual std::string type() const =0
Class for determining if an event lives in a +ve or -ve bin.
int binNumber(IDalitzEvent &) const
Phase binning class for 3-body decays using the line s13=s23 to determine favoured/suppressed.
Info on the bin of an Event - output of IPhaseBin::binInfo. Caches as much as possible for efficiency...
double m_sumw2
Sum of weights sq.
std::pair< double, double > normalise(double norm=1., double normBar=1.)
Normalise the parameters.
void add(const EventBinInfo &, const EventBinInfo &, double weight=1.)
Add a DalitzEvent and its conjugate.
virtual ~ModelBinning3Body()
double m_Fbarplus
Magnitude sq. in the favoured region, for the CP-conjugate decay.
void setNorm(double)
Set the normalisation.
virtual void Print(const std::string &, std::ostream &os=std::cout) const override
BinningPtr m_phaseBinning
HadronicParameters(const Bins &, BinningPtr)
Initialise from a predetermined set of bins.
ModelPhaseBinning(ModelPtr, ModelPtr, unsigned)
std::complex< double > Xminus() const
Get the cross term for the suppressed region.
MINT::counted_ptr< FitAmpSum > ModelPtr
Interface class for determining which bin an event lives in.
virtual bool isFavoured(const double, const double, IDalitzEvent &) const
void add(IDalitzEvent &, double weight=1.)
Add a DalitzEvent.
int binSign() const
Get the bin sign, +1 or -1.
std::complex< double > ampBar
virtual bool isFavoured(const double, const double, IDalitzEvent &) const override
double m_Fplus
Magnitude sq. in the favoured region.
void write(const std::string &, const std::string &) const
Write to a file.
std::pair< double, double > integral() const
Get the integral over phase space.
bool operator!=(const PhaseBinningBase &) const
double Fbarminus() const
Get the magnitude sq in the suppressed region, for the CP-conjugate decay.
virtual EventBinInfo binInfo(IDalitzEvent &) const override
const Bin & bin(IDalitzEvent &) const
Get the bin for a DalitzEvent.
MINT::counted_ptr< PhaseBinningBase > BinningPtr
Pointer to the binning scheme.
virtual std::string type() const override
virtual ~PhaseBinningBase()
virtual EventBinInfo binInfo(IDalitzEvent &) const =0
std::deque< Bin > Bins
A set of bins.
bool isPlus() const
Check if the event is in a +ve bin.
double Fbarplus() const
Get the magnitude sq in the favoured region, for the CP-conjugate decay.
double Rbar(double, double, double, const std::complex< double > &, const std::complex< double > &) const
static MINT::counted_ptr< PhaseBinningBase > fromConfig(const std::string &, const std::string &fname="")
double _R(double, double, double, const std::complex< double > &, const std::complex< double > &, double, double, const std::complex< double > &, const std::complex< double > &) const
Get the expected ratio of events (suppressed)/(favoured) at the given time for the given mixing param...
virtual bool operator==(const PhaseBinningBase &) const
PhaseBinningBase(unsigned nBins)
double getNormBar() const
Get the normalisation, for the CP-conjugate decay.
double R(double, double, double, const std::complex< double > &, const std::complex< double > &) const
Get expected ratio of events (suppressed)/(favoured) at the given time for the given mixing parameter...