Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4HyperonLHEPBuilder.cc
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26// GEANT4 tag $Name: not supported by cvs2svn $
27//
28//---------------------------------------------------------------------------
29//
30// ClassName: G4HyperonLHEPBuilder
31//
32// Author: 2011 J. Apostolakis
33// Implementation started from G4MiscLHEPBuilder.
34//
35// Modified:
36// 2011.02.22 ( J. Apostolakis ) Took out anti-proton, anti-neutron
37//----------------------------------------------------------------------------
38//
40
41#include "G4SystemOfUnits.hh"
43#include "G4ParticleTable.hh"
44#include "G4ProcessManager.hh"
45
47 theLambdaInelastic(0), theLELambdaModel(0), theHELambdaModel(0),
48 theAntiLambdaInelastic(0), theLEAntiLambdaModel(0), theHEAntiLambdaModel(0),
49 theSigmaMinusInelastic(0), theLESigmaMinusModel(0), theHESigmaMinusModel(0),
50 theAntiSigmaMinusInelastic(0), theLEAntiSigmaMinusModel(0), theHEAntiSigmaMinusModel(0),
51 theSigmaPlusInelastic(0), theLESigmaPlusModel(0), theHESigmaPlusModel(0),
52 theAntiSigmaPlusInelastic(0), theLEAntiSigmaPlusModel(0), theHEAntiSigmaPlusModel(0),
53 theXiZeroInelastic(0), theLEXiZeroModel(0), theHEXiZeroModel(0),
54 theAntiXiZeroInelastic(0), theLEAntiXiZeroModel(0), theHEAntiXiZeroModel(0),
55 theXiMinusInelastic(0), theLEXiMinusModel(0), theHEXiMinusModel(0),
56 theAntiXiMinusInelastic(0), theLEAntiXiMinusModel(0), theHEAntiXiMinusModel(0),
57 theOmegaMinusInelastic(0), theLEOmegaMinusModel(0), theHEOmegaMinusModel(0),
58 theAntiOmegaMinusInelastic(0), theLEAntiOmegaMinusModel(0), theHEAntiOmegaMinusModel(0),
59 wasActivated(false)
60{}
61
62
64{}
65
67{
68 G4ProcessManager * aProcMan = 0;
69 wasActivated = true;
70
71 // Lambda
72 theLambdaInelastic = new G4LambdaInelasticProcess();
73 aProcMan = G4Lambda::Lambda()->GetProcessManager();
74 theLELambdaModel = new G4LELambdaInelastic();
75 theHELambdaModel = new G4HELambdaInelastic();
76 theHELambdaModel->SetMaxEnergy(100*TeV);
77 theLambdaInelastic->RegisterMe(theLELambdaModel);
78 theLambdaInelastic->RegisterMe(theHELambdaModel);
79 aProcMan->AddDiscreteProcess(theLambdaInelastic);
80
81 // AntiLambda
82 theAntiLambdaInelastic = new G4AntiLambdaInelasticProcess();
84 theLEAntiLambdaModel = new G4LEAntiLambdaInelastic();
85 theHEAntiLambdaModel = new G4HEAntiLambdaInelastic();
86 theHEAntiLambdaModel->SetMaxEnergy(100*TeV);
87 theAntiLambdaInelastic->RegisterMe(theLEAntiLambdaModel);
88 theAntiLambdaInelastic->RegisterMe(theHEAntiLambdaModel);
89 aProcMan->AddDiscreteProcess(theAntiLambdaInelastic);
90
91 // SigmaMinus
92 theSigmaMinusInelastic = new G4SigmaMinusInelasticProcess();
94 theLESigmaMinusModel = new G4LESigmaMinusInelastic();
95 theHESigmaMinusModel = new G4HESigmaMinusInelastic();
96 theHESigmaMinusModel->SetMaxEnergy(100*TeV);
97 theSigmaMinusInelastic->RegisterMe(theLESigmaMinusModel);
98 theSigmaMinusInelastic->RegisterMe(theHESigmaMinusModel);
99 aProcMan->AddDiscreteProcess(theSigmaMinusInelastic);
100
101 // anti-SigmaMinus
102 theAntiSigmaMinusInelastic = new G4AntiSigmaMinusInelasticProcess();
104 theLEAntiSigmaMinusModel = new G4LEAntiSigmaMinusInelastic();
105 theHEAntiSigmaMinusModel = new G4HEAntiSigmaMinusInelastic();
106 theHEAntiSigmaMinusModel->SetMaxEnergy(100*TeV);
107 theAntiSigmaMinusInelastic->RegisterMe(theLEAntiSigmaMinusModel);
108 theAntiSigmaMinusInelastic->RegisterMe(theHEAntiSigmaMinusModel);
109 aProcMan->AddDiscreteProcess(theAntiSigmaMinusInelastic);
110
111 // SigmaPlus
112 theSigmaPlusInelastic = new G4SigmaPlusInelasticProcess();
114 theLESigmaPlusModel = new G4LESigmaPlusInelastic();
115 theHESigmaPlusModel = new G4HESigmaPlusInelastic();
116 theHESigmaPlusModel->SetMaxEnergy(100*TeV);
117 theSigmaPlusInelastic->RegisterMe(theLESigmaPlusModel);
118 theSigmaPlusInelastic->RegisterMe(theHESigmaPlusModel);
119 aProcMan->AddDiscreteProcess(theSigmaPlusInelastic);
120
121 // anti-SigmaPlus
122 theAntiSigmaPlusInelastic = new G4AntiSigmaPlusInelasticProcess();
124 theLEAntiSigmaPlusModel = new G4LEAntiSigmaPlusInelastic();
125 theHEAntiSigmaPlusModel = new G4HEAntiSigmaPlusInelastic();
126 theHEAntiSigmaPlusModel->SetMaxEnergy(100*TeV);
127 theAntiSigmaPlusInelastic->RegisterMe(theLEAntiSigmaPlusModel);
128 theAntiSigmaPlusInelastic->RegisterMe(theHEAntiSigmaPlusModel);
129 aProcMan->AddDiscreteProcess(theAntiSigmaPlusInelastic);
130
131 // XiMinus
132 theXiMinusInelastic = new G4XiMinusInelasticProcess();
134 theLEXiMinusModel = new G4LEXiMinusInelastic();
135 theHEXiMinusModel = new G4HEXiMinusInelastic();
136 theHEXiMinusModel->SetMaxEnergy(100*TeV);
137 theXiMinusInelastic->RegisterMe(theLEXiMinusModel);
138 theXiMinusInelastic->RegisterMe(theHEXiMinusModel);
139 aProcMan->AddDiscreteProcess(theXiMinusInelastic);
140
141 // anti-XiMinus
142 theAntiXiMinusInelastic = new G4AntiXiMinusInelasticProcess();
144 theLEAntiXiMinusModel = new G4LEAntiXiMinusInelastic();
145 theHEAntiXiMinusModel = new G4HEAntiXiMinusInelastic();
146 theHEAntiXiMinusModel->SetMaxEnergy(100*TeV);
147 theAntiXiMinusInelastic->RegisterMe(theLEAntiXiMinusModel);
148 theAntiXiMinusInelastic->RegisterMe(theHEAntiXiMinusModel);
149 aProcMan->AddDiscreteProcess(theAntiXiMinusInelastic);
150
151 // XiZero
152 theXiZeroInelastic = new G4XiZeroInelasticProcess();
153 aProcMan = G4XiZero::XiZero()->GetProcessManager();
154 theLEXiZeroModel = new G4LEXiZeroInelastic();
155 theHEXiZeroModel = new G4HEXiZeroInelastic();
156 theHEXiZeroModel->SetMaxEnergy(100*TeV);
157 theXiZeroInelastic->RegisterMe(theLEXiZeroModel);
158 theXiZeroInelastic->RegisterMe(theHEXiZeroModel);
159 aProcMan->AddDiscreteProcess(theXiZeroInelastic);
160
161 // anti-XiZero
162 theAntiXiZeroInelastic = new G4AntiXiZeroInelasticProcess();
164 theLEAntiXiZeroModel = new G4LEAntiXiZeroInelastic();
165 theHEAntiXiZeroModel = new G4HEAntiXiZeroInelastic();
166 theHEAntiXiZeroModel->SetMaxEnergy(100*TeV);
167 theAntiXiZeroInelastic->RegisterMe(theLEAntiXiZeroModel);
168 theAntiXiZeroInelastic->RegisterMe(theHEAntiXiZeroModel);
169 aProcMan->AddDiscreteProcess(theAntiXiZeroInelastic);
170
171 // OmegaMinus
172 theOmegaMinusInelastic = new G4OmegaMinusInelasticProcess();
174 theLEOmegaMinusModel = new G4LEOmegaMinusInelastic();
175 theHEOmegaMinusModel = new G4HEOmegaMinusInelastic();
176 theHEOmegaMinusModel->SetMaxEnergy(100*TeV);
177 theOmegaMinusInelastic->RegisterMe(theLEOmegaMinusModel);
178 theOmegaMinusInelastic->RegisterMe(theHEOmegaMinusModel);
179 aProcMan->AddDiscreteProcess(theOmegaMinusInelastic);
180
181 // anti-OmegaMinus
182 theAntiOmegaMinusInelastic = new G4AntiOmegaMinusInelasticProcess();
184 theLEAntiOmegaMinusModel = new G4LEAntiOmegaMinusInelastic();
185 theHEAntiOmegaMinusModel = new G4HEAntiOmegaMinusInelastic();
186 theHEAntiOmegaMinusModel->SetMaxEnergy(100*TeV);
187 theAntiOmegaMinusInelastic->RegisterMe(theLEAntiOmegaMinusModel);
188 theAntiOmegaMinusInelastic->RegisterMe(theHEAntiOmegaMinusModel);
189 aProcMan->AddDiscreteProcess(theAntiOmegaMinusInelastic);
190}
191
192
static G4AntiLambda * AntiLambda()
static G4AntiOmegaMinus * AntiOmegaMinus()
static G4AntiSigmaMinus * AntiSigmaMinus()
static G4AntiSigmaPlus * AntiSigmaPlus()
static G4AntiXiMinus * AntiXiMinus()
static G4AntiXiZero * AntiXiZero()
void SetMaxEnergy(const G4double anEnergy)
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