aboutsummaryrefslogtreecommitdiffstats
path: root/src/G4BeamTestMuonPhysics.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/G4BeamTestMuonPhysics.cxx')
-rw-r--r--src/G4BeamTestMuonPhysics.cxx94
1 files changed, 94 insertions, 0 deletions
diff --git a/src/G4BeamTestMuonPhysics.cxx b/src/G4BeamTestMuonPhysics.cxx
new file mode 100644
index 0000000..92264a2
--- /dev/null
+++ b/src/G4BeamTestMuonPhysics.cxx
@@ -0,0 +1,94 @@
+/*
+ * copyright (C) 2010
+ * The Icecube Collaboration
+ *
+ * $Id: G4BeamTestMuonPhysics.cxx 86420 2012-03-20 16:00:37Z kislat $
+ *
+ * @version $Revision: 86420 $
+ * @date $LastChangedDate: 2012-03-20 16:00:37 +0000 (Tue, 20 Mar 2012) $
+ * @author Fabian Kislat <fabian.kislat@desy.de>, Peter Nießen (tanktop)
+ * Last changed by: $LastChangedBy: kislat $
+ */
+
+
+#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(&muMinusCaptureAtRest_);
+
+ // 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);
+}