CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
G4MiscLHEPBuilder_WP.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: CMSSW_5_3_11_patch3 $
27 //
28 //---------------------------------------------------------------------------
29 //
30 // ClassName: G4MiscLHEPBuilder_WP
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 //
42 
43 #include "G4ParticleDefinition.hh"
44 #include "G4ParticleTable.hh"
45 #include "G4ProcessManager.hh"
46 
48 
50 {
51  theWrappedAntiProtonInelastic=new GflashHadronWrapperProcess("G4AntiProtonInelasticProcess");
52 }
54 {
55  // delete theWrappedAntiProtonInelastic;
56 }
57 
59 {
60  G4ProcessManager * aProcMan = 0;
61  wasActivated = true;
62 
63  // anti-Proton
64  aProcMan = G4AntiProton::AntiProton()->GetProcessManager();
65  theLEAntiProtonModel = new G4LEAntiProtonInelastic();
66  theHEAntiProtonModel = new G4HEAntiProtonInelastic();
67  theHEAntiProtonModel->SetMaxEnergy(100*TeV);
70  // aProcMan->AddDiscreteProcess(&theAntiProtonInelastic);
71  edm::LogInfo("SimG4CoreGFlash") << " Adding GflashHadronWrapperProcess (G4wrapperProcess) for G4AntiProtonInelasticProcess" ;
73  aProcMan->AddDiscreteProcess(theWrappedAntiProtonInelastic);
74 
75  // AntiNeutron
76  aProcMan = G4AntiNeutron::AntiNeutron()->GetProcessManager();
77  theLEAntiNeutronModel = new G4LEAntiNeutronInelastic();
78  theHEAntiNeutronModel = new G4HEAntiNeutronInelastic();
79  theHEAntiNeutronModel->SetMaxEnergy(100*TeV);
82  aProcMan->AddDiscreteProcess(&theAntiNeutronInelastic);
83 
84  // Lambda
85  aProcMan = G4Lambda::Lambda()->GetProcessManager();
86  theLELambdaModel = new G4LELambdaInelastic();
87  theHELambdaModel = new G4HELambdaInelastic();
88  theHELambdaModel->SetMaxEnergy(100*TeV);
91  aProcMan->AddDiscreteProcess(&theLambdaInelastic);
92 
93  // AntiLambda
94  aProcMan = G4AntiLambda::AntiLambda()->GetProcessManager();
95  theLEAntiLambdaModel = new G4LEAntiLambdaInelastic();
96  theHEAntiLambdaModel = new G4HEAntiLambdaInelastic();
97  theHEAntiLambdaModel->SetMaxEnergy(100*TeV);
100  aProcMan->AddDiscreteProcess(&theAntiLambdaInelastic);
101 
102  // SigmaMinus
103  aProcMan = G4SigmaMinus::SigmaMinus()->GetProcessManager();
104  theLESigmaMinusModel = new G4LESigmaMinusInelastic();
105  theHESigmaMinusModel = new G4HESigmaMinusInelastic();
106  theHESigmaMinusModel->SetMaxEnergy(100*TeV);
109  aProcMan->AddDiscreteProcess(&theSigmaMinusInelastic);
110 
111  // anti-SigmaMinus
112  aProcMan = G4AntiSigmaMinus::AntiSigmaMinus()->GetProcessManager();
113  theLEAntiSigmaMinusModel = new G4LEAntiSigmaMinusInelastic();
114  theHEAntiSigmaMinusModel = new G4HEAntiSigmaMinusInelastic();
115  theHEAntiSigmaMinusModel->SetMaxEnergy(100*TeV);
118  aProcMan->AddDiscreteProcess(&theAntiSigmaMinusInelastic);
119 
120  // SigmaPlus
121  aProcMan = G4SigmaPlus::SigmaPlus()->GetProcessManager();
122  theLESigmaPlusModel = new G4LESigmaPlusInelastic();
123  theHESigmaPlusModel = new G4HESigmaPlusInelastic();
124  theHESigmaPlusModel->SetMaxEnergy(100*TeV);
127  aProcMan->AddDiscreteProcess(&theSigmaPlusInelastic);
128 
129  // anti-SigmaPlus
130  aProcMan = G4AntiSigmaPlus::AntiSigmaPlus()->GetProcessManager();
131  theLEAntiSigmaPlusModel = new G4LEAntiSigmaPlusInelastic();
132  theHEAntiSigmaPlusModel = new G4HEAntiSigmaPlusInelastic();
133  theHEAntiSigmaPlusModel->SetMaxEnergy(100*TeV);
136  aProcMan->AddDiscreteProcess(&theAntiSigmaPlusInelastic);
137 
138  // XiMinus
139  aProcMan = G4XiMinus::XiMinus()->GetProcessManager();
140  theLEXiMinusModel = new G4LEXiMinusInelastic();
141  theHEXiMinusModel = new G4HEXiMinusInelastic();
142  theHEXiMinusModel->SetMaxEnergy(100*TeV);
145  aProcMan->AddDiscreteProcess(&theXiMinusInelastic);
146 
147  // anti-XiMinus
148  aProcMan = G4AntiXiMinus::AntiXiMinus()->GetProcessManager();
149  theLEAntiXiMinusModel = new G4LEAntiXiMinusInelastic();
150  theHEAntiXiMinusModel = new G4HEAntiXiMinusInelastic();
151  theHEAntiXiMinusModel->SetMaxEnergy(100*TeV);
154  aProcMan->AddDiscreteProcess(&theAntiXiMinusInelastic);
155 
156  // XiZero
157  aProcMan = G4XiZero::XiZero()->GetProcessManager();
158  theLEXiZeroModel = new G4LEXiZeroInelastic();
159  theHEXiZeroModel = new G4HEXiZeroInelastic();
160  theHEXiZeroModel->SetMaxEnergy(100*TeV);
163  aProcMan->AddDiscreteProcess(&theXiZeroInelastic);
164 
165  // anti-XiZero
166  aProcMan = G4AntiXiZero::AntiXiZero()->GetProcessManager();
167  theLEAntiXiZeroModel = new G4LEAntiXiZeroInelastic();
168  theHEAntiXiZeroModel = new G4HEAntiXiZeroInelastic();
169  theHEAntiXiZeroModel->SetMaxEnergy(100*TeV);
172  aProcMan->AddDiscreteProcess(&theAntiXiZeroInelastic);
173 
174  // OmegaMinus
175  aProcMan = G4OmegaMinus::OmegaMinus()->GetProcessManager();
176  theLEOmegaMinusModel = new G4LEOmegaMinusInelastic();
177  theHEOmegaMinusModel = new G4HEOmegaMinusInelastic();
178  theHEOmegaMinusModel->SetMaxEnergy(100*TeV);
181  aProcMan->AddDiscreteProcess(&theOmegaMinusInelastic);
182 
183  // anti-OmegaMinus
184  aProcMan = G4AntiOmegaMinus::AntiOmegaMinus()->GetProcessManager();
185  theLEAntiOmegaMinusModel = new G4LEAntiOmegaMinusInelastic();
186  theHEAntiOmegaMinusModel = new G4HEAntiOmegaMinusInelastic();
187  theHEAntiOmegaMinusModel->SetMaxEnergy(100*TeV);
190  aProcMan->AddDiscreteProcess(&theAntiOmegaMinusInelastic);
191 }
192 
193 // 2002 by J.P. Wellisch
G4LEAntiXiZeroInelastic * theLEAntiXiZeroModel
G4OmegaMinusInelasticProcess theOmegaMinusInelastic
G4AntiProtonInelasticProcess theAntiProtonInelastic
G4HEAntiSigmaMinusInelastic * theHEAntiSigmaMinusModel
G4LEOmegaMinusInelastic * theLEOmegaMinusModel
G4LEXiZeroInelastic * theLEXiZeroModel
G4SigmaPlusInelasticProcess theSigmaPlusInelastic
G4HEAntiNeutronInelastic * theHEAntiNeutronModel
GflashHadronWrapperProcess * theWrappedAntiProtonInelastic
G4LEAntiNeutronInelastic * theLEAntiNeutronModel
G4HEXiMinusInelastic * theHEXiMinusModel
G4XiZeroInelasticProcess theXiZeroInelastic
G4LELambdaInelastic * theLELambdaModel
G4LambdaInelasticProcess theLambdaInelastic
G4LESigmaPlusInelastic * theLESigmaPlusModel
G4AntiSigmaPlusInelasticProcess theAntiSigmaPlusInelastic
G4HEAntiLambdaInelastic * theHEAntiLambdaModel
G4HEXiZeroInelastic * theHEXiZeroModel
G4LEAntiSigmaPlusInelastic * theLEAntiSigmaPlusModel
G4LESigmaMinusInelastic * theLESigmaMinusModel
G4HEAntiOmegaMinusInelastic * theHEAntiOmegaMinusModel
G4SigmaMinusInelasticProcess theSigmaMinusInelastic
G4AntiXiZeroInelasticProcess theAntiXiZeroInelastic
G4HEAntiXiZeroInelastic * theHEAntiXiZeroModel
G4HEAntiProtonInelastic * theHEAntiProtonModel
G4HELambdaInelastic * theHELambdaModel
G4HEAntiSigmaPlusInelastic * theHEAntiSigmaPlusModel
G4AntiXiMinusInelasticProcess theAntiXiMinusInelastic
G4AntiOmegaMinusInelasticProcess theAntiOmegaMinusInelastic
G4HESigmaPlusInelastic * theHESigmaPlusModel
G4AntiSigmaMinusInelasticProcess theAntiSigmaMinusInelastic
G4AntiNeutronInelasticProcess theAntiNeutronInelastic
G4XiMinusInelasticProcess theXiMinusInelastic
G4HESigmaMinusInelastic * theHESigmaMinusModel
G4HEAntiXiMinusInelastic * theHEAntiXiMinusModel
G4LEAntiXiMinusInelastic * theLEAntiXiMinusModel
G4LEAntiProtonInelastic * theLEAntiProtonModel
G4LEAntiOmegaMinusInelastic * theLEAntiOmegaMinusModel
G4AntiLambdaInelasticProcess theAntiLambdaInelastic
G4LEXiMinusInelastic * theLEXiMinusModel
G4HEOmegaMinusInelastic * theHEOmegaMinusModel
G4LEAntiSigmaMinusInelastic * theLEAntiSigmaMinusModel
G4LEAntiLambdaInelastic * theLEAntiLambdaModel