AmpGen 2.1
Loading...
Searching...
No Matches
AmpGen::ASTResolver Class Reference

Detailed Description

Traverses trees in IExpression::resolve() to keep track of the dependencies of the tree such as sub-trees, external parameters and the mapping between particle kinematics and the event vector.

Definition at line 30 of file ASTResolver.h.

Public Member Functions

 ASTResolver (const std::map< std::string, unsigned > &evtMap={}, const MinuitParameterSet *mps=nullptr)
std::vector< std::pair< uint64_t, Expression > > getOrderedSubExpressions (const Expression &expression)
template<class TYPE>
void resolve (const TYPE &obj)
template<class TYPE, class... ARGS>
size_t addCacheFunction (const std::string &name, const ARGS &...args)
size_t nParams () const
bool enableCuda () const
bool enableAVX () const
void setEnableAVX ()
std::map< std::string, std::shared_ptr< CacheTransfer > > cacheFunctions () const
void addResolvedParameter (const IExpression *param, const std::string &thing)
void addResolvedParameter (const IExpression *param, const size_t &address, const size_t &arg=0)
std::string resolvedVariable (const IExpression *param) const
void clear ()
std::map< const IExpression *, std::string > parameters () const
std::vector< VariableunresolvedVariables () const
template<>
void resolve (const Variable &obj)
template<>
void resolve (const SubTree &obj)
template<>
void resolve (const Spline &obj)
template<>
void resolve (const MinuitProxy &obj)
template<>
void resolve (const LambdaExpression &obj)

Constructor & Destructor Documentation

◆ ASTResolver()

AmpGen::ASTResolver::ASTResolver ( const std::map< std::string, unsigned > & evtMap = {},
const MinuitParameterSet * mps = nullptr )

Member Function Documentation

◆ addCacheFunction()

template<class TYPE, class... ARGS>
size_t AmpGen::ASTResolver::addCacheFunction ( const std::string & name,
const ARGS &... args )
inline

Definition at line 36 of file ASTResolver.h.

◆ addResolvedParameter() [1/2]

void AmpGen::ASTResolver::addResolvedParameter ( const IExpression * param,
const size_t & address,
const size_t & arg = 0 )

◆ addResolvedParameter() [2/2]

void AmpGen::ASTResolver::addResolvedParameter ( const IExpression * param,
const std::string & thing )

◆ cacheFunctions()

std::map< std::string, std::shared_ptr< CacheTransfer > > AmpGen::ASTResolver::cacheFunctions ( ) const

◆ clear()

void AmpGen::ASTResolver::clear ( )

◆ enableAVX()

bool AmpGen::ASTResolver::enableAVX ( ) const
inline

Definition at line 45 of file ASTResolver.h.

◆ enableCuda()

bool AmpGen::ASTResolver::enableCuda ( ) const
inline

Definition at line 44 of file ASTResolver.h.

◆ getOrderedSubExpressions()

std::vector< std::pair< uint64_t, Expression > > AmpGen::ASTResolver::getOrderedSubExpressions ( const Expression & expression)

◆ nParams()

size_t AmpGen::ASTResolver::nParams ( ) const
inline

Definition at line 43 of file ASTResolver.h.

◆ parameters()

std::map< const IExpression *, std::string > AmpGen::ASTResolver::parameters ( ) const
inline

Definition at line 54 of file ASTResolver.h.

◆ resolve() [1/6]

template<>
void AmpGen::ASTResolver::resolve ( const LambdaExpression & obj)

◆ resolve() [2/6]

template<>
void AmpGen::ASTResolver::resolve ( const MinuitProxy & obj)

◆ resolve() [3/6]

template<>
void AmpGen::ASTResolver::resolve ( const Spline & obj)

◆ resolve() [4/6]

template<>
void AmpGen::ASTResolver::resolve ( const SubTree & obj)

◆ resolve() [5/6]

template<class TYPE>
void AmpGen::ASTResolver::resolve ( const TYPE & obj)
inline

Definition at line 35 of file ASTResolver.h.

◆ resolve() [6/6]

template<>
void AmpGen::ASTResolver::resolve ( const Variable & obj)

◆ resolvedVariable()

std::string AmpGen::ASTResolver::resolvedVariable ( const IExpression * param) const

◆ setEnableAVX()

void AmpGen::ASTResolver::setEnableAVX ( )
inline

Definition at line 46 of file ASTResolver.h.

◆ unresolvedVariables()

std::vector< Variable > AmpGen::ASTResolver::unresolvedVariables ( ) const
inline

Definition at line 55 of file ASTResolver.h.


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