Belle II Software development
GammaLeptoNuclearPhysics Class Reference

Gamma-nuclear, electro-nuclear and muon-nuclear physics constructor for Belle II physics list. More...

#include <GammaLeptoNuclearPhysics.h>

Inheritance diagram for GammaLeptoNuclearPhysics:

Public Member Functions

 GammaLeptoNuclearPhysics (const G4int verbosityLevel=0)
 Constructor.
 
 ~GammaLeptoNuclearPhysics ()
 Destructor.
 
virtual void ConstructProcess () override
 Build processes, models, cross sections used in physics list.
 
virtual void ConstructParticle () override
 Build all particle types used in physics list (empty in this class)
 

Private Attributes

G4TheoFSGenerator * m_qgsp
 Final state generator for QCD string models.
 
G4QGSModel< G4GammaParticipants > * m_stringModel
 Quark Gluon String model.
 
G4ExcitedStringDecay * m_stringDecay
 Model to decay strings into hadrons.
 
G4QGSMFragmentation * m_fragModel
 Quark Gluon String fragmentation model.
 
G4GeneratorPrecompoundInterface * m_preCompoundModel
 Precompound model to deexcite post-collision nucleus.
 
G4bool m_useGammaNuclearXS
 Switch between GammaNuclearXS and PhotoNuclearXS.
 

Detailed Description

Gamma-nuclear, electro-nuclear and muon-nuclear physics constructor for Belle II physics list.

Definition at line 33 of file GammaLeptoNuclearPhysics.h.

Constructor & Destructor Documentation

◆ GammaLeptoNuclearPhysics()

GammaLeptoNuclearPhysics ( const G4int  verbosityLevel = 0)

Constructor.

Definition at line 39 of file GammaLeptoNuclearPhysics.cc.

40 : m_qgsp(nullptr), m_stringModel(nullptr), m_stringDecay(nullptr),
41 m_fragModel(nullptr), m_preCompoundModel(nullptr), m_useGammaNuclearXS(false)
42{
43 G4HadronicParameters::Instance()->SetVerboseLevel(verbosityLevel);
44}
G4TheoFSGenerator * m_qgsp
Final state generator for QCD string models.
G4QGSModel< G4GammaParticipants > * m_stringModel
Quark Gluon String model.
G4QGSMFragmentation * m_fragModel
Quark Gluon String fragmentation model.
G4bool m_useGammaNuclearXS
Switch between GammaNuclearXS and PhotoNuclearXS.
G4GeneratorPrecompoundInterface * m_preCompoundModel
Precompound model to deexcite post-collision nucleus.
G4ExcitedStringDecay * m_stringDecay
Model to decay strings into hadrons.

◆ ~GammaLeptoNuclearPhysics()

Destructor.

Definition at line 47 of file GammaLeptoNuclearPhysics.cc.

48{
49 delete m_stringDecay;
50 delete m_stringModel;
51 delete m_fragModel;
52 delete m_preCompoundModel;
53}

Member Function Documentation

◆ ConstructParticle()

void ConstructParticle ( )
overridevirtual

Build all particle types used in physics list (empty in this class)

Definition at line 125 of file GammaLeptoNuclearPhysics.cc.

126{}

◆ ConstructProcess()

void ConstructProcess ( )
overridevirtual

Build processes, models, cross sections used in physics list.

Definition at line 56 of file GammaLeptoNuclearPhysics.cc.

