128 lines
3.8 KiB
C++
128 lines
3.8 KiB
C++
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|
|
// LOW ENERGY MUON SPIN RELAXATION, ROTATION, RADIATION
|
|
//
|
|
// ID : LEMuSRMuonPhysics.hh , v 1.3
|
|
// AUTHOR: Taofiq PARAISO
|
|
// DATE : 2006-01-19 16:15
|
|
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|
|
//
|
|
// & &&&&&&&&&& &&&&&&& &&&&&&&&
|
|
// & & && && & &&
|
|
// & & & & & & &&
|
|
// & &&&&&&& & & &&&&&& &&&&&&&&
|
|
// & & & && & & &&
|
|
// & & && & & && && & &
|
|
// &&&&&&&&&& &&&&&&&&&& & &&&&& && &&&&&&& & &&
|
|
// &
|
|
// &
|
|
// &
|
|
// &
|
|
// MuonPhysics
|
|
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|
|
|
|
|
|
#ifndef LEMuSRMuonPhysics_h
|
|
#define LEMuSRMuonPhysics_h 1
|
|
|
|
#include "globals.hh"
|
|
#include "G4ios.hh"
|
|
|
|
#include "G4VPhysicsConstructor.hh"
|
|
#include "G4MultipleScattering.hh"
|
|
#include "G4MultipleScattering52.hh"
|
|
#include "LEMuSRMSC.hh"
|
|
#include "G4MuBremsstrahlung.hh"
|
|
#include "G4MuPairProduction.hh"
|
|
#include "G4MuIonisation.hh"
|
|
#include "G4hIonisation.hh"
|
|
|
|
#include "G4MuonMinusCaptureAtRest.hh"
|
|
|
|
#include "G4DecayWithSpin.hh"
|
|
#include "G4MuonDecayChannel.hh"
|
|
#include "G4MuonDecayChannelWithSpin.hh"
|
|
|
|
#include "LEMuSRAtRestSpinRotation.hh"
|
|
#include "LEMuSRDecay.hh"
|
|
|
|
#include "LEMuSRMUONIUM.hh"
|
|
#include "LEMuSRDepolarize.hh"
|
|
#include "LEMuSRMUONIUMScatt.hh"
|
|
|
|
|
|
|
|
#include"G4VMuEnergyLoss.hh"
|
|
|
|
/*!
|
|
* This class defines the interations and processes to take into account when
|
|
* simulating muon particles. It is registered by the main LEMuSRPhysicsList
|
|
* class.
|
|
*/
|
|
class LEMuSRMuonPhysics : public G4VPhysicsConstructor
|
|
{
|
|
public:
|
|
//!\ct
|
|
LEMuSRMuonPhysics(const G4String& name="muon");
|
|
//!\dt
|
|
virtual ~LEMuSRMuonPhysics();
|
|
|
|
public:
|
|
/*! This method will be invoked in the Construct() method.
|
|
each particle type will be instantiated.*/
|
|
virtual void ConstructParticle();
|
|
|
|
/*! This method will be invoked in the Construct() method.
|
|
each physics process will be instantiated and
|
|
registered to the process manager of each particle type.*/
|
|
virtual void ConstructProcess();
|
|
|
|
protected:
|
|
//! MuonPlus physics
|
|
G4MuIonisation fMuPlusIonisation;
|
|
//! Multiple Scattering including Meyer'Algorithm: LEMuSRMSC
|
|
LEMuSRMSC fMuPlusMultipleScattering;
|
|
G4MuBremsstrahlung fMuPlusBremsstrahlung ;
|
|
G4MuPairProduction fMuPlusPairProduction;
|
|
//! Muonium scattering: LEMuSRMUONIUMScatt
|
|
LEMuSRMUONIUMScatt fMuoniumScatt;
|
|
//! Muonium formation: LEMuSRMUONIUM
|
|
LEMuSRMUONIUM fMuFormation;
|
|
//! Depolarization process (not used yet)
|
|
LEMuSRDepolarize fDepolarization;
|
|
|
|
|
|
|
|
//! MuonMinus physics
|
|
|
|
G4MuIonisation fMuMinusIonisation;
|
|
G4MultipleScattering fMuMinusMultipleScattering;
|
|
G4MuBremsstrahlung fMuMinusBremsstrahlung ;
|
|
G4MuPairProduction fMuMinusPairProduction;
|
|
G4MuonMinusCaptureAtRest fMuMinusCaptureAtRest;
|
|
|
|
|
|
//! Decay Process from \lemu: LEMuSRDecay
|
|
#ifdef ASYM_USE_LEMU
|
|
LEMuSRDecay fDecayProcess;
|
|
#else
|
|
//! Decay Process from \gf
|
|
G4Decay fDecayProcess;
|
|
//! Decay Process with Spin from \gf
|
|
G4DecayWithSpin fSDecayProcess;
|
|
#endif
|
|
|
|
//! Spin Precession Process At Rest: LEMuSRAtRestSpinRotation
|
|
LEMuSRAtRestSpinRotation fMuAtRestSpinRotation;
|
|
|
|
//! Tau physics
|
|
G4MultipleScattering fTauPlusMultipleScattering;
|
|
G4hIonisation fTauPlusIonisation;
|
|
G4MultipleScattering fTauMinusMultipleScattering;
|
|
G4hIonisation fTauMinusIonisation;
|
|
|
|
};
|
|
|
|
|
|
#endif
|
|
|