newwave is hosted by Hepforge, IPPP Durham

New Wave - Noise Elimination With Wavelets At Vast Energies  0.1.0
NewWave::WaveletEvent< T, momentum_type > Class Template Reference

A representation of the event in the wavelet domain. More...

#include <WaveletEvent.hh>

Inheritance diagram for NewWave::WaveletEvent< T, momentum_type >:
NewWave::WaveletBaseEvent

List of all members.

Public Member Functions

 WaveletEvent (const T &particles, const PixelDefinition &pixelDefn, const WaveletEngine &engine)
const WaveletCoefficients & coefficients () const
 Return the wavelet coefficients.
const FrequencyBands & frequencyBands () const
const FrequencyBandfrequencyBand (const WaveletCoefficient &coeff) const
const PixelDefinitionpixelDefn () const
const PixelArraypixels () const
 Return the event as rasterised pixels in rapidity= $\phi$ space.
const PixelArrayoriginalPixels () const
const T & particles () const
 Return the particles from the filtered event.
void denoise (double noiseThreshold)
 De-noise the event using a simple flat threshold.
void filter (const std::function< bool(const WaveletCoefficient &)> &select)
 Filter the event by setting the unselected coefficients to zero.
void scale (const std::function< double(const WaveletCoefficient &)> &scaler)
void setPileUpThreshold (double threshold)
template<>
HepMC::GenEvent *const & particles () const

Detailed Description

template<typename T, typename momentum_type = Momentum<T>>
class NewWave::WaveletEvent< T, momentum_type >

A representation of the event in the wavelet domain.

Definition at line 29 of file WaveletEvent.hh.


Constructor & Destructor Documentation

template<typename T , typename momentum_type = Momentum<T>>
NewWave::WaveletEvent< T, momentum_type >::WaveletEvent ( const T &  particles,
const PixelDefinition pixelDefn,
const WaveletEngine engine 
) [inline]

Definition at line 33 of file WaveletEvent.hh.


Member Function Documentation

template<typename T , typename momentum_type = Momentum<T>>
const WaveletCoefficients& NewWave::WaveletEvent< T, momentum_type >::coefficients ( ) const [inline, virtual]

Return the wavelet coefficients.

Returns the set of wavelet coefficients, including the effect of any event processing in the wavelet domain, e.g. noise removal, thresholding, level selection.

Returns:
The wavelet coefficients

Implements NewWave::WaveletBaseEvent.

Definition at line 55 of file WaveletEvent.hh.

template<typename T , typename momentum_type = Momentum<T>>
void NewWave::WaveletEvent< T, momentum_type >::denoise ( double  noiseThreshold) [inline]

De-noise the event using a simple flat threshold.

Event de-noising removes all coefficients whose magnitude is below the given threshold. Note that since different analysis systems use different units (GeV, MeV...) this threshold must be set consistently with that. In other words, if you want a threshold of 1GeV and your units are MeV, the argument is 1000.

Parameters:
noiseThresholdThe threshold for coefficients

Definition at line 171 of file WaveletEvent.hh.

template<typename T , typename momentum_type = Momentum<T>>
void NewWave::WaveletEvent< T, momentum_type >::filter ( const std::function< bool(const WaveletCoefficient &)> &  select) [inline]

Filter the event by setting the unselected coefficients to zero.

The std::function passed in here selects WaveletCoefficients and should return true if they are to be kept, or false if rejected. This function is applied to all of the coefficients in the event. Note that it can be called several times, so filters can be combined (e.g. de-noising followed by removal of high-frequency terms).

The WaveletEvent::denoise method calls this to select only coefficients above threshold. It provides a good example of defining a selection function inline using lamdas. Of course, you can also use functors or function pointers.

Parameters:
selectFunction that determines whether a single coefficient is kept or set to zero. It should take a NewWave::WaveletCoefficient as the sole argument.

Definition at line 197 of file WaveletEvent.hh.

template<typename T , typename momentum_type = Momentum<T>>
const FrequencyBand& NewWave::WaveletEvent< T, momentum_type >::frequencyBand ( const WaveletCoefficient coeff) const [inline, virtual]

Implements NewWave::WaveletBaseEvent.

Definition at line 78 of file WaveletEvent.hh.

template<typename T , typename momentum_type = Momentum<T>>
const FrequencyBands& NewWave::WaveletEvent< T, momentum_type >::frequencyBands ( ) const [inline, virtual]

Implements NewWave::WaveletBaseEvent.

Definition at line 57 of file WaveletEvent.hh.

template<typename T , typename momentum_type = Momentum<T>>
const PixelArray& NewWave::WaveletEvent< T, momentum_type >::originalPixels ( ) const [inline, virtual]

Implements NewWave::WaveletBaseEvent.

Definition at line 110 of file WaveletEvent.hh.

template<typename T , typename momentum_type = Momentum<T>>
const T& NewWave::WaveletEvent< T, momentum_type >::particles ( ) const [inline]

Return the particles from the filtered event.

This inverts (if necessary) the wavelet transformation on the (possibly filtered) wavelet coefficients, de-rasterises the event and returns those particles for which the ratio of output to input rasterised event is greater than the pile up threshold (see WaveletEvent<T>::setPileUpThreshold(double)).

The effect of this is to adjust the momenta of the output particles according to the wavelet analysis. Those particles that fail the pile up threshold cut are removed. By default, the pile up threshold is 0, so all particles are kept (barring those with negative pT). The pile up threshold is likely to be dependent on the detector used, and should be tuned experimentally.

Note that the removal of pile up and the removal of soft contributions to the signal event should be performed in separate steps - first one should remove pile up, then run a second wavelet analysis on the remaining particles in order to remove soft activity from the signal.

Returns:
T a list of particles modified by wavelet analysis

Definition at line 138 of file WaveletEvent.hh.

template<>
HepMC::GenEvent *const & NewWave::WaveletEvent< HepMC::GenEvent * >::particles ( ) const
template<typename T , typename momentum_type = Momentum<T>>
const PixelDefinition& NewWave::WaveletEvent< T, momentum_type >::pixelDefn ( ) const [inline, virtual]

Implements NewWave::WaveletBaseEvent.

Definition at line 89 of file WaveletEvent.hh.

template<typename T , typename momentum_type = Momentum<T>>
const PixelArray& NewWave::WaveletEvent< T, momentum_type >::pixels ( ) const [inline, virtual]

Return the event as rasterised pixels in rapidity= $\phi$ space.

Return a copy of the RasterisedEvent that includes the effect of any processing in the wavelet domain (e.g. noise thresholding). This is obtained by inverse transforming the set of coefficients.

Returns:
The rasterised event as Pixels

Implements NewWave::WaveletBaseEvent.

Definition at line 101 of file WaveletEvent.hh.

template<typename T , typename momentum_type = Momentum<T>>
void NewWave::WaveletEvent< T, momentum_type >::scale ( const std::function< double(const WaveletCoefficient &)> &  scaler) [inline, virtual]

Implements NewWave::WaveletBaseEvent.

Definition at line 208 of file WaveletEvent.hh.

template<typename T , typename momentum_type = Momentum<T>>
void NewWave::WaveletEvent< T, momentum_type >::setPileUpThreshold ( double  threshold) [inline, virtual]

Implements NewWave::WaveletBaseEvent.

Definition at line 220 of file WaveletEvent.hh.


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