EvtDalitzFlatPdf Class Reference

#include <EvtDalitzFlatPdf.hh>

Inheritance diagram for EvtDalitzFlatPdf:

EvtPdf< EvtDalitzPoint > List of all members.

Public Member Functions

 EvtDalitzFlatPdf (const EvtDalitzPlot &dp)
 EvtDalitzFlatPdf (const EvtDalitzFlatPdf &other)
virtual ~EvtDalitzFlatPdf ()
virtual EvtPdf< EvtDalitzPoint > * clone () const
virtual EvtValError compute_integral (int N) const
virtual EvtDalitzPoint randomPoint ()
double evaluate (const EvtDalitzPoint &p) const
EvtPdfMax< EvtDalitzPointfindMax (const EvtPdf< EvtDalitzPoint > &pc, int N)
EvtValError findGenEff (const EvtPdf< EvtDalitzPoint > &pc, int N, int nFindMax)
void setItg (EvtValError itg)
EvtValError getItg () const
EvtValError getItg (int N) const
virtual EvtValError compute_integral () const
EvtValError compute_mc_integral (const EvtPdf< EvtDalitzPoint > &pc, int N)
EvtPredGen< EvtPdfGen< EvtDalitzPoint >,
EvtPdfPred< EvtDalitzPoint > > 
accRejGen (const EvtPdf< EvtDalitzPoint > &pc, int nMax, double factor=1.)

Protected Member Functions

virtual double pdf (const EvtDalitzPoint &) const

Protected Attributes

EvtDalitzPlot _dp
EvtValError _itg

Detailed Description

Definition at line 22 of file EvtDalitzFlatPdf.hh.


Constructor & Destructor Documentation

EvtDalitzFlatPdf::EvtDalitzFlatPdf ( const EvtDalitzPlot dp  ) 

Definition at line 14 of file EvtDalitzFlatPdf.cc.

Referenced by clone().

00015   : EvtPdf<EvtDalitzPoint>(), _dp(dp)
00016 {}

EvtDalitzFlatPdf::EvtDalitzFlatPdf ( const EvtDalitzFlatPdf other  ) 

Definition at line 18 of file EvtDalitzFlatPdf.cc.

00019   : EvtPdf<EvtDalitzPoint>(other), _dp(other._dp)
00020 {}

EvtDalitzFlatPdf::~EvtDalitzFlatPdf (  )  [virtual]

Definition at line 22 of file EvtDalitzFlatPdf.cc.

00023 {}


Member Function Documentation

EvtPredGen<EvtPdfGen<EvtDalitzPoint >,EvtPdfPred<EvtDalitzPoint > > EvtPdf< EvtDalitzPoint >::accRejGen ( const EvtPdf< EvtDalitzPoint > &  pc,
int  nMax,
double  factor = 1. 
) [inherited]

EvtPdf< EvtDalitzPoint > * EvtDalitzFlatPdf::clone (  )  const [virtual]

Implements EvtPdf< EvtDalitzPoint >.

Definition at line 25 of file EvtDalitzFlatPdf.cc.

References EvtDalitzFlatPdf().

00026 {
00027   return new EvtDalitzFlatPdf(*this);
00028 }

virtual EvtValError EvtPdf< EvtDalitzPoint >::compute_integral (  )  const [inline, virtual, inherited]

Reimplemented in EvtPdfSum< EvtDalitzPoint >.

Definition at line 92 of file EvtPdf.hh.

00094   { printf("Analytic integration of PDF is not defined\n"); assert(0); return compute_integral();}

EvtValError EvtDalitzFlatPdf::compute_integral ( int  N  )  const [virtual]

Reimplemented from EvtPdf< EvtDalitzPoint >.

Definition at line 35 of file EvtDalitzFlatPdf.cc.

References _dp, and EvtDalitzPlot::getArea().

00036 {
00037   return EvtValError(_dp.getArea(N),0.);
00038 }

EvtValError EvtPdf< EvtDalitzPoint >::compute_mc_integral ( const EvtPdf< EvtDalitzPoint > &  pc,
int  N 
) [inherited]

