ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
c2_transformation< float_type > Class Template Reference

a transformation of a coordinate, including an inverse More...

#include <geant4/tree/geant4-10.6-release/examples/extended/electromagnetic/TestEm7/include/c2_function.hh>

+ Inheritance diagram for c2_transformation< float_type >:

Public Member Functions

 c2_transformation (bool transformed, float_type(*xin)(float_type), float_type(*xinp)(float_type), float_type(*xinpp)(float_type), float_type(*xout)(float_type))
 initialize all our function pointers
 
 c2_transformation (bool transformed)
 initialize all our function pointers so that only the (overridden) virtual functions can be called without an error
 
virtual ~c2_transformation ()
 the destructor
 
virtual float_type fIn (float_type x) const
 virtual input X transform
 
virtual float_type fInPrime (float_type x) const
 virtual input X transform derivative
 
virtual float_type fInDPrime (float_type x) const
 virtual input X transform second derivative
 
virtual float_type fOut (float_type x) const
 virtual output X transform
 

Public Attributes

const bool fTransformed
 flag to indicate if this transform is not the identity
 
const bool fHasStaticTransforms
 flag to indicate if the static function pointers can be used for efficiency
 
float_type(*const pIn )(float_type)
 non-virtual pointer to input X transform
 
float_type(*const pInPrime )(float_type)
 non-virtual pointer to input X transform derivative
 
float_type(*const pInDPrime )(float_type)
 non-virtual pointer to input X transform second derivative
 
float_type(*const pOut )(float_type)
 non-virtual pointer to output X transform
 

Static Protected Member Functions

static float_type report_error (float_type x)
 utility function for unimplemented conversion
 
static float_type ident (float_type x)
 utility function f(x)=x useful in axis transforms
 
static float_type one (float_type)
 utility function f(x)=1 useful in axis transforms
 
static float_type zero (float_type)
 utility function f(x)=0 useful in axis transforms
 
static float_type recip (float_type x)
 utility function f(x)=1/x useful in axis transforms
 
static float_type recip_prime (float_type x)
 utility function f(x)=-1/x**2 useful in axis transforms
 
static float_type recip_prime2 (float_type x)
 utility function f(x)=2/x**3 useful in axis transforms
 

Detailed Description

template<typename float_type>
class c2_transformation< float_type >

a transformation of a coordinate, including an inverse

Definition at line 1256 of file c2_function.hh.

View newest version in sPHENIX GitHub at line 1256 of file c2_function.hh

Constructor & Destructor Documentation

template<typename float_type>
c2_transformation< float_type >::c2_transformation ( bool  transformed,
float_type(*)(float_type)  xin,
float_type(*)(float_type)  xinp,
float_type(*)(float_type)  xinpp,
float_type(*)(float_type)  xout 
)
inline

initialize all our function pointers

Parameters
transformedtrue if this function is not the identity
xininput X transform
xinpinput X transform derivative
xinppinput X transform second derivative
xoutoutput X transform, which MUST be the inverse of xin

Definition at line 1264 of file c2_function.hh.

View newest version in sPHENIX GitHub at line 1264 of file c2_function.hh

template<typename float_type>
c2_transformation< float_type >::c2_transformation ( bool  transformed)
inline

initialize all our function pointers so that only the (overridden) virtual functions can be called without an error

Parameters
transformedtrue if this function is nonlinear

Definition at line 1276 of file c2_function.hh.

View newest version in sPHENIX GitHub at line 1276 of file c2_function.hh

template<typename float_type>
virtual c2_transformation< float_type >::~c2_transformation ( )
inlinevirtual

the destructor

Definition at line 1281 of file c2_function.hh.

View newest version in sPHENIX GitHub at line 1281 of file c2_function.hh

Member Function Documentation

template<typename float_type>
virtual float_type c2_transformation< float_type >::fIn ( float_type  x) const
inlinevirtual

virtual input X transform

Definition at line 1302 of file c2_function.hh.

View newest version in sPHENIX GitHub at line 1302 of file c2_function.hh

References c2_transformation< float_type >::pIn.

template<typename float_type>
virtual float_type c2_transformation< float_type >::fInDPrime ( float_type  x) const
inlinevirtual

virtual input X transform second derivative

Definition at line 1306 of file c2_function.hh.

View newest version in sPHENIX GitHub at line 1306 of file c2_function.hh

References c2_transformation< float_type >::pInDPrime.

template<typename float_type>
virtual float_type c2_transformation< float_type >::fInPrime ( float_type  x) const
inlinevirtual

virtual input X transform derivative

