Changeset 1230 for trunk/examples/advanced/microbeam/src
- Timestamp:
- Jan 8, 2010, 3:02:48 PM (14 years ago)
- Location:
- trunk/examples/advanced/microbeam/src
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/examples/advanced/microbeam/src/MicrobeamEMField.cc
r807 r1230 25 25 // 26 26 // ------------------------------------------------------------------- 27 // $Id: MicrobeamEMField.cc,v 1. 6 2007/07/06 06:52:54sincerti Exp $27 // $Id: MicrobeamEMField.cc,v 1.9 2009/04/30 10:23:57 sincerti Exp $ 28 28 // ------------------------------------------------------------------- 29 29 … … 58 58 // *********************** 59 59 60 // MAGNETIC FIELD VALUE FOR 3 MeV ALPHAS 61 G4double switchingField = 0.0589768635 * tesla ; 60 // MAGNETIC FIELD VALUE FOR 3 MeV ALPHAS 61 // G4double switchingField = 0.0589768635 * tesla ; 62 G4double switchingField = 0.0590201 * tesla ; 62 63 63 64 // BEAM START … … 181 182 G4double xoprime, zoprime; 182 183 183 if (z>=-1400*mm & z <-200*mm)184 if (z>=-1400*mm && z <-200*mm) 184 185 { 185 186 Bx=0; By=0; Bz=0; … … 523 524 524 525 if ( 525 (Bfield[0]==0.&526 Bfield[1]==0.&527 Bfield[2]==0.&528 Bfield[4]==0.&529 Bfield[5]==0.&530 Bfield[6]==0. )531 )526 (Bfield[0]==0. && 527 Bfield[1]==0. && 528 Bfield[2]==0. && 529 Bfield[3]==0. && 530 Bfield[4]==0. && 531 Bfield[5]==0. ) 532 ) 532 533 { 533 534 -
trunk/examples/advanced/microbeam/src/MicrobeamPhantomConfiguration.cc
r807 r1230 25 25 // 26 26 // ------------------------------------------------------------------- 27 // $Id: MicrobeamPhantomConfiguration.cc,v 1. 5 2006/06/29 16:05:31 gunterExp $27 // $Id: MicrobeamPhantomConfiguration.cc,v 1.6 2008/06/16 07:46:11 sincerti Exp $ 28 28 // ------------------------------------------------------------------- 29 29 … … 87 87 if (mat==2) // NUCLEUS 88 88 { 89 if (den==1) density = denNucl1 ;90 if (den==2) density = denNucl2 ;91 if (den==3) density = denNucl3 ;89 if (den==1) density = denNucl1*(g/cm3); 90 if (den==2) density = denNucl2*(g/cm3); 91 if (den==3) density = denNucl3*(g/cm3); 92 92 nucleusMass = nucleusMass + density * dx * dy * dz ; 93 93 } … … 95 95 if (mat==1) // CYTOPLASM 96 96 { 97 if (den==1) density = denCyto1 ;98 if (den==2) density = denCyto2 ;99 if (den==3) density = denCyto3 ;97 if (den==1) density = denCyto1*(g/cm3); 98 if (den==2) density = denCyto2*(g/cm3); 99 if (den==3) density = denCyto3*(g/cm3); 100 100 cytoplasmMass = cytoplasmMass + density * dx * dy * dz ; 101 101 } … … 106 106 107 107 fclose(fMap); 108 109 nucleusMass = nucleusMass * 1e-6 ; 110 cytoplasmMass = cytoplasmMass * 1e-6 ; 111 108 112 109 return 0; 113 110 } -
trunk/examples/advanced/microbeam/src/MicrobeamPhysicsList.cc
r807 r1230 25 25 // 26 26 // ------------------------------------------------------------------- 27 // $Id: MicrobeamPhysicsList.cc,v 1. 6 2006/11/23 12:24:20sincerti Exp $27 // $Id: MicrobeamPhysicsList.cc,v 1.8 2009/04/30 10:23:57 sincerti Exp $ 28 28 // ------------------------------------------------------------------- 29 29 … … 107 107 } 108 108 109 #include "G4MultipleScattering.hh" 109 // *** Processes and models 110 111 // gamma 112 113 #include "G4PhotoElectricEffect.hh" 114 #include "G4LivermorePhotoElectricModel.hh" 115 116 #include "G4ComptonScattering.hh" 117 #include "G4LivermoreComptonModel.hh" 118 119 #include "G4GammaConversion.hh" 120 #include "G4LivermoreGammaConversionModel.hh" 121 122 #include "G4RayleighScattering.hh" 123 #include "G4LivermoreRayleighModel.hh" 124 125 // e- 126 127 #include "G4eMultipleScattering.hh" 128 #include "G4UniversalFluctuation.hh" 129 110 130 #include "G4eIonisation.hh" 131 #include "G4LivermoreIonisationModel.hh" 132 111 133 #include "G4eBremsstrahlung.hh" 134 #include "G4LivermoreBremsstrahlungModel.hh" 135 136 // e+ 137 112 138 #include "G4eplusAnnihilation.hh" 139 140 // mu 113 141 114 142 #include "G4MuIonisation.hh" … … 116 144 #include "G4MuPairProduction.hh" 117 145 118 #include "G4LowEnergyPhotoElectric.hh" 119 #include "G4LowEnergyCompton.hh" 120 #include "G4LowEnergyGammaConversion.hh" 121 #include "G4LowEnergyRayleigh.hh" 122 123 #include "G4LowEnergyIonisation.hh" 124 #include "G4LowEnergyBremsstrahlung.hh" 125 126 #include "G4hLowEnergyIonisation.hh" 146 // hadrons 147 127 148 #include "G4hMultipleScattering.hh" 149 #include "G4MscStepLimitType.hh" 150 151 #include "G4hBremsstrahlung.hh" 152 #include "G4hPairProduction.hh" 153 154 #include "G4hIonisation.hh" 155 #include "G4ionIonisation.hh" 156 #include "G4IonParametrisedLossModel.hh" 157 158 // 159 160 #include "G4LossTableManager.hh" 161 #include "G4EmProcessOptions.hh" 128 162 129 163 … … 143 177 144 178 145 pmanager->AddDiscreteProcess(new G4LowEnergyCompton); 146 147 G4LowEnergyPhotoElectric * LePeprocess = new G4LowEnergyPhotoElectric(); 148 LePeprocess->ActivateAuger(true); 149 LePeprocess->SetCutForLowEnSecPhotons(0.250 * keV); 150 LePeprocess->SetCutForLowEnSecElectrons(0.250 * keV); 151 pmanager->AddDiscreteProcess(LePeprocess); 152 153 pmanager->AddDiscreteProcess(new G4LowEnergyGammaConversion()); 154 155 pmanager->AddDiscreteProcess(new G4LowEnergyRayleigh()); 156 157 pmanager->AddProcess(new G4StepLimiter(), -1, -1, 3); 158 179 G4PhotoElectricEffect* thePhotoElectricEffect = new G4PhotoElectricEffect(); 180 G4LivermorePhotoElectricModel* theLivermorePhotoElectricModel = new G4LivermorePhotoElectricModel(); 181 thePhotoElectricEffect->AddEmModel(0, theLivermorePhotoElectricModel); 182 pmanager->AddDiscreteProcess(thePhotoElectricEffect); 183 184 G4ComptonScattering* theComptonScattering = new G4ComptonScattering(); 185 G4LivermoreComptonModel* theLivermoreComptonModel = new G4LivermoreComptonModel(); 186 theComptonScattering->AddEmModel(0, theLivermoreComptonModel); 187 pmanager->AddDiscreteProcess(theComptonScattering); 188 189 G4GammaConversion* theGammaConversion = new G4GammaConversion(); 190 G4LivermoreGammaConversionModel* theLivermoreGammaConversionModel = new G4LivermoreGammaConversionModel(); 191 theGammaConversion->AddEmModel(0, theLivermoreGammaConversionModel); 192 pmanager->AddDiscreteProcess(theGammaConversion); 193 194 G4RayleighScattering* theRayleigh = new G4RayleighScattering(); 195 G4LivermoreRayleighModel* theRayleighModel = new G4LivermoreRayleighModel(); 196 theRayleigh->AddEmModel(0, theRayleighModel); 197 pmanager->AddDiscreteProcess(theRayleigh); 198 199 pmanager->AddProcess(new G4StepLimiter(), -1, -1, 5); 159 200 160 201 } else if (particleName == "e-") { 161 202 162 pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); 163 164 G4LowEnergyIonisation * LeIoprocess = new G4LowEnergyIonisation("IONI"); 165 LeIoprocess->ActivateAuger(true); 166 LeIoprocess->SetCutForLowEnSecPhotons(0.1*keV); 167 LeIoprocess->SetCutForLowEnSecElectrons(0.1*keV); 168 pmanager->AddProcess(LeIoprocess, -1, 2, 2); 169 170 G4LowEnergyBremsstrahlung * LeBrprocess = new G4LowEnergyBremsstrahlung(); 171 pmanager->AddProcess(LeBrprocess, -1, -1, 3); 203 G4eMultipleScattering* msc = new G4eMultipleScattering(); 204 msc->SetStepLimitType(fUseDistanceToBoundary); 205 pmanager->AddProcess(msc, -1, 1, 1); 206 207 // Ionisation 208 G4eIonisation* eIoni = new G4eIonisation(); 209 eIoni->AddEmModel(0, new G4LivermoreIonisationModel(), new G4UniversalFluctuation() ); 210 eIoni->SetStepFunction(0.2, 100*um); // 211 pmanager->AddProcess(eIoni, -1, 2, 2); 212 213 // Bremsstrahlung 214 G4eBremsstrahlung* eBrem = new G4eBremsstrahlung(); 215 eBrem->AddEmModel(0, new G4LivermoreBremsstrahlungModel()); 216 pmanager->AddProcess(eBrem, -1,-3, 3); 217 218 pmanager->AddProcess(new G4StepLimiter(), -1, -1, 4); 219 220 } else if (particleName == "e+") { 221 222 // Identical to G4EmStandardPhysics_option3 223 224 G4eMultipleScattering* msc = new G4eMultipleScattering(); 225 msc->SetStepLimitType(fUseDistanceToBoundary); 226 pmanager->AddProcess(msc, -1, 1, 1); 227 228 G4eIonisation* eIoni = new G4eIonisation(); 229 eIoni->SetStepFunction(0.2, 100*um); 230 pmanager->AddProcess(eIoni, -1, 2, 2); 231 232 pmanager->AddProcess(new G4eBremsstrahlung, -1,-3, 3); 233 234 pmanager->AddProcess(new G4eplusAnnihilation,0,-1, 4); 235 236 pmanager->AddProcess(new G4StepLimiter(), -1, -1, 5); 237 238 } else if (particleName == "GenericIon") { 239 240 pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1); 241 242 G4ionIonisation* ionIoni = new G4ionIonisation(); 243 ionIoni->SetEmModel(new G4IonParametrisedLossModel()); 244 ionIoni->SetStepFunction(0.1, 20*um); 245 pmanager->AddProcess(ionIoni, -1, 2, 2); 246 172 247 pmanager->AddProcess(new G4StepLimiter(), -1, -1, 3); 173 174 } else if (particleName == "e+") { 175 176 pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); 177 178 pmanager->AddProcess(new G4eIonisation, -1, 2,2); 179 180 pmanager->AddProcess(new G4eBremsstrahlung, -1,-1,3); 181 182 pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); 183 248 249 } else if (particleName == "alpha" || 250 particleName == "He3" ) { 251 252 // Identical to G4EmStandardPhysics_option3 253 254 pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1); 255 256 G4ionIonisation* ionIoni = new G4ionIonisation(); 257 ionIoni->SetStepFunction(0.1, 20*um); 258 pmanager->AddProcess(ionIoni, -1, 2, 2); 259 184 260 pmanager->AddProcess(new G4StepLimiter(), -1, -1, 3); 185 186 } else if( particleName == "mu+" ||187 particleName == "mu-" ) {188 189 } else if ((!particle->IsShortLived()) &&190 (particle->GetPDGCharge() != 0.0) &&191 (particle->GetParticleName() != "chargedgeantino")) {192 193 //pmanager->AddProcess(new G4MultipleScattering(),-1,1,1);194 pmanager->AddProcess(new G4hMultipleScattering(),-1,1,1);195 196 G4hLowEnergyIonisation* hLowEnergyIonisation = new G4hLowEnergyIonisation();197 pmanager->AddProcess(hLowEnergyIonisation,-1,2,2);198 199 hLowEnergyIonisation->SetElectronicStoppingPowerModel(particle,"ICRU_R49He");200 hLowEnergyIonisation->SetNuclearStoppingOn();201 hLowEnergyIonisation->SetNuclearStoppingPowerModel("ICRU_R49");202 hLowEnergyIonisation->SetFluorescence(true);203 hLowEnergyIonisation->ActivateAugerElectronProduction(true);204 205 pmanager->AddProcess(new G4StepLimiter(), -1, -1, 3);206 207 261 } 208 262 209 //end 263 // 210 264 211 265 } -
trunk/examples/advanced/microbeam/src/MicrobeamSteppingAction.cc
r807 r1230 25 25 // 26 26 // ------------------------------------------------------------------- 27 // $Id: MicrobeamSteppingAction.cc,v 1. 8 2007/08/22 13:58:33sincerti Exp $27 // $Id: MicrobeamSteppingAction.cc,v 1.9 2008/06/16 07:46:11 sincerti Exp $ 28 28 // ------------------------------------------------------------------- 29 29 … … 158 158 159 159 { 160 G4double dose = ( e_SI*(aStep->GetTotalEnergyDeposit()/eV))/(Run->GetMassNucleus());160 G4double dose = (aStep->GetTotalEnergyDeposit()/joule)/(Run->GetMassNucleus()/kg); 161 161 Run->AddDoseN(dose); 162 162 … … 170 170 171 171 { 172 G4double dose = ( e_SI*(aStep->GetTotalEnergyDeposit()/eV))/(Run->GetMassCytoplasm());172 G4double dose = (aStep->GetTotalEnergyDeposit()/joule)/(Run->GetMassCytoplasm()/kg); 173 173 Run->AddDoseC(dose); 174 174
Note: See TracChangeset
for help on using the changeset viewer.