2 #ifndef HEPMC_HEAVY_ION_H
3 #define HEPMC_HEAVY_ION_H
56 m_spectator_neutrons(0),
57 m_spectator_protons(0),
58 m_N_Nwounded_collisions(0),
59 m_Nwounded_N_collisions(0),
60 m_Nwounded_Nwounded_collisions(0),
61 m_impact_parameter(0),
62 m_event_plane_angle(0),
68 HeavyIon(
int nh,
int np,
int nt,
int nc,
int ns,
int nsp,
69 int nnw=0,
int nwn=0,
int nwnw=0,
70 float im=0.,
float pl=0.,
float ec=0.,
float s=0. );
93 int Ncoll()
const {
return m_Ncoll; }
136 { m_Nwounded_Nwounded_collisions=i; }
151 int m_spectator_neutrons;
152 int m_spectator_protons;
153 int m_N_Nwounded_collisions;
154 int m_Nwounded_N_collisions;
155 int m_Nwounded_Nwounded_collisions;
156 float m_impact_parameter;
157 float m_event_plane_angle;
158 float m_eccentricity;
159 float m_sigma_inel_NN;
166 std::ostream & operator << (std::ostream &, HeavyIon
const *);
168 std::istream & operator >> (std::istream &, HeavyIon *);
179 int nnw,
int nwn,
int nwnw,
180 float im,
float pl,
float ec,
float s )
185 m_spectator_neutrons(ns),
186 m_spectator_protons(nsp),
187 m_N_Nwounded_collisions(nnw),
188 m_Nwounded_N_collisions(nwn),
189 m_Nwounded_Nwounded_collisions(nwnw),
190 m_impact_parameter(im),
191 m_event_plane_angle(pl),
197 : m_Ncoll_hard(orig.m_Ncoll_hard),
198 m_Npart_proj(orig.m_Npart_proj),
199 m_Npart_targ(orig.m_Npart_targ),
200 m_Ncoll(orig.m_Ncoll),
201 m_spectator_neutrons(orig.m_spectator_neutrons),
202 m_spectator_protons(orig.m_spectator_protons),
203 m_N_Nwounded_collisions(orig.m_N_Nwounded_collisions),
204 m_Nwounded_N_collisions(orig.m_Nwounded_N_collisions),
205 m_Nwounded_Nwounded_collisions(orig.m_Nwounded_Nwounded_collisions),
206 m_impact_parameter(orig.m_impact_parameter),
207 m_event_plane_angle(orig.m_event_plane_angle),
208 m_eccentricity(orig.m_eccentricity),
209 m_sigma_inel_NN(orig.m_sigma_inel_NN)
221 std::swap(m_Ncoll_hard, other.m_Ncoll_hard);
222 std::swap(m_Npart_proj, other.m_Npart_proj);
223 std::swap(m_Npart_targ, other.m_Npart_targ);
224 std::swap(m_Ncoll, other.m_Ncoll);
225 std::swap(m_N_Nwounded_collisions, other.m_N_Nwounded_collisions);
226 std::swap(m_Nwounded_N_collisions, other.m_Nwounded_N_collisions);
227 std::swap(m_Nwounded_Nwounded_collisions, other.m_Nwounded_Nwounded_collisions);
228 std::swap(m_spectator_neutrons, other.m_spectator_neutrons);
229 std::swap(m_spectator_protons, other.m_spectator_protons);
230 std::swap(m_impact_parameter, other.m_impact_parameter);
231 std::swap(m_event_plane_angle, other.m_event_plane_angle);
232 std::swap(m_eccentricity, other.m_eccentricity);
233 std::swap(m_sigma_inel_NN, other.m_sigma_inel_NN);
257 return !( a == *this );
262 if( m_Ncoll_hard != 0 )
return true;
263 if( m_Npart_proj != 0 )
return true;
264 if( m_Npart_targ != 0 )
return true;
265 if( m_Ncoll != 0 )
return true;
266 if( m_spectator_neutrons != 0 )
return true;
267 if( m_spectator_protons != 0 )
return true;
268 if( m_N_Nwounded_collisions != 0 )
return true;
269 if( m_Nwounded_N_collisions != 0 )
return true;
270 if( m_Nwounded_Nwounded_collisions != 0 )
return true;
271 if( m_impact_parameter != 0 )
return true;
272 if( m_event_plane_angle != 0 )
return true;
273 if( m_eccentricity != 0 )
return true;
274 if( m_sigma_inel_NN != 0 )
return true;
280 #endif // HEPMC_HEAVY_ION_H
void set_N_Nwounded_collisions(const int &i)
set number of N-Nwounded collisions
float impact_parameter() const
Impact Parameter(in fm) of collision.
void set_Nwounded_Nwounded_collisions(const int &i)
set number of Nwounded-Nwounded collisions
float event_plane_angle() const
Azimuthal angle of event plane.
void set_impact_parameter(const float &f)
set Impact Parameter in fm
void set_Npart_proj(const int &i)
set number of projectile participants
bool operator==(const HeavyIon &) const
check for equality
int Npart_targ() const
Number of target participants.
void set_sigma_inel_NN(const float &f)
set nucleon-nucleon inelastic cross-section
bool operator!=(const HeavyIon &) const
check for inequality
void set_event_plane_angle(const float &f)
set azimuthal angle of event plane
void set_Npart_targ(const int &i)
set number of target participants
void set_Ncoll(const int &i)
set number of NN (nucleon-nucleon) collisions
int N_Nwounded_collisions() const
Number of N-Nwounded collisions.
bool is_valid() const
verify that the instance contains non-zero information
int Ncoll_hard() const
Number of hard scatterings.
int Ncoll() const
Number of NN (nucleon-nucleon) collisions.
void set_eccentricity(const float &f)
set eccentricity of participating nucleons in the transverse plane
HeavyIon & operator=(HeavyIon const &rhs)
make a copy
float eccentricity() const
int spectator_neutrons() const
Number of spectator neutrons.
int Npart_proj() const
Number of projectile participants.
void set_Ncoll_hard(const int &i)
set number of hard scatterings
void swap(HeavyIon &other)
swap two HeavyIon objects
int spectator_protons() const
Number of spectator protons.
HeavyIon()
default constructor
int Nwounded_Nwounded_collisions() const
Number of Nwounded-Nwounded collisions.
int Nwounded_N_collisions() const
Number of Nwounded-N collisons.
The HeavyIon class stores information about heavy ions.
void set_Nwounded_N_collisions(const int &i)
set number of Nwounded-N collisons
void set_spectator_neutrons(const int &i)
set number of spectator neutrons
float sigma_inel_NN() const
nucleon-nucleon inelastic (including diffractive) cross-section
void set_spectator_protons(const int &i)
set number of spectator protons