1 #ifndef ExprAlgo_AlgoPos_h
2 #define ExprAlgo_AlgoPos_h
66 void stream(std::ostream & os)
const;
base class for generated checking code for algorithm parameters.
AlgoImpl * selAlgo_
selected algorithm implementation
bool select()
selection of one of the registered AlgoImpl
class for algorithmic positioning, represents an algorithm
int curr_
current position in the range of the algorithm
void checkTermination()
for algorithms with incr_==0 the algorithm must check whether to terminate
void stream(std::ostream &os) const
streams some information about common parameters and the name of the algorithm
size_t numRegistered()
return number of registered implementations
int copyno() const
copy-number calculation
std::map< std::string, std::vector< std::string > > parS_type
void setParameters(int start, int end, int incr, const parS_type &, const parE_type &)
sets mandatory and optional parameters
std::vector< AlgoImpl * > regAlgos_
registry of algorithm implementation objects
void terminate()
terminates current algorithmic processing
AlgoPos(AlgoCheck *check=0)
creates an algorithm named name
void next()
update for next iteration of the algorithm, don't call it yourself!
int count_
invocation count
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DD3Vector
A DD Translation is currently implemented with Root Vector3D.
bool check(const std::string &)
DDRotationMatrix rotation()
rotation calculations
const parE_type & parE() const
implementation of an algorithm, non generated checking code.
~AlgoPos()
destructor clears registered AlgoImpl
int start_
range of the algorithm
parS_type ParS_
std::string valued parameters passed to the algorithm
const parS_type & parS() const
bool terminate_
flag to signal whether the algorithm has finished (true)
std::map< std::string, std::vector< double > > parE_type
parE_type ParE_
double valued parameters passed to the algorithm
void registerAlgo(AlgoImpl *)
registers an implementation of the algorithm
bool go() const
no further algorithm processing if go() returns false
DD3Vector translation()
translation calculations
ROOT::Math::Rotation3D DDRotationMatrix
A DDRotationMatrix is currently implemented with a ROOT Rotation3D.
AlgoCheck * checkAlgo_
checking object which checks the user-supplied parameters whether they fulfill their spec...
std::string err_
std::string to hold potential error messages found inside checkParameters()