23 , _askingPrecision(prec)
28 , _sumPhaseSpaceSq(0.0)
35 double safetyFactor=1.001;
73 if(c4b.phaseSpaceFactor() <=0){
76 << t01 <<
"( " <<
_t01 <<
"), \n " 77 << s12 <<
"( " <<
_s12 <<
"), \n " 78 << s23 <<
"( " <<
_s23 <<
"), \n " 79 << s34 <<
"( " <<
_s34 <<
"), \n " 80 << t40 <<
"( " <<
_t40 <<
"), \n " 81 <<
" outside phase space!! " 88 cout <<
"WARNING DalitzPdfNormChecker::make4Event()" 89 <<
" making the event failed at 'new DalitzEvent(...)'" 90 <<
" this shouldn't really happen." 104 cout <<
"ERROR in DalitzPdfNormChecker::makeEvent() can only make events" 105 <<
" with 3 or 4 daughters. You want : " <<
_pat 112 cout <<
" ERROR DalitzPdfNormChecker::make3Event(): I don't work, yet. " 113 <<
"\n Please improve me. Sorry, will have to crash, now" 115 throw "no making 3 body events in DalitzPdfNormChecker, yet";
148 double mean =
_sum/dN;
149 double meansq =
_sumsq/dN;
150 double var = meansq - mean*mean;
152 cout <<
"ERROR ind DalitzPdfNormChecker::currentPrecision()" 153 <<
". Variance = " << var
154 <<
". We have a problem." 162 if(
result() == 0.0)
return 9999;
175 long unsigned int stupidNumber = 2000000000;
177 int printEvery=50000;
178 for(
long unsigned int i=0;
183 if(0 == i%printEvery){
186 cout <<
" current ptr " << evtPtr.
get() << endl;
188 cout <<
" phase space = " << evtPtr->
phaseSpace() << endl;
192 if(0 == evtPtr)
continue;
195 if(
_Nevents < 20 || 0 == i%printEvery){
196 cout <<
" for _Nevents = " <<
_Nevents <<
", current val = " << val << endl;
197 cout <<
"event: " << *evtPtr << endl;
198 cout <<
" ------------------ " << endl;
211 cout <<
"DalitzPdfNormChecker::checkNorm(): " 220 os <<
" DalitzPdfNormChecker after " <<
_Nevents <<
" events: ";
228 os <<
"\n this should be " << shouldBe;
242 return dt01*ds12*ds23*ds34*dt40;
244 cout <<
"ERROR in DalitzPdfNormChecker::boxSize()" 245 <<
" don't know how to handle " 247 <<
" final state particles. Will return -9999"
MINT::counted_ptr< DalitzEvent > make3Event() const
double sijMax(const MINT::PolymorphVector< int > &indices) const
long unsigned int _Nevents
virtual double phaseSpace() const
bool sufficientPrecision() const
void print(std::ostream &os=std::cout) const
DalitzPdfNormChecker(IDalitzPdf *pdf, const DalitzEventPattern &pat, double prec=1.0e-2, TRandom *rnd=gRandom)
double currentAbsolutePrecision() const
MINT::counted_ptr< DalitzEvent > make4Event() const
double resultError() const
double sijMin(const MINT::PolymorphVector< int > &indices) const
std::ostream & operator<<(std::ostream &os, const DalitzPdfNormChecker &nc)
MINT::counted_ptr< DalitzEvent > makeEventForOwner() const
virtual double getVal_withPs(IDalitzEvent &evt)=0
double currentRelativePrecision() const
void setMinMax(double min, double max)