HadronPhysicsQGSC_CHIPS.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 // $Id$
00027 //
00028 //---------------------------------------------------------------------------
00029 //
00030 // ClassName:   HadronPhysicsQGSC_CHIPS
00031 //
00032 // Author: 2009  M. Kosov
00033 //
00034 // Modified:
00035 //
00036 //----------------------------------------------------------------------------
00037 // Short description: In fact this is the definition of the Hadronic Inelastic
00038 // physics. The definition of the Hadronic Elastic physics one can find in the
00039 // G4HadronQElasticPhysics, which is stable (the same for all physics lists).
00040 // The only "unstable" part of the physics is the Hadronic Inelastic physics,
00041 // which is usually composed of the wixing of the High Energy Inelastic Model
00042 // (HEIM) and the Low Energy Inelastic Model (LEIM), which are applied only for
00043 // some hadrons (mostly nucleons and pi-mesons), above the LHEP model, which
00044 // usually covers all particles (but for Sigma_0 ?) and sometimes covers the
00045 // "hole" between the LEIM and HIME at intermediate energies. The name of the
00046 // Physics list is usually have a form HEIM_LEIM and the inelastic interactions
00047 // are defined in the HadronicPhysicsHEIM_LEIM class. So in this particular
00048 // physics list the low energy model is CHIPS (G4QCollision process) and the
00049 // high energy model is QGSC (QGS with the Energy Flow interface to CHIPS),
00050 // which are in terms of the energy boundary are mixed not on the model level,
00051 // but on the process level (G4DiscProcessMixer class). The LHEP is completely
00052 // excluded from this physics list, because the MiscLHEP is substituted by the
00053 // MiscQGSC class (QGS with the Energy Flow interface to CHIPS), covering all
00054 // particles, which are not N, pi, or K, defined by the separate builders. 
00055 //---------------------------------------------------------------------------
00056 #include <iomanip>   
00057 
00058 #include "HadronPhysicsQGSC_CHIPS.hh"
00059 
00060 #include "globals.hh"
00061 #include "G4ios.hh"
00062 #include "G4SystemOfUnits.hh"
00063 #include "G4ParticleDefinition.hh"
00064 #include "G4ParticleTable.hh"
00065 
00066 #include "G4MesonConstructor.hh"
00067 #include "G4BaryonConstructor.hh"
00068 #include "G4ShortLivedConstructor.hh"
00069 
00070 HadronPhysicsQGSC_CHIPS::HadronPhysicsQGSC_CHIPS(G4int)
00071     :  G4VPhysicsConstructor("hInelastic QGSC_CHIPS")
00072     , theNeut(0)
00073     , theQGSCNeut(0)
00074     , thePiK(0)
00075     , theQGSCPiK(0)
00076     , theProt(0)
00077     , theQGSCProt(0)
00078     , theMiscQGSC(0)
00079     , QuasiElastic(true)
00080 {}
00081 
00082 HadronPhysicsQGSC_CHIPS::HadronPhysicsQGSC_CHIPS(const G4String& name, G4bool quasiElastic)
00083     :  G4VPhysicsConstructor(name)
00084     , theNeut(0)
00085     , theQGSCNeut(0)
00086     , thePiK(0)
00087     , theQGSCPiK(0)
00088     , theProt(0)
00089     , theQGSCProt(0)
00090     , theMiscQGSC(0)
00091     , QuasiElastic(quasiElastic)
00092 {}
00093 
00094 void HadronPhysicsQGSC_CHIPS::CreateModels()
00095 {
00096   theNeut = new G4QNeutronBuilder;
00097   theNeut->RegisterMe(theQGSCNeut=new G4QGSC_CHIPSNeutronBuilder(QuasiElastic));
00098   //theQGSCNeut = new G4QGSC_CHIPSNeutronBuilder(QuasiElastic));
00099 
00100   theQGSCNeut->SetMinEnergy(0.0*GeV);
00101 
00102   theProt = new G4QProtonBuilder;
00103   theProt->RegisterMe(theQGSCProt = new G4QGSC_CHIPSProtonBuilder(QuasiElastic));
00104   //theQGSCProt = new G4QGSC_CHIPSProtonBuilder(QuasiElastic);
00105 
00106   theQGSCProt->SetMinEnergy(0.0*GeV);
00107 
00108   thePiK = new G4PiKBuilder;
00109   thePiK->RegisterMe(theQGSCPiK=new G4QGSC_CHIPSPiKBuilder(QuasiElastic));
00110   
00111   theQGSCPiK->SetMinEnergy(0.0*GeV);
00112    
00113   theMiscQGSC=new G4MiscQGSCBuilder(0);           // No verbose (@@ to be developed)
00114 }
00115 
00116 HadronPhysicsQGSC_CHIPS::~HadronPhysicsQGSC_CHIPS() 
00117 {
00118   delete theQGSCNeut;
00119   delete theNeut;
00120 
00121   delete theQGSCProt;
00122   delete theProt;
00123 
00124   delete theQGSCPiK;
00125   delete thePiK;
00126 
00127   delete theMiscQGSC;
00128 }
00129 
00130 void HadronPhysicsQGSC_CHIPS::ConstructParticle()
00131 {
00132   G4MesonConstructor pMesonConstructor;
00133   pMesonConstructor.ConstructParticle();
00134 
00135   G4BaryonConstructor pBaryonConstructor;
00136   pBaryonConstructor.ConstructParticle();
00137 
00138   G4ShortLivedConstructor pShortLivedConstructor;
00139   pShortLivedConstructor.ConstructParticle();  
00140 }
00141 
00142 #include "G4ProcessManager.hh"
00143 void HadronPhysicsQGSC_CHIPS::ConstructProcess()
00144 {
00145   CreateModels();
00146   theNeut->Build();
00147   theProt->Build();
00148   thePiK->Build();
00149   theMiscQGSC->Build();
00150 }
00151 

Generated on Mon May 27 17:50:30 2013 for Geant4 by  doxygen 1.4.7