G4MuonVDNuclearModel Class Reference

#include <G4MuonVDNuclearModel.hh>

Inheritance diagram for G4MuonVDNuclearModel:

G4HadronicInteraction

Public Member Functions

 G4MuonVDNuclearModel ()
 ~G4MuonVDNuclearModel ()
G4HadFinalStateApplyYourself (const G4HadProjectile &aTrack, G4Nucleus &targetNucleus)

Detailed Description

Definition at line 54 of file G4MuonVDNuclearModel.hh.


Constructor & Destructor Documentation

G4MuonVDNuclearModel::G4MuonVDNuclearModel (  ) 

Definition at line 52 of file G4MuonVDNuclearModel.cc.

References G4VIntraNuclearTransportModel::SetDeExcitation(), G4VPartonStringModel::SetFragmentationModel(), G4TheoFSGenerator::SetHighEnergyGenerator(), G4HadronicInteraction::SetMaxEnergy(), G4HadronicInteraction::SetMinEnergy(), and G4TheoFSGenerator::SetTransport().

00053  : G4HadronicInteraction("G4MuonVDNuclearModel")
00054 {
00055   SetMinEnergy(0.0);
00056   SetMaxEnergy(1*PeV);
00057   CutFixed = 0.2*GeV;
00058   NBIN = 1000;
00059 
00060   for (G4int k = 0; k < 5; k++) {
00061     for (G4int j = 0; j < 8; j++) {
00062       for (G4int i = 0; i < 1001; i++) {
00063         proba[k][j][i] = 0.0;
00064         ya[i] = 0.0;
00065       }
00066     }
00067   }
00068 
00069   MakeSamplingTable();
00070 
00071   // Build FTFP model
00072   ftfp = new G4TheoFSGenerator();
00073   precoInterface = new G4GeneratorPrecompoundInterface();
00074   theHandler = new G4ExcitationHandler();
00075   preEquilib = new G4PreCompoundModel(theHandler);
00076   precoInterface->SetDeExcitation(preEquilib);
00077   ftfp->SetTransport(precoInterface);
00078   theFragmentation = new G4LundStringFragmentation();
00079   theStringDecay = new G4ExcitedStringDecay(theFragmentation);    
00080   theStringModel = new G4FTFModel;
00081   theStringModel->SetFragmentationModel(theStringDecay);
00082   ftfp->SetHighEnergyGenerator(theStringModel);
00083 
00084   // Build Bertini cascade
00085   bert = new G4CascadeInterface();
00086 }

G4MuonVDNuclearModel::~G4MuonVDNuclearModel (  ) 

Definition at line 89 of file G4MuonVDNuclearModel.cc.

00090 {
00091   delete ftfp;
00092   delete preEquilib;
00093   delete theFragmentation;
00094   delete theStringDecay;
00095   delete theStringModel;
00096   delete bert;
00097 }


Member Function Documentation

G4HadFinalState * G4MuonVDNuclearModel::ApplyYourself ( const G4HadProjectile aTrack,
G4Nucleus targetNucleus 
) [virtual]

Implements G4HadronicInteraction.

Definition at line 101 of file G4MuonVDNuclearModel.cc.

References G4HadFinalState::Clear(), G4HadProjectile::Get4Momentum(), G4HadProjectile::GetKineticEnergy(), G4HadProjectile::GetTotalEnergy(), isAlive, G4HadFinalState::SetEnergyChange(), G4HadFinalState::SetMomentumChange(), G4HadFinalState::SetStatusChange(), and G4HadronicInteraction::theParticleChange.

00103 {
00104   theParticleChange.Clear();
00105 
00106   // For very low energy, return initial track
00107   G4double epmax = aTrack.GetTotalEnergy() - 0.5*proton_mass_c2;
00108   if (epmax <= CutFixed) {
00109     theParticleChange.SetStatusChange(isAlive);
00110     theParticleChange.SetEnergyChange(aTrack.GetKineticEnergy());
00111     theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit());
00112     return &theParticleChange;
00113   }
00114 
00115   // Produce recoil muon and transferred photon
00116   G4DynamicParticle* transferredPhoton = CalculateEMVertex(aTrack, targetNucleus);
00117 
00118   // Interact the gamma with the nucleus
00119   CalculateHadronicVertex(transferredPhoton, targetNucleus);
00120   return &theParticleChange;
00121 }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:52:32 2013 for Geant4 by  doxygen 1.4.7