Geant4 Cross Reference |
1 // 1 // 2 // ******************************************* 2 // ******************************************************************** 3 // * License and Disclaimer 3 // * License and Disclaimer * 4 // * 4 // * * 5 // * The Geant4 software is copyright of th 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/ 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. 9 // * include a list of copyright holders. * 10 // * 10 // * * 11 // * Neither the authors of this software syst 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing fin 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warran 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assum 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitatio 16 // * for the full disclaimer and the limitation of liability. * 17 // * 17 // * * 18 // * This code implementation is the result 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboratio 19 // * technical work of the GEANT4 collaboration. * 20 // * By using, copying, modifying or distri 20 // * By using, copying, modifying or distributing the software (or * 21 // * any work based on the software) you ag 21 // * any work based on the software) you agree to acknowledge its * 22 // * use in resulting scientific publicati 22 // * use in resulting scientific publications, and indicate your * 23 // * acceptance of all terms of the Geant4 Sof 23 // * acceptance of all terms of the Geant4 Software license. * 24 // ******************************************* 24 // ******************************************************************** 25 // 25 // 26 // INCL++ intra-nuclear cascade model 26 // INCL++ intra-nuclear cascade model 27 // Alain Boudard, CEA-Saclay, France 27 // Alain Boudard, CEA-Saclay, France 28 // Joseph Cugnon, University of Liege, Belgium 28 // Joseph Cugnon, University of Liege, Belgium 29 // Jean-Christophe David, CEA-Saclay, France 29 // Jean-Christophe David, CEA-Saclay, France 30 // Pekka Kaitaniemi, CEA-Saclay, France, and H 30 // Pekka Kaitaniemi, CEA-Saclay, France, and Helsinki Institute of Physics, Finland 31 // Sylvie Leray, CEA-Saclay, France 31 // Sylvie Leray, CEA-Saclay, France 32 // Davide Mancusi, CEA-Saclay, France 32 // Davide Mancusi, CEA-Saclay, France 33 // 33 // 34 #define INCLXX_IN_GEANT4_MODE 1 34 #define INCLXX_IN_GEANT4_MODE 1 35 35 36 #include "globals.hh" 36 #include "globals.hh" 37 37 38 /** \file G4INCLEventInfo.hh 38 /** \file G4INCLEventInfo.hh 39 * \brief Simple container for output of event 39 * \brief Simple container for output of event results. 40 * 40 * 41 * Contains the results of an INCL cascade. 41 * Contains the results of an INCL cascade. 42 * 42 * 43 * \date 21 January 2011 43 * \date 21 January 2011 44 * \author Davide Mancusi 44 * \author Davide Mancusi 45 */ 45 */ 46 46 47 #ifndef G4INCLEVENTINFO_HH_HH 47 #ifndef G4INCLEVENTINFO_HH_HH 48 #define G4INCLEVENTINFO_HH_HH 1 48 #define G4INCLEVENTINFO_HH_HH 1 49 49 50 #include "G4INCLParticleType.hh" 50 #include "G4INCLParticleType.hh" 51 #ifdef INCL_ROOT_USE 51 #ifdef INCL_ROOT_USE 52 #include <Rtypes.h> 52 #include <Rtypes.h> 53 #endif 53 #endif 54 #include <string> 54 #include <string> 55 #include <vector> 55 #include <vector> 56 #include <algorithm> 56 #include <algorithm> 57 57 58 namespace G4INCL { 58 namespace G4INCL { 59 #ifndef INCL_ROOT_USE 59 #ifndef INCL_ROOT_USE 60 typedef G4int Int_t; 60 typedef G4int Int_t; 61 typedef short Short_t; 61 typedef short Short_t; 62 typedef G4float Float_t; 62 typedef G4float Float_t; 63 typedef G4double Double_t; 63 typedef G4double Double_t; 64 typedef G4bool Bool_t; 64 typedef G4bool Bool_t; 65 #endif 65 #endif 66 66 67 struct EventInfo { 67 struct EventInfo { 68 EventInfo() : 68 EventInfo() : 69 nParticles(0), 69 nParticles(0), 70 event(0), << 71 eventBias((Float_t)0.0), << 72 nRemnants(0), 70 nRemnants(0), 73 projectileType(0), 71 projectileType(0), 74 At(0), 72 At(0), 75 Zt(0), 73 Zt(0), 76 St(0), << 77 Ap(0), 74 Ap(0), 78 Zp(0), 75 Zp(0), 79 Sp(0), << 80 Ep((Float_t)0.0), 76 Ep((Float_t)0.0), 81 impactParameter((Float_t)0.0), 77 impactParameter((Float_t)0.0), 82 nCollisions(0), 78 nCollisions(0), 83 stoppingTime((Float_t)0.0), 79 stoppingTime((Float_t)0.0), 84 EBalance((Float_t)0.0), 80 EBalance((Float_t)0.0), 85 firstEBalance((Float_t)0.0), << 86 pLongBalance((Float_t)0.0), 81 pLongBalance((Float_t)0.0), 87 pTransBalance((Float_t)0.0), 82 pTransBalance((Float_t)0.0), 88 nCascadeParticles(0), 83 nCascadeParticles(0), 89 transparent(false), 84 transparent(false), 90 annihilationP(false), << 91 annihilationN(false), << 92 forcedCompoundNucleus(false), 85 forcedCompoundNucleus(false), 93 nucleonAbsorption(false), 86 nucleonAbsorption(false), 94 pionAbsorption(false), 87 pionAbsorption(false), 95 nDecays(0), 88 nDecays(0), 96 nSrcCollisions(0), << 97 nSrcPairs(0), << 98 nBlockedCollisions(0), 89 nBlockedCollisions(0), 99 nBlockedDecays(0), 90 nBlockedDecays(0), 100 effectiveImpactParameter((Float_t)0.0) 91 effectiveImpactParameter((Float_t)0.0), 101 deltasInside(false), 92 deltasInside(false), 102 sigmasInside(false), << 103 kaonsInside(false), << 104 antikaonsInside(false), << 105 lambdasInside(false), << 106 forcedDeltasInside(false), 93 forcedDeltasInside(false), 107 forcedDeltasOutside(false), 94 forcedDeltasOutside(false), 108 forcedPionResonancesOutside(false), 95 forcedPionResonancesOutside(false), 109 absorbedStrangeParticle(false), << 110 forcedSigmaOutside(false), << 111 forcedStrangeInside(false), << 112 emitLambda(0), << 113 emitKaon(false), << 114 clusterDecay(false), 96 clusterDecay(false), 115 firstCollisionTime((Float_t)0.0), 97 firstCollisionTime((Float_t)0.0), 116 firstCollisionXSec((Float_t)0.0), 98 firstCollisionXSec((Float_t)0.0), 117 firstCollisionSpectatorPosition((Float 99 firstCollisionSpectatorPosition((Float_t)0.0), 118 firstCollisionSpectatorMomentum((Float 100 firstCollisionSpectatorMomentum((Float_t)0.0), 119 firstCollisionIsElastic(false), 101 firstCollisionIsElastic(false), 120 nReflectionAvatars(0), 102 nReflectionAvatars(0), 121 nCollisionAvatars(0), 103 nCollisionAvatars(0), 122 nDecayAvatars(0), 104 nDecayAvatars(0), 123 nUnmergedSpectators(0), 105 nUnmergedSpectators(0), 124 nEnergyViolationInteraction(0) << 106 nEnergyViolationInteraction(0), >> 107 event(0) 125 108 126 { 109 { 127 std::fill_n(A, maxSizeParticles, 0); 110 std::fill_n(A, maxSizeParticles, 0); 128 std::fill_n(Z, maxSizeParticles, 0); 111 std::fill_n(Z, maxSizeParticles, 0); 129 std::fill_n(S, maxSizeParticles, 0); << 130 std::fill_n(J, maxSizeParticles, 0); << 131 std::fill_n(PDGCode, maxSizeParticles, 112 std::fill_n(PDGCode, maxSizeParticles, 0); 132 std::fill_n(ParticleBias, maxSizeParti << 133 std::fill_n(EKin, maxSizeParticles, (F 113 std::fill_n(EKin, maxSizeParticles, (Float_t)0.0); 134 std::fill_n(px, maxSizeParticles, (Flo 114 std::fill_n(px, maxSizeParticles, (Float_t)0.0); 135 std::fill_n(py, maxSizeParticles, (Flo 115 std::fill_n(py, maxSizeParticles, (Float_t)0.0); 136 std::fill_n(pz, maxSizeParticles, (Flo 116 std::fill_n(pz, maxSizeParticles, (Float_t)0.0); 137 std::fill_n(theta, maxSizeParticles, ( 117 std::fill_n(theta, maxSizeParticles, (Float_t)0.0); 138 std::fill_n(phi, maxSizeParticles, (Fl 118 std::fill_n(phi, maxSizeParticles, (Float_t)0.0); 139 std::fill_n(origin, maxSizeParticles, 119 std::fill_n(origin, maxSizeParticles, 0); 140 std::fill_n(parentResonancePDGCode, ma << 141 std::fill_n(parentResonanceID, maxSize << 142 std::fill_n(emissionTime, maxSizeParti 120 std::fill_n(emissionTime, maxSizeParticles, (Float_t)0.0); 143 std::fill_n(ARem, maxSizeRemnants, 0); 121 std::fill_n(ARem, maxSizeRemnants, 0); 144 std::fill_n(ZRem, maxSizeRemnants, 0); 122 std::fill_n(ZRem, maxSizeRemnants, 0); 145 std::fill_n(SRem, maxSizeRemnants, 0); << 146 std::fill_n(EStarRem, maxSizeRemnants, 123 std::fill_n(EStarRem, maxSizeRemnants, (Float_t)0.0); 147 std::fill_n(JRem, maxSizeRemnants, (Fl 124 std::fill_n(JRem, maxSizeRemnants, (Float_t)0.0); 148 std::fill_n(EKinRem, maxSizeRemnants, 125 std::fill_n(EKinRem, maxSizeRemnants, (Float_t)0.0); 149 std::fill_n(pxRem, maxSizeRemnants, (F 126 std::fill_n(pxRem, maxSizeRemnants, (Float_t)0.0); 150 std::fill_n(pyRem, maxSizeRemnants, (F 127 std::fill_n(pyRem, maxSizeRemnants, (Float_t)0.0); 151 std::fill_n(pzRem, maxSizeRemnants, (F 128 std::fill_n(pzRem, maxSizeRemnants, (Float_t)0.0); 152 std::fill_n(thetaRem, maxSizeRemnants, 129 std::fill_n(thetaRem, maxSizeRemnants, (Float_t)0.0); 153 std::fill_n(phiRem, maxSizeRemnants, ( 130 std::fill_n(phiRem, maxSizeRemnants, (Float_t)0.0); 154 std::fill_n(jxRem, maxSizeRemnants, (F 131 std::fill_n(jxRem, maxSizeRemnants, (Float_t)0.0); 155 std::fill_n(jyRem, maxSizeRemnants, (F 132 std::fill_n(jyRem, maxSizeRemnants, (Float_t)0.0); 156 std::fill_n(jzRem, maxSizeRemnants, (F 133 std::fill_n(jzRem, maxSizeRemnants, (Float_t)0.0); 157 std::fill_n(EKinPrime, maxSizeParticle 134 std::fill_n(EKinPrime, maxSizeParticles, (Float_t)0.0); 158 std::fill_n(pzPrime, maxSizeParticles, 135 std::fill_n(pzPrime, maxSizeParticles, (Float_t)0.0); 159 std::fill_n(thetaPrime, maxSizeParticl 136 std::fill_n(thetaPrime, maxSizeParticles, (Float_t)0.0); 160 } 137 } 161 138 162 /** \brief Number of the event */ 139 /** \brief Number of the event */ 163 static G4ThreadLocal Int_t eventNumber; 140 static G4ThreadLocal Int_t eventNumber; 164 141 165 /** \brief Maximum array size for remnan 142 /** \brief Maximum array size for remnants */ 166 static const Short_t maxSizeRemnants = 1 143 static const Short_t maxSizeRemnants = 10; 167 144 168 /** \brief Maximum array size for emitte 145 /** \brief Maximum array size for emitted particles */ 169 static const Short_t maxSizeParticles = 146 static const Short_t maxSizeParticles = 1000; 170 147 171 /** \brief Number of particles in the fi 148 /** \brief Number of particles in the final state */ 172 Short_t nParticles; 149 Short_t nParticles; 173 /** \brief Sequential number of the even << 174 Int_t event; << 175 /** \brief Particle mass number */ 150 /** \brief Particle mass number */ 176 Short_t A[maxSizeParticles]; 151 Short_t A[maxSizeParticles]; 177 /** \brief Particle charge number */ 152 /** \brief Particle charge number */ 178 Short_t Z[maxSizeParticles]; 153 Short_t Z[maxSizeParticles]; 179 /** \brief Particle strangeness number * << 180 Short_t S[maxSizeParticles]; << 181 /** \brief Particle angular momemtum */ << 182 Short_t J[maxSizeParticles]; << 183 /** \brief PDG numbering of the particle 154 /** \brief PDG numbering of the particles */ 184 Int_t PDGCode[maxSizeParticles]; 155 Int_t PDGCode[maxSizeParticles]; 185 /** \brief Event bias */ << 186 Float_t eventBias; << 187 /** \brief Particle weight due to the bi << 188 Float_t ParticleBias[maxSizeParticles]; << 189 /** \brief Particle kinetic energy [MeV] 156 /** \brief Particle kinetic energy [MeV] */ 190 Float_t EKin[maxSizeParticles]; 157 Float_t EKin[maxSizeParticles]; 191 /** \brief Particle momentum, x componen 158 /** \brief Particle momentum, x component [MeV/c] */ 192 Float_t px[maxSizeParticles]; 159 Float_t px[maxSizeParticles]; 193 /** \brief Particle momentum, y componen 160 /** \brief Particle momentum, y component [MeV/c] */ 194 Float_t py[maxSizeParticles]; 161 Float_t py[maxSizeParticles]; 195 /** \brief Particle momentum, z componen 162 /** \brief Particle momentum, z component [MeV/c] */ 196 Float_t pz[maxSizeParticles]; 163 Float_t pz[maxSizeParticles]; 197 /** \brief Particle momentum polar angle 164 /** \brief Particle momentum polar angle [radians] */ 198 Float_t theta[maxSizeParticles]; 165 Float_t theta[maxSizeParticles]; 199 /** \brief Particle momentum azimuthal a 166 /** \brief Particle momentum azimuthal angle [radians] */ 200 Float_t phi[maxSizeParticles]; 167 Float_t phi[maxSizeParticles]; 201 /** \brief Origin of the particle 168 /** \brief Origin of the particle 202 * 169 * 203 * Should be -1 for cascade particles, o 170 * Should be -1 for cascade particles, or the number of the remnant for 204 * de-excitation particles. */ 171 * de-excitation particles. */ 205 Short_t origin[maxSizeParticles]; 172 Short_t origin[maxSizeParticles]; 206 /** \brief Particle's parent resonance P << 173 /** \brief Emission time [fm/c] */ 207 Int_t parentResonancePDGCode[maxSizePart << 174 Float_t emissionTime[maxSizeParticles]; 208 /** \brief Particle's parent resonance u << 209 Int_t parentResonanceID[maxSizeParticles << 210 /** \brief History of the particle 175 /** \brief History of the particle 211 * 176 * 212 * Condensed information about the de-ex 177 * Condensed information about the de-excitation chain of a particle. For 213 * cascade particles, it is just an empt 178 * cascade particles, it is just an empty string. For particles arising 214 * from the de-excitation of a cascade r 179 * from the de-excitation of a cascade remnant, it is a string of 215 * characters. Each character represents 180 * characters. Each character represents one or more identical steps in 216 * the de-excitation process. The curren 181 * the de-excitation process. The currently defined possible character 217 * values and their meanings are the fol 182 * values and their meanings are the following: 218 * 183 * 219 * e: evaporation product 184 * e: evaporation product 220 * E: evaporation residue 185 * E: evaporation residue 221 * m: multifragmentation 186 * m: multifragmentation 222 * a: light partner in asymmetric fissio 187 * a: light partner in asymmetric fission or IMF emission 223 * A: heavy partner in asymmetric fissio 188 * A: heavy partner in asymmetric fission or IMF emission 224 * f: light partner in fission 189 * f: light partner in fission 225 * F: heavy partner in fission 190 * F: heavy partner in fission 226 * s: saddle-to-scission emission 191 * s: saddle-to-scission emission 227 * n: non-statistical emission (decay) * 192 * n: non-statistical emission (decay) */ 228 std::vector<std::string> history; 193 std::vector<std::string> history; 229 /** \brief Number of remnants */ 194 /** \brief Number of remnants */ 230 Short_t nRemnants; 195 Short_t nRemnants; >> 196 /** \brief Remnant mass number */ >> 197 Short_t ARem[maxSizeRemnants]; >> 198 /** \brief Remnant charge number */ >> 199 Short_t ZRem[maxSizeRemnants]; >> 200 /** \brief Remnant excitation energy [MeV] */ >> 201 Float_t EStarRem[maxSizeRemnants]; >> 202 /** \brief Remnant spin [\f$\hbar\f$] */ >> 203 Float_t JRem[maxSizeRemnants]; >> 204 /** \brief Remnant kinetic energy [MeV] */ >> 205 Float_t EKinRem[maxSizeRemnants]; >> 206 /** \brief Remnant momentum, x component [MeV/c] */ >> 207 Float_t pxRem[maxSizeRemnants]; >> 208 /** \brief Remnant momentum, y component [MeV/c] */ >> 209 Float_t pyRem[maxSizeRemnants]; >> 210 /** \brief Remnant momentum, z component [MeV/c] */ >> 211 Float_t pzRem[maxSizeRemnants]; >> 212 /** \brief Remnant momentum polar angle [radians] */ >> 213 Float_t thetaRem[maxSizeRemnants]; >> 214 /** \brief Remnant momentum azimuthal angle [radians] */ >> 215 Float_t phiRem[maxSizeRemnants]; >> 216 /** \brief Remnant angular momentum, x component [\f$\hbar\f$] */ >> 217 Float_t jxRem[maxSizeRemnants]; >> 218 /** \brief Remnant angular momentum, y component [\f$\hbar\f$] */ >> 219 Float_t jyRem[maxSizeRemnants]; >> 220 /** \brief Remnant angular momentum, z component [\f$\hbar\f$] */ >> 221 Float_t jzRem[maxSizeRemnants]; 231 /** \brief Projectile particle type */ 222 /** \brief Projectile particle type */ 232 Int_t projectileType; 223 Int_t projectileType; 233 /** \brief Mass number of the target nuc 224 /** \brief Mass number of the target nucleus */ 234 Short_t At; 225 Short_t At; 235 /** \brief Charge number of the target n 226 /** \brief Charge number of the target nucleus */ 236 Short_t Zt; 227 Short_t Zt; 237 /** \brief Strangeness number of the tar << 238 Short_t St; << 239 /** \brief Mass number of the projectile 228 /** \brief Mass number of the projectile nucleus */ 240 Short_t Ap; 229 Short_t Ap; 241 /** \brief Charge number of the projecti 230 /** \brief Charge number of the projectile nucleus */ 242 Short_t Zp; 231 Short_t Zp; 243 /** \brief Strangeness number of the pro << 244 Short_t Sp; << 245 /** \brief Projectile kinetic energy giv 232 /** \brief Projectile kinetic energy given as input */ 246 Float_t Ep; 233 Float_t Ep; 247 /** \brief Impact parameter [fm] */ 234 /** \brief Impact parameter [fm] */ 248 Float_t impactParameter; 235 Float_t impactParameter; 249 /** \brief Number of accepted two-body c 236 /** \brief Number of accepted two-body collisions */ 250 Int_t nCollisions; 237 Int_t nCollisions; 251 /** \brief Cascade stopping time [fm/c] 238 /** \brief Cascade stopping time [fm/c] */ 252 Float_t stoppingTime; 239 Float_t stoppingTime; 253 /** \brief Energy-conservation balance [ 240 /** \brief Energy-conservation balance [MeV] */ 254 Float_t EBalance; 241 Float_t EBalance; 255 /** \brief First value for the energy-co << 256 Float_t firstEBalance; << 257 /** \brief Longitudinal momentum-conserv 242 /** \brief Longitudinal momentum-conservation balance [MeV/c] */ 258 Float_t pLongBalance; 243 Float_t pLongBalance; 259 /** \brief Transverse momentum-conservat 244 /** \brief Transverse momentum-conservation balance [MeV/c] */ 260 Float_t pTransBalance; 245 Float_t pTransBalance; 261 /** \brief Number of cascade particles * 246 /** \brief Number of cascade particles */ 262 Short_t nCascadeParticles; 247 Short_t nCascadeParticles; 263 /** \brief True if the event is transpar 248 /** \brief True if the event is transparent */ 264 Bool_t transparent; 249 Bool_t transparent; 265 /** \brief True if annihilation at rest << 266 Bool_t annihilationP; << 267 /** \brief True if annihilation at rest << 268 Bool_t annihilationN; << 269 /** \brief True if the event is a forced 250 /** \brief True if the event is a forced CN */ 270 Bool_t forcedCompoundNucleus; 251 Bool_t forcedCompoundNucleus; 271 /** \brief True if the event is a nucleo 252 /** \brief True if the event is a nucleon absorption */ 272 Bool_t nucleonAbsorption; 253 Bool_t nucleonAbsorption; 273 /** \brief True if the event is a pion a 254 /** \brief True if the event is a pion absorption */ 274 Bool_t pionAbsorption; 255 Bool_t pionAbsorption; 275 /** \brief Number of accepted Delta deca 256 /** \brief Number of accepted Delta decays */ 276 Int_t nDecays; 257 Int_t nDecays; 277 /** \brief Number of accepted SRC collis << 278 Int_t nSrcCollisions; << 279 /** \brief Number of src pairs */ << 280 Int_t nSrcPairs; << 281 /** \brief Number of two-body collisions 258 /** \brief Number of two-body collisions blocked by Pauli or CDPP */ 282 Int_t nBlockedCollisions; 259 Int_t nBlockedCollisions; 283 /** \brief Number of decays blocked by P 260 /** \brief Number of decays blocked by Pauli or CDPP */ 284 Int_t nBlockedDecays; 261 Int_t nBlockedDecays; 285 /** \brief Effective (Coulomb-distorted) 262 /** \brief Effective (Coulomb-distorted) impact parameter [fm] */ 286 Float_t effectiveImpactParameter; 263 Float_t effectiveImpactParameter; 287 /** \brief Event involved deltas in the 264 /** \brief Event involved deltas in the nucleus at the end of the cascade */ 288 Bool_t deltasInside; 265 Bool_t deltasInside; 289 /** \brief Event involved sigmas in the << 290 Bool_t sigmasInside; << 291 /** \brief Event involved kaons in the n << 292 Bool_t kaonsInside; << 293 /** \brief Event involved antikaons in t << 294 Bool_t antikaonsInside; << 295 /** \brief Event involved lambdas in the << 296 Bool_t lambdasInside; << 297 /** \brief Event involved forced delta d 266 /** \brief Event involved forced delta decays inside the nucleus */ 298 Bool_t forcedDeltasInside; 267 Bool_t forcedDeltasInside; 299 /** \brief Event involved forced delta d 268 /** \brief Event involved forced delta decays outside the nucleus */ 300 Bool_t forcedDeltasOutside; 269 Bool_t forcedDeltasOutside; 301 /** \brief Event involved forced eta/ome 270 /** \brief Event involved forced eta/omega decays outside the nucleus */ 302 Bool_t forcedPionResonancesOutside; 271 Bool_t forcedPionResonancesOutside; 303 /** \brief Event involved forced strange << 304 Bool_t absorbedStrangeParticle; << 305 /** \brief Event involved forced Sigma Z << 306 Bool_t forcedSigmaOutside; << 307 /** \brief Event involved forced antiKao << 308 Bool_t forcedStrangeInside; << 309 /** \brief Number of forced Lambda emit << 310 Int_t emitLambda; << 311 /** \brief Event involved forced Kaon em << 312 Bool_t emitKaon; << 313 /** \brief Event involved cluster decay 272 /** \brief Event involved cluster decay */ 314 Bool_t clusterDecay; 273 Bool_t clusterDecay; 315 /** \brief Time of the first collision [ 274 /** \brief Time of the first collision [fm/c] */ 316 Float_t firstCollisionTime; 275 Float_t firstCollisionTime; 317 /** \brief Cross section of the first co 276 /** \brief Cross section of the first collision (mb) */ 318 Float_t firstCollisionXSec; 277 Float_t firstCollisionXSec; 319 /** \brief Position of the spectator on 278 /** \brief Position of the spectator on the first collision (fm) */ 320 Float_t firstCollisionSpectatorPosition; 279 Float_t firstCollisionSpectatorPosition; 321 /** \brief Momentum of the spectator on 280 /** \brief Momentum of the spectator on the first collision (fm) */ 322 Float_t firstCollisionSpectatorMomentum; 281 Float_t firstCollisionSpectatorMomentum; 323 /** \brief True if the first collision w 282 /** \brief True if the first collision was elastic */ 324 Bool_t firstCollisionIsElastic; 283 Bool_t firstCollisionIsElastic; 325 /** \brief Number of reflection avatars 284 /** \brief Number of reflection avatars */ 326 Int_t nReflectionAvatars; 285 Int_t nReflectionAvatars; 327 /** \brief Number of collision avatars * 286 /** \brief Number of collision avatars */ 328 Int_t nCollisionAvatars; 287 Int_t nCollisionAvatars; 329 /** \brief Number of decay avatars */ 288 /** \brief Number of decay avatars */ 330 Int_t nDecayAvatars; 289 Int_t nDecayAvatars; 331 /** \brief Number of dynamical spectator 290 /** \brief Number of dynamical spectators that were merged back into the projectile remnant */ 332 Int_t nUnmergedSpectators; 291 Int_t nUnmergedSpectators; 333 /** \brief Number of attempted collision 292 /** \brief Number of attempted collisions/decays for which the energy-conservation algorithm failed to find a solution. */ 334 Int_t nEnergyViolationInteraction; 293 Int_t nEnergyViolationInteraction; 335 /** \brief Emission time [fm/c] */ << 294 /** \brief Sequential number of the event in the event loop */ 336 Float_t emissionTime[maxSizeParticles]; << 295 Int_t event; 337 /** \brief Remnant mass number */ << 338 Short_t ARem[maxSizeRemnants]; << 339 /** \brief Remnant charge number */ << 340 Short_t ZRem[maxSizeRemnants]; << 341 /** \brief Remnant strangeness number */ << 342 Short_t SRem[maxSizeRemnants]; << 343 /** \brief Remnant excitation energy [Me << 344 Float_t EStarRem[maxSizeRemnants]; << 345 /** \brief Remnant spin [\f$\hbar\f$] */ << 346 Float_t JRem[maxSizeRemnants]; << 347 /** \brief Remnant kinetic energy [MeV] << 348 Float_t EKinRem[maxSizeRemnants]; << 349 /** \brief Remnant momentum, x component << 350 Float_t pxRem[maxSizeRemnants]; << 351 /** \brief Remnant momentum, y component << 352 Float_t pyRem[maxSizeRemnants]; << 353 /** \brief Remnant momentum, z component << 354 Float_t pzRem[maxSizeRemnants]; << 355 /** \brief Remnant momentum polar angle << 356 Float_t thetaRem[maxSizeRemnants]; << 357 /** \brief Remnant momentum azimuthal an << 358 Float_t phiRem[maxSizeRemnants]; << 359 /** \brief Remnant angular momentum, x c << 360 Float_t jxRem[maxSizeRemnants]; << 361 /** \brief Remnant angular momentum, y c << 362 Float_t jyRem[maxSizeRemnants]; << 363 /** \brief Remnant angular momentum, z c << 364 Float_t jzRem[maxSizeRemnants]; << 365 /** \brief Particle kinetic energy, in i 296 /** \brief Particle kinetic energy, in inverse kinematics [MeV] */ 366 Float_t EKinPrime[maxSizeParticles]; 297 Float_t EKinPrime[maxSizeParticles]; 367 /** \brief Particle momentum, z componen 298 /** \brief Particle momentum, z component, in inverse kinematics [MeV/c] */ 368 Float_t pzPrime[maxSizeParticles]; 299 Float_t pzPrime[maxSizeParticles]; 369 /** \brief Particle momentum polar angle 300 /** \brief Particle momentum polar angle, in inverse kinematics [radians] */ 370 Float_t thetaPrime[maxSizeParticles]; 301 Float_t thetaPrime[maxSizeParticles]; 371 302 372 /** \brief Reset the EventInfo members * 303 /** \brief Reset the EventInfo members */ 373 void reset() { 304 void reset() { 374 nParticles = 0; 305 nParticles = 0; 375 event = 0; << 376 eventBias = (Float_t)0.0; << 377 history.clear(); 306 history.clear(); 378 nRemnants = 0; 307 nRemnants = 0; 379 projectileType = 0; 308 projectileType = 0; 380 At = 0; 309 At = 0; 381 Zt = 0; 310 Zt = 0; 382 St = 0; << 383 Ap = 0; 311 Ap = 0; 384 Zp = 0; 312 Zp = 0; 385 Sp = 0; << 386 Ep = (Float_t)0.0; 313 Ep = (Float_t)0.0; 387 impactParameter = (Float_t)0.0; 314 impactParameter = (Float_t)0.0; 388 nCollisions = 0; 315 nCollisions = 0; 389 stoppingTime = (Float_t)0.0; 316 stoppingTime = (Float_t)0.0; 390 EBalance = (Float_t)0.0; 317 EBalance = (Float_t)0.0; 391 firstEBalance = (Float_t)0.0; << 392 pLongBalance = (Float_t)0.0; 318 pLongBalance = (Float_t)0.0; 393 pTransBalance = (Float_t)0.0; 319 pTransBalance = (Float_t)0.0; 394 nCascadeParticles = 0; 320 nCascadeParticles = 0; 395 transparent = false; 321 transparent = false; 396 annihilationP = false; << 397 annihilationN = false; << 398 forcedCompoundNucleus = false; 322 forcedCompoundNucleus = false; 399 nucleonAbsorption = false; 323 nucleonAbsorption = false; 400 pionAbsorption = false; 324 pionAbsorption = false; 401 nDecays = 0; 325 nDecays = 0; 402 nSrcCollisions = 0; << 403 nSrcPairs = 0; << 404 nBlockedCollisions = 0; 326 nBlockedCollisions = 0; 405 nBlockedDecays = 0; 327 nBlockedDecays = 0; 406 effectiveImpactParameter = (Float_t)0. 328 effectiveImpactParameter = (Float_t)0.0; 407 deltasInside = false; 329 deltasInside = false; 408 sigmasInside = false; << 409 kaonsInside = false; << 410 antikaonsInside = false; << 411 lambdasInside = false; << 412 forcedDeltasInside = false; 330 forcedDeltasInside = false; 413 forcedDeltasOutside = false; 331 forcedDeltasOutside = false; 414 forcedPionResonancesOutside = false; 332 forcedPionResonancesOutside = false; 415 absorbedStrangeParticle = false; << 416 forcedSigmaOutside = false; << 417 forcedStrangeInside = false; << 418 emitLambda = 0; << 419 emitKaon = false; << 420 clusterDecay = false; 333 clusterDecay = false; 421 firstCollisionTime = (Float_t)0.0; 334 firstCollisionTime = (Float_t)0.0; 422 firstCollisionXSec = (Float_t)0.0; 335 firstCollisionXSec = (Float_t)0.0; 423 firstCollisionSpectatorPosition = (Flo 336 firstCollisionSpectatorPosition = (Float_t)0.0; 424 firstCollisionSpectatorMomentum = (Flo 337 firstCollisionSpectatorMomentum = (Float_t)0.0; 425 firstCollisionIsElastic = false; 338 firstCollisionIsElastic = false; 426 nReflectionAvatars = 0; 339 nReflectionAvatars = 0; 427 nCollisionAvatars = 0; 340 nCollisionAvatars = 0; 428 nDecayAvatars = 0; 341 nDecayAvatars = 0; 429 nUnmergedSpectators = 0; 342 nUnmergedSpectators = 0; 430 nEnergyViolationInteraction = 0; 343 nEnergyViolationInteraction = 0; >> 344 event = 0; 431 345 432 } 346 } 433 347 434 /// \brief Move a remnant to the particl 348 /// \brief Move a remnant to the particle array 435 void remnantToParticle(const G4int remna 349 void remnantToParticle(const G4int remnantIndex); 436 350 437 /// \brief Fill the variables describing 351 /// \brief Fill the variables describing the reaction in inverse kinematics 438 void fillInverseKinematics(const Double_ 352 void fillInverseKinematics(const Double_t gamma); 439 }; 353 }; 440 } 354 } 441 355 442 #endif /* G4INCLEVENTINFO_HH_HH */ 356 #endif /* G4INCLEVENTINFO_HH_HH */ 443 357