Jpp - the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Attributes | Friends | List of all members
JSUPPORT::JRandomSampler< T > Struct Template Reference

Template class for randomly sampling from a JLANG::JRewindableObjectIterator using a JLANG::JObjectSampler. More...

#include <JRandomSampler.hh>

Public Member Functions

 JRandomSampler ()
 Default constructor. More...
 
 JRandomSampler (const unsigned int on, const unsigned int off)
 Constructor. More...
 
const JRandomSampler & getRandomSampler () const
 Get random sampler. More...
 
JRandomSampler & getRandomSampler ()
 Get random sampler. More...
 
skip_type operator() (const T &object) const
 Acceptance test operator. More...
 

Protected Attributes

skip_type averageOn
 
skip_type averageOff
 
skip_type count
 

Friends

std::istream & operator>> (std::istream &in, JRandomSampler &sampler)
 Read random sampler from input. More...
 
std::ostream & operator<< (std::ostream &out, const JRandomSampler &sampler)
 Write random sampler to output. More...
 

Detailed Description

template<class T>
struct JSUPPORT::JRandomSampler< T >

Template class for randomly sampling from a JLANG::JRewindableObjectIterator using a JLANG::JObjectSampler.

The JRandomSampler class provides for an implementation of randomly sampling objects.
The sampling is controlled via two parameters, namely:

Definition at line 33 of file JRandomSampler.hh.

Constructor & Destructor Documentation

template<class T>
JSUPPORT::JRandomSampler< T >::JRandomSampler ( )
inline

Default constructor.

This constructor will sample all objects.

Definition at line 39 of file JRandomSampler.hh.

39  :
40  averageOn (1),
41  averageOff(0),
42  count (0)
43  {}
template<class T>
JSUPPORT::JRandomSampler< T >::JRandomSampler ( const unsigned int  on,
const unsigned int  off 
)
inline

Constructor.

Parameters
onaverage number of consecutively accepted events
offaverage number of consecutively rejected events

Definition at line 52 of file JRandomSampler.hh.

53  :
54  averageOn (on),
55  averageOff(off),
56  count (0)
57  {}

Member Function Documentation

template<class T>
const JRandomSampler& JSUPPORT::JRandomSampler< T >::getRandomSampler ( ) const
inline

Get random sampler.

Returns
random sampler

Definition at line 65 of file JRandomSampler.hh.

66  {
67  return static_cast<const JRandomSampler&>(*this);
68  }
Template class for randomly sampling from a JLANG::JRewindableObjectIterator using a JLANG::JObjectSa...
template<class T>
JRandomSampler& JSUPPORT::JRandomSampler< T >::getRandomSampler ( )
inline

Get random sampler.

Returns
random sampler

Definition at line 76 of file JRandomSampler.hh.

77  {
78  return static_cast<JRandomSampler&>(*this);
79  }
Template class for randomly sampling from a JLANG::JRewindableObjectIterator using a JLANG::JObjectSa...
template<class T>
skip_type JSUPPORT::JRandomSampler< T >::operator() ( const T &  object) const
inline

Acceptance test operator.

Parameters
objectobject
Returns
number of object to skip

Definition at line 88 of file JRandomSampler.hh.

89  {
90  if (count == 0) {
91 
92  count = gRandom->Integer(2 * averageOn);
93 
94  return (unsigned int) gRandom->Integer(2 * averageOff);
95 
96  } else {
97 
98  count -= 1;
99 
100  return 0;
101  }
102  }

Friends And Related Function Documentation

template<class T>
std::istream& operator>> ( std::istream &  in,
JRandomSampler< T > &  sampler 
)
friend

Read random sampler from input.

Parameters
ininput stream
samplerrandom sampler
Returns
input stream

Definition at line 112 of file JRandomSampler.hh.

113  {
114  in >> sampler.averageOn;
115  in >> sampler.averageOff;
116 
117  sampler.count = 0;
118 
119  return in;
120  }
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY source JAcoustics sh $DETECTOR_ID CHECK_EXIT_CODE typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
Definition: JCanberra.sh:38
template<class T>
std::ostream& operator<< ( std::ostream &  out,
const JRandomSampler< T > &  sampler 
)
friend

Write random sampler to output.

Parameters
outoutput stream
samplerrandom sampler
Returns
output stream

Definition at line 130 of file JRandomSampler.hh.

131  {
132  out << sampler.averageOn;
133  out << ' ';
134  out << sampler.averageOff;
135 
136  return out;
137  }

Member Data Documentation

template<class T>
skip_type JSUPPORT::JRandomSampler< T >::averageOn
protected

Definition at line 140 of file JRandomSampler.hh.

template<class T>
skip_type JSUPPORT::JRandomSampler< T >::averageOff
protected

Definition at line 141 of file JRandomSampler.hh.

template<class T>
skip_type JSUPPORT::JRandomSampler< T >::count
mutableprotected

Definition at line 142 of file JRandomSampler.hh.


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