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 47 of file G4HyperonFTFPBuilder.cc.

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

00047                                           : 
00048  theLambdaInelastic(0),
00049  theAntiLambdaInelastic(0),
00050  theSigmaMinusInelastic(0),
00051  theAntiSigmaMinusInelastic(0),
00052  theSigmaPlusInelastic(0), 
00053  theAntiSigmaPlusInelastic(0), 
00054  theXiZeroInelastic(0), 
00055  theAntiXiZeroInelastic(0),
00056  theXiMinusInelastic(0), 
00057  theAntiXiMinusInelastic(0),
00058  theOmegaMinusInelastic(0), 
00059  theAntiOmegaMinusInelastic(0), 
00060  wasActivated(false)
00061 {
00062 
00063 // Hyperon : Bertini at low energies, then FTFP
00064 
00065   HyperonFTFP = new G4TheoFSGenerator("FTFP");
00066   
00067   HyperonFTFP->SetMinEnergy( 2.*GeV );
00068   HyperonFTFP->SetMaxEnergy( 100.*TeV );
00069 
00070   theStringModel = new G4FTFModel;
00071   theStringDecay = new G4ExcitedStringDecay(theLund = new G4LundStringFragmentation);
00072   theStringModel->SetFragmentationModel(theStringDecay);
00073 
00074   theCascade = new G4GeneratorPrecompoundInterface;
00075   thePreEquilib = new G4PreCompoundModel(theHandler = new G4ExcitationHandler);
00076   theCascade->SetDeExcitation(thePreEquilib);  
00077 
00078   HyperonFTFP->SetTransport(theCascade);
00079   HyperonFTFP->SetHighEnergyGenerator(theStringModel);
00080   
00081   theBertini = new G4CascadeInterface;
00082   theBertini->SetMinEnergy( 0.*GeV );
00083   theBertini->SetMaxEnergy( 6.*GeV );
00084 
00085 // AntiHyperons: Use FTFP for full energy range, starting at 0.  
00086 
00087   AntiHyperonFTFP = new G4TheoFSGenerator("FTFP");
00088   AntiHyperonFTFP->SetMinEnergy( 0.*GeV );
00089   AntiHyperonFTFP->SetMaxEnergy( 100.*TeV );
00090   AntiHyperonFTFP->SetTransport(theCascade);
00091   AntiHyperonFTFP->SetHighEnergyGenerator(theStringModel);
00092 
00093 // use CHIPS cross sections
00094   theCHIPSInelastic = G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsHyperonInelasticXS::Default_Name());
00095 }

G4HyperonFTFPBuilder::~G4HyperonFTFPBuilder (  )  [virtual]

Definition at line 98 of file G4HyperonFTFPBuilder.cc.

00099 {
00100   delete HyperonFTFP;
00101   delete theStringModel;
00102   delete theStringDecay;
00103   delete theCascade;
00104   delete thePreEquilib;
00105   //  delete theHandler;
00106   delete theBertini;
00107   delete AntiHyperonFTFP;
00108   
00109   if (wasActivated) {
00110      delete theLambdaInelastic;
00111      delete theAntiLambdaInelastic;
00112      delete theSigmaMinusInelastic;
00113      delete theAntiSigmaMinusInelastic;
00114      delete theSigmaPlusInelastic;
00115      delete theAntiSigmaPlusInelastic;
00116      delete theXiMinusInelastic;
00117      delete theAntiXiMinusInelastic;
00118      delete theXiZeroInelastic;
00119      delete theAntiXiZeroInelastic;
00120      delete theOmegaMinusInelastic;
00121      delete theAntiOmegaMinusInelastic;
00122   }   
00123 }


Member Function Documentation

void G4HyperonFTFPBuilder::Build (  ) 

Definition at line 125 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().

Referenced by HadronPhysicsQGSP_FTFP_BERT_95::ConstructProcess(), HadronPhysicsQGSP_FTFP_BERT::ConstructProcess(), HadronPhysicsFTFP_BERT_TRV::ConstructProcess(), HadronPhysicsFTFP_BERT_HP::ConstructProcess(), HadronPhysicsFTFP_BERT::ConstructProcess(), and HadronPhysicsFTF_BIC::ConstructProcess().

