4 #include <boost/numeric/ublas/matrix.hpp>
12 # define PS_Dim MomentState::maxsize // Set to 7; to include orbit.
39 const double Stripper_IonZ_default = 78.0/238.0,
40 Stripper_IonMass_default = 238.0,
41 Stripper_IonProton_default = 92.0,
43 Stripper_E1Para_default = 2.8874e-3,
45 Stripper_lambda_default = 5.5740,
47 Stripper_upara_default = 2.6903,
49 Stripper_Para_default[] = {3.0, 20.0, 16.623e6},
51 Stripper_E0Para_default[] = {16.348e6, 1.00547, -0.10681};
57 typedef ElementStripper self_t;
59 typedef typename base_t::state_t
state_t;
74 std::vector<double> Stripper_Para, Stripper_E0Para;
77 ElementStripper(
const Config& c)
82 virtual ~ElementStripper() {}
88 virtual const char*
type_name()
const {
return "stripper";}
90 void StripperCharge(
const double beta,
double &Q_ave,
double &d);
91 void ChargeStripper(
const double beta,
const std::vector<double>& ChgState, std::vector<double>& chargeAmount_Baron);
92 void Stripper_Propagate_ref(
Particle &ref);
96 #endif // CHG_STRIPPER_H
Base class for all simulated elements.
double length
Longitudual length of this element (added to StateBase::pos)
virtual const char * type_name() const =0
The abstract base class for all simulation state objects.
virtual void advance(StateBase &s)
Propogate the given State through this Element.
Associative configuration container.
virtual void assign(const ElementVoid *other)=0
An Element which propagates the statistical moments of a bunch.