Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/models/inclxx/utils/include/G4INCLEventInfo.hh

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /processes/hadronic/models/inclxx/utils/include/G4INCLEventInfo.hh (Version 11.3.0) and /processes/hadronic/models/inclxx/utils/include/G4INCLEventInfo.hh (Version 11.2.1)


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