G4MiscLHEPBuilder.cc

Go to the documentation of this file.
00001 //
00002 // ********************************************************************
00003 // * License and Disclaimer                                           *
00004 // *                                                                  *
00005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
00006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
00007 // * conditions of the Geant4 Software License,  included in the file *
00008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
00009 // * include a list of copyright holders.                             *
00010 // *                                                                  *
00011 // * Neither the authors of this software system, nor their employing *
00012 // * institutes,nor the agencies providing financial support for this *
00013 // * work  make  any representation or  warranty, express or implied, *
00014 // * regarding  this  software system or assume any liability for its *
00015 // * use.  Please see the license in the file  LICENSE  and URL above *
00016 // * for the full disclaimer and the limitation of liability.         *
00017 // *                                                                  *
00018 // * This  code  implementation is the result of  the  scientific and *
00019 // * technical work of the GEANT4 collaboration.                      *
00020 // * By using,  copying,  modifying or  distributing the software (or *
00021 // * any work based  on the software)  you  agree  to acknowledge its *
00022 // * use  in  resulting  scientific  publications,  and indicate your *
00023 // * acceptance of all terms of the Geant4 Software license.          *
00024 // ********************************************************************
00025 //
00026 // GEANT4 tag $Name: not supported by cvs2svn $
00027 //
00028 //---------------------------------------------------------------------------
00029 //
00030 // ClassName:   G4MiscLHEPBuilder
00031 //
00032 // Author: 2002 J.P. Wellisch
00033 //
00034 // Modified:
00035 // 16.11.2005 G.Folger: don't  keep processes as data members, but new these
00036 // 13.06.2006 G.Folger: (re)move elastic scatterring 
00037 //
00038 //----------------------------------------------------------------------------
00039 //
00040 #include "G4MiscLHEPBuilder.hh"
00041 
00042 #include "G4SystemOfUnits.hh"
00043 #include "G4ParticleDefinition.hh"
00044 #include "G4ParticleTable.hh"
00045 #include "G4ProcessManager.hh"
00046 
00047 G4MiscLHEPBuilder::G4MiscLHEPBuilder(): 
00048   theAntiProtonInelastic(0), theLEAntiProtonModel(0), 
00049   theHEAntiProtonModel(0),
00050   theAntiNeutronInelastic(0), theLEAntiNeutronModel(0),
00051   theHEAntiNeutronModel(0),
00052   theLambdaInelastic(0), theLELambdaModel(0), theHELambdaModel(0),
00053   theAntiLambdaInelastic(0), theLEAntiLambdaModel(0), theHEAntiLambdaModel(0),
00054   theSigmaMinusInelastic(0), theLESigmaMinusModel(0), theHESigmaMinusModel(0),
00055   theAntiSigmaMinusInelastic(0), theLEAntiSigmaMinusModel(0), theHEAntiSigmaMinusModel(0),
00056   theSigmaPlusInelastic(0), theLESigmaPlusModel(0), theHESigmaPlusModel(0),
00057   theAntiSigmaPlusInelastic(0), theLEAntiSigmaPlusModel(0), theHEAntiSigmaPlusModel(0),
00058   theXiZeroInelastic(0), theLEXiZeroModel(0), theHEXiZeroModel(0),
00059   theAntiXiZeroInelastic(0), theLEAntiXiZeroModel(0), theHEAntiXiZeroModel(0),
00060   theXiMinusInelastic(0), theLEXiMinusModel(0), theHEXiMinusModel(0),
00061   theAntiXiMinusInelastic(0), theLEAntiXiMinusModel(0), theHEAntiXiMinusModel(0),
00062   theOmegaMinusInelastic(0), theLEOmegaMinusModel(0), theHEOmegaMinusModel(0),
00063   theAntiOmegaMinusInelastic(0), theLEAntiOmegaMinusModel(0), theHEAntiOmegaMinusModel(0),
00064   wasActivated(false)
00065 
00066 {}
00067 
00068 
00069 G4MiscLHEPBuilder::~G4MiscLHEPBuilder()
00070 {
00071 }
00072 
00073 void G4MiscLHEPBuilder::Build()
00074 {
00075   G4ProcessManager * aProcMan = 0;
00076   wasActivated = true;
00077   
00078   // anti-Proton
00079   theAntiProtonInelastic = new G4AntiProtonInelasticProcess();
00080   aProcMan = G4AntiProton::AntiProton()->GetProcessManager();
00081   theLEAntiProtonModel = new G4LEAntiProtonInelastic();
00082   theHEAntiProtonModel = new G4HEAntiProtonInelastic();
00083   theHEAntiProtonModel->SetMaxEnergy(100*TeV);
00084   theAntiProtonInelastic->RegisterMe(theLEAntiProtonModel);
00085   theAntiProtonInelastic->RegisterMe(theHEAntiProtonModel);
00086   aProcMan->AddDiscreteProcess(theAntiProtonInelastic);
00087  
00088   // AntiNeutron
00089   theAntiNeutronInelastic = new G4AntiNeutronInelasticProcess();
00090   aProcMan = G4AntiNeutron::AntiNeutron()->GetProcessManager();
00091   theLEAntiNeutronModel = new G4LEAntiNeutronInelastic();
00092   theHEAntiNeutronModel = new G4HEAntiNeutronInelastic();
00093   theHEAntiNeutronModel->SetMaxEnergy(100*TeV);
00094   theAntiNeutronInelastic->RegisterMe(theLEAntiNeutronModel);
00095   theAntiNeutronInelastic->RegisterMe(theHEAntiNeutronModel);
00096   aProcMan->AddDiscreteProcess(theAntiNeutronInelastic);
00097 
00098   // Lambda
00099   theLambdaInelastic = new G4LambdaInelasticProcess();
00100   aProcMan = G4Lambda::Lambda()->GetProcessManager();
00101   theLELambdaModel = new G4LELambdaInelastic();
00102   theHELambdaModel = new G4HELambdaInelastic();
00103   theHELambdaModel->SetMaxEnergy(100*TeV);
00104   theLambdaInelastic->RegisterMe(theLELambdaModel);
00105   theLambdaInelastic->RegisterMe(theHELambdaModel);
00106   aProcMan->AddDiscreteProcess(theLambdaInelastic);
00107     
00108   // AntiLambda
00109   theAntiLambdaInelastic = new G4AntiLambdaInelasticProcess();
00110   aProcMan = G4AntiLambda::AntiLambda()->GetProcessManager();
00111   theLEAntiLambdaModel = new G4LEAntiLambdaInelastic();
00112   theHEAntiLambdaModel = new G4HEAntiLambdaInelastic();
00113   theHEAntiLambdaModel->SetMaxEnergy(100*TeV);
00114   theAntiLambdaInelastic->RegisterMe(theLEAntiLambdaModel);
00115   theAntiLambdaInelastic->RegisterMe(theHEAntiLambdaModel);
00116   aProcMan->AddDiscreteProcess(theAntiLambdaInelastic);
00117     
00118   // SigmaMinus
00119   theSigmaMinusInelastic = new G4SigmaMinusInelasticProcess();
00120   aProcMan = G4SigmaMinus::SigmaMinus()->GetProcessManager();
00121   theLESigmaMinusModel = new G4LESigmaMinusInelastic();
00122   theHESigmaMinusModel = new G4HESigmaMinusInelastic();
00123   theHESigmaMinusModel->SetMaxEnergy(100*TeV);
00124   theSigmaMinusInelastic->RegisterMe(theLESigmaMinusModel);
00125   theSigmaMinusInelastic->RegisterMe(theHESigmaMinusModel);
00126   aProcMan->AddDiscreteProcess(theSigmaMinusInelastic);
00127     
00128   // anti-SigmaMinus
00129   theAntiSigmaMinusInelastic = new G4AntiSigmaMinusInelasticProcess();
00130   aProcMan = G4AntiSigmaMinus::AntiSigmaMinus()->GetProcessManager();
00131   theLEAntiSigmaMinusModel = new G4LEAntiSigmaMinusInelastic();
00132   theHEAntiSigmaMinusModel = new G4HEAntiSigmaMinusInelastic();
00133   theHEAntiSigmaMinusModel->SetMaxEnergy(100*TeV);
00134   theAntiSigmaMinusInelastic->RegisterMe(theLEAntiSigmaMinusModel);
00135   theAntiSigmaMinusInelastic->RegisterMe(theHEAntiSigmaMinusModel);
00136   aProcMan->AddDiscreteProcess(theAntiSigmaMinusInelastic);
00137 
00138   // SigmaPlus
00139   theSigmaPlusInelastic = new G4SigmaPlusInelasticProcess();
00140   aProcMan = G4SigmaPlus::SigmaPlus()->GetProcessManager();
00141   theLESigmaPlusModel = new G4LESigmaPlusInelastic();
00142   theHESigmaPlusModel = new G4HESigmaPlusInelastic();
00143   theHESigmaPlusModel->SetMaxEnergy(100*TeV);
00144   theSigmaPlusInelastic->RegisterMe(theLESigmaPlusModel);
00145   theSigmaPlusInelastic->RegisterMe(theHESigmaPlusModel);
00146   aProcMan->AddDiscreteProcess(theSigmaPlusInelastic);
00147     
00148   // anti-SigmaPlus
00149   theAntiSigmaPlusInelastic = new G4AntiSigmaPlusInelasticProcess();
00150   aProcMan = G4AntiSigmaPlus::AntiSigmaPlus()->GetProcessManager();
00151   theLEAntiSigmaPlusModel = new G4LEAntiSigmaPlusInelastic();
00152   theHEAntiSigmaPlusModel = new G4HEAntiSigmaPlusInelastic();
00153   theHEAntiSigmaPlusModel->SetMaxEnergy(100*TeV);
00154   theAntiSigmaPlusInelastic->RegisterMe(theLEAntiSigmaPlusModel);
00155   theAntiSigmaPlusInelastic->RegisterMe(theHEAntiSigmaPlusModel);
00156   aProcMan->AddDiscreteProcess(theAntiSigmaPlusInelastic);
00157 
00158   // XiMinus
00159   theXiMinusInelastic = new G4XiMinusInelasticProcess();
00160   aProcMan = G4XiMinus::XiMinus()->GetProcessManager();
00161   theLEXiMinusModel = new G4LEXiMinusInelastic();
00162   theHEXiMinusModel = new G4HEXiMinusInelastic();
00163   theHEXiMinusModel->SetMaxEnergy(100*TeV);
00164   theXiMinusInelastic->RegisterMe(theLEXiMinusModel);
00165   theXiMinusInelastic->RegisterMe(theHEXiMinusModel);
00166   aProcMan->AddDiscreteProcess(theXiMinusInelastic);
00167 
00168   // anti-XiMinus
00169   theAntiXiMinusInelastic = new G4AntiXiMinusInelasticProcess();
00170   aProcMan = G4AntiXiMinus::AntiXiMinus()->GetProcessManager();
00171   theLEAntiXiMinusModel = new G4LEAntiXiMinusInelastic();
00172   theHEAntiXiMinusModel = new G4HEAntiXiMinusInelastic();
00173   theHEAntiXiMinusModel->SetMaxEnergy(100*TeV);
00174   theAntiXiMinusInelastic->RegisterMe(theLEAntiXiMinusModel);
00175   theAntiXiMinusInelastic->RegisterMe(theHEAntiXiMinusModel);
00176   aProcMan->AddDiscreteProcess(theAntiXiMinusInelastic);
00177 
00178   // XiZero
00179   theXiZeroInelastic = new G4XiZeroInelasticProcess();
00180   aProcMan = G4XiZero::XiZero()->GetProcessManager();
00181   theLEXiZeroModel = new G4LEXiZeroInelastic();
00182   theHEXiZeroModel = new G4HEXiZeroInelastic();
00183   theHEXiZeroModel->SetMaxEnergy(100*TeV);
00184   theXiZeroInelastic->RegisterMe(theLEXiZeroModel);
00185   theXiZeroInelastic->RegisterMe(theHEXiZeroModel);
00186   aProcMan->AddDiscreteProcess(theXiZeroInelastic);
00187     
00188   // anti-XiZero
00189   theAntiXiZeroInelastic = new G4AntiXiZeroInelasticProcess();
00190   aProcMan = G4AntiXiZero::AntiXiZero()->GetProcessManager();
00191   theLEAntiXiZeroModel = new G4LEAntiXiZeroInelastic();
00192   theHEAntiXiZeroModel = new G4HEAntiXiZeroInelastic();
00193   theHEAntiXiZeroModel->SetMaxEnergy(100*TeV);
00194   theAntiXiZeroInelastic->RegisterMe(theLEAntiXiZeroModel);
00195   theAntiXiZeroInelastic->RegisterMe(theHEAntiXiZeroModel);
00196   aProcMan->AddDiscreteProcess(theAntiXiZeroInelastic);
00197 
00198   // OmegaMinus
00199   theOmegaMinusInelastic = new G4OmegaMinusInelasticProcess();
00200   aProcMan = G4OmegaMinus::OmegaMinus()->GetProcessManager();
00201   theLEOmegaMinusModel = new G4LEOmegaMinusInelastic();
00202   theHEOmegaMinusModel = new G4HEOmegaMinusInelastic();
00203   theHEOmegaMinusModel->SetMaxEnergy(100*TeV);
00204   theOmegaMinusInelastic->RegisterMe(theLEOmegaMinusModel);
00205   theOmegaMinusInelastic->RegisterMe(theHEOmegaMinusModel);
00206   aProcMan->AddDiscreteProcess(theOmegaMinusInelastic);
00207 
00208   // anti-OmegaMinus
00209   theAntiOmegaMinusInelastic = new G4AntiOmegaMinusInelasticProcess();
00210   aProcMan = G4AntiOmegaMinus::AntiOmegaMinus()->GetProcessManager();
00211   theLEAntiOmegaMinusModel = new G4LEAntiOmegaMinusInelastic();
00212   theHEAntiOmegaMinusModel = new G4HEAntiOmegaMinusInelastic();
00213   theHEAntiOmegaMinusModel->SetMaxEnergy(100*TeV);
00214   theAntiOmegaMinusInelastic->RegisterMe(theLEAntiOmegaMinusModel);
00215   theAntiOmegaMinusInelastic->RegisterMe(theHEAntiOmegaMinusModel);
00216   aProcMan->AddDiscreteProcess(theAntiOmegaMinusInelastic);
00217 }
00218 
00219 // 2002 by J.P. Wellisch

Generated on Mon May 27 17:48:52 2013 for Geant4 by  doxygen 1.4.7