Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions
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 ( )

Definition at line 46 of file G4HyperonFTFPBuilder.cc.

References G4ChipsHyperonInelasticXS::Default_Name(), G4CrossSectionDataSetRegistry::GetCrossSectionDataSet(), python.hepunit::GeV, G4CrossSectionDataSetRegistry::Instance(), G4VIntraNuclearTransportModel::SetDeExcitation(), G4VPartonStringModel::SetFragmentationModel(), G4TheoFSGenerator::SetHighEnergyGenerator(), G4HadronicInteraction::SetMaxEnergy(), G4HadronicInteraction::SetMinEnergy(), G4TheoFSGenerator::SetTransport(), and python.hepunit::TeV.

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  thePreEquilib = new G4PreCompoundModel(theHandler = new G4ExcitationHandler);
75  theCascade->SetDeExcitation(thePreEquilib);
76 
77  HyperonFTFP->SetTransport(theCascade);
78  HyperonFTFP->SetHighEnergyGenerator(theStringModel);
79 
80  theBertini = new G4CascadeInterface;
81  theBertini->SetMinEnergy( 0.*GeV );
82  theBertini->SetMaxEnergy( 6.*GeV );
83 
84 // AntiHyperons: Use FTFP for full energy range, starting at 0.
85 
86  AntiHyperonFTFP = new G4TheoFSGenerator("FTFP");
87  AntiHyperonFTFP->SetMinEnergy( 0.*GeV );
88  AntiHyperonFTFP->SetMaxEnergy( 100.*TeV );
89  AntiHyperonFTFP->SetTransport(theCascade);
90  AntiHyperonFTFP->SetHighEnergyGenerator(theStringModel);
91 
92 // use CHIPS cross sections
94 }
G4VCrossSectionDataSet * GetCrossSectionDataSet(const G4String &name, G4bool warning=true)
void SetFragmentationModel(G4VStringFragmentation *aModel)
void SetHighEnergyGenerator(G4VHighEnergyGenerator *const value)
void SetMinEnergy(G4double anEnergy)
static G4CrossSectionDataSetRegistry * Instance()
void SetMaxEnergy(const G4double anEnergy)
void SetDeExcitation(G4VPreCompoundModel *ptr)
void SetTransport(G4VIntraNuclearTransportModel *const value)
G4HyperonFTFPBuilder::~G4HyperonFTFPBuilder ( )
virtual

Definition at line 97 of file G4HyperonFTFPBuilder.cc.

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

Member Function Documentation

void G4HyperonFTFPBuilder::Build ( )

Definition at line 124 of file G4HyperonFTFPBuilder.cc.

References G4HadronicProcess::AddDataSet(), G4ProcessManager::AddDiscreteProcess(), G4AntiLambda::AntiLambda(), G4AntiOmegaMinus::AntiOmegaMinus(), G4AntiSigmaMinus::AntiSigmaMinus(), G4AntiSigmaPlus::AntiSigmaPlus(), G4AntiXiMinus::AntiXiMinus(), G4AntiXiZero::AntiXiZero(), G4ParticleDefinition::GetProcessManager(), G4Lambda::Lambda(), G4OmegaMinus::OmegaMinus(), G4HadronicProcess::RegisterMe(), G4SigmaMinus::SigmaMinus(), G4SigmaPlus::SigmaPlus(), G4XiMinus::XiMinus(), and G4XiZero::XiZero().

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

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