hepmc - Blame information for rev 31
Subversion Repositories:
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 10 | garren | 1 | //-------------------------------------------------------------------------- |
| 2 | #ifndef HEPMC_HEAVY_ION_H | ||
| 3 | #define HEPMC_HEAVY_ION_H | ||
| 4 | |||
| 5 | ////////////////////////////////////////////////////////////////////////// | ||
| 13 | garren | 6 | // garren@fnal.gov, February 2006 |
| 10 | garren | 7 | // |
| 8 | // Additional information storage for Heavy Ion generators | ||
| 9 | ////////////////////////////////////////////////////////////////////////// | ||
| 10 | // | ||
| 15 | garren | 11 | // int Ncoll_hard // Number of hard scatterings |
| 12 | // int Npart_proj // Number of projectile participants | ||
| 13 | // int Npart_targ // Number of target participants | ||
| 14 | // int Ncoll // Number of NN (nucleon-nucleon) collisions | ||
| 15 | // int N_Nwounded_collisions // Number of N-Nwounded collisions | ||
| 16 | // int Nwounded_N_collisions // Number of Nwounded-N collisons | ||
| 17 | // int Nwounded_Nwounded_collisions // Number of Nwounded-Nwounded collisions | ||
| 18 | // int spectator_neutrons // Number of spectators neutrons | ||
| 19 | // int spectator_protons // Number of spectators protons | ||
| 20 | // float impact_parameter // Impact Parameter(fm) of collision | ||
| 21 | // float event_plane_angle // Azimuthal angle of event plane | ||
| 22 | // float eccentricity // eccentricity of participating nucleons | ||
| 23 | // in the transverse plane | ||
| 24 | // (as in phobos nucl-ex/0510031) | ||
| 25 | // float sigma_inel_NN // nucleon-nucleon inelastic | ||
| 26 | // (including diffractive) cross-section | ||
| 10 | garren | 27 | // |
| 28 | ////////////////////////////////////////////////////////////////////////// | ||
| 15 | garren | 29 | // Feb. 17, 2006: adjust names according to suggestions from Heavy Ion users |
| 30 | // Feb. 7, 2006: first pass at making method names consistent with existing | ||
| 31 | // HepMC code | ||
| 13 | garren | 32 | ////////////////////////////////////////////////////////////////////////// |
| 10 | garren | 33 | |
| 34 | namespace HepMC { | ||
| 35 | |||
| 36 | class HeavyIon { | ||
| 37 | |||
| 38 | public: | ||
| 39 | // --- birth/death: | ||
| 40 | // | ||
| 41 | HeavyIon() | ||
| 15 | garren | 42 | : m_Ncoll_hard(0), |
| 43 | m_Npart_proj(0), | ||
| 44 | m_Npart_targ(0), | ||
| 45 | m_Ncoll(0), | ||
| 46 | m_spectator_neutrons(0), | ||
| 47 | m_spectator_protons(0), | ||
| 13 | garren | 48 | m_N_Nwounded_collisions(0), |
| 49 | m_Nwounded_N_collisions(0), | ||
| 50 | m_Nwounded_Nwounded_collisions(0), | ||
| 51 | m_impact_parameter(0), | ||
| 15 | garren | 52 | m_event_plane_angle(0), |
| 53 | m_eccentricity(0), | ||
| 54 | m_sigma_inel_NN(0) | ||
| 10 | garren | 55 | {} |
| 56 | |||
| 15 | garren | 57 | inline HeavyIon( int nh, int np, int nt, int nc, int ns, int nsp, |
| 58 | int nnw, int nwn, int nwnw, | ||
| 59 | float im, float pl, float ec, float s ); | ||
| 60 | |||
| 10 | garren | 61 | ~HeavyIon() {} |
| 62 | |||
| 63 | // --- copying: | ||
| 64 | // | ||
| 65 | inline HeavyIon( HeavyIon const & orig ); | ||
| 66 | inline HeavyIon & operator = ( HeavyIon const & rhs ); | ||
| 67 | inline void swap( HeavyIon & other ); | ||
| 68 | |||
| 69 | // --- equivalence: | ||
| 70 | // | ||
| 71 | inline bool operator==( const HeavyIon& ) const; | ||
| 72 | inline bool operator!=( const HeavyIon& ) const; | ||
| 73 | |||
| 74 | // --- accessors: | ||
| 15 | garren | 75 | int Ncoll_hard() const { return m_Ncoll_hard; } |
| 76 | int Npart_proj() const { return m_Npart_proj; } | ||
| 77 | int Npart_targ() const { return m_Npart_targ; } | ||
| 78 | int Ncoll() const { return m_Ncoll; } | ||
| 79 | int spectator_neutrons() const { return m_spectator_neutrons; } | ||
| 80 | int spectator_protons() const { return m_spectator_protons; } | ||
| 13 | garren | 81 | int N_Nwounded_collisions() const { return m_N_Nwounded_collisions; } |
| 82 | int Nwounded_N_collisions() const { return m_Nwounded_N_collisions; } | ||
| 83 | int Nwounded_Nwounded_collisions() const { return m_Nwounded_Nwounded_collisions; } | ||
| 84 | float impact_parameter() const { return m_impact_parameter; } | ||
| 85 | float event_plane_angle() const { return m_event_plane_angle; } | ||
| 15 | garren | 86 | float eccentricity() const { return m_eccentricity; } |
| 87 | float sigma_inel_NN() const { return m_sigma_inel_NN; } | ||
| 10 | garren | 88 | |
| 89 | // --- mutators: | ||
| 15 | garren | 90 | void set_Ncoll_hard(const int &i) { m_Ncoll_hard=i; } |
| 91 | void set_Npart_proj(const int &i) { m_Npart_proj=i; } | ||
| 92 | void set_Npart_targ(const int &i) { m_Npart_targ=i; } | ||
| 93 | void set_Ncoll(const int &i) { m_Ncoll=i; } | ||
| 94 | void set_spectator_neutrons(const int &i) { m_spectator_neutrons=i; } | ||
| 95 | void set_spectator_protons(const int &i) { m_spectator_protons=i; } | ||
| 13 | garren | 96 | void set_N_Nwounded_collisions(const int &i) { m_N_Nwounded_collisions=i; } |
| 97 | void set_Nwounded_N_collisions(const int &i) { m_Nwounded_N_collisions=i; } | ||
| 98 | void set_Nwounded_Nwounded_collisions(const int &i) | ||
| 99 | { m_Nwounded_Nwounded_collisions=i; } | ||
| 100 | void set_impact_parameter(const float &f) { m_impact_parameter=f; } | ||
| 101 | void set_event_plane_angle(const float &f) { m_event_plane_angle=f; } | ||
| 15 | garren | 102 | void set_eccentricity(const float &f) { m_eccentricity=f; } |
| 103 | void set_sigma_inel_NN(const float &f) { m_sigma_inel_NN=f; } | ||
| 10 | garren | 104 | |
| 105 | private: // data members | ||
| 15 | garren | 106 | int m_Ncoll_hard; |
| 107 | int m_Npart_proj; | ||
| 108 | int m_Npart_targ; | ||
| 109 | int m_Ncoll; | ||
| 110 | int m_spectator_neutrons; | ||
| 111 | int m_spectator_protons; | ||
| 13 | garren | 112 | int m_N_Nwounded_collisions; |
| 113 | int m_Nwounded_N_collisions; | ||
| 114 | int m_Nwounded_Nwounded_collisions; | ||
| 115 | float m_impact_parameter; | ||
| 116 | float m_event_plane_angle; | ||
| 15 | garren | 117 | float m_eccentricity; |
| 118 | float m_sigma_inel_NN; | ||
| 10 | garren | 119 | |
| 120 | }; | ||
| 121 | |||
| 122 | // inline operators | ||
| 15 | garren | 123 | HeavyIon::HeavyIon( int nh, int np, int nt, int nc, int ns, int nsp, |
| 124 | int nnw=0, int nwn=0, int nwnw=0, | ||
| 125 | float im=0., float pl=0., float ec=0., float s=0. ) | ||
| 126 | : m_Ncoll_hard(nh), | ||
| 127 | m_Npart_proj(np), | ||
| 128 | m_Npart_targ(nt), | ||
| 129 | m_Ncoll(nc), | ||
| 130 | m_spectator_neutrons(ns), | ||
| 131 | m_spectator_protons(nsp), | ||
| 132 | m_N_Nwounded_collisions(nnw), | ||
| 133 | m_Nwounded_N_collisions(nwn), | ||
| 134 | m_Nwounded_Nwounded_collisions(nwnw), | ||
| 135 | m_impact_parameter(im), | ||
| 136 | m_event_plane_angle(pl), | ||
| 137 | m_eccentricity(ec), | ||
| 138 | m_sigma_inel_NN(s) | ||
| 139 | {} | ||
| 140 | |||
| 10 | garren | 141 | HeavyIon::HeavyIon( HeavyIon const & orig ) |
| 15 | garren | 142 | : m_Ncoll_hard(orig.m_Ncoll_hard), |
| 143 | m_Npart_proj(orig.m_Npart_proj), | ||
| 144 | m_Npart_targ(orig.m_Npart_targ), | ||
| 145 | m_Ncoll(orig.m_Ncoll), | ||
| 146 | m_spectator_neutrons(orig.m_spectator_neutrons), | ||
| 147 | m_spectator_protons(orig.m_spectator_protons), | ||
| 13 | garren | 148 | m_N_Nwounded_collisions(orig.m_N_Nwounded_collisions), |
| 149 | m_Nwounded_N_collisions(orig.m_Nwounded_N_collisions), | ||
| 150 | m_Nwounded_Nwounded_collisions(orig.m_Nwounded_Nwounded_collisions), | ||
| 14 | garren | 151 | m_impact_parameter(orig.m_impact_parameter), |
| 15 | garren | 152 | m_event_plane_angle(orig.m_event_plane_angle), |
| 153 | m_eccentricity(orig.m_eccentricity), | ||
| 154 | m_sigma_inel_NN(orig.m_sigma_inel_NN) | ||
| 10 | garren | 155 | {} |
| 156 | |||
| 157 | HeavyIon & HeavyIon::operator = ( HeavyIon const & rhs ) | ||
| 158 | { | ||
| 159 | HeavyIon temp( rhs ); | ||
| 160 | swap( temp ); | ||
| 161 | return *this; | ||
| 162 | } | ||
| 163 | |||
| 164 | void HeavyIon::swap( HeavyIon & other ) | ||
| 165 | { | ||
| 15 | garren | 166 | std::swap(m_Ncoll_hard, other.m_Ncoll_hard); |
| 167 | std::swap(m_Npart_proj, other.m_Npart_proj); | ||
| 168 | std::swap(m_Npart_targ, other.m_Npart_targ); | ||
| 169 | std::swap(m_Ncoll, other.m_Ncoll); | ||
| 13 | garren | 170 | std::swap(m_N_Nwounded_collisions, other.m_N_Nwounded_collisions); |
| 171 | std::swap(m_Nwounded_N_collisions, other.m_Nwounded_N_collisions); | ||
| 172 | std::swap(m_Nwounded_Nwounded_collisions, other.m_Nwounded_Nwounded_collisions); | ||
| 173 | std::swap(m_spectator_neutrons, other.m_spectator_neutrons); | ||
| 174 | std::swap(m_spectator_protons, other.m_spectator_protons); | ||
| 175 | std::swap(m_impact_parameter, other.m_impact_parameter); | ||
| 176 | std::swap(m_event_plane_angle, other.m_event_plane_angle); | ||
| 15 | garren | 177 | std::swap(m_eccentricity, other.m_eccentricity); |
| 178 | std::swap(m_sigma_inel_NN, other.m_sigma_inel_NN); | ||
| 10 | garren | 179 | } |
| 180 | |||
| 181 | bool HeavyIon::operator==( const HeavyIon& a ) const | ||
| 182 | { | ||
| 15 | garren | 183 | return ( a.Ncoll_hard() == this->Ncoll_hard() |
| 184 | && a.Npart_proj() == this->Npart_proj() | ||
| 185 | && a.Npart_targ() == this->Npart_targ() | ||
| 186 | && a.Ncoll() == this->Ncoll() | ||
| 13 | garren | 187 | && a.N_Nwounded_collisions() == this->N_Nwounded_collisions() |
| 188 | && a.Nwounded_N_collisions() == this->Nwounded_N_collisions() | ||
| 189 | && a.Nwounded_Nwounded_collisions() == this->Nwounded_Nwounded_collisions() | ||
| 190 | && a.spectator_neutrons() == this->spectator_neutrons() | ||
| 191 | && a.spectator_protons() == this->spectator_protons() | ||
| 192 | && a.impact_parameter() == this->impact_parameter() | ||
| 15 | garren | 193 | && a.event_plane_angle() == this->event_plane_angle() |
| 194 | && a.eccentricity() == this->eccentricity() | ||
| 195 | && a.sigma_inel_NN() == this->sigma_inel_NN() ); | ||
| 10 | garren | 196 | } |
| 197 | |||
| 198 | bool HeavyIon::operator!=( const HeavyIon& a ) const | ||
| 199 | { | ||
| 200 | return !( a == *this ); | ||
| 201 | } | ||
| 202 | |||
| 203 | } // HepMC | ||
| 204 | |||
| 205 | #endif // HEPMC_HEAVY_ION_H |
