ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
eflowCellIntegrand< expType > Class Template Reference

Class to represent the 2D Gaussian integrand. More...

#include <eflowCellIntegrator.h>

Collaboration diagram for eflowCellIntegrand< expType >:

Public Member Functions

 eflowCellIntegrand (double sigma)
 
 ~eflowCellIntegrand ()
 
void setEtaSq (double xSq)
 
double evaluateStdExp (double rSq) const
 
double evaluateLookupExp (double rSq) const
 
double evaluate (double y)
 The evaluate method for the integration. More...
 
double evaluate (double phi)
 
double evaluate (double phi)
 

Private Attributes

const eflowLookupExpm_lookupExp
 
double m_oneOverTwoSigmaSq
 
double m_norm
 
double m_etaSq
 

Detailed Description

template<Exp_t expType>
class eflowCellIntegrand< expType >

Class to represent the 2D Gaussian integrand.

EtaSq is set via a set method, phi is a parameter to the evalutate() method. Hence the class is only the direct integrator of the inner (i.e. phi) integration, while the eflowCell Integrator acts as the integrand for the outer (i.e. eta) integration. To evaluate the integrand, either std::exp or eflowLookupExp is used, depending on the value of the template parameter. Templates are used instead of polymorphism here due to the better CPU performance.

Definition at line 120 of file eflowCellIntegrator.h.

Constructor & Destructor Documentation

◆ eflowCellIntegrand()

template<Exp_t expType>
eflowCellIntegrand< expType >::eflowCellIntegrand ( double  sigma)
inline

Definition at line 122 of file eflowCellIntegrator.h.

◆ ~eflowCellIntegrand()

template<Exp_t expType>
eflowCellIntegrand< expType >::~eflowCellIntegrand ( )
inline

Definition at line 124 of file eflowCellIntegrator.h.

124 { }

Member Function Documentation

◆ evaluate() [1/3]

double eflowCellIntegrand< stdExp >::evaluate ( double  phi)
inline

Definition at line 140 of file eflowCellIntegrator.h.

140 { return evaluateStdExp(m_etaSq+phi*phi); }

◆ evaluate() [2/3]

double eflowCellIntegrand< lookupExp >::evaluate ( double  phi)
inline

Definition at line 141 of file eflowCellIntegrator.h.

141 { return evaluateLookupExp(m_etaSq+phi*phi); }

◆ evaluate() [3/3]

template<Exp_t expType>
double eflowCellIntegrand< expType >::evaluate ( double  y)
inline

The evaluate method for the integration.

The implementation depends on the template parameter

◆ evaluateLookupExp()

template<Exp_t expType>
double eflowCellIntegrand< expType >::evaluateLookupExp ( double  rSq) const
inline

Definition at line 129 of file eflowCellIntegrator.h.

◆ evaluateStdExp()

template<Exp_t expType>
double eflowCellIntegrand< expType >::evaluateStdExp ( double  rSq) const
inline

Definition at line 128 of file eflowCellIntegrator.h.

128 { return m_norm * exp(-rSq * m_oneOverTwoSigmaSq); }

◆ setEtaSq()

template<Exp_t expType>
void eflowCellIntegrand< expType >::setEtaSq ( double  xSq)
inline

Definition at line 126 of file eflowCellIntegrator.h.

126 { m_etaSq = xSq; }

Member Data Documentation

◆ m_etaSq

template<Exp_t expType>
double eflowCellIntegrand< expType >::m_etaSq
private

Definition at line 138 of file eflowCellIntegrator.h.

◆ m_lookupExp

template<Exp_t expType>
const eflowLookupExp* eflowCellIntegrand< expType >::m_lookupExp
private

Definition at line 135 of file eflowCellIntegrator.h.

◆ m_norm

template<Exp_t expType>
double eflowCellIntegrand< expType >::m_norm
private

Definition at line 137 of file eflowCellIntegrator.h.

◆ m_oneOverTwoSigmaSq

template<Exp_t expType>
double eflowCellIntegrand< expType >::m_oneOverTwoSigmaSq
private

Definition at line 136 of file eflowCellIntegrator.h.


The documentation for this class was generated from the following file:
pdg_comparison.sigma
sigma
Definition: pdg_comparison.py:324
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
eflowLookupExp::getInstance
static const eflowLookupExp * getInstance(int nExpBins=50, int nExpSubBins=1000)
Definition: eflowLookupExp.cxx:17
M_PI
#define M_PI
Definition: ActiveFraction.h:11
eflowCellIntegrand::m_etaSq
double m_etaSq
Definition: eflowCellIntegrator.h:138
drawFromPickle.exp
exp
Definition: drawFromPickle.py:36
eflowCellIntegrand::evaluateStdExp
double evaluateStdExp(double rSq) const
Definition: eflowCellIntegrator.h:128
eflowCellIntegrand::evaluateLookupExp
double evaluateLookupExp(double rSq) const
Definition: eflowCellIntegrator.h:129
eflowLookupExp::evaluate
double evaluate(double x) const
Definition: eflowLookupExp.h:42
eflowCellIntegrand::m_lookupExp
const eflowLookupExp * m_lookupExp
Definition: eflowCellIntegrator.h:135
eflowCellIntegrand::m_norm
double m_norm
Definition: eflowCellIntegrator.h:137
eflowCellIntegrand::m_oneOverTwoSigmaSq
double m_oneOverTwoSigmaSq
Definition: eflowCellIntegrator.h:136