musrsim/geant4/LEMuSR/include/LEMuSRMuonPhysics.hh

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