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 Author: Susanna Guatelli 28 */ 29 // 30 // ********************************** 31 // * * 32 // * BrachyPhysicsList.cc * 33 // * * 34 // ********************************** 35 // 36 #include "BrachyPhysicsList.hh" 37 #include "BrachyPhysicsListMessenger.hh" 38 #include "G4EmStandardPhysics_option4.hh" 39 #include "G4EmLivermorePhysics.hh" 40 #include "G4EmStandardPhysics.hh" 41 #include "G4EmStandardPhysics_option1.hh" 42 #include "G4EmStandardPhysics_option2.hh" 43 #include "G4EmStandardPhysics_option3.hh" 44 #include "G4EmStandardPhysics_option4.hh" 45 #include "G4DecayPhysics.hh" 46 #include "G4RadioactiveDecayPhysics.hh" 47 #include "G4EmPenelopePhysics.hh" 48 #include "G4VPhysicsConstructor.hh" 49 #include "G4ParticleDefinition.hh" 50 #include "G4ProductionCutsTable.hh" 51 #include "G4ProcessManager.hh" 52 #include "G4ParticleTypes.hh" 53 #include "G4ios.hh" 54 #include "G4StepLimiter.hh" 55 #include "G4ParticleDefinition.hh" 56 #include "globals.hh" 57 #include "G4SystemOfUnits.hh" 58 #include "G4UAtomicDeexcitation.hh" 59 #include "G4LossTableManager.hh" 60 61 BrachyPhysicsList::BrachyPhysicsList(): G4VMo 62 { 63 SetVerboseLevel(1); 64 65 G4ProductionCutsTable::GetProductionCutsTable( 66 SetDefaultCutValue(0.05 *mm); 67 DumpCutValuesTable(); 68 69 // EM physics: default 70 fEmPhysicsList = new G4EmLivermorePhysics(); 71 fEmName="emlivermore"; 72 73 // Add Decay 74 fDecPhysicsList = new G4DecayPhysics(); 75 fRadDecayPhysicsList = new G4RadioactiveDecayP 76 fMessenger = new BrachyPhysicsListMessenger(th 77 } 78 79 BrachyPhysicsList::~BrachyPhysicsList() 80 { 81 delete fMessenger; 82 delete fDecPhysicsList; 83 delete fRadDecayPhysicsList; 84 delete fEmPhysicsList; 85 } 86 87 void BrachyPhysicsList::ConstructParticle() 88 { 89 fDecPhysicsList -> ConstructParticle(); 90 } 91 92 void BrachyPhysicsList::ConstructProcess() 93 { 94 AddTransportation(); 95 fEmPhysicsList -> ConstructProcess(); 96 97 // decay physics list 98 fDecPhysicsList -> ConstructProcess(); 99 fRadDecayPhysicsList -> ConstructProcess(); 100 101 // Deexcitation 102 // Both Fluorescence and Auger e- emission act 103 G4VAtomDeexcitation* de = new G4UAtomicDeexcit 104 G4LossTableManager::Instance()->SetAtomDeexcit 105 de -> SetFluo(true); 106 de -> SetAuger(true); 107 108 // To model full Auger cascade include in the 109 // the following UI commands: 110 // process/em/augerCascade true 111 // process/em/deexcitationIgnoreCut true 112 } 113 114 void BrachyPhysicsList::AddPhysicsList(const G 115 { 116 117 if (name == fEmName) return; 118 119 if (name == "emstandard_opt0"){ 120 fEmName = name; 121 delete fEmPhysicsList; 122 fEmPhysicsList = new G4EmStandardPhysics() 123 G4cout << "PhysicsList::AddPhysicsList: <" 124 125 } else if (name == "emstandard_opt1"){ 126 fEmName = name; 127 delete fEmPhysicsList; 128 fEmPhysicsList = new G4EmStandardPhysics_o 129 G4cout << "PhysicsList::AddPhysicsList: <" 130 } else if (name == "emstandard_opt2"){ 131 fEmName = name; 132 delete fEmPhysicsList; 133 fEmPhysicsList = new G4EmStandardPhysics_o 134 G4cout << "PhysicsList::AddPhysicsList: <" 135 } else if (name == "emstandard_opt3"){ 136 fEmName = name; 137 delete fEmPhysicsList; 138 fEmPhysicsList = new G4EmStandardPhysics_o 139 G4cout << "PhysicsList::AddPhysicsList: <" 140 } else if (name == "emstandard_opt4"){ 141 fEmName = name; 142 delete fEmPhysicsList; 143 fEmPhysicsList = new G4EmStandardPhysics_o 144 G4cout << "PhysicsList::AddPhysicsList: <" 145 } else if (name == "empenelope"){ 146 fEmName = name; 147 delete fEmPhysicsList; 148 fEmPhysicsList = new G4EmPenelopePhysics() 149 G4cout << "PhysicsList::AddPhysicsList: <" 150 } else if (name == "emlivermore"){ 151 fEmName = name; 152 delete fEmPhysicsList; 153 fEmPhysicsList = new G4EmLivermorePhysics( 154 G4cout << "PhysicsList::AddPhysicsList: <" 155 } else { 156 157 G4cout << "PhysicsList::AddPhysicsList: <" 158 << " is not defined" 159 << G4endl; 160 } 161 G4cout << "PhysicsList::AddPhysicsList: <" < 162 << " is activated" 163 << G4endl; 164 } 165 166