Changeset 921 for trunk/documents/UserDoc/DocBookUsersGuides/ForApplicationDeveloper/xml/TrackingAndPhysics/physicsProcess.xml
- Timestamp:
- Feb 16, 2009, 10:14:30 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/documents/UserDoc/DocBookUsersGuides/ForApplicationDeveloper/xml/TrackingAndPhysics/physicsProcess.xml
r904 r921 360 360 361 361 <para> 362 This section summarizes the electromagnetic physics processes which 363 are installed in Geant4. For details on the implementation of these 362 This section summarizes the electromagnetic (EM) physics processes which 363 are provided with Geant4. Extended information are avalable at EM web 364 <ulink url="http://geant4.web.cern.ch/geant4/collaboration/EMindex.shtml"> 365 <emphasis role="bold">pages</emphasis></ulink>. 366 For details on the implementation of these 364 367 processes please refer to the 365 368 <ulink url="http://geant4.web.cern.ch/geant4/UserDocumentation/UsersGuides/PhysicsReferenceManual/html/PhysicsReferenceManual.html"> … … 407 410 </para></listitem> 408 411 <listitem><para> 412 Multiple scattering (class name <emphasis>G4eMultipleScattering</emphasis>) 413 </para></listitem> 414 <listitem><para> 409 415 Positron annihilation into two gammas (class name 410 416 <emphasis>G4eplusAnnihilation</emphasis>) … … 424 430 <itemizedlist spacing="compact"> 425 431 <listitem><para> 432 Bremsstrahlung (class name <emphasis>G4MuBremsstrahlung</emphasis>) 433 </para></listitem> 434 <listitem><para> 426 435 Ionisation and delta ray production (class name 427 436 <emphasis>G4MuIonisation</emphasis>) 428 437 </para></listitem> 429 438 <listitem><para> 430 Bremsstrahlung (class name <emphasis>G4MuBremsstrahlung</emphasis>)439 Multiple scattering (class name <emphasis>G4MuMultipleScattering</emphasis>) 431 440 </para></listitem> 432 441 <listitem><para> … … 440 449 <itemizedlist spacing="compact"> 441 450 <listitem><para> 451 Bremsstrahlung (class name <emphasis>G4hBremsstrahlung</emphasis>) 452 </para></listitem> 453 <listitem><para> 442 454 Ionisation (class name <emphasis>G4hIonisation</emphasis>) 443 455 </para></listitem> 444 456 <listitem><para> 457 e+e- pair production (class name <emphasis>G4hPairProduction</emphasis>) 458 </para></listitem> 459 <listitem><para> 445 460 Ionisation for ions (class name <emphasis>G4ionIonisation</emphasis>) 446 461 </para></listitem> 447 462 <listitem><para> 448 Ionisation for ions in low-density media (class name <emphasis>G4ionGasIonisation</emphasis>)463 Multiple scattering (class name <emphasis>G4hMultipleScattering</emphasis>) 449 464 </para></listitem> 450 465 <listitem><para> … … 465 480 is used to simulate the multiple scattering of the all charged 466 481 particles (class name <emphasis>G4MultipleScattering</emphasis>) 467 </para></listitem>468 <listitem><para>469 Specialised process for more fast simulation the multiple scattering470 of muons and hadrons (class name <emphasis>G4hMultipleScattering</emphasis>)471 </para></listitem>472 <listitem><para>473 Alternative process (beta-version) for the multiple scattering474 of muons (class name <emphasis>G4MuMultipleScattering</emphasis>)475 482 </para></listitem> 476 483 <listitem><para> … … 549 556 550 557 <para> 551 An example of the registration of these processes in a physics list 552 is given in <xref linkend="programlist_PhysProc_1" />, 553 similar method is used in EM-builders of reference physics 554 lists ($G4INSTALL/source/physics_lists/builders) and in 555 EM examples ($G4INSTALL/examples/extended/electromagnetic). 556 557 <example id="programlist_PhysProc_1"> 558 <title> 559 <literal>Registration of standard electromagnetic processes</literal> 560 </title> 561 562 <programlisting> 563 void PhysicsList::ConstructEM() 564 565 { 566 567 theParticleIterator->reset(); 568 569 while( (*theParticleIterator)() ){ 570 571 G4ParticleDefinition* particle = theParticleIterator->value(); 572 G4ProcessManager* pmanager = particle->GetProcessManager(); 573 G4String particleName = particle->GetParticleName(); 574 575 if (particleName == "gamma") { 576 577 pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); 578 pmanager->AddDiscreteProcess(new G4ComptonScattering); 579 pmanager->AddDiscreteProcess(new G4GammaConversion); 580 581 } else if (particleName == "e-") { 582 583 pmanager->AddProcess(new G4MultipleScattering, -1, 1, 1); 584 pmanager->AddProcess(new G4eIonisation, -1, 2, 2); 585 pmanager->AddProcess(new G4eBremsstrahlung, -1, 3, 3); 586 587 } else if (particleName == "e+") { 588 589 pmanager->AddProcess(new G4MultipleScattering, -1, 1, 1); 590 pmanager->AddProcess(new G4eIonisation, -1, 2, 2); 591 pmanager->AddProcess(new G4eBremsstrahlung, -1, 3, 3); 592 pmanager->AddProcess(new G4eplusAnnihilation, 0,-1, 4); 593 594 } else if( particleName == "mu+" || 595 particleName == "mu-" ) { 596 597 pmanager->AddProcess(new G4hMultipleScattering,-1, 1, 1); 598 pmanager->AddProcess(new G4MuIonisation, -1, 2, 2); 599 pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3, 3); 600 pmanager->AddProcess(new G4MuPairProduction, -1, 4, 4); 601 602 } else if (particleName == "alpha" || 603 particleName == "He3" || 604 particleName == "GenericIon") { 605 // ions with charge >= +2 606 pmanager->AddProcess(new G4hMultipleScattering,-1, 1, 1); 607 pmanager->AddProcess(new G4ionIonisation, -1, 2, 2); 608 609 } else if ((!particle->IsShortLived()) && 610 (particle->GetPDGCharge() != 0.0) && 611 (particle->GetParticleName() != "chargedgeantino")) { 612 //all others charged particles except geantino and short-lived 613 pmanager->AddProcess(new G4hMultipleScattering,-1, 1, 1); 614 pmanager->AddProcess(new G4hIonisation, -1, 2, 2); 615 616 } 617 } 618 } 619 </programlisting> 620 </example> 621 </para> 622 623 <para> 558 It is recommended to use physics constructor classes provided 559 with rederence physics lists ($G4INSTALL/source/physics_lists/builders): 560 <itemizedlist spacing="compact"> 561 <listitem><para> 562 default EM physics (class name <emphasis>G4EmStandardPhysics</emphasis>) 563 </para></listitem> 564 <listitem><para> 565 optional EM physics providing similar performance as g4 7.1p01 566 (class name <emphasis>G4EmStandardPhysics_option1</emphasis>) 567 </para></listitem> 568 <listitem><para> 569 Experimental EM physics with enabled "ApplyCuts" option 570 (class name <emphasis>G4EmStandardPhysics_option2</emphasis>) 571 </para></listitem> 572 <listitem><para> 573 EM physics for simulation with high accuracy 574 (class name <emphasis>G4EmStandardPhysics_option3</emphasis>) 575 </para></listitem> 576 </itemizedlist> 577 Examples of the registration of these physics constructor and 578 construction of alternative combinations of options are shown 579 in novice and extended examples ($G4INSTALL/examples/extended/electromagnetic). 624 580 Novice and extended electromagnetic examples illustrating the use 625 581 of electromagnetic processes are available as part of the Geant4 … … 676 632 <listitem><para> 677 633 SetApplyCuts(G4bool) 634 </para></listitem> 635 <listitem><para> 636 SetSpline(G4bool) 678 637 </para></listitem> 679 638 <listitem><para> … … 836 795 The following is a summary of the Low Energy Electromagnetic 837 796 processes available in Geant4. Further information is available in 838 the 839 <ulink url="http://www.ge.infn.it/geant4/lowE/index.html"> 840 homepage 797 the web 798 <ulink url="http://geant4.web.cern.ch/geant4/collaboration/working_groups/LEelectromagnetic/index.shtml">pages 841 799 </ulink> 842 800 of the Geant4 Low Energy Electromagnetic Physics Working Group. … … 845 803 Physics Reference Manual 846 804 </ulink> 847 and in other848 <ulink url="http://www.ge.infn.it/geant4/lowE/papers.html">849 papers</ulink>.850 805 </para> 851 806 … … 899 854 900 855 <para> 901 An example of the registration of these processes in a physics list 902 is given in <xref linkend="programlist_PhysProc_2" />. 903 904 <example id="programlist_PhysProc_2"> 905 <title> 906 Registration of electromagnetic low energy electron/photon processes. 907 </title> 908 909 <programlisting> 910 void LowEnPhysicsList::ConstructEM() 911 { 912 theParticleIterator->reset(); 913 914 while( (*theParticleIterator)() ){ 915 916 G4ParticleDefinition* particle = theParticleIterator->value(); 917 G4ProcessManager* pmanager = particle->GetProcessManager(); 918 G4String particleName = particle->GetParticleName(); 919 920 if (particleName == "gamma") { 921 922 theLEPhotoElectric = new G4LowEnergyPhotoElectric(); 923 theLECompton = new G4LowEnergyCompton(); 924 theLEGammaConversion = new G4LowEnergyGammaConversion(); 925 theLERayleigh = new G4LowEnergyRayleigh(); 926 927 pmanager->AddDiscreteProcess(theLEPhotoElectric); 928 pmanager->AddDiscreteProcess(theLECompton); 929 pmanager->AddDiscreteProcess(theLERayleigh); 930 pmanager->AddDiscreteProcess(theLEGammaConversion); 931 932 } 933 else if (particleName == "e-") { 934 935 theLEIonisation = new G4LowEnergyIonisation(); 936 theLEBremsstrahlung = new G4LowEnergyBremsstrahlung(); 937 theeminusMultipleScattering = new G4MultipleScattering(); 938 939 pmanager->AddProcess(theeminusMultipleScattering,-1,1,1); 940 pmanager->AddProcess(theLEIonisation,-1,2,2); 941 pmanager->AddProcess(theLEBremsstrahlung,-1,-1,3); 942 943 } 944 else if (particleName == "e+") { 945 946 theeplusMultipleScattering = new G4MultipleScattering(); 947 theeplusIonisation = new G4eIonisation(); 948 theeplusBremsstrahlung = new G4eBremsstrahlung(); 949 theeplusAnnihilation = new G4eplusAnnihilation(); 950 951 pmanager->AddProcess(theeplusMultipleScattering,-1,1,1); 952 pmanager->AddProcess(theeplusIonisation,-1,2,2); 953 pmanager->AddProcess(theeplusBremsstrahlung,-1,-1,3); 954 pmanager->AddProcess(theeplusAnnihilation,0,-1,4); 955 } 956 } 957 } 958 </programlisting> 959 </example> 960 </para> 961 962 <para> 963 Advanced <emphasis role="bold">examples</emphasis> illustrating the use of Low Energy 964 Electromagnetic processes are available as part of the Geant4 856 Examples of the registration of physics constructor with low-energy 857 electromagnetic processes are shown 858 in Geant4 extended examples ($G4INSTALL/examples/extended/electromagnetic). 859 <emphasis role="bold">Advanced examples</emphasis> illustrating alternative instantiation 860 of these processes. Both are available as part of the Geant4 965 861 <ulink url="http://geant4.web.cern.ch/geant4/support/download.shtml"> 966 release 967 </ulink> 968 and are further documented 969 <ulink url="http://www.ge.infn.it/geant4/lowE/examples/index.html"> 970 here</ulink>. 862 release</ulink>. 971 863 </para> 972 864 … … 979 871 </emphasis> 980 872 need to be copied by the user to his/her code 981 repository. These files are distributed together with Geant4 982 <ulink url="http://geant4.web.cern.ch/geant4/support/download.shtml"> 983 release</ulink>. 984 </para> 985 986 <para> 873 repository. These files are distributed together with Geant4. 987 874 The user should set the environment variable 988 875 <emphasis role="bold">G4LEDATA</emphasis> to the … … 1039 926 </para></listitem> 1040 927 </itemizedlist> 1041 </para>1042 1043 <para>1044 The available models for ElectronicStoppingPower and1045 NuclearStoppingPower are documented in the1046 <ulink url="http://www.ge.infn.it/geant4/lowE/swprocess/design/">1047 class diagrams</ulink>.1048 928 </para> 1049 929 … … 1090 970 <ulink url="http://geant4.web.cern.ch/geant4/UserDocumentation/UsersGuides/PhysicsReferenceManual/html/PhysicsReferenceManual.html"> 1091 971 Physics Reference Manual 1092 </ulink> 1093 and in the Geant4 Low Energy Electromagnetic Physics Working Group 1094 <ulink url="http://www.ge.infn.it/geant4/lowE/index.html"> 1095 homepage</ulink>. 972 </ulink>. 1096 973 </para> 1097 974 … … 1139 1016 G4PhotoElectricAngularGeneratorSauterGavrilla and 1140 1017 G4PhotoElectricAngularGeneratorPolarized can be set using the 1141 strings "standard" and "polarized". Information regarding 1142 conditions of use, performance and energy limits of different 1143 models are available in the 1144 <ulink url="http://geant4.web.cern.ch/geant4/UserDocumentation/UsersGuides/PhysicsReferenceManual/html/PhysicsReferenceManual.html"> 1145 Physics Reference Manual 1146 </ulink> 1147 and in the Geant4 Low Energy Electromagnetic Physics Working Group 1148 <ulink url="http://www.ge.infn.it/geant4/lowE/index.html"> 1149 homepage</ulink>. 1018 strings "standard" and "polarized". 1150 1019 </para> 1151 1020 … … 1155 1024 <sect3 id="sect.PhysProc.EleMag.VeryLowE"> 1156 1025 <title> 1157 Very Low energy Electromagnetic Processes (Geant4 1026 Very Low energy Electromagnetic Processes (Geant4-DNA extension) 1158 1027 </title> 1159 1028 … … 1162 1031 to energies of a few electronVolts suitable for the simulation of radiation 1163 1032 effects in liquid water for applications at the cellular and sub-cellular 1164 level. These developments take place in the framework of the Geant4 DNA 1165 project 1166 [ 1167 <ulink url="http://www.ge.infn.it/geant4/dna"> 1168 http://www.ge.infn.it/geant4/dna 1169 </ulink> 1170 ] and are fully described in the paper 1033 level. These developments take place in the framework of the Geant4-DNA 1034 project and are described in the paper 1171 1035 <citation> 1172 1036 <xref linkend="biblio.chauvie2007" endterm="biblio.chauvie2007.abbrev" /> … … 1196 1060 <itemizedlist spacing="compact"> 1197 1061 <listitem><para> 1198 Elastic scattering (two complementary models available depending on energy range )1062 Elastic scattering (two complementary models available depending on energy range, and one alternative model) 1199 1063 <itemizedlist spacing="compact"> 1200 1064 <listitem><para> 1201 Cross section policy class name, common to both models : 1202 G4CrossSectionElasticScreenedRutherford 1203 </para></listitem> 1204 <listitem><para> 1205 Final state policy class names : G4FinalStateElasticScreenedRutherford 1206 or G4FinalStateElasticBrennerZaider 1065 - 1) either : cross section policy class names : G4CrossSectionElasticScreenedRutherfordLE (below 200 eV) 1066 and G4CrossSectionElasticScreenedRutherfordHE (above 200 eV). Both should be used together. 1067 - 2) or : cross section policy class name : G4CrossSectionElasticChampion. 1068 </para></listitem> 1069 <listitem><para> 1070 - 1) either : final state policy class names : G4FinalStateElasticBrennerZaider (corresponding to G4CrossSectionElasticScreenedRutherfordLE) 1071 and G4CrossSectionElasticScreenedRutherfordLE (corresponding to G4CrossSectionElasticScreenedRutherfordHE). 1072 - 2) or final state policy class name : G4FinalStateElasticChampion (corresponding to G4CrossSectionElasticChampion). 1207 1073 </para></listitem> 1208 1074 </itemizedlist> … … 1471 1337 #include "G4FinalStateExcitationEmfietzoglou.hh" 1472 1338 1473 #include "G4CrossSectionElasticScreenedRutherford.hh" 1339 #include "G4CrossSectionElasticScreenedRutherfordLE.hh" 1340 #include "G4FinalStateElasticBrennerZaider.hh" 1341 1342 #include "G4CrossSectionElasticScreenedRutherfordHE.hh" 1474 1343 #include "G4FinalStateElasticScreenedRutherford.hh" 1475 #include "G4FinalStateElasticBrennerZaider.hh" 1344 1345 #include "G4CrossSectionElasticChampion.hh" 1346 #include "G4FinalStateElasticChampion.hh" 1476 1347 1477 1348 #include "G4CrossSectionExcitationBorn.hh" … … 1495 1366 // Processes definition 1496 1367 1497 typedef G4DNAProcess<G4CrossSectionElasticScreenedRutherford,G4FinalStateElasticScreenedRutherford> 1498 ElasticScreenedRutherford; 1499 typedef G4DNAProcess<G4CrossSectionElasticScreenedRutherford,G4FinalStateElasticBrennerZaider> 1500 ElasticBrennerZaider; 1368 typedef G4DNAProcess<G4CrossSectionElasticScreenedRutherfordLE,G4FinalStateElasticBrennerZaider> 1369 ElasticScreenedRutherfordLE; 1370 typedef G4DNAProcess<G4CrossSectionElasticScreenedRutherfordHE,G4FinalStateElasticScreenedRutherford> 1371 ElasticScreenedRutherfordHE; 1372 typedef G4DNAProcess<G4CrossSectionElasticChampion,G4FinalStateElasticChampion> 1373 ElasticChampion; 1501 1374 typedef G4DNAProcess<G4CrossSectionExcitationEmfietzoglou,G4FinalStateExcitationEmfietzoglou> 1502 1375 ExcitationEmfietzoglou; … … 1527 1400 1528 1401 if (particleName == "e-") { 1529 processManager->AddDiscreteProcess(new ExcitationEmfietzoglou); 1530 processManager->AddDiscreteProcess(new ElasticScreenedRutherford); 1531 processManager->AddDiscreteProcess(new ElasticBrennerZaider); 1532 processManager->AddDiscreteProcess(new IonisationBorn); 1402 processManager->AddDiscreteProcess(new ExcitationEmfietzoglou("ExcitationEmfietzoglou")); 1403 1404 // The two following elastic scattering models should be registered together 1405 processManager->AddDiscreteProcess(new ElasticScreenedRutherfordLE("ElasticScreenedRutherfordLE")); 1406 processManager->AddDiscreteProcess(new ElasticScreenedRutherfordHE("ElasticScreenedRutherfordHE")); 1407 1408 // The following process is commented here because it is ALTERNATIVE to ElasticScreenedRutherfordLE and ElasticScreenedRutherfordHE 1409 // It should NOT be registered simultaneously with ElasticScreenedRutherfordLE and ElasticScreenedRutherfordHE 1410 // processManager->AddDiscreteProcess(new ElasticChampion("ElasticChampion")); 1411 1412 processManager->AddDiscreteProcess(new IonisationBorn("IonisationBorn")); 1533 1413 1534 1414 } else if ( particleName == "proton" ) { 1535 processManager->AddDiscreteProcess(new ExcitationMillerGreen );1536 processManager->AddDiscreteProcess(new ExcitationBorn );1537 processManager->AddDiscreteProcess(new IonisationRudd );1538 processManager->AddDiscreteProcess(new IonisationBorn );1539 processManager->AddDiscreteProcess(new ChargeDecrease );1415 processManager->AddDiscreteProcess(new ExcitationMillerGreen("ExcitationMillerGreen")); 1416 processManager->AddDiscreteProcess(new ExcitationBorn("ExcitationBorn")); 1417 processManager->AddDiscreteProcess(new IonisationRudd("IonisationRudd")); 1418 processManager->AddDiscreteProcess(new IonisationBorn("IonisationBorn")); 1419 processManager->AddDiscreteProcess(new ChargeDecrease("ChargeDecrease")); 1540 1420 1541 1421 } else if ( particleName == "hydrogen" ) { 1542 processManager->AddDiscreteProcess(new IonisationRudd );1543 processManager->AddDiscreteProcess(new ChargeIncrease );1422 processManager->AddDiscreteProcess(new IonisationRudd("IonisationRudd")); 1423 processManager->AddDiscreteProcess(new ChargeIncrease("ChargeIncrease")); 1544 1424 1545 1425 } else if ( particleName == "alpha" ) { 1546 processManager->AddDiscreteProcess(new ExcitationMillerGreen );1547 processManager->AddDiscreteProcess(new IonisationRudd );1548 processManager->AddDiscreteProcess(new ChargeDecrease );1426 processManager->AddDiscreteProcess(new ExcitationMillerGreen("ExcitationMillerGreen")); 1427 processManager->AddDiscreteProcess(new IonisationRudd("IonisationRudd")); 1428 processManager->AddDiscreteProcess(new ChargeDecrease("ChargeDecrease")); 1549 1429 1550 1430 } else if ( particleName == "alpha+" ) { 1551 processManager->AddDiscreteProcess(new ExcitationMillerGreen );1552 processManager->AddDiscreteProcess(new IonisationRudd );1553 processManager->AddDiscreteProcess(new ChargeDecrease );1554 processManager->AddDiscreteProcess(new ChargeIncrease );1431 processManager->AddDiscreteProcess(new ExcitationMillerGreen("ExcitationMillerGreen")); 1432 processManager->AddDiscreteProcess(new IonisationRudd("IonisationRudd")); 1433 processManager->AddDiscreteProcess(new ChargeDecrease("ChargeDecrease")); 1434 processManager->AddDiscreteProcess(new ChargeIncrease("ChargeIncrease")); 1555 1435 1556 1436 } else if ( particleName == "helium" ) { 1557 processManager->AddDiscreteProcess(new ExcitationMillerGreen );1558 processManager->AddDiscreteProcess(new IonisationRudd );1559 processManager->AddDiscreteProcess(new ChargeIncrease );1437 processManager->AddDiscreteProcess(new ExcitationMillerGreen("ExcitationMillerGreen")); 1438 processManager->AddDiscreteProcess(new IonisationRudd("IonisationRudd")); 1439 processManager->AddDiscreteProcess(new ChargeIncrease("ChargeIncrease")); 1560 1440 } 1561 1441 … … 3467 3347 <mediaobject> 3468 3348 <imageobject role="fo"> 3469 <imagedata fileref="./AllResources/TrackingAndPhysics/physicsProcessPARAM.src/ComponentsWithRegion. gif"3349 <imagedata fileref="./AllResources/TrackingAndPhysics/physicsProcessPARAM.src/ComponentsWithRegion.jpg" 3470 3350 format="JPG" contentwidth="7.0cm" align="center" /> 3471 3351 </imageobject> 3472 3352 <imageobject role="html"> 3473 <imagedata fileref="./AllResources/TrackingAndPhysics/physicsProcessPARAM.src/ComponentsWithRegion. gif"3353 <imagedata fileref="./AllResources/TrackingAndPhysics/physicsProcessPARAM.src/ComponentsWithRegion.jpg" 3474 3354 format="JPG" align="center" /> 3475 3355 </imageobject>
Note: See TracChangeset
for help on using the changeset viewer.