Added to SVN repository
This commit is contained in:
@ -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);
|
||||
|
Reference in New Issue
Block a user