1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
#include <globals.hh>
#include <G4ParticleDefinition.hh>
#include <G4ParticleTable.hh>
#include <G4MuonPlus.hh>
#include <G4MuonMinus.hh>
#include <G4TauMinus.hh>
#include <G4TauPlus.hh>
#include <G4NeutrinoTau.hh>
#include <G4AntiNeutrinoTau.hh>
#include <G4NeutrinoMu.hh>
#include <G4AntiNeutrinoMu.hh>
#include <G4ProcessManager.hh>
#include "G4BeamTestMuonPhysics.h"
G4BeamTestMuonPhysics::G4BeamTestMuonPhysics()
: G4VPhysicsConstructor("muon")
{}
/********************************************************************/
G4BeamTestMuonPhysics::~G4BeamTestMuonPhysics()
{}
/********************************************************************/
void G4BeamTestMuonPhysics::ConstructParticle()
{
// Mu
G4MuonPlus::MuonPlusDefinition();
G4MuonMinus::MuonMinusDefinition();
G4NeutrinoMu::NeutrinoMuDefinition();
G4AntiNeutrinoMu::AntiNeutrinoMuDefinition();
// Tau
G4TauMinus::TauMinusDefinition();
G4TauPlus::TauPlusDefinition();
G4NeutrinoTau::NeutrinoTauDefinition();
G4AntiNeutrinoTau::AntiNeutrinoTauDefinition();
}
/********************************************************************/
void G4BeamTestMuonPhysics::ConstructProcess()
{
G4ProcessManager *pManager = 0;
// Muon Plus Physics
pManager = G4MuonPlus::MuonPlus()->GetProcessManager();
pManager->AddProcess(&muPlusMultipleScattering_, -1, 1, 1);
pManager->AddProcess(&muPlusIonisation_, -1, 2, 2);
pManager->AddProcess(&muPlusBremsstrahlung_, -1, 3, 3);
pManager->AddProcess(&muPlusPairProduction_, -1, 4, 4);
// Muon Minus Physics
pManager = G4MuonMinus::MuonMinus()->GetProcessManager();
pManager->AddProcess(&muMinusMultipleScattering_, -1, 1, 1);
pManager->AddProcess(&muMinusIonisation_, -1, 2, 2);
pManager->AddProcess(&muMinusBremsstrahlung_, -1, 3, 3);
pManager->AddProcess(&muMinusPairProduction_, -1, 4, 4);
pManager->AddRestProcess(&muMinusCapture_);
// Tau Plus Physics
pManager = G4TauPlus::TauPlus()->GetProcessManager();
pManager->AddProcess(&tauPlusMultipleScattering_, -1, 1, 1);
pManager->AddProcess(&tauPlusIonisation_, -1, 2, 2);
// Tau Minus Physics
pManager = G4TauMinus::TauMinus()->GetProcessManager();
pManager->AddProcess(&tauMinusMultipleScattering_, -1, 1, 1);
pManager->AddProcess(&tauMinusIonisation_, -1, 2, 2);
}
|