Warning, file /include/Geant4/G4INCLEventInfo.hh was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034 #define INCLXX_IN_GEANT4_MODE 1
0035
0036 #include "globals.hh"
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047 #ifndef G4INCLEVENTINFO_HH_HH
0048 #define G4INCLEVENTINFO_HH_HH 1
0049
0050 #include "G4INCLParticleType.hh"
0051 #ifdef INCL_ROOT_USE
0052 #include <Rtypes.h>
0053 #endif
0054 #include <string>
0055 #include <vector>
0056 #include <algorithm>
0057
0058 namespace G4INCL {
0059 #ifndef INCL_ROOT_USE
0060 typedef G4int Int_t;
0061 typedef short Short_t;
0062 typedef G4float Float_t;
0063 typedef G4double Double_t;
0064 typedef G4bool Bool_t;
0065 #endif
0066
0067 struct EventInfo {
0068 EventInfo() :
0069 nParticles(0),
0070 event(0),
0071 eventBias((Float_t)0.0),
0072 nRemnants(0),
0073 projectileType(0),
0074 At(0),
0075 Zt(0),
0076 St(0),
0077 Ap(0),
0078 Zp(0),
0079 Sp(0),
0080 Ep((Float_t)0.0),
0081 impactParameter((Float_t)0.0),
0082 nCollisions(0),
0083 stoppingTime((Float_t)0.0),
0084 EBalance((Float_t)0.0),
0085 firstEBalance((Float_t)0.0),
0086 pLongBalance((Float_t)0.0),
0087 pTransBalance((Float_t)0.0),
0088 nCascadeParticles(0),
0089 transparent(false),
0090 annihilationP(false),
0091 annihilationN(false),
0092 forcedCompoundNucleus(false),
0093 nucleonAbsorption(false),
0094 pionAbsorption(false),
0095 nDecays(0),
0096 fission(false),
0097 fissmode(0),
0098 EStarFis((Float_t)0.0),
0099 ASad(0),
0100 ZSad(0),
0101 nSrcCollisions(0),
0102 nSrcPairs(0),
0103 nBlockedCollisions(0),
0104 nBlockedDecays(0),
0105 effectiveImpactParameter((Float_t)0.0),
0106 deltasInside(false),
0107 sigmasInside(false),
0108 kaonsInside(false),
0109 antinucleonsInside(false),
0110 antikaonsInside(false),
0111 lambdasInside(false),
0112 forcedDeltasInside(false),
0113 forcedDeltasOutside(false),
0114 forcedPionResonancesOutside(false),
0115 absorbedStrangeParticle(false),
0116 forcedSigmaOutside(false),
0117 forcedStrangeInside(false),
0118 emitLambda(0),
0119 emitAntilambda(0),
0120 emitKaon(false),
0121 emitAntinucleon(false),
0122 clusterDecay(false),
0123 firstCollisionTime((Float_t)0.0),
0124 firstCollisionXSec((Float_t)0.0),
0125 firstCollisionSpectatorPosition((Float_t)0.0),
0126 firstCollisionSpectatorMomentum((Float_t)0.0),
0127 firstCollisionIsElastic(false),
0128 nReflectionAvatars(0),
0129 nCollisionAvatars(0),
0130 nDecayAvatars(0),
0131 nUnmergedSpectators(0),
0132 nEnergyViolationInteraction(0)
0133
0134 {
0135 std::fill_n(A, maxSizeParticles, 0);
0136 std::fill_n(Z, maxSizeParticles, 0);
0137 std::fill_n(S, maxSizeParticles, 0);
0138 std::fill_n(J, maxSizeParticles, 0);
0139 std::fill_n(PDGCode, maxSizeParticles, 0);
0140 std::fill_n(ParticleBias, maxSizeParticles, (Float_t)0.0);
0141 std::fill_n(EKin, maxSizeParticles, (Float_t)0.0);
0142 std::fill_n(px, maxSizeParticles, (Float_t)0.0);
0143 std::fill_n(py, maxSizeParticles, (Float_t)0.0);
0144 std::fill_n(pz, maxSizeParticles, (Float_t)0.0);
0145 std::fill_n(theta, maxSizeParticles, (Float_t)0.0);
0146 std::fill_n(phi, maxSizeParticles, (Float_t)0.0);
0147 std::fill_n(origin, maxSizeParticles, 0);
0148 std::fill_n(parentResonancePDGCode, maxSizeParticles, 0);
0149 std::fill_n(parentResonanceID, maxSizeParticles, 0);
0150 std::fill_n(emissionTime, maxSizeParticles, (Float_t)0.0);
0151 std::fill_n(ARem, maxSizeRemnants, 0);
0152 std::fill_n(ZRem, maxSizeRemnants, 0);
0153 std::fill_n(SRem, maxSizeRemnants, 0);
0154 std::fill_n(EStarRem, maxSizeRemnants, (Float_t)0.0);
0155 std::fill_n(JRem, maxSizeRemnants, (Float_t)0.0);
0156 std::fill_n(EKinRem, maxSizeRemnants, (Float_t)0.0);
0157 std::fill_n(pxRem, maxSizeRemnants, (Float_t)0.0);
0158 std::fill_n(pyRem, maxSizeRemnants, (Float_t)0.0);
0159 std::fill_n(pzRem, maxSizeRemnants, (Float_t)0.0);
0160 std::fill_n(thetaRem, maxSizeRemnants, (Float_t)0.0);
0161 std::fill_n(phiRem, maxSizeRemnants, (Float_t)0.0);
0162 std::fill_n(jxRem, maxSizeRemnants, (Float_t)0.0);
0163 std::fill_n(jyRem, maxSizeRemnants, (Float_t)0.0);
0164 std::fill_n(jzRem, maxSizeRemnants, (Float_t)0.0);
0165 std::fill_n(EKinPrime, maxSizeParticles, (Float_t)0.0);
0166 std::fill_n(pzPrime, maxSizeParticles, (Float_t)0.0);
0167 std::fill_n(thetaPrime, maxSizeParticles, (Float_t)0.0);
0168 }
0169
0170
0171 static G4ThreadLocal Int_t eventNumber;
0172
0173
0174 static const Short_t maxSizeRemnants = 10;
0175
0176
0177 static const Short_t maxSizeParticles = 1000;
0178
0179
0180 Short_t nParticles;
0181
0182 Int_t event;
0183
0184 Short_t A[maxSizeParticles];
0185
0186 Short_t Z[maxSizeParticles];
0187
0188 Short_t S[maxSizeParticles];
0189
0190 Short_t J[maxSizeParticles];
0191
0192 Int_t PDGCode[maxSizeParticles];
0193
0194 Float_t eventBias;
0195
0196 Float_t ParticleBias[maxSizeParticles];
0197
0198 Float_t EKin[maxSizeParticles];
0199
0200 Float_t px[maxSizeParticles];
0201
0202 Float_t py[maxSizeParticles];
0203
0204 Float_t pz[maxSizeParticles];
0205
0206 Float_t theta[maxSizeParticles];
0207
0208 Float_t phi[maxSizeParticles];
0209
0210
0211
0212
0213 Short_t origin[maxSizeParticles];
0214
0215 Int_t parentResonancePDGCode[maxSizeParticles];
0216
0217 Int_t parentResonanceID[maxSizeParticles];
0218
0219
0220
0221
0222
0223
0224
0225
0226
0227
0228
0229
0230
0231
0232
0233
0234
0235
0236 std::vector<std::string> history;
0237
0238 Short_t nRemnants;
0239
0240 Int_t projectileType;
0241
0242 Short_t At;
0243
0244 Short_t Zt;
0245
0246 Short_t St;
0247
0248 Short_t Ap;
0249
0250 Short_t Zp;
0251
0252 Short_t Sp;
0253
0254 Float_t Ep;
0255
0256 Float_t impactParameter;
0257
0258 Int_t nCollisions;
0259
0260 Float_t stoppingTime;
0261
0262 Float_t EBalance;
0263
0264 Float_t firstEBalance;
0265
0266 Float_t pLongBalance;
0267
0268 Float_t pTransBalance;
0269
0270 Short_t nCascadeParticles;
0271
0272 Bool_t transparent;
0273
0274 Bool_t annihilationP;
0275
0276 Bool_t annihilationN;
0277
0278 Bool_t forcedCompoundNucleus;
0279
0280 Bool_t nucleonAbsorption;
0281
0282 Bool_t pionAbsorption;
0283
0284 Int_t nDecays;
0285
0286 Bool_t fission;
0287
0288 Short_t fissmode;
0289
0290 Float_t EStarFis;
0291
0292 Short_t ASad;
0293
0294 Short_t ZSad;
0295
0296 std::vector<Int_t> ASci;
0297
0298 std::vector<Int_t> ZSci;
0299
0300 Int_t nSrcCollisions;
0301
0302 Int_t nSrcPairs;
0303
0304 Int_t nBlockedCollisions;
0305
0306 Int_t nBlockedDecays;
0307
0308 Float_t effectiveImpactParameter;
0309
0310 Bool_t deltasInside;
0311
0312 Bool_t sigmasInside;
0313
0314 Bool_t kaonsInside;
0315
0316 Bool_t antinucleonsInside;
0317
0318 Bool_t antikaonsInside;
0319
0320 Bool_t lambdasInside;
0321
0322 Bool_t forcedDeltasInside;
0323
0324 Bool_t forcedDeltasOutside;
0325
0326 Bool_t forcedPionResonancesOutside;
0327
0328 Bool_t absorbedStrangeParticle;
0329
0330 Bool_t forcedSigmaOutside;
0331
0332 Bool_t forcedStrangeInside;
0333
0334 Int_t emitLambda;
0335
0336 Int_t emitAntilambda;
0337
0338 Bool_t emitKaon;
0339
0340 Bool_t emitAntinucleon;
0341
0342 Bool_t clusterDecay;
0343
0344 Float_t firstCollisionTime;
0345
0346 Float_t firstCollisionXSec;
0347
0348 Float_t firstCollisionSpectatorPosition;
0349
0350 Float_t firstCollisionSpectatorMomentum;
0351
0352 Bool_t firstCollisionIsElastic;
0353
0354 Int_t nReflectionAvatars;
0355
0356 Int_t nCollisionAvatars;
0357
0358 Int_t nDecayAvatars;
0359
0360 Int_t nUnmergedSpectators;
0361
0362 Int_t nEnergyViolationInteraction;
0363
0364 Float_t emissionTime[maxSizeParticles];
0365
0366 Short_t ARem[maxSizeRemnants];
0367
0368 Short_t ZRem[maxSizeRemnants];
0369
0370 Short_t SRem[maxSizeRemnants];
0371
0372 Float_t EStarRem[maxSizeRemnants];
0373
0374 Float_t JRem[maxSizeRemnants];
0375
0376 Float_t EKinRem[maxSizeRemnants];
0377
0378 Float_t pxRem[maxSizeRemnants];
0379
0380 Float_t pyRem[maxSizeRemnants];
0381
0382 Float_t pzRem[maxSizeRemnants];
0383
0384 Float_t thetaRem[maxSizeRemnants];
0385
0386 Float_t phiRem[maxSizeRemnants];
0387
0388 Float_t jxRem[maxSizeRemnants];
0389
0390 Float_t jyRem[maxSizeRemnants];
0391
0392 Float_t jzRem[maxSizeRemnants];
0393
0394 Float_t EKinPrime[maxSizeParticles];
0395
0396 Float_t pzPrime[maxSizeParticles];
0397
0398 Float_t thetaPrime[maxSizeParticles];
0399
0400
0401 void reset() {
0402 nParticles = 0;
0403 event = 0;
0404 eventBias = (Float_t)0.0;
0405 history.clear();
0406 nRemnants = 0;
0407 projectileType = 0;
0408 At = 0;
0409 Zt = 0;
0410 St = 0;
0411 Ap = 0;
0412 Zp = 0;
0413 Sp = 0;
0414 Ep = (Float_t)0.0;
0415 impactParameter = (Float_t)0.0;
0416 nCollisions = 0;
0417 stoppingTime = (Float_t)0.0;
0418 EBalance = (Float_t)0.0;
0419 firstEBalance = (Float_t)0.0;
0420 pLongBalance = (Float_t)0.0;
0421 pTransBalance = (Float_t)0.0;
0422 nCascadeParticles = 0;
0423 transparent = false;
0424 annihilationP = false;
0425 annihilationN = false;
0426 forcedCompoundNucleus = false;
0427 nucleonAbsorption = false;
0428 pionAbsorption = false;
0429 nDecays = 0;
0430 fission = false;
0431 fissmode = 0;
0432 EStarFis = (Float_t)0.0;
0433 ASad = 0;
0434 ZSad = 0;
0435 ASci.clear();
0436 ZSci.clear();
0437 nSrcCollisions = 0;
0438 nSrcPairs = 0;
0439 nBlockedCollisions = 0;
0440 nBlockedDecays = 0;
0441 effectiveImpactParameter = (Float_t)0.0;
0442 deltasInside = false;
0443 sigmasInside = false;
0444 kaonsInside = false;
0445 antinucleonsInside = false;
0446 antikaonsInside = false;
0447 lambdasInside = false;
0448 forcedDeltasInside = false;
0449 forcedDeltasOutside = false;
0450 forcedPionResonancesOutside = false;
0451 absorbedStrangeParticle = false;
0452 forcedSigmaOutside = false;
0453 forcedStrangeInside = false;
0454 emitLambda = 0;
0455 emitAntilambda = 0;
0456 emitKaon = false;
0457 emitAntinucleon = false;
0458 clusterDecay = false;
0459 firstCollisionTime = (Float_t)0.0;
0460 firstCollisionXSec = (Float_t)0.0;
0461 firstCollisionSpectatorPosition = (Float_t)0.0;
0462 firstCollisionSpectatorMomentum = (Float_t)0.0;
0463 firstCollisionIsElastic = false;
0464 nReflectionAvatars = 0;
0465 nCollisionAvatars = 0;
0466 nDecayAvatars = 0;
0467 nUnmergedSpectators = 0;
0468 nEnergyViolationInteraction = 0;
0469
0470 }
0471
0472
0473 void remnantToParticle(const G4int remnantIndex);
0474
0475
0476 void fillInverseKinematics(const Double_t gamma);
0477 };
0478 }
0479
0480 #endif