BOSS 7.1.0
BESIII Offline Software System
Loading...
Searching...
No Matches
ExN04EMPhysics.cxx
Go to the documentation of this file.
1//
2// ********************************************************************
3// * DISCLAIMER *
4// * *
5// * The following disclaimer summarizes all the specific disclaimers *
6// * of contributors to this software. The specific disclaimers,which *
7// * govern, are listed with their locations in: *
8// * http://cern.ch/geant4/license *
9// * *
10// * Neither the authors of this software system, nor their employing *
11// * institutes,nor the agencies providing financial support for this *
12// * work make any representation or warranty, express or implied, *
13// * regarding this software system or assume any liability for its *
14// * use. *
15// * *
16// * This code implementation is the intellectual property of the *
17// * GEANT4 collaboration. *
18// * By copying, distributing or modifying the Program (or any work *
19// * based on the Program) you indicate your acceptance of this *
20// * statement, and all its terms. *
21// ********************************************************************
22//
23//
24// $Id: ExN04EMPhysics.cxx,v 1.1.1.1 2004/09/28 05:16:53 liwd Exp $
25// GEANT4 tag $Name: G4Svc-00-01-56 $
26//
27//
28
30
31#include "globals.hh"
32#include "G4ios.hh"
33
34
35ExN04EMPhysics::ExN04EMPhysics(const G4String& name)
36 : G4VPhysicsConstructor(name)
37{
38}
39
41{
42}
43
44#include "G4ParticleDefinition.hh"
45#include "G4ParticleTable.hh"
46
47#include "G4Gamma.hh"
48
49#include "G4Electron.hh"
50#include "G4Positron.hh"
51
52#include "G4NeutrinoE.hh"
53#include "G4AntiNeutrinoE.hh"
54
56{
57 // gamma
58 G4Gamma::GammaDefinition();
59
60 // electron
61 G4Electron::ElectronDefinition();
62 G4Positron::PositronDefinition();
63 G4NeutrinoE::NeutrinoEDefinition();
64 G4AntiNeutrinoE::AntiNeutrinoEDefinition();
65}
66
67
68#include "G4ProcessManager.hh"
69
70
72{
73 G4ProcessManager * pManager = 0;
74
75 // Gamma Physics
76 pManager = G4Gamma::Gamma()->GetProcessManager();
77 pManager->AddDiscreteProcess(&thePhotoEffect);
78 pManager->AddDiscreteProcess(&theComptonEffect);
79 pManager->AddDiscreteProcess(&thePairProduction);
80
81 // Electron Physics
82 pManager = G4Electron::Electron()->GetProcessManager();
83 // add processes
84 pManager->AddDiscreteProcess(&theElectronBremsStrahlung);
85
86 pManager->AddProcess(&theElectronIonisation, ordInActive,2, 2);
87
88 pManager->AddProcess(&theElectronMultipleScattering);
89 pManager->SetProcessOrdering(&theElectronMultipleScattering, idxAlongStep, 1);
90 pManager->SetProcessOrdering(&theElectronMultipleScattering, idxPostStep, 1);
91
92 //Positron Physics
93 pManager = G4Positron::Positron()->GetProcessManager();
94 // add processes
95 pManager->AddDiscreteProcess(&thePositronBremsStrahlung);
96
97 pManager->AddDiscreteProcess(&theAnnihilation);
98
99 pManager->AddRestProcess(&theAnnihilation);
100
101 pManager->AddProcess(&thePositronIonisation, ordInActive,2, 2);
102
103 pManager->AddProcess(&thePositronMultipleScattering);
104 pManager->SetProcessOrdering(&thePositronMultipleScattering, idxAlongStep, 1);
105 pManager->SetProcessOrdering(&thePositronMultipleScattering, idxPostStep, 1);
106
107}
108
109
110
G4MultipleScattering thePositronMultipleScattering
G4eIonisation theElectronIonisation
G4ComptonScattering theComptonEffect
G4eBremsstrahlung theElectronBremsStrahlung
ExN04EMPhysics(const G4String &name="EM")
virtual ~ExN04EMPhysics()
G4MultipleScattering theElectronMultipleScattering
virtual void ConstructProcess()
G4PhotoElectricEffect thePhotoEffect
G4eplusAnnihilation theAnnihilation
virtual void ConstructParticle()
G4GammaConversion thePairProduction
G4eIonisation thePositronIonisation
G4eBremsstrahlung thePositronBremsStrahlung