CGEM BOSS 6.6.5.g
BESIII Offline Software System
Loading...
Searching...
No Matches
G4MiscLHEPBuilder_CHIPS.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: BesSim-00-04-18 $
27//
28//---------------------------------------------------------------------------
29//
30// ClassName: G4MiscLHEPBuilder_CHIPS
31//
32// Author: 2002 J.P. Wellisch
33//
34// Modified:
35// 16.11.2005 G.Folger: don't keep processes as data members, but new these
36// 13.06.2006 G.Folger: (re)move elastic scatterring
37//
38//----------------------------------------------------------------------------
39//
41
42#include "G4ParticleDefinition.hh"
43#include "G4ParticleTable.hh"
44#include "G4ProcessManager.hh"
45
48{
49 if(wasActivated) delete inelastic;
50}
51
53{
54 G4ProcessManager * aProcMan = 0;
55 wasActivated = true;
56
57 // anti-Proton
58 //theAntiProtonInelastic = new G4AntiProtonInelasticProcess();
59 aProcMan = G4AntiProton::AntiProton()->GetProcessManager();
60 //theLEAntiProtonModel = new G4LEAntiProtonInelastic();
61 //theHEAntiProtonModel = new G4HEAntiProtonInelastic();
62 //theHEAntiProtonModel->SetMaxEnergy(100*TeV);
63 //theAntiProtonInelastic->RegisterMe(theLEAntiProtonModel);
64 //theAntiProtonInelastic->RegisterMe(theHEAntiProtonModel);
65 //aProcMan->AddDiscreteProcess(theAntiProtonInelastic);
66 //CHIPS
67 inelastic = new G4QInelastic();
68 aProcMan->AddDiscreteProcess(inelastic);
69
70 // AntiNeutron
71 theAntiNeutronInelastic = new G4AntiNeutronInelasticProcess();
72 aProcMan = G4AntiNeutron::AntiNeutron()->GetProcessManager();
73 theLEAntiNeutronModel = new G4LEAntiNeutronInelastic();
74 theHEAntiNeutronModel = new G4HEAntiNeutronInelastic();
75 theHEAntiNeutronModel->SetMaxEnergy(100*TeV);
76 theAntiNeutronInelastic->RegisterMe(theLEAntiNeutronModel);
77 theAntiNeutronInelastic->RegisterMe(theHEAntiNeutronModel);
78 aProcMan->AddDiscreteProcess(theAntiNeutronInelastic);
79
80 // Lambda
81 theLambdaInelastic = new G4LambdaInelasticProcess();
82 aProcMan = G4Lambda::Lambda()->GetProcessManager();
83 theLELambdaModel = new G4LELambdaInelastic();
84 theHELambdaModel = new G4HELambdaInelastic();
85 theHELambdaModel->SetMaxEnergy(100*TeV);
86 theLambdaInelastic->RegisterMe(theLELambdaModel);
87 theLambdaInelastic->RegisterMe(theHELambdaModel);
88 aProcMan->AddDiscreteProcess(theLambdaInelastic);
89
90 // AntiLambda
91 theAntiLambdaInelastic = new G4AntiLambdaInelasticProcess();
92 aProcMan = G4AntiLambda::AntiLambda()->GetProcessManager();
93 theLEAntiLambdaModel = new G4LEAntiLambdaInelastic();
94 theHEAntiLambdaModel = new G4HEAntiLambdaInelastic();
95 theHEAntiLambdaModel->SetMaxEnergy(100*TeV);
96 theAntiLambdaInelastic->RegisterMe(theLEAntiLambdaModel);
97 theAntiLambdaInelastic->RegisterMe(theHEAntiLambdaModel);
98 aProcMan->AddDiscreteProcess(theAntiLambdaInelastic);
99
100 // SigmaMinus
101 theSigmaMinusInelastic = new G4SigmaMinusInelasticProcess();
102 aProcMan = G4SigmaMinus::SigmaMinus()->GetProcessManager();
103 theLESigmaMinusModel = new G4LESigmaMinusInelastic();
104 theHESigmaMinusModel = new G4HESigmaMinusInelastic();
105 theHESigmaMinusModel->SetMaxEnergy(100*TeV);
106 theSigmaMinusInelastic->RegisterMe(theLESigmaMinusModel);
107 theSigmaMinusInelastic->RegisterMe(theHESigmaMinusModel);
108 aProcMan->AddDiscreteProcess(theSigmaMinusInelastic);
109
110 // anti-SigmaMinus
111 theAntiSigmaMinusInelastic = new G4AntiSigmaMinusInelasticProcess();
112 aProcMan = G4AntiSigmaMinus::AntiSigmaMinus()->GetProcessManager();
113 theLEAntiSigmaMinusModel = new G4LEAntiSigmaMinusInelastic();
114 theHEAntiSigmaMinusModel = new G4HEAntiSigmaMinusInelastic();
115 theHEAntiSigmaMinusModel->SetMaxEnergy(100*TeV);
116 theAntiSigmaMinusInelastic->RegisterMe(theLEAntiSigmaMinusModel);
117 theAntiSigmaMinusInelastic->RegisterMe(theHEAntiSigmaMinusModel);
118 aProcMan->AddDiscreteProcess(theAntiSigmaMinusInelastic);
119
120 // SigmaPlus
121 theSigmaPlusInelastic = new G4SigmaPlusInelasticProcess();
122 aProcMan = G4SigmaPlus::SigmaPlus()->GetProcessManager();
123 theLESigmaPlusModel = new G4LESigmaPlusInelastic();
124 theHESigmaPlusModel = new G4HESigmaPlusInelastic();
125 theHESigmaPlusModel->SetMaxEnergy(100*TeV);
126 theSigmaPlusInelastic->RegisterMe(theLESigmaPlusModel);
127 theSigmaPlusInelastic->RegisterMe(theHESigmaPlusModel);
128 aProcMan->AddDiscreteProcess(theSigmaPlusInelastic);
129
130 // anti-SigmaPlus
131 theAntiSigmaPlusInelastic = new G4AntiSigmaPlusInelasticProcess();
132 aProcMan = G4AntiSigmaPlus::AntiSigmaPlus()->GetProcessManager();
133 theLEAntiSigmaPlusModel = new G4LEAntiSigmaPlusInelastic();
134 theHEAntiSigmaPlusModel = new G4HEAntiSigmaPlusInelastic();
135 theHEAntiSigmaPlusModel->SetMaxEnergy(100*TeV);
136 theAntiSigmaPlusInelastic->RegisterMe(theLEAntiSigmaPlusModel);
137 theAntiSigmaPlusInelastic->RegisterMe(theHEAntiSigmaPlusModel);
138 aProcMan->AddDiscreteProcess(theAntiSigmaPlusInelastic);
139
140 // XiMinus
141 theXiMinusInelastic = new G4XiMinusInelasticProcess();
142 aProcMan = G4XiMinus::XiMinus()->GetProcessManager();
143 theLEXiMinusModel = new G4LEXiMinusInelastic();
144 theHEXiMinusModel = new G4HEXiMinusInelastic();
145 theHEXiMinusModel->SetMaxEnergy(100*TeV);
146 theXiMinusInelastic->RegisterMe(theLEXiMinusModel);
147 theXiMinusInelastic->RegisterMe(theHEXiMinusModel);
148 aProcMan->AddDiscreteProcess(theXiMinusInelastic);
149
150 // anti-XiMinus
151 theAntiXiMinusInelastic = new G4AntiXiMinusInelasticProcess();
152 aProcMan = G4AntiXiMinus::AntiXiMinus()->GetProcessManager();
153 theLEAntiXiMinusModel = new G4LEAntiXiMinusInelastic();
154 theHEAntiXiMinusModel = new G4HEAntiXiMinusInelastic();
155 theHEAntiXiMinusModel->SetMaxEnergy(100*TeV);
156 theAntiXiMinusInelastic->RegisterMe(theLEAntiXiMinusModel);
157 theAntiXiMinusInelastic->RegisterMe(theHEAntiXiMinusModel);
158 aProcMan->AddDiscreteProcess(theAntiXiMinusInelastic);
159
160 // XiZero
161 theXiZeroInelastic = new G4XiZeroInelasticProcess();
162 aProcMan = G4XiZero::XiZero()->GetProcessManager();
163 theLEXiZeroModel = new G4LEXiZeroInelastic();
164 theHEXiZeroModel = new G4HEXiZeroInelastic();
165 theHEXiZeroModel->SetMaxEnergy(100*TeV);
166 theXiZeroInelastic->RegisterMe(theLEXiZeroModel);
167 theXiZeroInelastic->RegisterMe(theHEXiZeroModel);
168 aProcMan->AddDiscreteProcess(theXiZeroInelastic);
169
170 // anti-XiZero
171 theAntiXiZeroInelastic = new G4AntiXiZeroInelasticProcess();
172 aProcMan = G4AntiXiZero::AntiXiZero()->GetProcessManager();
173 theLEAntiXiZeroModel = new G4LEAntiXiZeroInelastic();
174 theHEAntiXiZeroModel = new G4HEAntiXiZeroInelastic();
175 theHEAntiXiZeroModel->SetMaxEnergy(100*TeV);
176 theAntiXiZeroInelastic->RegisterMe(theLEAntiXiZeroModel);
177 theAntiXiZeroInelastic->RegisterMe(theHEAntiXiZeroModel);
178 aProcMan->AddDiscreteProcess(theAntiXiZeroInelastic);
179
180 // OmegaMinus
181 theOmegaMinusInelastic = new G4OmegaMinusInelasticProcess();
182 aProcMan = G4OmegaMinus::OmegaMinus()->GetProcessManager();
183 theLEOmegaMinusModel = new G4LEOmegaMinusInelastic();
184 theHEOmegaMinusModel = new G4HEOmegaMinusInelastic();
185 theHEOmegaMinusModel->SetMaxEnergy(100*TeV);
186 theOmegaMinusInelastic->RegisterMe(theLEOmegaMinusModel);
187 theOmegaMinusInelastic->RegisterMe(theHEOmegaMinusModel);
188 aProcMan->AddDiscreteProcess(theOmegaMinusInelastic);
189
190 // anti-OmegaMinus
191 theAntiOmegaMinusInelastic = new G4AntiOmegaMinusInelasticProcess();
192 aProcMan = G4AntiOmegaMinus::AntiOmegaMinus()->GetProcessManager();
193 theLEAntiOmegaMinusModel = new G4LEAntiOmegaMinusInelastic();
194 theHEAntiOmegaMinusModel = new G4HEAntiOmegaMinusInelastic();
195 theHEAntiOmegaMinusModel->SetMaxEnergy(100*TeV);
196 theAntiOmegaMinusInelastic->RegisterMe(theLEAntiOmegaMinusModel);
197 theAntiOmegaMinusInelastic->RegisterMe(theHEAntiOmegaMinusModel);
198 aProcMan->AddDiscreteProcess(theAntiOmegaMinusInelastic);
199}
200
201// 2002 by J.P. Wellisch