57{
58 // Use Bertini cascade for low energies
59 G4CascadeInterface* theGammaReaction = new G4CascadeInterface;
60 theGammaReaction->SetMinEnergy(0.0);
61 theGammaReaction->SetMaxEnergy(3.5 * GeV);
62
63 // Use QGSP for high energies
64 m_qgsp = new G4TheoFSGenerator("QGSP");
65 m_stringModel = new G4QGSModel<G4GammaParticipants>;
67 new G4ExcitedStringDecay(m_fragModel = new G4QGSMFragmentation);
68 m_stringModel->SetFragmentationModel(m_stringDecay);
69 m_preCompoundModel = new G4GeneratorPrecompoundInterface();
70
71 m_qgsp->SetHighEnergyGenerator(m_stringModel);
72 m_qgsp->SetTransport(m_preCompoundModel);
73 m_qgsp->SetMinEnergy(3 * GeV);
74 m_qgsp->SetMaxEnergy(100 * TeV);
75
76 // Lepto-nuclear models
77 G4ElectroVDNuclearModel* evdn = new G4ElectroVDNuclearModel;
78 G4MuonVDNuclearModel* mvdn = new G4MuonVDNuclearModel;
79
80
81 G4ProcessManager* procMan = 0;
82
83 // Gamma
84 procMan = G4Gamma::Gamma()->GetProcessManager();
85 G4HadronInelasticProcess* pnProc = new G4HadronInelasticProcess("photonNuclear", G4Gamma::Definition());
86 auto xsreg = G4CrossSectionDataSetRegistry::Instance();
87 G4VCrossSectionDataSet* xs = nullptr;
89 xs = xsreg->GetCrossSectionDataSet("GammaNuclearXS");
90 if (nullptr == xs) xs = new G4GammaNuclearXS();
91 } else {
92 xs = xsreg->GetCrossSectionDataSet("PhotoNuclearXS");
93 if (nullptr == xs) xs = new G4PhotoNuclearCrossSection();
94 }
95 pnProc->AddDataSet(xs);
96 pnProc->RegisterMe(theGammaReaction);
97 pnProc->RegisterMe(m_qgsp);
98 procMan->AddDiscreteProcess(pnProc);
99
100 // Electron
101 procMan = G4Electron::Electron()->GetProcessManager();
102 G4ElectronNuclearProcess* emn = new G4ElectronNuclearProcess;
103 emn->RegisterMe(evdn);
104 procMan->AddDiscreteProcess(emn);
105
106 // Positron
107 procMan = G4Positron::Positron()->GetProcessManager();
108 G4PositronNuclearProcess* epn = new G4PositronNuclearProcess;
109 epn->RegisterMe(evdn);
110 procMan->AddDiscreteProcess(epn);
111
112 // Muon-
113 procMan = G4MuonMinus::MuonMinus()->GetProcessManager();
114 G4MuonNuclearProcess* mun = new G4MuonNuclearProcess;
115 mun->RegisterMe(mvdn);
116 procMan->AddDiscreteProcess(mun);
117
118 // Muon+
119 procMan = G4MuonPlus::MuonPlus()->GetProcessManager();
120 procMan->AddDiscreteProcess(mun);
121
122}

Member Data Documentation

◆ m_fragModel

G4QGSMFragmentation* m_fragModel
private

Quark Gluon String fragmentation model.

Definition at line 57 of file GammaLeptoNuclearPhysics.h.

◆ m_preCompoundModel

G4GeneratorPrecompoundInterface* m_preCompoundModel
private

Precompound model to deexcite post-collision nucleus.

Definition at line 60 of file GammaLeptoNuclearPhysics.h.

◆ m_qgsp

G4TheoFSGenerator* m_qgsp
private

Final state generator for QCD string models.

Definition at line 48 of file GammaLeptoNuclearPhysics.h.

◆ m_stringDecay

G4ExcitedStringDecay* m_stringDecay
private

Model to decay strings into hadrons.

Definition at line 54 of file GammaLeptoNuclearPhysics.h.

◆ m_stringModel

G4QGSModel<G4GammaParticipants>* m_stringModel
private

Quark Gluon String model.

Definition at line 51 of file GammaLeptoNuclearPhysics.h.

◆ m_useGammaNuclearXS

G4bool m_useGammaNuclearXS
private

Switch between GammaNuclearXS and PhotoNuclearXS.

Definition at line 63 of file GammaLeptoNuclearPhysics.h.


The documentation for this class was generated from the following files: