19 <<
" time=" <<
time <<
'\n';
25 Ifile <<
"point is outside universe\n";
34 Ifile <<
"next volume name " << s <<
'\n';
45 mfunname(
"gparticle::gparticle(...)");
79 "too many zero steps, possible infinite loop\n",
mcerr);
113 pvecerror(
"stvpoint gparticle::calc_step_to_bord()");
121 curvature(curved, relcen, mrange, m_max_straight_arange);
131 trajestep ts(m_max_range, m_rad_for_straight,
132 m_max_straight_arange, m_max_circ_arange,
155 mfunname(
"stvpoint gparticle::switch_new_vol(void)");
167 nextp.
tid.
eid[0]->m_find_embed_vol(pth, nextp.
dir, &tidl);
168 if (tidl.
eid.empty()) {
174 if (tidl == nextp.
tid) {
181 vec additional_dist = nextp.
dir * curprec;
182 pth = pth + additional_dist;
204 Ifile <<
"origin point:\n";
210 Ifile <<
"previous point:\n";
216 Ifile <<
"current point:\n";
222 Ifile <<
"next point:\n";
#define check_econd12a(a, sign, b, add, stream)
virtual int range(trajestep &fts, int s_ext, int &sb, manip_absvol *&faeid) const
virtual void print(std::ostream &file, int l) const
Print-out.
virtual void physics_mrange(double &fmrange)
virtual void physics_after_new_speed(std::vector< gparticle * > &)
Apply any other processes (turn the trajectory, kill the particle, ...).
stvpoint m_nextpos
Next point.
double m_total_range_from_origin
Range from origin to current position.
virtual stvpoint calc_step_to_bord()
Determine next position.
stvpoint m_prevpos
Previous point.
static constexpr long m_max_qzero_step
Max. number of zero-steps allowed.
virtual void step(std::vector< gparticle * > &secondaries)
gparticle()=default
Default constructor.
stvpoint m_currpos
Current point.
virtual void change_vol()
Move from one volume to another.
stvpoint switch_new_vol()
Generate next position in new volume.
long m_nzero_step
Number of previous steps with zero range (including this step).
stvpoint m_origin
Original point.
bool m_alive
Status flag whether the particle is active.
virtual void curvature(bool &curved, vec &frelcen, vfloat &fmrange, vfloat prec)
Service class (array of manip_absvol).
void print(std::ostream &file, int l) const
void up_absref(absref *f)
std::vector< manip_absvol * > eid
List of volumes.
absvol * G_lavol() const
Get last address of volume.
Abstract base classs for volume "manipulators".
void m_chname(char *nm) const
virtual int m_find_embed_vol(const point &fpt, const vec &fdir, manip_absvol_treeid *atid) const
Point in space, time and velocity.
void print(std::ostream &file, int l) const
vec dirloc
Unit vector, in the local system (last system in the tree).
vec dir
Unit vector, in the first system in the tree.
vfloat prange
Range from previous point.
vfloat speed
Longitudinal velocity.
point pt
Coordinates in the first system in the tree.
point ptloc
Coordinates in the local system (last system in the tree).
vfloat mrange
Maximal possible range.
#define pvecerror(string)