Geant4 Cross Reference |
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 //-------------------------------------------- 27 // ClassName: G4HyperonBuilder 28 // Author: Alberto Ribon 29 // Date: May 2020 30 // Modified: 31 //-------------------------------------------- 32 33 #include "G4HyperonBuilder.hh" 34 #include "G4ParticleDefinition.hh" 35 #include "G4ParticleTable.hh" 36 #include "G4ProcessManager.hh" 37 #include "G4HadronInelasticProcess.hh" 38 39 40 G4HyperonBuilder::G4HyperonBuilder() { 41 theLambdaInelastic = new G4HadronIne 42 theAntiLambdaInelastic = new G4HadronIne 43 theSigmaMinusInelastic = new G4HadronIne 44 theAntiSigmaMinusInelastic = new G4HadronIne 45 theSigmaPlusInelastic = new G4HadronIne 46 theAntiSigmaPlusInelastic = new G4HadronIne 47 theXiMinusInelastic = new G4HadronIne 48 theAntiXiMinusInelastic = new G4HadronIne 49 theXiZeroInelastic = new G4HadronIne 50 theAntiXiZeroInelastic = new G4HadronIne 51 theOmegaMinusInelastic = new G4HadronIne 52 theAntiOmegaMinusInelastic = new G4HadronIne 53 } 54 55 56 void G4HyperonBuilder::RegisterMe( G4PhysicsBu 57 auto bld = dynamic_cast< G4VHyperonBuilder* 58 if ( bld != nullptr ) theModelCollections.pu 59 else G4PhysicsBuilderInterf 60 } 61 62 63 void G4HyperonBuilder::Build() { 64 for ( std::vector< G4VHyperonBuilder* >::ite 65 i != theModelCollections.end(); ++i ) { 66 (*i)->Build( theLambdaInelastic ); 67 (*i)->Build( theAntiLambdaInelastic ); 68 (*i)->Build( theSigmaMinusInelastic ); 69 (*i)->Build( theAntiSigmaMinusInelastic ); 70 (*i)->Build( theSigmaPlusInelastic ); 71 (*i)->Build( theAntiSigmaPlusInelastic ); 72 (*i)->Build( theXiMinusInelastic ); 73 (*i)->Build( theAntiXiMinusInelastic ); 74 (*i)->Build( theXiZeroInelastic ); 75 (*i)->Build( theAntiXiZeroInelastic ); 76 (*i)->Build( theOmegaMinusInelastic ); 77 (*i)->Build( theAntiOmegaMinusInelastic ); 78 } 79 G4ProcessManager* aProcMan = nullptr; 80 aProcMan = G4Lambda::Lambda()->GetProcessMan 81 aProcMan->AddDiscreteProcess( theLambdaInela 82 aProcMan = G4AntiLambda::AntiLambda()->GetPr 83 aProcMan->AddDiscreteProcess( theAntiLambdaI 84 aProcMan = G4SigmaMinus::SigmaMinus()->GetPr 85 aProcMan->AddDiscreteProcess( theSigmaMinusI 86 aProcMan = G4AntiSigmaMinus::AntiSigmaMinus( 87 aProcMan->AddDiscreteProcess( theAntiSigmaMi 88 aProcMan = G4SigmaPlus::SigmaPlus()->GetProc 89 aProcMan->AddDiscreteProcess( theSigmaPlusIn 90 aProcMan = G4AntiSigmaPlus::AntiSigmaPlus()- 91 aProcMan->AddDiscreteProcess( theAntiSigmaPl 92 aProcMan = G4XiMinus::XiMinus()->GetProcessM 93 aProcMan->AddDiscreteProcess( theXiMinusInel 94 aProcMan = G4AntiXiMinus::AntiXiMinus()->Get 95 aProcMan->AddDiscreteProcess( theAntiXiMinus 96 aProcMan = G4XiZero::XiZero()->GetProcessMan 97 aProcMan->AddDiscreteProcess( theXiZeroInela 98 aProcMan = G4AntiXiZero::AntiXiZero()->GetPr 99 aProcMan->AddDiscreteProcess( theAntiXiZeroI 100 aProcMan = G4OmegaMinus::OmegaMinus()->GetPr 101 aProcMan->AddDiscreteProcess( theOmegaMinusI 102 aProcMan = G4AntiOmegaMinus::AntiOmegaMinus( 103 aProcMan->AddDiscreteProcess( theAntiOmegaMi 104 } 105