00126 {
00127   G4ProcessManager * aProcMan = 0;
00128   wasActivated = true;
00129 
00130   // Lambda
00131   theLambdaInelastic = new G4LambdaInelasticProcess();
00132   theLambdaInelastic->RegisterMe(theBertini);
00133   theLambdaInelastic->RegisterMe(HyperonFTFP);
00134   theLambdaInelastic->AddDataSet(theCHIPSInelastic);
00135   aProcMan = G4Lambda::Lambda()->GetProcessManager();
00136   aProcMan->AddDiscreteProcess(theLambdaInelastic);
00137   
00138   // AntiLambda
00139   theAntiLambdaInelastic = new G4AntiLambdaInelasticProcess();
00140   theAntiLambdaInelastic->RegisterMe(AntiHyperonFTFP);
00141   theAntiLambdaInelastic->AddDataSet(theCHIPSInelastic);
00142   
00143   aProcMan = G4AntiLambda::AntiLambda()->GetProcessManager();
00144   aProcMan->AddDiscreteProcess(theAntiLambdaInelastic);
00145     
00146   // SigmaMinus
00147   theSigmaMinusInelastic = new G4SigmaMinusInelasticProcess();
00148   theSigmaMinusInelastic->RegisterMe(theBertini);
00149   theSigmaMinusInelastic->RegisterMe(HyperonFTFP);
00150   theSigmaMinusInelastic->AddDataSet(theCHIPSInelastic);
00151 
00152   aProcMan = G4SigmaMinus::SigmaMinus()->GetProcessManager();
00153   aProcMan->AddDiscreteProcess(theSigmaMinusInelastic);
00154 
00155   // anti-SigmaMinus
00156   theAntiSigmaMinusInelastic = new G4AntiSigmaMinusInelasticProcess();
00157   theAntiSigmaMinusInelastic->RegisterMe(AntiHyperonFTFP);
00158   theAntiSigmaMinusInelastic->AddDataSet(theCHIPSInelastic);
00159 
00160   aProcMan = G4AntiSigmaMinus::AntiSigmaMinus()->GetProcessManager();
00161   aProcMan->AddDiscreteProcess(theAntiSigmaMinusInelastic);
00162 
00163   // SigmaPlus
00164   theSigmaPlusInelastic = new G4SigmaPlusInelasticProcess();
00165   theSigmaPlusInelastic->RegisterMe(theBertini);
00166   theSigmaPlusInelastic->RegisterMe(HyperonFTFP);
00167   theSigmaPlusInelastic->AddDataSet(theCHIPSInelastic);
00168 
00169   aProcMan = G4SigmaPlus::SigmaPlus()->GetProcessManager();
00170   aProcMan->AddDiscreteProcess(theSigmaPlusInelastic);
00171 
00172   // anti-SigmaPlus
00173   theAntiSigmaPlusInelastic = new G4AntiSigmaPlusInelasticProcess();
00174   theAntiSigmaPlusInelastic->RegisterMe(AntiHyperonFTFP);
00175   theAntiSigmaPlusInelastic->AddDataSet(theCHIPSInelastic);
00176 
00177   aProcMan = G4AntiSigmaPlus::AntiSigmaPlus()->GetProcessManager();
00178   aProcMan->AddDiscreteProcess(theAntiSigmaPlusInelastic);
00179 
00180   // XiMinus
00181   theXiMinusInelastic = new G4XiMinusInelasticProcess();
00182   theXiMinusInelastic->RegisterMe(theBertini);
00183   theXiMinusInelastic->RegisterMe(HyperonFTFP);
00184   theXiMinusInelastic->AddDataSet(theCHIPSInelastic);
00185 
00186   aProcMan = G4XiMinus::XiMinus()->GetProcessManager();
00187   aProcMan->AddDiscreteProcess(theXiMinusInelastic);
00188 
00189   // anti-XiMinus
00190   theAntiXiMinusInelastic = new G4AntiXiMinusInelasticProcess();
00191   theAntiXiMinusInelastic->RegisterMe(AntiHyperonFTFP);
00192   theAntiXiMinusInelastic->AddDataSet(theCHIPSInelastic);
00193 
00194   aProcMan = G4AntiXiMinus::AntiXiMinus()->GetProcessManager();
00195   aProcMan->AddDiscreteProcess(theAntiXiMinusInelastic);
00196 
00197   // XiZero
00198   theXiZeroInelastic = new G4XiZeroInelasticProcess();
00199   theXiZeroInelastic->RegisterMe(theBertini);
00200   theXiZeroInelastic->RegisterMe(HyperonFTFP);
00201   theXiZeroInelastic->AddDataSet(theCHIPSInelastic);
00202 
00203   aProcMan = G4XiZero::XiZero()->GetProcessManager();
00204   aProcMan->AddDiscreteProcess(theXiZeroInelastic);
00205 
00206   // anti-XiZero
00207   theAntiXiZeroInelastic = new G4AntiXiZeroInelasticProcess();
00208   theAntiXiZeroInelastic->RegisterMe(AntiHyperonFTFP);
00209   theAntiXiZeroInelastic->AddDataSet(theCHIPSInelastic);
00210 
00211   aProcMan = G4AntiXiZero::AntiXiZero()->GetProcessManager();
00212   aProcMan->AddDiscreteProcess(theAntiXiZeroInelastic);
00213 
00214   // OmegaMinus
00215   theOmegaMinusInelastic = new G4OmegaMinusInelasticProcess();
00216   theOmegaMinusInelastic->RegisterMe(theBertini);
00217   theOmegaMinusInelastic->RegisterMe(HyperonFTFP);
00218   theOmegaMinusInelastic->AddDataSet(theCHIPSInelastic);
00219 
00220   aProcMan = G4OmegaMinus::OmegaMinus()->GetProcessManager();
00221   aProcMan->AddDiscreteProcess(theOmegaMinusInelastic);
00222 
00223   // anti-OmegaMinus
00224   theAntiOmegaMinusInelastic = new G4AntiOmegaMinusInelasticProcess();
00225   theAntiOmegaMinusInelastic->RegisterMe(AntiHyperonFTFP);
00226   theAntiOmegaMinusInelastic->AddDataSet(theCHIPSInelastic);
00227 
00228   aProcMan = G4AntiOmegaMinus::AntiOmegaMinus()->GetProcessManager();
00229   aProcMan->AddDiscreteProcess(theAntiOmegaMinusInelastic);
00230 }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:52:14 2013 for Geant4 by  doxygen 1.4.7