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 28 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
 
bool enableCompileConstants () 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 resolvedParameter (const IExpression *param) const
 
void clear ()
 
std::map< const IExpression *, std::string > parameters () const
 
std::vector< ParameterunresolvedParameters () const
 
template<>
void resolve (const Parameter &obj)
 
template<>
void resolve (const SubTree &obj)
 
template<>
void resolve (const Spline &obj)
 
template<>
void resolve (const MinuitParameterLink &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 35 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.

◆ enableCompileConstants()

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

Definition at line 46 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 55 of file ASTResolver.h.

◆ resolve() [1/6]

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

◆ resolve() [2/6]

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

◆ resolve() [3/6]

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

◆ resolve() [4/6]

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

◆ resolve() [5/6]

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

◆ resolve() [6/6]

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

Definition at line 34 of file ASTResolver.h.

◆ resolvedParameter()

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

◆ setEnableAVX()

void AmpGen::ASTResolver::setEnableAVX ( )
inline

Definition at line 47 of file ASTResolver.h.

◆ unresolvedParameters()

std::vector< Parameter > AmpGen::ASTResolver::unresolvedParameters ( ) const
inline

Definition at line 56 of file ASTResolver.h.


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