BOSS 7.0.8
BESIII Offline Software System
Loading...
Searching...
No Matches
ExN04MuonPhysics.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: ExN04MuonPhysics.cxx,v 1.1.1.1 2004/09/28 05:16:53 liwd Exp $
25// GEANT4 tag $Name: G4Svc-00-01-53 $
26//
27//
28
29#include <cmath>
30
32
33#include "globals.hh"
34#include "G4ios.hh"
35
36
38 : G4VPhysicsConstructor(name)
39{
40}
41
43{
44}
45
46#include "G4ParticleDefinition.hh"
47#include "G4ParticleTable.hh"
48
49#include "G4MuonPlus.hh"
50#include "G4MuonMinus.hh"
51#include "G4TauMinus.hh"
52#include "G4TauPlus.hh"
53#include "G4NeutrinoTau.hh"
54#include "G4AntiNeutrinoTau.hh"
55#include "G4NeutrinoMu.hh"
56#include "G4AntiNeutrinoMu.hh"
57
59{
60 // Mu
61 G4MuonPlus::MuonPlusDefinition();
62 G4MuonMinus::MuonMinusDefinition();
63 G4NeutrinoMu::NeutrinoMuDefinition();
64 G4AntiNeutrinoMu::AntiNeutrinoMuDefinition();
65
66 // Tau
67 G4TauMinus::TauMinusDefinition();
68 G4TauPlus::TauPlusDefinition();
69 G4NeutrinoTau::NeutrinoTauDefinition();
70 G4AntiNeutrinoTau::AntiNeutrinoTauDefinition();
71
72}
73
74
75#include "G4ProcessManager.hh"
76
78{
79 G4ProcessManager * pManager = 0;
80
81 // Muon Plus Physics
82 pManager = G4MuonPlus::MuonPlus()->GetProcessManager();
83 // add processes
84 pManager->AddProcess(&fMuPlusIonisation, ordInActive,2, 2);
85
86 pManager->AddDiscreteProcess(&fMuPlusBremsstrahlung);
87
88 pManager->AddDiscreteProcess(&fMuPlusPairProduction);
89
90 pManager->AddProcess(&fMuPlusMultipleScattering);
91 pManager->SetProcessOrdering(&fMuPlusMultipleScattering, idxAlongStep, 1);
92 pManager->SetProcessOrdering(&fMuPlusMultipleScattering, idxPostStep, 1);
93
94 // Muon Minus Physics
95 pManager = G4MuonMinus::MuonMinus()->GetProcessManager();
96 // add processes
97 pManager->AddProcess(&fMuMinusIonisation, ordInActive,2, 2);
98
99 pManager->AddDiscreteProcess(&fMuMinusBremsstrahlung);
100
101 pManager->AddDiscreteProcess(&fMuMinusPairProduction);
102
103 pManager->AddProcess(&fMuMinusMultipleScattering);
104 pManager->SetProcessOrdering(&fMuMinusMultipleScattering, idxAlongStep, 1);
105 pManager->SetProcessOrdering(&fMuMinusMultipleScattering, idxPostStep, 1);
106 pManager->AddRestProcess(&fMuMinusCaptureAtRest);
107
108 // Tau Plus Physics
109 pManager = G4TauPlus::TauPlus()->GetProcessManager();
110 // add processes
111 pManager->AddProcess(&fTauPlusIonisation, ordInActive,2, 2);
112
113 pManager->AddProcess(&fTauPlusMultipleScattering);
114 pManager->SetProcessOrdering(&fTauPlusMultipleScattering, idxAlongStep, 1);
115 pManager->SetProcessOrdering(&fTauPlusMultipleScattering, idxPostStep, 1);
116
117 // Tau Minus Physics
118 pManager = G4TauMinus::TauMinus()->GetProcessManager();
119 // add processes
120 pManager->AddProcess(&fTauMinusIonisation, ordInActive,2, 2);
121
122 pManager->AddProcess(&fTauMinusMultipleScattering);
123 pManager->SetProcessOrdering(&fTauMinusMultipleScattering, idxAlongStep, 1);
124 pManager->SetProcessOrdering(&fTauMinusMultipleScattering, idxPostStep, 1);
125
126}
127
128
129
virtual ~ExN04MuonPhysics()
virtual void ConstructProcess()
virtual void ConstructParticle()
G4MuBremsstrahlung fMuMinusBremsstrahlung
G4MultipleScattering fTauPlusMultipleScattering
G4MultipleScattering fMuMinusMultipleScattering
G4MuIonisation fMuMinusIonisation
ExN04MuonPhysics(const G4String &name="muon")
G4MuIonisation fMuPlusIonisation
G4MuPairProduction fMuPlusPairProduction
G4MultipleScattering fMuPlusMultipleScattering
G4MultipleScattering fTauMinusMultipleScattering
G4MuonMinusCaptureAtRest fMuMinusCaptureAtRest
G4MuBremsstrahlung fMuPlusBremsstrahlung
G4hIonisation fTauPlusIonisation
G4MuPairProduction fMuMinusPairProduction
G4hIonisation fTauMinusIonisation