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 // 27 // Geant4 header G4HadronicBuilder 28 // 29 // Author V.Ivanchenko 14.05.2020 30 // 31 // Build hadronic physics 32 // 33 34 #ifndef G4HadronicBuilder_h 35 #define G4HadronicBuilder_h 1 36 37 #include "globals.hh" 38 #include <vector> 39 40 #include "G4VComponentCrossSection.hh" 41 #include "G4VCrossSectionDataSet.hh" 42 43 class G4HadronicBuilder 44 { 45 private: 46 47 // generic methods, Glauber-Gribov cross sections are used. 48 // if the boolean "bert" is true (false) then Bertini cascade is (not) built; 49 // when "bert" is false, then FTFP is used down to zero kinetic energy. 50 51 static void BuildFTFP_BERT(const std::vector<G4int>& particleList, 52 G4bool bert, const G4String& xsName); 53 54 static void BuildFTFQGSP_BERT(const std::vector<G4int>& particleList, 55 G4bool bert, const G4String& xsName); 56 57 static void BuildQGSP_FTFP_BERT(const std::vector<G4int>& particleList, 58 G4bool bert, G4bool quasiElastic, 59 const G4String& xsName); 60 61 static void BuildINCLXX(const std::vector<G4int>& particleList, 62 G4bool bert, const G4String& xsName); 63 64 65 public: 66 67 // methods to build elastic and inelastic physics per particle category 68 static void BuildElastic(const std::vector<G4int>& particleList); 69 70 static void BuildHyperonsFTFP_BERT(); 71 72 static void BuildHyperonsFTFQGSP_BERT(); 73 74 static void BuildHyperonsQGSP_FTFP_BERT(G4bool quasiElastic); 75 76 static void BuildKaonsFTFP_BERT(); 77 78 static void BuildKaonsFTFQGSP_BERT(); 79 80 static void BuildKaonsQGSP_FTFP_BERT(G4bool quasiElastic); 81 82 static void BuildAntiLightIonsFTFP(); 83 84 static void BuildAntiLightIonsINCLXX(); 85 86 //static void BuildAntiLightIonsQGSP_FTFP(G4bool quasiElastic); 87 88 static void BuildBCHadronsFTFP_BERT(); 89 90 static void BuildBCHadronsFTFQGSP_BERT(); 91 92 static void BuildBCHadronsQGSP_FTFP_BERT(G4bool quasiElastic); 93 94 // method to create some decays for heavy hadrons 95 static void BuildDecayTableForBCHadrons(); 96 97 // methods for nuclear interactions of light hypernuclei and anti-hypernuclei projectiles 98 // (note that: QGS cannot handle nuclei projectiles of any kind; INCLXX is currently 99 // the only intra-nuclear cascade model capable of handling light hypernuclei - but not 100 // light anti-hypernuclei - so only the two reference physics lists FTFP_BERT and 101 // FTFP_INCLXX are able to simulate nuclear interactions of light hypernuclei and 102 // anti-hypernuclei). 103 static void BuildHyperNucleiFTFP_BERT(); 104 static void BuildHyperAntiNucleiFTFP_BERT(); 105 static void BuildHyperNucleiFTFP_INCLXX(); 106 static void BuildFTFP_INCLXX( const std::vector< G4int >& partList, const G4String& xsName ); 107 }; 108 109 #endif 110