- Timestamp:
- Jan 8, 2010, 3:02:48 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/examples/advanced/brachytherapy/src/BrachyPhysicsList.cc
r807 r1230 36 36 // ********************************** 37 37 // 38 // $Id: BrachyPhysicsList.cc,v 1.1 3 2006/11/15 10:02:17 guatelliExp $39 // GEANT4 tag $Name: $38 // $Id: BrachyPhysicsList.cc,v 1.14 2009/11/12 02:50:51 cirrone Exp $ 39 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 40 40 // 41 41 #include "BrachyPhysicsList.hh" … … 47 47 #include "G4UnitsTable.hh" 48 48 #include "G4ios.hh" 49 50 49 #include "G4MultipleScattering.hh" 51 50 // gamma 52 #include "G4LowEnergyRayleigh.hh" 53 #include "G4LowEnergyPhotoElectric.hh" 54 #include "G4LowEnergyCompton.hh" 55 #include "G4LowEnergyGammaConversion.hh" 51 #include "G4PhotoElectricEffect.hh" 52 #include "G4LivermorePhotoElectricModel.hh" 53 54 #include "G4ComptonScattering.hh" 55 #include "G4LivermoreComptonModel.hh" 56 57 #include "G4GammaConversion.hh" 58 #include "G4LivermoreGammaConversionModel.hh" 59 60 #include "G4RayleighScattering.hh" 61 #include "G4LivermoreRayleighModel.hh" 62 56 63 // e- 57 #include "G4LowEnergyIonisation.hh" 58 #include "G4LowEnergyBremsstrahlung.hh" 64 #include "G4eMultipleScattering.hh" 65 #include "G4eIonisation.hh" 66 #include "G4LivermoreIonisationModel.hh" 67 #include "G4eBremsstrahlung.hh" 68 #include "G4LivermoreBremsstrahlungModel.hh" 69 59 70 // e+ 60 71 #include "G4eIonisation.hh" … … 80 91 ConstructBosons(); 81 92 ConstructLeptons(); 93 82 94 } 83 95 … … 114 126 115 127 if (particleName == "gamma") { 128 116 129 // Photon 117 pmanager->AddDiscreteProcess(new G4LowEnergyRayleigh); 118 pmanager->AddDiscreteProcess(new G4LowEnergyPhotoElectric); 119 pmanager->AddDiscreteProcess(new G4LowEnergyCompton); 120 pmanager->AddDiscreteProcess(new G4LowEnergyGammaConversion); 130 G4RayleighScattering* theRayleigh = new G4RayleighScattering(); 131 theRayleigh->SetModel(new G4LivermoreRayleighModel()); //not strictly necessary 132 pmanager->AddDiscreteProcess(theRayleigh); 133 134 G4PhotoElectricEffect* thePhotoElectricEffect = new G4PhotoElectricEffect(); 135 thePhotoElectricEffect->SetModel(new G4LivermorePhotoElectricModel()); 136 pmanager->AddDiscreteProcess(thePhotoElectricEffect); 137 138 G4ComptonScattering* theComptonScattering = new G4ComptonScattering(); 139 theComptonScattering->SetModel(new G4LivermoreComptonModel()); 140 pmanager->AddDiscreteProcess(theComptonScattering); 141 142 G4GammaConversion* theGammaConversion = new G4GammaConversion(); 143 theGammaConversion->SetModel(new G4LivermoreGammaConversionModel()); 144 pmanager->AddDiscreteProcess(theGammaConversion); 121 145 122 146 } else if (particleName == "e-") { 123 147 // Electron 124 G4LowEnergyIonisation* loweIon = new G4LowEnergyIonisation("LowEnergyIoni"); 125 126 G4LowEnergyBremsstrahlung* loweBrem = new G4LowEnergyBremsstrahlung("LowEnBrem"); 127 // Select the Bremsstrahlung angular distribution model (Tsai/2BN/2BS) 128 loweBrem->SetAngularGenerator("tsai"); 129 130 pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); 131 pmanager->AddProcess(loweIon, -1, 2,2); 132 pmanager->AddProcess(loweBrem, -1,-1,3); 148 149 G4eMultipleScattering* msc = new G4eMultipleScattering(); 150 msc->SetStepLimitType(fUseDistanceToBoundary); 151 pmanager->AddProcess(msc,-1, 1, 1); 152 153 // Ionisation 154 G4eIonisation* eIonisation = new G4eIonisation(); 155 eIonisation->SetEmModel(new G4LivermoreIonisationModel()); 156 eIonisation->SetStepFunction(0.2, 100*um); //improved precision in tracking 157 pmanager->AddProcess(eIonisation,-1, 2, 2); 158 159 // Bremsstrahlung 160 G4eBremsstrahlung* eBremsstrahlung = new G4eBremsstrahlung(); 161 eBremsstrahlung->SetEmModel(new G4LivermoreBremsstrahlungModel()); 162 pmanager->AddProcess(eBremsstrahlung, -1,-3, 3); 133 163 134 164 } else if (particleName == "e+") { 135 165 // Positron 136 pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); 137 pmanager->AddProcess(new G4eIonisation, -1, 2,2); 138 pmanager->AddProcess(new G4eBremsstrahlung, -1,-1,3); 139 pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); 166 G4eMultipleScattering* msc = new G4eMultipleScattering(); 167 msc->SetStepLimitType(fUseDistanceToBoundary); 168 pmanager->AddProcess(msc,-1, 1, 1); 169 170 // Ionisation 171 G4eIonisation* eIonisation = new G4eIonisation(); 172 eIonisation->SetStepFunction(0.2, 100*um); // 173 pmanager->AddProcess(eIonisation, -1, 2, 2); 174 175 //Bremsstrahlung (use default, no low-energy available) 176 pmanager->AddProcess(new G4eBremsstrahlung(), -1,-1, 3); 177 178 //Annihilation 179 pmanager->AddProcess(new G4eplusAnnihilation(),0,-1, 4); 140 180 141 181 }
Note: See TracChangeset
for help on using the changeset viewer.