Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4HyperonFTFPBuilder Class Reference

#include <G4HyperonFTFPBuilder.hh>

Public Member Functions

 G4HyperonFTFPBuilder ()
 
virtual ~G4HyperonFTFPBuilder ()
 
void Build ()
 

Detailed Description

Definition at line 66 of file G4HyperonFTFPBuilder.hh.

Constructor & Destructor Documentation

◆ G4HyperonFTFPBuilder()

G4HyperonFTFPBuilder::G4HyperonFTFPBuilder ( )

Definition at line 47 of file G4HyperonFTFPBuilder.cc.

47 :
48 theLambdaInelastic(0),
49 theAntiLambdaInelastic(0),
50 theSigmaMinusInelastic(0),
51 theAntiSigmaMinusInelastic(0),
52 theSigmaPlusInelastic(0),
53 theAntiSigmaPlusInelastic(0),
54 theXiZeroInelastic(0),
55 theAntiXiZeroInelastic(0),
56 theXiMinusInelastic(0),
57 theAntiXiMinusInelastic(0),
58 theOmegaMinusInelastic(0),
59 theAntiOmegaMinusInelastic(0),
60 wasActivated(false)
61{
62
63// Hyperon : Bertini at low energies, then FTFP
64
65 HyperonFTFP = new G4TheoFSGenerator("FTFP");
66
67 HyperonFTFP->SetMinEnergy( 2.*GeV );
68 HyperonFTFP->SetMaxEnergy( 100.*TeV );
69
70 theStringModel = new G4FTFModel;
71 theStringDecay = new G4ExcitedStringDecay(theLund = new G4LundStringFragmentation);
72 theStringModel->SetFragmentationModel(theStringDecay);
73
74 theCascade = new G4GeneratorPrecompoundInterface;
75 thePreEquilib = new G4PreCompoundModel(theHandler = new G4ExcitationHandler);
76 theCascade->SetDeExcitation(thePreEquilib);
77
78 HyperonFTFP->SetTransport(theCascade);
79 HyperonFTFP->SetHighEnergyGenerator(theStringModel);
80
81 theBertini = new G4CascadeInterface;
82 theBertini->SetMinEnergy( 0.*GeV );
83 theBertini->SetMaxEnergy( 6.*GeV );
84
85// AntiHyperons: Use FTFP for full energy range, starting at 0.
86
87 AntiHyperonFTFP = new G4TheoFSGenerator("FTFP");
88 AntiHyperonFTFP->SetMinEnergy( 0.*GeV );
89 AntiHyperonFTFP->SetMaxEnergy( 100.*TeV );
90 AntiHyperonFTFP->SetTransport(theCascade);
91 AntiHyperonFTFP->SetHighEnergyGenerator(theStringModel);
92
93// use CHIPS cross sections
95}
G4VCrossSectionDataSet * GetCrossSectionDataSet(const G4String &name, G4bool warning=true)
static G4CrossSectionDataSetRegistry * Instance()
void SetMinEnergy(G4double anEnergy)
void SetMaxEnergy(const G4double anEnergy)
void SetTransport(G4VIntraNuclearTransportModel *const value)
void SetHighEnergyGenerator(G4VHighEnergyGenerator *const value)
void SetDeExcitation(G4VPreCompoundModel *ptr)
void SetFragmentationModel(G4VStringFragmentation *aModel)

◆ ~G4HyperonFTFPBuilder()

G4HyperonFTFPBuilder::~G4HyperonFTFPBuilder ( )
virtual

Definition at line 98 of file G4HyperonFTFPBuilder.cc.

99{
100 delete HyperonFTFP;
101 delete theStringModel;
102 delete theStringDecay;
103 delete theCascade;
104 delete thePreEquilib;
105 // delete theHandler;
106 delete theBertini;
107 delete AntiHyperonFTFP;
108
109 if (wasActivated) {
110 delete theLambdaInelastic;
111 delete theAntiLambdaInelastic;
112 delete theSigmaMinusInelastic;
113 delete theAntiSigmaMinusInelastic;
114 delete theSigmaPlusInelastic;
115 delete theAntiSigmaPlusInelastic;
116 delete theXiMinusInelastic;
117 delete theAntiXiMinusInelastic;
118 delete theXiZeroInelastic;
119 delete theAntiXiZeroInelastic;
120 delete theOmegaMinusInelastic;
121 delete theAntiOmegaMinusInelastic;
122 }
123}

Member Function Documentation

◆ Build()

void G4HyperonFTFPBuilder::Build ( )

Definition at line 125 of file G4HyperonFTFPBuilder.cc.

