Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

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 (const EvtPredGen &other)
 EvtPredGen (Generator gen, Predicate pred)
 EvtPredGen ()
int getPassed () const
int getTried () const
result_type operator() ()
 ~EvtPredGen ()

Protected Attributes

Generator itsGen
int itsPassed
Predicate itsPred
int itsTried

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


Member Typedef Documentation

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


Constructor & Destructor Documentation

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

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

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

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]
 

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

00042   {}


Member Function Documentation

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

00065 { return itsPassed; }

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

00064 { return itsTried; }

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

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]
 

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

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

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


The documentation for this class was generated from the following file:
Generated on Wed Feb 2 16:08:37 2011 for BOSS6.5.5 by  doxygen 1.3.9.1