Added to SVN repository

This commit is contained in:
paraiso
2006-02-16 17:20:45 +00:00
parent 5253fc37b4
commit b67a2876ac
52 changed files with 1077 additions and 385 deletions

View File

@ -1,3 +1,25 @@
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
// LOW ENERGY MUON SPIN RELAXATION, ROTATION, RADIATION
//
// ID : LEMuSRMuonPhysics.cc , v 1.3
// AUTHOR: Taofiq PARAISO
// DATE : 2006-01-19 16:15
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//
// & &&&&&&&&&& &&&&&&& &&&&&&&&
// & & && && & &&
// & & & & & & &&
// & &&&&&&& & & &&&&&& &&&&&&&&
// & & & && & & &&
// & & && & & && && & &
// &&&&&&&&&& &&&&&&&&&& & &&&&& && &&&&&&& & &&
// &
// &
// &
// &
// MuonPhysics
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#include "LEMuSRMuonPhysics.hh"
#include "globals.hh"
@ -36,25 +58,33 @@ LEMuSRMuonPhysics::~LEMuSRMuonPhysics()
void LEMuSRMuonPhysics::ConstructParticle()
{
// Mu
//! Muon
G4MuonPlus::MuonPlusDefinition();
G4Muonium::MuoniumDefinition();
G4MuonMinus::MuonMinusDefinition();
G4NeutrinoMu::NeutrinoMuDefinition();
G4AntiNeutrinoMu::AntiNeutrinoMuDefinition();
// Tau
//! Tau
G4TauMinus::TauMinusDefinition();
G4TauPlus::TauPlusDefinition();
G4NeutrinoTau::NeutrinoTauDefinition();
G4AntiNeutrinoTau::AntiNeutrinoTauDefinition();
//! The decay process
/*!
* Although the asymmetric decay process is a feature of new Geant4 versions,
* it is recommended to use the original \lemu implementation.
*/
#ifdef ASYM_USE_LEMU
G4DecayTable* MuonPlusDecayTable = new G4DecayTable();
MuonPlusDecayTable -> Insert(new LEMuSRMuonDecayChannel("mu+",1.00));
G4MuonPlus::MuonPlusDefinition() -> SetDecayTable(MuonPlusDecayTable);
/*!
Half of the muonium have a completely isotropic decay.
*/
G4DecayTable* MuoniumDecayTable = new G4DecayTable();
MuoniumDecayTable -> Insert(new LEMuSRMuonDecayChannel("Mu",0.5));
MuoniumDecayTable -> Insert(new G4MuonDecayChannel("Mu",0.5));
@ -92,7 +122,8 @@ void LEMuSRMuonPhysics::ConstructProcess()
// Muon Plus Physics
pManager = G4MuonPlus::MuonPlus()->GetProcessManager();
pManager->AddProcess(&fMuAtRestSpinRotation, 1, -1, -1); //(&fprocess, atrest, prestep, poststep)
//! Syntax: pManager->AddProcess(&fprocess, atrest, prestep, poststep). -1 means that the process is not executed under correspondant condition.
pManager->AddProcess(&fMuAtRestSpinRotation, 1, -1, -1);
pManager->AddProcess(&fMuFormation,-1, -1, 1);
pManager->AddProcess(&fMuPlusMultipleScattering,-1, 1, -1);// may crash when enabled as post step process
pManager->AddProcess(&fMuPlusIonisation, -1, 2, 2);
@ -103,13 +134,13 @@ void LEMuSRMuonPhysics::ConstructProcess()
// pManager ->SetProcessOrderingToLast(&fDepolarization, idxAtRest);
// pManager ->SetProcessOrdering(&fDepolarization, idxPostStep);
// the last process: decay
//! the last process: decay
pManager->AddProcess(&fDecayProcess);
pManager ->SetProcessOrderingToLast(&fDecayProcess, idxAtRest);
pManager ->SetProcessOrdering(&fDecayProcess, idxPostStep);
// Muonium Physics is the same as muon plus physics
//! Muonium Physics is the same as muon plus physics
pManager = G4Muonium::Muonium()->GetProcessManager();
pManager->AddProcess(&fMuAtRestSpinRotation, 1, -1, -1);
@ -125,7 +156,7 @@ void LEMuSRMuonPhysics::ConstructProcess()
pManager->SetProcessOrderingToLast(&fDecayProcess, idxAtRest);
pManager->SetProcessOrdering(&fDecayProcess, idxPostStep);
// Muon Minus Physics
//! Muon Minus Physics
pManager = G4MuonMinus::MuonMinus()->GetProcessManager();
pManager->AddProcess(&fMuMinusMultipleScattering,-1, 1, 1);
@ -138,13 +169,13 @@ void LEMuSRMuonPhysics::ConstructProcess()
pManager->SetProcessOrderingToLast(&fDecayProcess, idxAtRest);
pManager->SetProcessOrdering(&fDecayProcess, idxPostStep);
// Tau Plus Physics
//! Tau Plus Physics
pManager = G4TauPlus::TauPlus()->GetProcessManager();
pManager->AddProcess(&fTauPlusMultipleScattering, -1, 1, 1);
pManager->AddProcess(&fTauPlusIonisation, -1, 2, 2);
// Tau Minus Physics
//! Tau Minus Physics
pManager = G4TauMinus::TauMinus()->GetProcessManager();
pManager->AddProcess(&fTauMinusMultipleScattering, -1, 1, 1);