126{
127 G4ProcessManager * aProcMan = 0;
128 wasActivated = true;
129
130 // Lambda
131 theLambdaInelastic = new G4LambdaInelasticProcess();
132 theLambdaInelastic->RegisterMe(theBertini);
133 theLambdaInelastic->RegisterMe(HyperonFTFP);
134 theLambdaInelastic->AddDataSet(theCHIPSInelastic);
135 aProcMan = G4Lambda::Lambda()->GetProcessManager();
136 aProcMan->AddDiscreteProcess(theLambdaInelastic);
137
138 // AntiLambda
139 theAntiLambdaInelastic = new G4AntiLambdaInelasticProcess();
140 theAntiLambdaInelastic->RegisterMe(AntiHyperonFTFP);
141 theAntiLambdaInelastic->AddDataSet(theCHIPSInelastic);
142
144 aProcMan->AddDiscreteProcess(theAntiLambdaInelastic);
145
146 // SigmaMinus
147 theSigmaMinusInelastic = new G4SigmaMinusInelasticProcess();
148 theSigmaMinusInelastic->RegisterMe(theBertini);
149 theSigmaMinusInelastic->RegisterMe(HyperonFTFP);
150 theSigmaMinusInelastic->AddDataSet(theCHIPSInelastic);
151
153 aProcMan->AddDiscreteProcess(theSigmaMinusInelastic);
154
155 // anti-SigmaMinus
156 theAntiSigmaMinusInelastic = new G4AntiSigmaMinusInelasticProcess();
157 theAntiSigmaMinusInelastic->RegisterMe(AntiHyperonFTFP);
158 theAntiSigmaMinusInelastic->AddDataSet(theCHIPSInelastic);
159
161 aProcMan->AddDiscreteProcess(theAntiSigmaMinusInelastic);
162
163 // SigmaPlus
164 theSigmaPlusInelastic = new G4SigmaPlusInelasticProcess();
165 theSigmaPlusInelastic->RegisterMe(theBertini);
166 theSigmaPlusInelastic->RegisterMe(HyperonFTFP);
167 theSigmaPlusInelastic->AddDataSet(theCHIPSInelastic);
168
170 aProcMan->AddDiscreteProcess(theSigmaPlusInelastic);
171
172 // anti-SigmaPlus
173 theAntiSigmaPlusInelastic = new G4AntiSigmaPlusInelasticProcess();
174 theAntiSigmaPlusInelastic->RegisterMe(AntiHyperonFTFP);
175 theAntiSigmaPlusInelastic->AddDataSet(theCHIPSInelastic);
176
178 aProcMan->AddDiscreteProcess(theAntiSigmaPlusInelastic);
179
180 // XiMinus
181 theXiMinusInelastic = new G4XiMinusInelasticProcess();
182 theXiMinusInelastic->RegisterMe(theBertini);
183 theXiMinusInelastic->RegisterMe(HyperonFTFP);
184 theXiMinusInelastic->AddDataSet(theCHIPSInelastic);
185
187 aProcMan->AddDiscreteProcess(theXiMinusInelastic);
188
189 // anti-XiMinus
190 theAntiXiMinusInelastic = new G4AntiXiMinusInelasticProcess();
191 theAntiXiMinusInelastic->RegisterMe(AntiHyperonFTFP);
192 theAntiXiMinusInelastic->AddDataSet(theCHIPSInelastic);
193
195 aProcMan->AddDiscreteProcess(theAntiXiMinusInelastic);
196
197 // XiZero
198 theXiZeroInelastic = new G4XiZeroInelasticProcess();
199 theXiZeroInelastic->RegisterMe(theBertini);
200 theXiZeroInelastic->RegisterMe(HyperonFTFP);
201 theXiZeroInelastic->AddDataSet(theCHIPSInelastic);
202
203 aProcMan = G4XiZero::XiZero()->GetProcessManager();
204 aProcMan->AddDiscreteProcess(theXiZeroInelastic);
205
206 // anti-XiZero
207 theAntiXiZeroInelastic = new G4AntiXiZeroInelasticProcess();
208 theAntiXiZeroInelastic->RegisterMe(AntiHyperonFTFP);
209 theAntiXiZeroInelastic->AddDataSet(theCHIPSInelastic);
210
212 aProcMan->AddDiscreteProcess(theAntiXiZeroInelastic);
213
214 // OmegaMinus
215 theOmegaMinusInelastic = new G4OmegaMinusInelasticProcess();
216 theOmegaMinusInelastic->RegisterMe(theBertini);
217 theOmegaMinusInelastic->RegisterMe(HyperonFTFP);
218 theOmegaMinusInelastic->AddDataSet(theCHIPSInelastic);
219
221 aProcMan->AddDiscreteProcess(theOmegaMinusInelastic);
222
223 // anti-OmegaMinus
224 theAntiOmegaMinusInelastic = new G4AntiOmegaMinusInelasticProcess();
225 theAntiOmegaMinusInelastic->RegisterMe(AntiHyperonFTFP);
226 theAntiOmegaMinusInelastic->AddDataSet(theCHIPSInelastic);
227
229 aProcMan->AddDiscreteProcess(theAntiOmegaMinusInelastic);
230}
static G4AntiLambda * AntiLambda()
static G4AntiOmegaMinus * AntiOmegaMinus()
static G4AntiSigmaMinus * AntiSigmaMinus()
static G4AntiSigmaPlus * AntiSigmaPlus()
static G4AntiXiMinus * AntiXiMinus()
static G4AntiXiZero * AntiXiZero()
void AddDataSet(G4VCrossSectionDataSet *aDataSet)
void RegisterMe(G4HadronicInteraction *a)
static G4Lambda * Lambda()
Definition: G4Lambda.cc:108
static G4OmegaMinus * OmegaMinus()
G4ProcessManager * GetProcessManager() const
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
static G4SigmaMinus * SigmaMinus()
static G4SigmaPlus * SigmaPlus()
Definition: G4SigmaPlus.cc:108
static G4XiMinus * XiMinus()
Definition: G4XiMinus.cc:106
static G4XiZero * XiZero()
Definition: G4XiZero.cc:106

Referenced by HadronPhysicsFTF_BIC::ConstructProcess(), HadronPhysicsFTFP_BERT::ConstructProcess(), HadronPhysicsFTFP_BERT_HP::ConstructProcess(), HadronPhysicsFTFP_BERT_TRV::ConstructProcess(), HadronPhysicsQGSP_FTFP_BERT::ConstructProcess(), and HadronPhysicsQGSP_FTFP_BERT_95::ConstructProcess().


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