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), 70 eventBias((Float_t)0.0), 72 nRemnants(0), 71 nRemnants(0), 73 projectileType(0), 72 projectileType(0), 74 At(0), 73 At(0), 75 Zt(0), 74 Zt(0), 76 St(0), 75 St(0), 77 Ap(0), 76 Ap(0), 78 Zp(0), 77 Zp(0), 79 Sp(0), 78 Sp(0), 80 Ep((Float_t)0.0), 79 Ep((Float_t)0.0), 81 impactParameter((Float_t)0.0), 80 impactParameter((Float_t)0.0), 82 nCollisions(0), 81 nCollisions(0), 83 stoppingTime((Float_t)0.0), 82 stoppingTime((Float_t)0.0), 84 EBalance((Float_t)0.0), 83 EBalance((Float_t)0.0), 85 firstEBalance((Float_t)0.0), << 86 pLongBalance((Float_t)0.0), 84 pLongBalance((Float_t)0.0), 87 pTransBalance((Float_t)0.0), 85 pTransBalance((Float_t)0.0), 88 nCascadeParticles(0), 86 nCascadeParticles(0), 89 transparent(false), 87 transparent(false), 90 annihilationP(false), << 91 annihilationN(false), << 92 forcedCompoundNucleus(false), 88 forcedCompoundNucleus(false), 93 nucleonAbsorption(false), 89 nucleonAbsorption(false), 94 pionAbsorption(false), 90 pionAbsorption(false), 95 nDecays(0), 91 nDecays(0), 96 nSrcCollisions(0), << 97 nSrcPairs(0), << 98 nBlockedCollisions(0), 92 nBlockedCollisions(0), 99 nBlockedDecays(0), 93 nBlockedDecays(0), 100 effectiveImpactParameter((Float_t)0.0) 94 effectiveImpactParameter((Float_t)0.0), 101 deltasInside(false), 95 deltasInside(false), 102 sigmasInside(false), 96 sigmasInside(false), 103 kaonsInside(false), 97 kaonsInside(false), 104 antikaonsInside(false), 98 antikaonsInside(false), 105 lambdasInside(false), 99 lambdasInside(false), 106 forcedDeltasInside(false), 100 forcedDeltasInside(false), 107 forcedDeltasOutside(false), 101 forcedDeltasOutside(false), 108 forcedPionResonancesOutside(false), 102 forcedPionResonancesOutside(false), 109 absorbedStrangeParticle(false), 103 absorbedStrangeParticle(false), 110 forcedSigmaOutside(false), 104 forcedSigmaOutside(false), 111 forcedStrangeInside(false), 105 forcedStrangeInside(false), 112 emitLambda(0), 106 emitLambda(0), 113 emitKaon(false), 107 emitKaon(false), 114 clusterDecay(false), 108 clusterDecay(false), 115 firstCollisionTime((Float_t)0.0), 109 firstCollisionTime((Float_t)0.0), 116 firstCollisionXSec((Float_t)0.0), 110 firstCollisionXSec((Float_t)0.0), 117 firstCollisionSpectatorPosition((Float 111 firstCollisionSpectatorPosition((Float_t)0.0), 118 firstCollisionSpectatorMomentum((Float 112 firstCollisionSpectatorMomentum((Float_t)0.0), 119 firstCollisionIsElastic(false), 113 firstCollisionIsElastic(false), 120 nReflectionAvatars(0), 114 nReflectionAvatars(0), 121 nCollisionAvatars(0), 115 nCollisionAvatars(0), 122 nDecayAvatars(0), 116 nDecayAvatars(0), 123 nUnmergedSpectators(0), 117 nUnmergedSpectators(0), 124 nEnergyViolationInteraction(0) << 118 nEnergyViolationInteraction(0), >> 119 event(0) 125 120 126 { 121 { 127 std::fill_n(A, maxSizeParticles, 0); 122 std::fill_n(A, maxSizeParticles, 0); 128 std::fill_n(Z, maxSizeParticles, 0); 123 std::fill_n(Z, maxSizeParticles, 0); 129 std::fill_n(S, maxSizeParticles, 0); 124 std::fill_n(S, maxSizeParticles, 0); 130 std::fill_n(J, maxSizeParticles, 0); << 131 std::fill_n(PDGCode, maxSizeParticles, 125 std::fill_n(PDGCode, maxSizeParticles, 0); 132 std::fill_n(ParticleBias, maxSizeParti 126 std::fill_n(ParticleBias, maxSizeParticles, (Float_t)0.0); 133 std::fill_n(EKin, maxSizeParticles, (F 127 std::fill_n(EKin, maxSizeParticles, (Float_t)0.0); 134 std::fill_n(px, maxSizeParticles, (Flo 128 std::fill_n(px, maxSizeParticles, (Float_t)0.0); 135 std::fill_n(py, maxSizeParticles, (Flo 129 std::fill_n(py, maxSizeParticles, (Float_t)0.0); 136 std::fill_n(pz, maxSizeParticles, (Flo 130 std::fill_n(pz, maxSizeParticles, (Float_t)0.0); 137 std::fill_n(theta, maxSizeParticles, ( 131 std::fill_n(theta, maxSizeParticles, (Float_t)0.0); 138 std::fill_n(phi, maxSizeParticles, (Fl 132 std::fill_n(phi, maxSizeParticles, (Float_t)0.0); 139 std::fill_n(origin, maxSizeParticles, 133 std::fill_n(origin, maxSizeParticles, 0); 140 std::fill_n(parentResonancePDGCode, ma 134 std::fill_n(parentResonancePDGCode, maxSizeParticles, 0); 141 std::fill_n(parentResonanceID, maxSize 135 std::fill_n(parentResonanceID, maxSizeParticles, 0); 142 std::fill_n(emissionTime, maxSizeParti 136 std::fill_n(emissionTime, maxSizeParticles, (Float_t)0.0); 143 std::fill_n(ARem, maxSizeRemnants, 0); 137 std::fill_n(ARem, maxSizeRemnants, 0); 144 std::fill_n(ZRem, maxSizeRemnants, 0); 138 std::fill_n(ZRem, maxSizeRemnants, 0); 145 std::fill_n(SRem, maxSizeRemnants, 0); 139 std::fill_n(SRem, maxSizeRemnants, 0); 146 std::fill_n(EStarRem, maxSizeRemnants, 140 std::fill_n(EStarRem, maxSizeRemnants, (Float_t)0.0); 147 std::fill_n(JRem, maxSizeRemnants, (Fl 141 std::fill_n(JRem, maxSizeRemnants, (Float_t)0.0); 148 std::fill_n(EKinRem, maxSizeRemnants, 142 std::fill_n(EKinRem, maxSizeRemnants, (Float_t)0.0); 149 std::fill_n(pxRem, maxSizeRemnants, (F 143 std::fill_n(pxRem, maxSizeRemnants, (Float_t)0.0); 150 std::fill_n(pyRem, maxSizeRemnants, (F 144 std::fill_n(pyRem, maxSizeRemnants, (Float_t)0.0); 151 std::fill_n(pzRem, maxSizeRemnants, (F 145 std::fill_n(pzRem, maxSizeRemnants, (Float_t)0.0); 152 std::fill_n(thetaRem, maxSizeRemnants, 146 std::fill_n(thetaRem, maxSizeRemnants, (Float_t)0.0); 153 std::fill_n(phiRem, maxSizeRemnants, ( 147 std::fill_n(phiRem, maxSizeRemnants, (Float_t)0.0); 154 std::fill_n(jxRem, maxSizeRemnants, (F 148 std::fill_n(jxRem, maxSizeRemnants, (Float_t)0.0); 155 std::fill_n(jyRem, maxSizeRemnants, (F 149 std::fill_n(jyRem, maxSizeRemnants, (Float_t)0.0); 156 std::fill_n(jzRem, maxSizeRemnants, (F 150 std::fill_n(jzRem, maxSizeRemnants, (Float_t)0.0); 157 std::fill_n(EKinPrime, maxSizeParticle 151 std::fill_n(EKinPrime, maxSizeParticles, (Float_t)0.0); 158 std::fill_n(pzPrime, maxSizeParticles, 152 std::fill_n(pzPrime, maxSizeParticles, (Float_t)0.0); 159 std::fill_n(thetaPrime, maxSizeParticl 153 std::fill_n(thetaPrime, maxSizeParticles, (Float_t)0.0); 160 } 154 } 161 155 162 /** \brief Number of the event */ 156 /** \brief Number of the event */ 163 static G4ThreadLocal Int_t eventNumber; 157 static G4ThreadLocal Int_t eventNumber; 164 158 165 /** \brief Maximum array size for remnan 159 /** \brief Maximum array size for remnants */ 166 static const Short_t maxSizeRemnants = 1 160 static const Short_t maxSizeRemnants = 10; 167 161 168 /** \brief Maximum array size for emitte 162 /** \brief Maximum array size for emitted particles */ 169 static const Short_t maxSizeParticles = 163 static const Short_t maxSizeParticles = 1000; 170 164 171 /** \brief Number of particles in the fi 165 /** \brief Number of particles in the final state */ 172 Short_t nParticles; 166 Short_t nParticles; 173 /** \brief Sequential number of the even << 174 Int_t event; << 175 /** \brief Particle mass number */ 167 /** \brief Particle mass number */ 176 Short_t A[maxSizeParticles]; 168 Short_t A[maxSizeParticles]; 177 /** \brief Particle charge number */ 169 /** \brief Particle charge number */ 178 Short_t Z[maxSizeParticles]; 170 Short_t Z[maxSizeParticles]; 179 /** \brief Particle strangeness number * 171 /** \brief Particle strangeness number */ 180 Short_t S[maxSizeParticles]; 172 Short_t S[maxSizeParticles]; 181 /** \brief Particle angular momemtum */ << 182 Short_t J[maxSizeParticles]; << 183 /** \brief PDG numbering of the particle 173 /** \brief PDG numbering of the particles */ 184 Int_t PDGCode[maxSizeParticles]; 174 Int_t PDGCode[maxSizeParticles]; 185 /** \brief Event bias */ << 186 Float_t eventBias; << 187 /** \brief Particle weight due to the bi 175 /** \brief Particle weight due to the bias */ 188 Float_t ParticleBias[maxSizeParticles]; 176 Float_t ParticleBias[maxSizeParticles]; >> 177 /** \brief Event bias */ >> 178 Float_t eventBias; 189 /** \brief Particle kinetic energy [MeV] 179 /** \brief Particle kinetic energy [MeV] */ 190 Float_t EKin[maxSizeParticles]; 180 Float_t EKin[maxSizeParticles]; 191 /** \brief Particle momentum, x componen 181 /** \brief Particle momentum, x component [MeV/c] */ 192 Float_t px[maxSizeParticles]; 182 Float_t px[maxSizeParticles]; 193 /** \brief Particle momentum, y componen 183 /** \brief Particle momentum, y component [MeV/c] */ 194 Float_t py[maxSizeParticles]; 184 Float_t py[maxSizeParticles]; 195 /** \brief Particle momentum, z componen 185 /** \brief Particle momentum, z component [MeV/c] */ 196 Float_t pz[maxSizeParticles]; 186 Float_t pz[maxSizeParticles]; 197 /** \brief Particle momentum polar angle 187 /** \brief Particle momentum polar angle [radians] */ 198 Float_t theta[maxSizeParticles]; 188 Float_t theta[maxSizeParticles]; 199 /** \brief Particle momentum azimuthal a 189 /** \brief Particle momentum azimuthal angle [radians] */ 200 Float_t phi[maxSizeParticles]; 190 Float_t phi[maxSizeParticles]; 201 /** \brief Origin of the particle 191 /** \brief Origin of the particle 202 * 192 * 203 * Should be -1 for cascade particles, o 193 * Should be -1 for cascade particles, or the number of the remnant for 204 * de-excitation particles. */ 194 * de-excitation particles. */ 205 Short_t origin[maxSizeParticles]; 195 Short_t origin[maxSizeParticles]; 206 /** \brief Particle's parent resonance P 196 /** \brief Particle's parent resonance PDG code */ 207 Int_t parentResonancePDGCode[maxSizePart 197 Int_t parentResonancePDGCode[maxSizeParticles]; 208 /** \brief Particle's parent resonance u 198 /** \brief Particle's parent resonance unique ID identifier */ 209 Int_t parentResonanceID[maxSizeParticles 199 Int_t parentResonanceID[maxSizeParticles]; >> 200 /** \brief Emission time [fm/c] */ >> 201 Float_t emissionTime[maxSizeParticles]; 210 /** \brief History of the particle 202 /** \brief History of the particle 211 * 203 * 212 * Condensed information about the de-ex 204 * Condensed information about the de-excitation chain of a particle. For 213 * cascade particles, it is just an empt 205 * cascade particles, it is just an empty string. For particles arising 214 * from the de-excitation of a cascade r 206 * from the de-excitation of a cascade remnant, it is a string of 215 * characters. Each character represents 207 * characters. Each character represents one or more identical steps in 216 * the de-excitation process. The curren 208 * the de-excitation process. The currently defined possible character 217 * values and their meanings are the fol 209 * values and their meanings are the following: 218 * 210 * 219 * e: evaporation product 211 * e: evaporation product 220 * E: evaporation residue 212 * E: evaporation residue 221 * m: multifragmentation 213 * m: multifragmentation 222 * a: light partner in asymmetric fissio 214 * a: light partner in asymmetric fission or IMF emission 223 * A: heavy partner in asymmetric fissio 215 * A: heavy partner in asymmetric fission or IMF emission 224 * f: light partner in fission 216 * f: light partner in fission 225 * F: heavy partner in fission 217 * F: heavy partner in fission 226 * s: saddle-to-scission emission 218 * s: saddle-to-scission emission 227 * n: non-statistical emission (decay) * 219 * n: non-statistical emission (decay) */ 228 std::vector<std::string> history; 220 std::vector<std::string> history; 229 /** \brief Number of remnants */ 221 /** \brief Number of remnants */ 230 Short_t nRemnants; 222 Short_t nRemnants; >> 223 /** \brief Remnant mass number */ >> 224 Short_t ARem[maxSizeRemnants]; >> 225 /** \brief Remnant charge number */ >> 226 Short_t ZRem[maxSizeRemnants]; >> 227 /** \brief Remnant strangeness number */ >> 228 Short_t SRem[maxSizeRemnants]; >> 229 /** \brief Remnant excitation energy [MeV] */ >> 230 Float_t EStarRem[maxSizeRemnants]; >> 231 /** \brief Remnant spin [\f$\hbar\f$] */ >> 232 Float_t JRem[maxSizeRemnants]; >> 233 /** \brief Remnant kinetic energy [MeV] */ >> 234 Float_t EKinRem[maxSizeRemnants]; >> 235 /** \brief Remnant momentum, x component [MeV/c] */ >> 236 Float_t pxRem[maxSizeRemnants]; >> 237 /** \brief Remnant momentum, y component [MeV/c] */ >> 238 Float_t pyRem[maxSizeRemnants]; >> 239 /** \brief Remnant momentum, z component [MeV/c] */ >> 240 Float_t pzRem[maxSizeRemnants]; >> 241 /** \brief Remnant momentum polar angle [radians] */ >> 242 Float_t thetaRem[maxSizeRemnants]; >> 243 /** \brief Remnant momentum azimuthal angle [radians] */ >> 244 Float_t phiRem[maxSizeRemnants]; >> 245 /** \brief Remnant angular momentum, x component [\f$\hbar\f$] */ >> 246 Float_t jxRem[maxSizeRemnants]; >> 247 /** \brief Remnant angular momentum, y component [\f$\hbar\f$] */ >> 248 Float_t jyRem[maxSizeRemnants]; >> 249 /** \brief Remnant angular momentum, z component [\f$\hbar\f$] */ >> 250 Float_t jzRem[maxSizeRemnants]; 231 /** \brief Projectile particle type */ 251 /** \brief Projectile particle type */ 232 Int_t projectileType; 252 Int_t projectileType; 233 /** \brief Mass number of the target nuc 253 /** \brief Mass number of the target nucleus */ 234 Short_t At; 254 Short_t At; 235 /** \brief Charge number of the target n 255 /** \brief Charge number of the target nucleus */ 236 Short_t Zt; 256 Short_t Zt; 237 /** \brief Strangeness number of the tar 257 /** \brief Strangeness number of the target nucleus */ 238 Short_t St; 258 Short_t St; 239 /** \brief Mass number of the projectile 259 /** \brief Mass number of the projectile nucleus */ 240 Short_t Ap; 260 Short_t Ap; 241 /** \brief Charge number of the projecti 261 /** \brief Charge number of the projectile nucleus */ 242 Short_t Zp; 262 Short_t Zp; 243 /** \brief Strangeness number of the pro 263 /** \brief Strangeness number of the projectile nucleus */ 244 Short_t Sp; 264 Short_t Sp; 245 /** \brief Projectile kinetic energy giv 265 /** \brief Projectile kinetic energy given as input */ 246 Float_t Ep; 266 Float_t Ep; 247 /** \brief Impact parameter [fm] */ 267 /** \brief Impact parameter [fm] */ 248 Float_t impactParameter; 268 Float_t impactParameter; 249 /** \brief Number of accepted two-body c 269 /** \brief Number of accepted two-body collisions */ 250 Int_t nCollisions; 270 Int_t nCollisions; 251 /** \brief Cascade stopping time [fm/c] 271 /** \brief Cascade stopping time [fm/c] */ 252 Float_t stoppingTime; 272 Float_t stoppingTime; 253 /** \brief Energy-conservation balance [ 273 /** \brief Energy-conservation balance [MeV] */ 254 Float_t EBalance; 274 Float_t EBalance; 255 /** \brief First value for the energy-co << 256 Float_t firstEBalance; << 257 /** \brief Longitudinal momentum-conserv 275 /** \brief Longitudinal momentum-conservation balance [MeV/c] */ 258 Float_t pLongBalance; 276 Float_t pLongBalance; 259 /** \brief Transverse momentum-conservat 277 /** \brief Transverse momentum-conservation balance [MeV/c] */ 260 Float_t pTransBalance; 278 Float_t pTransBalance; 261 /** \brief Number of cascade particles * 279 /** \brief Number of cascade particles */ 262 Short_t nCascadeParticles; 280 Short_t nCascadeParticles; 263 /** \brief True if the event is transpar 281 /** \brief True if the event is transparent */ 264 Bool_t transparent; 282 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 283 /** \brief True if the event is a forced CN */ 270 Bool_t forcedCompoundNucleus; 284 Bool_t forcedCompoundNucleus; 271 /** \brief True if the event is a nucleo 285 /** \brief True if the event is a nucleon absorption */ 272 Bool_t nucleonAbsorption; 286 Bool_t nucleonAbsorption; 273 /** \brief True if the event is a pion a 287 /** \brief True if the event is a pion absorption */ 274 Bool_t pionAbsorption; 288 Bool_t pionAbsorption; 275 /** \brief Number of accepted Delta deca 289 /** \brief Number of accepted Delta decays */ 276 Int_t nDecays; 290 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 291 /** \brief Number of two-body collisions blocked by Pauli or CDPP */ 282 Int_t nBlockedCollisions; 292 Int_t nBlockedCollisions; 283 /** \brief Number of decays blocked by P 293 /** \brief Number of decays blocked by Pauli or CDPP */ 284 Int_t nBlockedDecays; 294 Int_t nBlockedDecays; 285 /** \brief Effective (Coulomb-distorted) 295 /** \brief Effective (Coulomb-distorted) impact parameter [fm] */ 286 Float_t effectiveImpactParameter; 296 Float_t effectiveImpactParameter; 287 /** \brief Event involved deltas in the 297 /** \brief Event involved deltas in the nucleus at the end of the cascade */ 288 Bool_t deltasInside; 298 Bool_t deltasInside; 289 /** \brief Event involved sigmas in the 299 /** \brief Event involved sigmas in the nucleus at the end of the cascade */ 290 Bool_t sigmasInside; 300 Bool_t sigmasInside; 291 /** \brief Event involved kaons in the n 301 /** \brief Event involved kaons in the nucleus at the end of the cascade */ 292 Bool_t kaonsInside; 302 Bool_t kaonsInside; 293 /** \brief Event involved antikaons in t 303 /** \brief Event involved antikaons in the nucleus at the end of the cascade */ 294 Bool_t antikaonsInside; 304 Bool_t antikaonsInside; 295 /** \brief Event involved lambdas in the 305 /** \brief Event involved lambdas in the nucleus at the end of the cascade */ 296 Bool_t lambdasInside; 306 Bool_t lambdasInside; 297 /** \brief Event involved forced delta d 307 /** \brief Event involved forced delta decays inside the nucleus */ 298 Bool_t forcedDeltasInside; 308 Bool_t forcedDeltasInside; 299 /** \brief Event involved forced delta d 309 /** \brief Event involved forced delta decays outside the nucleus */ 300 Bool_t forcedDeltasOutside; 310 Bool_t forcedDeltasOutside; 301 /** \brief Event involved forced eta/ome 311 /** \brief Event involved forced eta/omega decays outside the nucleus */ 302 Bool_t forcedPionResonancesOutside; 312 Bool_t forcedPionResonancesOutside; 303 /** \brief Event involved forced strange 313 /** \brief Event involved forced strange absorption inside the nucleus */ 304 Bool_t absorbedStrangeParticle; 314 Bool_t absorbedStrangeParticle; 305 /** \brief Event involved forced Sigma Z 315 /** \brief Event involved forced Sigma Zero decays outside the nucleus */ 306 Bool_t forcedSigmaOutside; 316 Bool_t forcedSigmaOutside; 307 /** \brief Event involved forced antiKao 317 /** \brief Event involved forced antiKaon/Sigma absorption inside the nucleus */ 308 Bool_t forcedStrangeInside; 318 Bool_t forcedStrangeInside; 309 /** \brief Number of forced Lambda emit 319 /** \brief Number of forced Lambda emit out of the nucleus */ 310 Int_t emitLambda; 320 Int_t emitLambda; 311 /** \brief Event involved forced Kaon em 321 /** \brief Event involved forced Kaon emission */ 312 Bool_t emitKaon; 322 Bool_t emitKaon; 313 /** \brief Event involved cluster decay 323 /** \brief Event involved cluster decay */ 314 Bool_t clusterDecay; 324 Bool_t clusterDecay; 315 /** \brief Time of the first collision [ 325 /** \brief Time of the first collision [fm/c] */ 316 Float_t firstCollisionTime; 326 Float_t firstCollisionTime; 317 /** \brief Cross section of the first co 327 /** \brief Cross section of the first collision (mb) */ 318 Float_t firstCollisionXSec; 328 Float_t firstCollisionXSec; 319 /** \brief Position of the spectator on 329 /** \brief Position of the spectator on the first collision (fm) */ 320 Float_t firstCollisionSpectatorPosition; 330 Float_t firstCollisionSpectatorPosition; 321 /** \brief Momentum of the spectator on 331 /** \brief Momentum of the spectator on the first collision (fm) */ 322 Float_t firstCollisionSpectatorMomentum; 332 Float_t firstCollisionSpectatorMomentum; 323 /** \brief True if the first collision w 333 /** \brief True if the first collision was elastic */ 324 Bool_t firstCollisionIsElastic; 334 Bool_t firstCollisionIsElastic; 325 /** \brief Number of reflection avatars 335 /** \brief Number of reflection avatars */ 326 Int_t nReflectionAvatars; 336 Int_t nReflectionAvatars; 327 /** \brief Number of collision avatars * 337 /** \brief Number of collision avatars */ 328 Int_t nCollisionAvatars; 338 Int_t nCollisionAvatars; 329 /** \brief Number of decay avatars */ 339 /** \brief Number of decay avatars */ 330 Int_t nDecayAvatars; 340 Int_t nDecayAvatars; 331 /** \brief Number of dynamical spectator 341 /** \brief Number of dynamical spectators that were merged back into the projectile remnant */ 332 Int_t nUnmergedSpectators; 342 Int_t nUnmergedSpectators; 333 /** \brief Number of attempted collision 343 /** \brief Number of attempted collisions/decays for which the energy-conservation algorithm failed to find a solution. */ 334 Int_t nEnergyViolationInteraction; 344 Int_t nEnergyViolationInteraction; 335 /** \brief Emission time [fm/c] */ << 345 /** \brief Sequential number of the event in the event loop */ 336 Float_t emissionTime[maxSizeParticles]; << 346 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 347 /** \brief Particle kinetic energy, in inverse kinematics [MeV] */ 366 Float_t EKinPrime[maxSizeParticles]; 348 Float_t EKinPrime[maxSizeParticles]; 367 /** \brief Particle momentum, z componen 349 /** \brief Particle momentum, z component, in inverse kinematics [MeV/c] */ 368 Float_t pzPrime[maxSizeParticles]; 350 Float_t pzPrime[maxSizeParticles]; 369 /** \brief Particle momentum polar angle 351 /** \brief Particle momentum polar angle, in inverse kinematics [radians] */ 370 Float_t thetaPrime[maxSizeParticles]; 352 Float_t thetaPrime[maxSizeParticles]; 371 353 372 /** \brief Reset the EventInfo members * 354 /** \brief Reset the EventInfo members */ 373 void reset() { 355 void reset() { 374 nParticles = 0; 356 nParticles = 0; 375 event = 0; << 376 eventBias = (Float_t)0.0; 357 eventBias = (Float_t)0.0; 377 history.clear(); 358 history.clear(); 378 nRemnants = 0; 359 nRemnants = 0; 379 projectileType = 0; 360 projectileType = 0; 380 At = 0; 361 At = 0; 381 Zt = 0; 362 Zt = 0; 382 St = 0; 363 St = 0; 383 Ap = 0; 364 Ap = 0; 384 Zp = 0; 365 Zp = 0; 385 Sp = 0; 366 Sp = 0; 386 Ep = (Float_t)0.0; 367 Ep = (Float_t)0.0; 387 impactParameter = (Float_t)0.0; 368 impactParameter = (Float_t)0.0; 388 nCollisions = 0; 369 nCollisions = 0; 389 stoppingTime = (Float_t)0.0; 370 stoppingTime = (Float_t)0.0; 390 EBalance = (Float_t)0.0; 371 EBalance = (Float_t)0.0; 391 firstEBalance = (Float_t)0.0; << 392 pLongBalance = (Float_t)0.0; 372 pLongBalance = (Float_t)0.0; 393 pTransBalance = (Float_t)0.0; 373 pTransBalance = (Float_t)0.0; 394 nCascadeParticles = 0; 374 nCascadeParticles = 0; 395 transparent = false; 375 transparent = false; 396 annihilationP = false; << 397 annihilationN = false; << 398 forcedCompoundNucleus = false; 376 forcedCompoundNucleus = false; 399 nucleonAbsorption = false; 377 nucleonAbsorption = false; 400 pionAbsorption = false; 378 pionAbsorption = false; 401 nDecays = 0; 379 nDecays = 0; 402 nSrcCollisions = 0; << 403 nSrcPairs = 0; << 404 nBlockedCollisions = 0; 380 nBlockedCollisions = 0; 405 nBlockedDecays = 0; 381 nBlockedDecays = 0; 406 effectiveImpactParameter = (Float_t)0. 382 effectiveImpactParameter = (Float_t)0.0; 407 deltasInside = false; 383 deltasInside = false; 408 sigmasInside = false; 384 sigmasInside = false; 409 kaonsInside = false; 385 kaonsInside = false; 410 antikaonsInside = false; 386 antikaonsInside = false; 411 lambdasInside = false; 387 lambdasInside = false; 412 forcedDeltasInside = false; 388 forcedDeltasInside = false; 413 forcedDeltasOutside = false; 389 forcedDeltasOutside = false; 414 forcedPionResonancesOutside = false; 390 forcedPionResonancesOutside = false; 415 absorbedStrangeParticle = false; 391 absorbedStrangeParticle = false; 416 forcedSigmaOutside = false; 392 forcedSigmaOutside = false; 417 forcedStrangeInside = false; 393 forcedStrangeInside = false; 418 emitLambda = 0; 394 emitLambda = 0; 419 emitKaon = false; 395 emitKaon = false; 420 clusterDecay = false; 396 clusterDecay = false; 421 firstCollisionTime = (Float_t)0.0; 397 firstCollisionTime = (Float_t)0.0; 422 firstCollisionXSec = (Float_t)0.0; 398 firstCollisionXSec = (Float_t)0.0; 423 firstCollisionSpectatorPosition = (Flo 399 firstCollisionSpectatorPosition = (Float_t)0.0; 424 firstCollisionSpectatorMomentum = (Flo 400 firstCollisionSpectatorMomentum = (Float_t)0.0; 425 firstCollisionIsElastic = false; 401 firstCollisionIsElastic = false; 426 nReflectionAvatars = 0; 402 nReflectionAvatars = 0; 427 nCollisionAvatars = 0; 403 nCollisionAvatars = 0; 428 nDecayAvatars = 0; 404 nDecayAvatars = 0; 429 nUnmergedSpectators = 0; 405 nUnmergedSpectators = 0; 430 nEnergyViolationInteraction = 0; 406 nEnergyViolationInteraction = 0; >> 407 event = 0; 431 408 432 } 409 } 433 410 434 /// \brief Move a remnant to the particl 411 /// \brief Move a remnant to the particle array 435 void remnantToParticle(const G4int remna 412 void remnantToParticle(const G4int remnantIndex); 436 413 437 /// \brief Fill the variables describing 414 /// \brief Fill the variables describing the reaction in inverse kinematics 438 void fillInverseKinematics(const Double_ 415 void fillInverseKinematics(const Double_t gamma); 439 }; 416 }; 440 } 417 } 441 418 442 #endif /* G4INCLEVENTINFO_HH_HH */ 419 #endif /* G4INCLEVENTINFO_HH_HH */ 443 420