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 3.1)


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