G4HyperonLHEPBuilder.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:   G4HyperonLHEPBuilder
00031 //
00032 // Author: 2011 J. Apostolakis
00033 //    Implementation started from G4MiscLHEPBuilder.  
00034 //
00035 // Modified:
00036 // 2011.02.22  ( J. Apostolakis ) Took out anti-proton, anti-neutron
00037 //----------------------------------------------------------------------------
00038 //
00039 #include "G4HyperonLHEPBuilder.hh"
00040 
00041 #include "G4SystemOfUnits.hh"
00042 #include "G4ParticleDefinition.hh"
00043 #include "G4ParticleTable.hh"
00044 #include "G4ProcessManager.hh"
00045 
00046 G4HyperonLHEPBuilder::G4HyperonLHEPBuilder(): 
00047  theLambdaInelastic(0), theLELambdaModel(0), theHELambdaModel(0),
00048  theAntiLambdaInelastic(0), theLEAntiLambdaModel(0), theHEAntiLambdaModel(0),
00049  theSigmaMinusInelastic(0), theLESigmaMinusModel(0), theHESigmaMinusModel(0),
00050  theAntiSigmaMinusInelastic(0), theLEAntiSigmaMinusModel(0), theHEAntiSigmaMinusModel(0),
00051  theSigmaPlusInelastic(0), theLESigmaPlusModel(0), theHESigmaPlusModel(0),
00052  theAntiSigmaPlusInelastic(0), theLEAntiSigmaPlusModel(0), theHEAntiSigmaPlusModel(0),
00053  theXiZeroInelastic(0), theLEXiZeroModel(0), theHEXiZeroModel(0),
00054  theAntiXiZeroInelastic(0), theLEAntiXiZeroModel(0), theHEAntiXiZeroModel(0),
00055  theXiMinusInelastic(0), theLEXiMinusModel(0), theHEXiMinusModel(0),
00056  theAntiXiMinusInelastic(0), theLEAntiXiMinusModel(0), theHEAntiXiMinusModel(0),
00057  theOmegaMinusInelastic(0), theLEOmegaMinusModel(0), theHEOmegaMinusModel(0),
00058  theAntiOmegaMinusInelastic(0), theLEAntiOmegaMinusModel(0), theHEAntiOmegaMinusModel(0),
00059  wasActivated(false)
00060 {}
00061 
00062 
00063 G4HyperonLHEPBuilder::~G4HyperonLHEPBuilder()
00064 {}
00065 
00066 void G4HyperonLHEPBuilder::Build()
00067 {
00068   G4ProcessManager * aProcMan = 0;
00069   wasActivated = true;
00070 
00071   // Lambda
00072   theLambdaInelastic = new G4LambdaInelasticProcess();
00073   aProcMan = G4Lambda::Lambda()->GetProcessManager();
00074   theLELambdaModel = new G4LELambdaInelastic();
00075   theHELambdaModel = new G4HELambdaInelastic();
00076   theHELambdaModel->SetMaxEnergy(100*TeV);
00077   theLambdaInelastic->RegisterMe(theLELambdaModel);
00078   theLambdaInelastic->RegisterMe(theHELambdaModel);
00079   aProcMan->AddDiscreteProcess(theLambdaInelastic);
00080   
00081   // AntiLambda
00082   theAntiLambdaInelastic = new G4AntiLambdaInelasticProcess();
00083   aProcMan = G4AntiLambda::AntiLambda()->GetProcessManager();
00084   theLEAntiLambdaModel = new G4LEAntiLambdaInelastic();
00085   theHEAntiLambdaModel = new G4HEAntiLambdaInelastic();
00086   theHEAntiLambdaModel->SetMaxEnergy(100*TeV);
00087   theAntiLambdaInelastic->RegisterMe(theLEAntiLambdaModel);
00088   theAntiLambdaInelastic->RegisterMe(theHEAntiLambdaModel);
00089   aProcMan->AddDiscreteProcess(theAntiLambdaInelastic);
00090     
00091   // SigmaMinus
00092   theSigmaMinusInelastic = new G4SigmaMinusInelasticProcess();
00093   aProcMan = G4SigmaMinus::SigmaMinus()->GetProcessManager();
00094   theLESigmaMinusModel = new G4LESigmaMinusInelastic();
00095   theHESigmaMinusModel = new G4HESigmaMinusInelastic();
00096   theHESigmaMinusModel->SetMaxEnergy(100*TeV);
00097   theSigmaMinusInelastic->RegisterMe(theLESigmaMinusModel);
00098   theSigmaMinusInelastic->RegisterMe(theHESigmaMinusModel);
00099   aProcMan->AddDiscreteProcess(theSigmaMinusInelastic);
00100 
00101   // anti-SigmaMinus
00102   theAntiSigmaMinusInelastic = new G4AntiSigmaMinusInelasticProcess();
00103   aProcMan = G4AntiSigmaMinus::AntiSigmaMinus()->GetProcessManager();
00104   theLEAntiSigmaMinusModel = new G4LEAntiSigmaMinusInelastic();
00105   theHEAntiSigmaMinusModel = new G4HEAntiSigmaMinusInelastic();
00106   theHEAntiSigmaMinusModel->SetMaxEnergy(100*TeV);
00107   theAntiSigmaMinusInelastic->RegisterMe(theLEAntiSigmaMinusModel);
00108   theAntiSigmaMinusInelastic->RegisterMe(theHEAntiSigmaMinusModel);
00109   aProcMan->AddDiscreteProcess(theAntiSigmaMinusInelastic);
00110 
00111   // SigmaPlus
00112   theSigmaPlusInelastic = new G4SigmaPlusInelasticProcess();
00113   aProcMan = G4SigmaPlus::SigmaPlus()->GetProcessManager();
00114   theLESigmaPlusModel = new G4LESigmaPlusInelastic();
00115   theHESigmaPlusModel = new G4HESigmaPlusInelastic();
00116   theHESigmaPlusModel->SetMaxEnergy(100*TeV);
00117   theSigmaPlusInelastic->RegisterMe(theLESigmaPlusModel);
00118   theSigmaPlusInelastic->RegisterMe(theHESigmaPlusModel);
00119   aProcMan->AddDiscreteProcess(theSigmaPlusInelastic);
00120 
00121   // anti-SigmaPlus
00122   theAntiSigmaPlusInelastic = new G4AntiSigmaPlusInelasticProcess();
00123   aProcMan = G4AntiSigmaPlus::AntiSigmaPlus()->GetProcessManager();
00124   theLEAntiSigmaPlusModel = new G4LEAntiSigmaPlusInelastic();
00125   theHEAntiSigmaPlusModel = new G4HEAntiSigmaPlusInelastic();
00126   theHEAntiSigmaPlusModel->SetMaxEnergy(100*TeV);
00127   theAntiSigmaPlusInelastic->RegisterMe(theLEAntiSigmaPlusModel);
00128   theAntiSigmaPlusInelastic->RegisterMe(theHEAntiSigmaPlusModel);
00129   aProcMan->AddDiscreteProcess(theAntiSigmaPlusInelastic);
00130 
00131   // XiMinus
00132   theXiMinusInelastic = new G4XiMinusInelasticProcess();
00133   aProcMan = G4XiMinus::XiMinus()->GetProcessManager();
00134   theLEXiMinusModel = new G4LEXiMinusInelastic();
00135   theHEXiMinusModel = new G4HEXiMinusInelastic();
00136   theHEXiMinusModel->SetMaxEnergy(100*TeV);
00137   theXiMinusInelastic->RegisterMe(theLEXiMinusModel);
00138   theXiMinusInelastic->RegisterMe(theHEXiMinusModel);
00139   aProcMan->AddDiscreteProcess(theXiMinusInelastic);
00140 
00141   // anti-XiMinus
00142   theAntiXiMinusInelastic = new G4AntiXiMinusInelasticProcess();
00143   aProcMan = G4AntiXiMinus::AntiXiMinus()->GetProcessManager();
00144   theLEAntiXiMinusModel = new G4LEAntiXiMinusInelastic();
00145   theHEAntiXiMinusModel = new G4HEAntiXiMinusInelastic();
00146   theHEAntiXiMinusModel->SetMaxEnergy(100*TeV);
00147   theAntiXiMinusInelastic->RegisterMe(theLEAntiXiMinusModel);
00148   theAntiXiMinusInelastic->RegisterMe(theHEAntiXiMinusModel);
00149   aProcMan->AddDiscreteProcess(theAntiXiMinusInelastic);
00150 
00151   // XiZero
00152   theXiZeroInelastic = new G4XiZeroInelasticProcess();
00153   aProcMan = G4XiZero::XiZero()->GetProcessManager();
00154   theLEXiZeroModel = new G4LEXiZeroInelastic();
00155   theHEXiZeroModel = new G4HEXiZeroInelastic();
00156   theHEXiZeroModel->SetMaxEnergy(100*TeV);
00157   theXiZeroInelastic->RegisterMe(theLEXiZeroModel);
00158   theXiZeroInelastic->RegisterMe(theHEXiZeroModel);
00159   aProcMan->AddDiscreteProcess(theXiZeroInelastic);
00160 
00161   // anti-XiZero
00162   theAntiXiZeroInelastic = new G4AntiXiZeroInelasticProcess();
00163   aProcMan = G4AntiXiZero::AntiXiZero()->GetProcessManager();
00164   theLEAntiXiZeroModel = new G4LEAntiXiZeroInelastic();
00165   theHEAntiXiZeroModel = new G4HEAntiXiZeroInelastic();
00166   theHEAntiXiZeroModel->SetMaxEnergy(100*TeV);
00167   theAntiXiZeroInelastic->RegisterMe(theLEAntiXiZeroModel);
00168   theAntiXiZeroInelastic->RegisterMe(theHEAntiXiZeroModel);
00169   aProcMan->AddDiscreteProcess(theAntiXiZeroInelastic);
00170 
00171   // OmegaMinus
00172   theOmegaMinusInelastic = new G4OmegaMinusInelasticProcess();
00173   aProcMan = G4OmegaMinus::OmegaMinus()->GetProcessManager();
00174   theLEOmegaMinusModel = new G4LEOmegaMinusInelastic();
00175   theHEOmegaMinusModel = new G4HEOmegaMinusInelastic();
00176   theHEOmegaMinusModel->SetMaxEnergy(100*TeV);
00177   theOmegaMinusInelastic->RegisterMe(theLEOmegaMinusModel);
00178   theOmegaMinusInelastic->RegisterMe(theHEOmegaMinusModel);
00179   aProcMan->AddDiscreteProcess(theOmegaMinusInelastic);
00180 
00181   // anti-OmegaMinus
00182   theAntiOmegaMinusInelastic = new G4AntiOmegaMinusInelasticProcess();
00183   aProcMan = G4AntiOmegaMinus::AntiOmegaMinus()->GetProcessManager();
00184   theLEAntiOmegaMinusModel = new G4LEAntiOmegaMinusInelastic();
00185   theHEAntiOmegaMinusModel = new G4HEAntiOmegaMinusInelastic();
00186   theHEAntiOmegaMinusModel->SetMaxEnergy(100*TeV);
00187   theAntiOmegaMinusInelastic->RegisterMe(theLEAntiOmegaMinusModel);
00188   theAntiOmegaMinusInelastic->RegisterMe(theHEAntiOmegaMinusModel);
00189   aProcMan->AddDiscreteProcess(theAntiOmegaMinusInelastic);
00190 }
00191 
00192 

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