Definition at line 1304 of file c2_function.hh.

View newest version in sPHENIX GitHub at line 1304 of file c2_function.hh

References c2_transformation< float_type >::pInPrime.

template<typename float_type>
virtual float_type c2_transformation< float_type >::fOut ( float_type  x) const
inlinevirtual

virtual output X transform

Definition at line 1308 of file c2_function.hh.

View newest version in sPHENIX GitHub at line 1308 of file c2_function.hh

References c2_transformation< float_type >::pOut.

template<typename float_type>
static float_type c2_transformation< float_type >::ident ( float_type  x)
inlinestaticprotected

utility function f(x)=x useful in axis transforms

Definition at line 1316 of file c2_function.hh.

View newest version in sPHENIX GitHub at line 1316 of file c2_function.hh

References x.

template<typename float_type>
static float_type c2_transformation< float_type >::one ( float_type  )
inlinestaticprotected

utility function f(x)=1 useful in axis transforms

Definition at line 1318 of file c2_function.hh.

View newest version in sPHENIX GitHub at line 1318 of file c2_function.hh

template<typename float_type>
static float_type c2_transformation< float_type >::recip ( float_type  x)
inlinestaticprotected

utility function f(x)=1/x useful in axis transforms

Definition at line 1322 of file c2_function.hh.

View newest version in sPHENIX GitHub at line 1322 of file c2_function.hh

References x.

template<typename float_type>
static float_type c2_transformation< float_type >::recip_prime ( float_type  x)
inlinestaticprotected

utility function f(x)=-1/x**2 useful in axis transforms

Definition at line 1324 of file c2_function.hh.

View newest version in sPHENIX GitHub at line 1324 of file c2_function.hh

References x.

template<typename float_type>
static float_type c2_transformation< float_type >::recip_prime2 ( float_type  x)
inlinestaticprotected

utility function f(x)=2/x**3 useful in axis transforms

Definition at line 1326 of file c2_function.hh.

View newest version in sPHENIX GitHub at line 1326 of file c2_function.hh

References x.

template<typename float_type>
static float_type c2_transformation< float_type >::report_error ( float_type  x)
inlinestaticprotected

utility function for unimplemented conversion

Definition at line 1312 of file c2_function.hh.

View newest version in sPHENIX GitHub at line 1312 of file c2_function.hh

References x.

template<typename float_type>
static float_type c2_transformation< float_type >::zero ( float_type  )
inlinestaticprotected

utility function f(x)=0 useful in axis transforms

Definition at line 1320 of file c2_function.hh.

View newest version in sPHENIX GitHub at line 1320 of file c2_function.hh

Member Data Documentation

template<typename float_type>
const bool c2_transformation< float_type >::fHasStaticTransforms

flag to indicate if the static function pointers can be used for efficiency

Definition at line 1286 of file c2_function.hh.

View newest version in sPHENIX GitHub at line 1286 of file c2_function.hh

template<typename float_type>
const bool c2_transformation< float_type >::fTransformed

flag to indicate if this transform is not the identity

Definition at line 1283 of file c2_function.hh.

View newest version in sPHENIX GitHub at line 1283 of file c2_function.hh

template<typename float_type>
float_type(* const c2_transformation< float_type >::pIn)(float_type)

non-virtual pointer to input X transform

Note
the pointers to functions allow highly optimized access when static functions are available. They are only used inside value_with_derivatives(), which is assumed to be the most critical routine.

Definition at line 1293 of file c2_function.hh.

View newest version in sPHENIX GitHub at line 1293 of file c2_function.hh

Referenced by c2_transformation< float_type >::fIn().

template<typename float_type>
float_type(* const c2_transformation< float_type >::pInDPrime)(float_type)

non-virtual pointer to input X transform second derivative

Definition at line 1297 of file c2_function.hh.

View newest version in sPHENIX GitHub at line 1297 of file c2_function.hh

Referenced by c2_transformation< float_type >::fInDPrime().

template<typename float_type>
float_type(* const c2_transformation< float_type >::pInPrime)(float_type)

non-virtual pointer to input X transform derivative

Definition at line 1295 of file c2_function.hh.

View newest version in sPHENIX GitHub at line 1295 of file c2_function.hh

Referenced by c2_transformation< float_type >::fInPrime().

template<typename float_type>
float_type(* const c2_transformation< float_type >::pOut)(float_type)

non-virtual pointer to output X transform

Definition at line 1299 of file c2_function.hh.

View newest version in sPHENIX GitHub at line 1299 of file c2_function.hh

Referenced by c2_transformation< float_type >::fOut().


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