EvtPredGen< Generator, Predicate > Class Template Reference

#include <EvtPredGen.hh>

List of all members.

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 22 of file EvtPredGen.hh.


Member Typedef Documentation

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

Definition at line 26 of file EvtPredGen.hh.


Constructor & Destructor Documentation

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

Definition at line 28 of file EvtPredGen.hh.

00029     : itsTried(0), itsPassed(0)
00030   {}

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

Definition at line 32 of file EvtPredGen.hh.

00033     : itsGen(gen), itsPred(pred), itsTried(0), itsPassed(0) 
00034   {}

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

Definition at line 36 of file EvtPredGen.hh.

00037     : itsGen(other.itsGen), itsPred(other.itsPred), 
00038     itsTried(other.itsTried), itsPassed(other.itsPassed)
00039   {}

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

Definition at line 41 of file EvtPredGen.hh.

00042   {}


Member Function Documentation

template<class Generator, class Predicate>
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; }

template<class Generator, class Predicate>
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; }

template<class Generator, class Predicate>
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   }


Member Data Documentation

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

Definition at line 69 of file EvtPredGen.hh.

Referenced by EvtPredGen< Generator, Predicate >::operator()().

template<class Generator, class Predicate>
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()().

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

Definition at line 70 of file EvtPredGen.hh.

Referenced by EvtPredGen< Generator, Predicate >::operator()().

template<class Generator, class Predicate>
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()().


Generated on Tue Nov 29 23:19:13 2016 for BOSS_7.0.2 by  doxygen 1.4.7