1 #ifndef OPAL_ORBITTHREADER_H
2 #define OPAL_ORBITTHREADER_H
30 IndexMap::key_t::second_type length);
33 double position)
const;
95 IndexMap::key_t::second_type length) {
101 double position)
const {
const size_t maxIntegSteps_m
the number of time steps to track
value_t query(key_t::first_type s, key_t::second_type ds)
size_t loggingFrequency_m
void autophaseCavities(const IndexMap::value_t &activeSet, const std::set< std::string > &visitedElements)
double getMaxDesignEnergy(const IndexMap::value_t &elementSet) const
Vector_t p_m
momentum of reference particle
void trackBack(double maxDrift)
std::list< ClassicField > FieldList
void setDesignEnergy(FieldList &allElements, const std::set< std::string > &visitedElements)
Vector_t r_m
position of reference particle in lab coordinates
const PartData & reference_m
std::multimap< std::string, elementPosition > elementRegistry_m
void registerElement(const IndexMap::value_t &elementSet, double, const Vector_t &r, const Vector_t &p)
IndexMap::value_t getTouchingElements(const std::pair< double, double > &range)
double computeMaximalImplicitDrift()
void processElementRegister()
OpalBeamline & itsOpalBeamline_m
const double zstop_m
final position in path length
double time_m
the simulated time
OrbitThreader(const PartData &ref, const Vector_t &r, const Vector_t &p, double s, double maxDiffZBunch, double t, double dT, size_t maxIntegSteps, double zstop, OpalBeamline &bl)
IndexMap::value_t query(IndexMap::key_t::first_type step, IndexMap::key_t::second_type length)
bool containsCavity(const IndexMap::value_t &activeSet)
T * value_type(const SliceIterator< T > &)
void integrate(const IndexMap::value_t &activeSet, size_t maxSteps, double maxDrift=10.0)
std::pair< double, double > getRange(const IndexMap::value_t::value_type &element, double position) const
std::pair< double, double > getRange(const IndexMap::value_t::value_type &element, double position) const
double pathLength_m
position of reference particle in path length
bool operator()(const elementPosition &a, const elementPosition &b) const
IndexMap::value_t getTouchingElements(const std::pair< double, double > &range)
std::set< std::shared_ptr< Component > > value_t