22 #ifndef OPAL_ORBITTHREADER_H
23 #define OPAL_ORBITTHREADER_H
54 double position)
const;
129 double position)
const {
T * value_type(const SliceIterator< T > &)
std::list< ClassicField > FieldList
std::set< std::shared_ptr< Component > > value_t
value_t getTouchingElements(const key_t &range) const
key_t getRange(const IndexMap::value_t::value_type &element, double position) const
value_t query(key_t::first_type s, key_t::second_type ds)
void processElementRegister()
void updateBoundingBoxWithCurrentPosition()
void setDesignEnergy(FieldList &allElements, const std::set< std::string > &visitedElements)
IndexMap::value_t query(IndexMap::key_t::first_type step, IndexMap::key_t::second_type length)
double time_m
the simulated time
OpalBeamline & itsOpalBeamline_m
std::multimap< std::string, elementPosition > elementRegistry_m
Vector_t r_m
position of reference particle in lab coordinates
const PartData & reference_m
Vector_t p_m
momentum of reference particle
bool containsCavity(const IndexMap::value_t &activeSet)
void integrate(const IndexMap::value_t &activeSet, double maxDrift=10.0)
OrbitThreader(const PartData &ref, const Vector_t &r, const Vector_t &p, double s, double maxDiffZBunch, double t, double dT, StepSizeConfig stepSizes, OpalBeamline &bl)
StepSizeConfig stepSizes_m
final position in path length
ElementBase::BoundingBox globalBoundingBox_m
double computeDriftLengthToBoundingBox(const std::set< std::shared_ptr< Component >> &elements, const Vector_t &position, const Vector_t &direction) const
void checkElementLengths(const std::set< std::shared_ptr< Component >> &elements)
double getMaxDesignEnergy(const IndexMap::value_t &elementSet) const
IndexMap::value_t getTouchingElements(const IndexMap::key_t &range) const
IndexMap::key_t getRange(const IndexMap::value_t::value_type &element, double position) const
void registerElement(const IndexMap::value_t &elementSet, double, const Vector_t &r, const Vector_t &p)
double pathLength_m
position of reference particle in path length
void autophaseCavities(const IndexMap::value_t &activeSet, const std::set< std::string > &visitedElements)
void computeBoundingBox()
size_t loggingFrequency_m
bool operator()(const elementPosition &a, const elementPosition &b) const