double EvtPdf< EvtDalitzPoint >::evaluate ( const EvtDalitzPoint p  )  const [inline, inherited]

Definition at line 65 of file EvtPdf.hh.

00065                                     { 
00066     if(p.isValid()) return pdf(p); 
00067     else return 0.;
00068   }

EvtValError EvtPdf< EvtDalitzPoint >::findGenEff ( const EvtPdf< EvtDalitzPoint > &  pc,
int  N,
int  nFindMax 
) [inherited]

EvtPdfMax<EvtDalitzPoint > EvtPdf< EvtDalitzPoint >::findMax ( const EvtPdf< EvtDalitzPoint > &  pc,
int  N 
) [inherited]

EvtValError EvtPdf< EvtDalitzPoint >::getItg ( int  N  )  const [inline, inherited]

Definition at line 87 of file EvtPdf.hh.

00087                                   {
00088     if(!_itg.valueKnown()) _itg = compute_integral(N);
00089     return _itg;
00090   }

EvtValError EvtPdf< EvtDalitzPoint >::getItg (  )  const [inline, inherited]

Definition at line 83 of file EvtPdf.hh.

00083                              {
00084     if(!_itg.valueKnown()) _itg = compute_integral();
00085     return _itg;
00086   }

double EvtDalitzFlatPdf::pdf ( const EvtDalitzPoint  )  const [protected, virtual]

Implements EvtPdf< EvtDalitzPoint >.

Definition at line 30 of file EvtDalitzFlatPdf.cc.

00031 {
00032   return 1.;
00033 }

EvtDalitzPoint EvtDalitzFlatPdf::randomPoint (  )  [virtual]

Reimplemented from EvtPdf< EvtDalitzPoint >.

Definition at line 40 of file EvtDalitzFlatPdf.cc.

References _dp, EvtCyclic3::BC, EvtCyclic3::CA, EvtRandom::Flat(), EvtDalitzPlot::qAbsMax(), EvtDalitzPlot::qAbsMin(), and x.

00041 {
00042   // To obtain a uniform distribution generate 
00043   // in terms of q's. Generate in a box that circumscribes the 
00044   // Dalitz plot. Accept points inside. If there are two 
00045   // many unsuccessful attempts it's a hint that the Dalitz plot
00046   // area is tiny compared to the box. It's a pathological
00047   // case. Abort.
00048   
00049   EvtCyclic3::Pair pair1 = EvtCyclic3::BC;
00050   EvtCyclic3::Pair pair2 = EvtCyclic3::CA;
00051   
00052   int n = 0;
00053   int maxTries = 1000;
00054   while(n++ < maxTries) {
00055     
00056     double q1 = EvtRandom::Flat(_dp.qAbsMin(pair1),_dp.qAbsMax(pair2));
00057     double q2 = EvtRandom::Flat(_dp.qAbsMin(pair2),_dp.qAbsMax(pair2)); 
00058     
00059     EvtDalitzCoord point(pair1,q1,pair2,q2);
00060     EvtDalitzPoint x(_dp,point);
00061     
00062     if(x.isValid()) return x;
00063   }
00064   
00065   printf("No point generated for dalitz plot after %d tries\n",maxTries);
00066   assert(0);
00067 }

void EvtPdf< EvtDalitzPoint >::setItg ( EvtValError  itg  )  [inline, inherited]

Definition at line 81 of file EvtPdf.hh.

00081 {_itg = itg; }


Member Data Documentation

EvtDalitzPlot EvtDalitzFlatPdf::_dp [protected]

Definition at line 37 of file EvtDalitzFlatPdf.hh.

Referenced by compute_integral(), and randomPoint().

EvtValError EvtPdf< EvtDalitzPoint >::_itg [mutable, protected, inherited]

Reimplemented in EvtPdfSum< EvtDalitzPoint >.

Definition at line 111 of file EvtPdf.hh.


Generated on Tue Nov 29 23:18:57 2016 for BOSS_7.0.2 by  doxygen 1.4.7