Geant4 Cross Reference |
1 // 2 // ******************************************************************** 3 // * License and Disclaimer * 4 // * * 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. * 10 // * * 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitation of liability. * 17 // * * 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboration. * 20 // * By using, copying, modifying or distributing the software (or * 21 // * any work based on the software) you agree to acknowledge its * 22 // * use in resulting scientific publications, and indicate your * 23 // * acceptance of all terms of the Geant4 Software license. * 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 Helsinki Institute of Physics, Finland 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 #include "G4INCLParticle.hh" 39 #include "G4INCLIChannel.hh" 40 #include "G4INCLNucleus.hh" 41 #include "G4INCLAllocationPool.hh" 42 #include "G4INCLFinalState.hh" 43 #include "G4INCLICoulomb.hh" 44 #include <utility> 45 #include <string> 46 #include <vector> 47 #include <iostream> 48 #include <fstream> 49 #include <sstream> 50 51 52 #ifndef G4INCLPbarAtrestEntry_hh 53 #define G4INCLPbarAtrestEntry_hh 1 54 55 namespace G4INCL { 56 57 class FinalState; 58 59 class PbarAtrestEntryChannel : public IChannel { 60 public: 61 PbarAtrestEntryChannel(Nucleus *n, Particle *p); 62 virtual ~PbarAtrestEntryChannel(); 63 64 void fillFinalState(FinalState *fs); 65 66 ParticleList makeMesonStar(); 67 G4double PbarCoulombicCascadeEnergy(G4int A, G4int Z); 68 G4double n_annihilation(G4int A, G4int Z); 69 IAvatarList bringMesonStar(ParticleList const &pL, Nucleus * const n); 70 G4bool ProtonIsTheVictim(); 71 ThreeVector getAnnihilationPosition(); 72 73 G4double fctrl(const G4double arg1); 74 G4double r1(const G4int n); 75 G4double r2(const G4int n); 76 G4double r3(G4double x, const G4int n); 77 G4double r4(G4double x, const G4int n); 78 G4double radial_wavefunction(G4double x, const G4int n); 79 G4double densityP(G4double x); 80 G4double densityN(G4double x); 81 G4double overlapP(G4double &x, const G4int n); 82 G4double overlapN(G4double &x, const G4int n); 83 G4double read_file(std::string filename, std::vector<G4double>& probabilities, std::vector<std::vector<std::string>>& particle_types); 84 G4int findStringNumber(G4double rdm, std::vector<G4double> yields); 85 86 private: 87 Nucleus *theNucleus; 88 Particle *theParticle; 89 90 91 INCL_DECLARE_ALLOCATION_POOL(PbarAtrestEntryChannel) 92 }; 93 } 94 95 #endif 96