BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtPredGen< Generator, Predicate > Class Template Reference

#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

Detailed Description

template<class Generator, class Predicate>
class EvtPredGen< Generator, Predicate >

Definition at line 21 of file EvtPredGen.hh.

Member Typedef Documentation

◆ result_type

template<class Generator, class Predicate>
typedef Generator::result_type EvtPredGen< Generator, Predicate >::result_type

Definition at line 24 of file EvtPredGen.hh.

Constructor & Destructor Documentation

◆ EvtPredGen() [1/3]

template<class Generator, class Predicate>
EvtPredGen< Generator, Predicate >::EvtPredGen ( )
inline

Definition at line 26 of file EvtPredGen.hh.

26: itsTried( 0 ), itsPassed( 0 ) {}

Referenced by EvtPredGen().

◆ EvtPredGen() [2/3]

template<class Generator, class Predicate>
EvtPredGen< Generator, Predicate >::EvtPredGen ( Generator gen,
Predicate pred )
inline

Definition at line 28 of file EvtPredGen.hh.

29 : itsGen( gen ), itsPred( pred ), itsTried( 0 ), itsPassed( 0 ) {}
Predicate itsPred
Definition EvtPredGen.hh:66
Generator itsGen
Definition EvtPredGen.hh:65

◆ EvtPredGen() [3/3]

template<class Generator, class Predicate>
EvtPredGen< Generator, Predicate >::EvtPredGen ( const EvtPredGen< Generator, Predicate > & other)
inline

Definition at line 31 of file EvtPredGen.hh.

◆ ~EvtPredGen()

template<class Generator, class Predicate>
EvtPredGen< Generator, Predicate >::~EvtPredGen ( )
inline

Definition at line 37 of file EvtPredGen.hh.

37{}

Member Function Documentation

◆ getPassed()

template<class Generator, class Predicate>
int EvtPredGen< Generator, Predicate >::getPassed ( ) const
inline

Definition at line 62 of file EvtPredGen.hh.

62{ return itsPassed; }

Referenced by EvtPdf< T >::findGenEff().

◆ getTried()

template<class Generator, class Predicate>
int EvtPredGen< Generator, Predicate >::getTried ( ) const
inline

Definition at line 61 of file EvtPredGen.hh.

61{ return itsTried; }

Referenced by EvtPdf< T >::findGenEff().

◆ operator()()

template<class Generator, class Predicate>
result_type EvtPredGen< Generator, Predicate >::operator() ( )
inline

Definition at line 39 of file EvtPredGen.hh.

39 {
40
41 int i = 0;
42 int MAX = 10000;
43 while ( i++ < MAX )
44 {
45
46 itsTried++;
48 if ( itsPred( point ) )
49 {
50 itsPassed++;
51 return point;
52 }
53 }
54
55 printf( "No random point generated after %d attempts\n", MAX );
56 printf( "Sharp peak? Consider using pole compensation.\n" );
57 printf( "I will now pick a point at random to return.\n" );
58 return itsGen();
59 }
Generator::result_type result_type
Definition EvtPredGen.hh:24

Member Data Documentation

◆ itsGen

template<class Generator, class Predicate>
Generator EvtPredGen< Generator, Predicate >::itsGen
protected

Definition at line 65 of file EvtPredGen.hh.

Referenced by EvtPredGen(), EvtPredGen(), and operator()().

◆ itsPassed

template<class Generator, class Predicate>
int EvtPredGen< Generator, Predicate >::itsPassed
protected

Definition at line 68 of file EvtPredGen.hh.

Referenced by EvtPredGen(), EvtPredGen(), EvtPredGen(), getPassed(), and operator()().

◆ itsPred

template<class Generator, class Predicate>
Predicate EvtPredGen< Generator, Predicate >::itsPred
protected

Definition at line 66 of file EvtPredGen.hh.

Referenced by EvtPredGen(), EvtPredGen(), and operator()().

◆ itsTried

template<class Generator, class Predicate>
int EvtPredGen< Generator, Predicate >::itsTried
protected

Definition at line 67 of file EvtPredGen.hh.

Referenced by EvtPredGen(), EvtPredGen(), EvtPredGen(), getTried(), and operator()().


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