Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4HyperonFTFPBuilder Class Reference

#include <G4HyperonFTFPBuilder.hh>

Public Member Functions

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

Detailed Description

Definition at line 64 of file G4HyperonFTFPBuilder.hh.

Constructor & Destructor Documentation

G4HyperonFTFPBuilder::G4HyperonFTFPBuilder ( )

Definition at line 46 of file G4HyperonFTFPBuilder.cc.

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

Here is the call graph for this function:

G4HyperonFTFPBuilder::~G4HyperonFTFPBuilder ( )
virtual

Definition at line 95 of file G4HyperonFTFPBuilder.cc.

96 {
97  //delete HyperonFTFP;
98  delete theStringModel;
99  delete theStringDecay;
100  delete theLund;
101  //delete AntiHyperonFTFP;
102  /*
103  if (wasActivated) {
104  delete theLambdaInelastic;
105  delete theAntiLambdaInelastic;
106  delete theSigmaMinusInelastic;
107  delete theAntiSigmaMinusInelastic;
108  delete theSigmaPlusInelastic;
109  delete theAntiSigmaPlusInelastic;
110  delete theXiMinusInelastic;
111  delete theAntiXiMinusInelastic;
112  delete theXiZeroInelastic;
113  delete theAntiXiZeroInelastic;
114  delete theOmegaMinusInelastic;
115  delete theAntiOmegaMinusInelastic;
116  }
117  */
118 }

Member Function Documentation

void G4HyperonFTFPBuilder::Build ( )

Definition at line 120 of file G4HyperonFTFPBuilder.cc.

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

Here is the call graph for this function:


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