#include <EvtPredGen.hh>
Public Types | |
typedef Generator::result_type | result_type |
Public Member Functions | |
EvtPredGen () | |
EvtPredGen (Generator gen, Predicate pred) | |
EvtPredGen (const EvtPredGen &other) | |
~EvtPredGen () | |
result_type | operator() () |
int | getTried () const |
int | getPassed () const |
Protected Attributes | |
Generator | itsGen |
Predicate | itsPred |
int | itsTried |
int | itsPassed |
Definition at line 22 of file EvtPredGen.hh.
typedef Generator::result_type EvtPredGen< Generator, Predicate >::result_type |
Definition at line 26 of file EvtPredGen.hh.
EvtPredGen< Generator, Predicate >::EvtPredGen | ( | ) | [inline] |
EvtPredGen< Generator, Predicate >::EvtPredGen | ( | Generator | gen, | |
Predicate | pred | |||
) | [inline] |
EvtPredGen< Generator, Predicate >::EvtPredGen | ( | const EvtPredGen< Generator, Predicate > & | other | ) | [inline] |
EvtPredGen< Generator, Predicate >::~EvtPredGen | ( | ) | [inline] |
int EvtPredGen< Generator, Predicate >::getPassed | ( | ) | const [inline] |
Definition at line 65 of file EvtPredGen.hh.
References EvtPredGen< Generator, Predicate >::itsPassed.
Referenced by EvtPdf< T >::findGenEff().
00065 { return itsPassed; }
int EvtPredGen< Generator, Predicate >::getTried | ( | ) | const [inline] |
Definition at line 64 of file EvtPredGen.hh.
References EvtPredGen< Generator, Predicate >::itsTried.
Referenced by EvtPdf< T >::findGenEff().
00064 { return itsTried; }
result_type EvtPredGen< Generator, Predicate >::operator() | ( | void | ) | [inline] |
Definition at line 44 of file EvtPredGen.hh.
References genRecEmupikp::i, EvtPredGen< Generator, Predicate >::itsGen, EvtPredGen< Generator, Predicate >::itsPassed, EvtPredGen< Generator, Predicate >::itsPred, and EvtPredGen< Generator, Predicate >::itsTried.
00044 { 00045 00046 int i = 0; 00047 int MAX = 10000; 00048 while(i++ < MAX) { 00049 00050 itsTried++; 00051 result_type point = itsGen(); 00052 if(itsPred(point)) { 00053 itsPassed++; 00054 return point; 00055 } 00056 } 00057 00058 printf("No random point generated after %d attempts\n",MAX); 00059 printf("Sharp peak? Consider using pole compensation.\n"); 00060 printf("I will now pick a point at random to return.\n"); 00061 return itsGen(); 00062 }
Generator EvtPredGen< Generator, Predicate >::itsGen [protected] |
Definition at line 69 of file EvtPredGen.hh.
Referenced by EvtPredGen< Generator, Predicate >::operator()().
int EvtPredGen< Generator, Predicate >::itsPassed [protected] |
Definition at line 72 of file EvtPredGen.hh.
Referenced by EvtPredGen< Generator, Predicate >::getPassed(), and EvtPredGen< Generator, Predicate >::operator()().
Predicate EvtPredGen< Generator, Predicate >::itsPred [protected] |
Definition at line 70 of file EvtPredGen.hh.
Referenced by EvtPredGen< Generator, Predicate >::operator()().
int EvtPredGen< Generator, Predicate >::itsTried [protected] |
Definition at line 71 of file EvtPredGen.hh.
Referenced by EvtPredGen< Generator, Predicate >::getTried(), and EvtPredGen< Generator, Predicate >::operator()().