G4INCLEventInfo.hh

Go to the documentation of this file.
00001 //
00002 // ********************************************************************
00003 // * License and Disclaimer                                           *
00004 // *                                                                  *
00005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
00006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
00007 // * conditions of the Geant4 Software License,  included in the file *
00008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
00009 // * include a list of copyright holders.                             *
00010 // *                                                                  *
00011 // * Neither the authors of this software system, nor their employing *
00012 // * institutes,nor the agencies providing financial support for this *
00013 // * work  make  any representation or  warranty, express or implied, *
00014 // * regarding  this  software system or assume any liability for its *
00015 // * use.  Please see the license in the file  LICENSE  and URL above *
00016 // * for the full disclaimer and the limitation of liability.         *
00017 // *                                                                  *
00018 // * This  code  implementation is the result of  the  scientific and *
00019 // * technical work of the GEANT4 collaboration.                      *
00020 // * By using,  copying,  modifying or  distributing the software (or *
00021 // * any work based  on the software)  you  agree  to acknowledge its *
00022 // * use  in  resulting  scientific  publications,  and indicate your *
00023 // * acceptance of all terms of the Geant4 Software license.          *
00024 // ********************************************************************
00025 //
00026 // INCL++ intra-nuclear cascade model
00027 // Pekka Kaitaniemi, CEA and Helsinki Institute of Physics
00028 // Davide Mancusi, CEA
00029 // Alain Boudard, CEA
00030 // Sylvie Leray, CEA
00031 // Joseph Cugnon, University of Liege
00032 //
00033 #define INCLXX_IN_GEANT4_MODE 1
00034 
00035 #include "globals.hh"
00036 
00046 #ifndef G4INCLEVENTINFO_HH
00047 #define G4INCLEVENTINFO_HH 1
00048 
00049 #include "G4INCLParticleType.hh"
00050 #ifdef INCL_ROOT_USE
00051 #include <Rtypes.h>
00052 #endif
00053 #include <string>
00054 #include <vector>
00055 #include <algorithm>
00056 
00057 namespace G4INCL {
00058 #ifndef INCL_ROOT_USE
00059     typedef G4int Int_t;
00060     typedef short Short_t;
00061     typedef G4float Float_t;
00062     typedef G4double Double_t;
00063     typedef G4bool Bool_t;
00064 #endif
00065 
00066     struct EventInfo {
00067       EventInfo() :
00068         projectileType(UnknownParticle),
00069         At(0), Zt(0), Ap(0), Zp(0),
00070         Ep(0.),
00071         impactParameter(0.0), nCollisions(0), stoppingTime(0.0),
00072         EBalance(0.0), pLongBalance(0.0), pTransBalance(0.0),
00073         nCascadeParticles(0), nRemnants(0), nParticles(0),
00074         transparent(true),
00075         forcedCompoundNucleus(false),
00076         nucleonAbsorption(false), pionAbsorption(false), nDecays(0),
00077         nBlockedCollisions(0), nBlockedDecays(0),
00078         effectiveImpactParameter(0.0),
00079         deltasInside(false),
00080         forcedDeltasInside(false),
00081         forcedDeltasOutside(false),
00082         clusterDecay(false),
00083         firstCollisionTime(0.),
00084         firstCollisionXSec(0.),
00085         nReflectionAvatars(0),
00086         nCollisionAvatars(0),
00087         nDecayAvatars(0),
00088         nUnmergedSpectators(0)
00089       {
00090         std::fill_n(ARem, maxSizeRemnants, 0);
00091         std::fill_n(ZRem, maxSizeRemnants, 0);
00092         std::fill_n(EStarRem, maxSizeRemnants, ((Float_t)0.));
00093         std::fill_n(JRem, maxSizeRemnants, ((Float_t)0.));
00094         std::fill_n(EKinRem, maxSizeRemnants, ((Float_t)0.));
00095         std::fill_n(pxRem, maxSizeRemnants, ((Float_t)0.));
00096         std::fill_n(pyRem, maxSizeRemnants, ((Float_t)0.));
00097         std::fill_n(pzRem, maxSizeRemnants, ((Float_t)0.));
00098         std::fill_n(thetaRem, maxSizeRemnants, ((Float_t)0.));
00099         std::fill_n(phiRem, maxSizeRemnants, ((Float_t)0.));
00100         std::fill_n(jxRem, maxSizeRemnants, ((Float_t)0.));
00101         std::fill_n(jyRem, maxSizeRemnants, ((Float_t)0.));
00102         std::fill_n(jzRem, maxSizeRemnants, ((Float_t)0.));
00103 
00104         std::fill_n(A, maxSizeParticles, 0);
00105         std::fill_n(Z, maxSizeParticles, 0);
00106         std::fill_n(emissionTime, maxSizeParticles, ((Float_t)0.));
00107         std::fill_n(EKin, maxSizeParticles, ((Float_t)0.));
00108         std::fill_n(px, maxSizeParticles, ((Float_t)0.));
00109         std::fill_n(py, maxSizeParticles, ((Float_t)0.));
00110         std::fill_n(pz, maxSizeParticles, ((Float_t)0.));
00111         std::fill_n(theta, maxSizeParticles, ((Float_t)0.));
00112         std::fill_n(phi, maxSizeParticles, ((Float_t)0.));
00113         std::fill_n(origin, maxSizeParticles, 0);
00114       };
00115 
00117       static Int_t eventNumber;
00119       ParticleType projectileType;
00120 
00122       Short_t At;
00124       Short_t Zt;
00125 
00127       Short_t Ap;
00129       Short_t Zp;
00131       Float_t Ep;
00132 
00134       Float_t impactParameter;
00136       Int_t nCollisions;
00138       Float_t stoppingTime;
00139 
00141       Float_t EBalance;
00143       Float_t pLongBalance;
00145       Float_t pTransBalance;
00146 
00148       Short_t nCascadeParticles;
00150       Int_t nRemnants;
00152       Int_t nParticles;
00153 
00155       Bool_t transparent;
00157       Bool_t forcedCompoundNucleus;
00159       Bool_t nucleonAbsorption;
00161       Bool_t pionAbsorption;
00163       Int_t nDecays;
00165       Int_t nBlockedCollisions;
00167       Int_t nBlockedDecays;
00170       Float_t effectiveImpactParameter;
00171 
00173       Bool_t deltasInside;
00175       Bool_t forcedDeltasInside;
00177       Bool_t forcedDeltasOutside;
00179       Bool_t clusterDecay;
00180 
00182       Float_t firstCollisionTime;
00184       Float_t firstCollisionXSec;
00185 
00186       Int_t nReflectionAvatars;
00188       Int_t nCollisionAvatars;
00190       Int_t nDecayAvatars;
00191 
00193       Int_t nUnmergedSpectators;
00194 
00196       static const Short_t maxSizeRemnants = 10;
00198       Short_t ARem[maxSizeRemnants];
00200       Short_t ZRem[maxSizeRemnants];
00202       Float_t EStarRem[maxSizeRemnants];
00204       Float_t JRem[maxSizeRemnants];
00206       Float_t EKinRem[maxSizeRemnants];
00208       Float_t pxRem[maxSizeRemnants];
00210       Float_t pyRem[maxSizeRemnants];
00212       Float_t pzRem[maxSizeRemnants];
00214       Float_t thetaRem[maxSizeRemnants];
00216       Float_t phiRem[maxSizeRemnants];
00218       Float_t jxRem[maxSizeRemnants];
00220       Float_t jyRem[maxSizeRemnants];
00222       Float_t jzRem[maxSizeRemnants];
00223 
00225       static const Short_t maxSizeParticles = 1000;
00227       Short_t A[maxSizeParticles];
00229       Short_t Z[maxSizeParticles];
00231       Float_t emissionTime[maxSizeParticles];
00233       Float_t EKin[maxSizeParticles];
00235       Float_t px[maxSizeParticles];
00237       Float_t py[maxSizeParticles];
00239       Float_t pz[maxSizeParticles];
00241       Float_t theta[maxSizeParticles];
00243       Float_t phi[maxSizeParticles];
00250       Short_t origin[maxSizeParticles];
00270       std::vector<std::string> history;
00271 
00272 #ifdef INCL_INVERSE_KINEMATICS
00273 
00274       Float_t EKinPrime[maxSizeParticles];
00276       Float_t pzPrime[maxSizeParticles];
00278       Float_t thetaPrime[maxSizeParticles];
00279 #endif // INCL_INVERSE_KINEMATICS
00280 
00282       void reset() {
00283         Ap = 0;
00284         Zp = 0;
00285         At = 0;
00286         Zt = 0;
00287         impactParameter = 0.0;
00288         effectiveImpactParameter = 0.0;
00289         stoppingTime = 0.0;
00290         EBalance = 0.0;
00291         pLongBalance = 0.0;
00292         pTransBalance = 0.0;
00293         nCollisions = 0;
00294         nBlockedCollisions = 0;
00295         nDecays = 0;
00296         nBlockedDecays= 0;
00297         nDecays = 0;
00298         nCascadeParticles = 0;
00299         nRemnants = 0;
00300         nParticles = 0;
00301         transparent = true;
00302         forcedCompoundNucleus = false;
00303         nucleonAbsorption = false;
00304         pionAbsorption = false;
00305         forcedDeltasInside = false;
00306         forcedDeltasOutside = false;
00307         deltasInside = false;
00308         clusterDecay = false;
00309         nUnmergedSpectators = 0;
00310       }
00311 
00312 #ifdef INCL_INVERSE_KINEMATICS
00313       void fillInverseKinematics(const Double_t gamma);
00314 #endif // INCL_INVERSE_KINEMATICS
00315     };
00316 }
00317 
00318 #endif /* G4INCLEVENTINFO_HH */

Generated on Mon May 27 17:48:35 2013 for Geant4 by  doxygen 1.4.7