G4ChipsComponentXS.hh

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 //
00027 //  Calculation of the total, elastic and inelastic cross-sections
00028 //  of hadron (proton, neutron, pi+, pi-, K+, K-, anti_proton, anti_neutron
00029 //  interactions with nuclei based on CHIPS model
00030 //
00031 //   Created by V. Uzhinsky, 31.05.2011  
00032 //  Copied to hadronic/cross_sections by W. Pokorski
00033 
00034 
00035 #ifndef G4ChipsComponentXS_h
00036 #define G4ChipsComponentXS_h
00037 
00038 #include <CLHEP/Units/PhysicalConstants.h>  // pi, fermi,..
00039 
00040 #include "globals.hh"
00041 #include "G4Proton.hh"
00042 #include "G4AntiProton.hh"
00043 #include "G4Nucleus.hh"
00044 
00045 #include "G4ChipsProtonElasticXS.hh"
00046 #include "G4ChipsProtonInelasticXS.hh"
00047 
00048 #include "G4ChipsNeutronElasticXS.hh"
00049 #include "G4ChipsNeutronInelasticXS.hh"
00050 
00051 #include "G4ChipsAntiBaryonElasticXS.hh" 
00052 #include "G4ChipsAntiBaryonInelasticXS.hh"
00053 
00054 #include "G4ChipsPionMinusElasticXS.hh" 
00055 #include "G4ChipsPionMinusInelasticXS.hh"
00056 
00057 #include "G4ChipsPionPlusElasticXS.hh" 
00058 #include "G4ChipsPionPlusInelasticXS.hh"
00059 
00060 #include "G4ChipsKaonMinusElasticXS.hh"
00061 #include "G4ChipsKaonMinusInelasticXS.hh"
00062 
00063 #include "G4ChipsKaonPlusElasticXS.hh" 
00064 #include "G4ChipsKaonPlusInelasticXS.hh"
00065 
00066 #include "G4ChipsKaonZeroElasticXS.hh" 
00067 #include "G4ChipsKaonZeroInelasticXS.hh"
00068 
00069 #include "G4ChipsHyperonElasticXS.hh" 
00070 #include "G4ChipsHyperonInelasticXS.hh"
00071 
00072 #include "G4VComponentCrossSection.hh"
00073 
00074 class G4ParticleDefinition;
00075 
00076 class G4ChipsComponentXS : public G4VComponentCrossSection
00077 {
00078 public:
00079 
00080   G4ChipsComponentXS ();
00081   virtual ~G4ChipsComponentXS ();
00082 
00083   virtual
00084   G4double GetTotalElementCrossSection(const G4ParticleDefinition* aParticle,
00085                                        G4double kinEnergy, 
00086                                        G4int Z, G4double N);
00087 
00088   virtual
00089   G4double GetTotalIsotopeCrossSection(const G4ParticleDefinition* aParticle,
00090                                        G4double kinEnergy,
00091                                        G4int Z, G4int N);
00092   virtual
00093   G4double GetInelasticElementCrossSection(const G4ParticleDefinition* aParticle,
00094                                            G4double kinEnergy, 
00095                                            G4int Z, G4double N);
00096   virtual
00097   G4double GetInelasticIsotopeCrossSection(const G4ParticleDefinition* aParticle,
00098                                            G4double kinEnergy, 
00099                                            G4int Z, G4int N);
00100 
00101   virtual
00102   G4double GetElasticElementCrossSection(const G4ParticleDefinition* aParticle,
00103                                          G4double kinEnergy, 
00104                                          G4int Z, G4double N);
00105 
00106   virtual
00107   G4double GetElasticIsotopeCrossSection(const G4ParticleDefinition* aParticle,
00108                                          G4double kinEnergy, 
00109                                          G4int Z, G4int N);
00110  
00111   virtual
00112   void BuildPhysicsTable(const G4ParticleDefinition&)
00113   {}
00114 
00115   virtual
00116   void DumpPhysicsTable(const G4ParticleDefinition&) 
00117   {}
00118 
00119   private:
00120   G4ChipsComponentXS & operator=(const G4ChipsComponentXS &right);
00121   G4ChipsComponentXS(const G4ChipsComponentXS&);
00122 
00123   const G4double fUpperLimit;
00124   const G4double fLowerLimit; 
00125 
00126   G4ChipsProtonElasticXS* PxsManagerEl;
00127   G4ChipsProtonInelasticXS* PxsManagerInEl;
00128 
00129   G4ChipsNeutronElasticXS* NxsManagerEl;
00130   G4ChipsNeutronInelasticXS* NxsManagerInEl;
00131 
00132   G4ChipsAntiBaryonElasticXS* PBARxsManagerEl;
00133   G4ChipsAntiBaryonInelasticXS* PBARxsManagerInEl;
00134 
00135   G4ChipsPionPlusElasticXS* PIPxsManagerEl; 
00136   G4ChipsPionPlusInelasticXS* PIPxsManagerInEl; 
00137 
00138   G4ChipsPionMinusElasticXS* PIMxsManagerEl; 
00139   G4ChipsPionMinusInelasticXS* PIMxsManagerInEl; 
00140 
00141   G4ChipsKaonPlusElasticXS* KPxsManagerEl;
00142   G4ChipsKaonPlusInelasticXS* KPxsManagerInEl;
00143 
00144   G4ChipsKaonMinusElasticXS* KMxsManagerEl;
00145   G4ChipsKaonMinusInelasticXS* KMxsManagerInEl;
00146 
00147   G4ChipsKaonZeroElasticXS* KZxsManagerEl;
00148   G4ChipsKaonZeroInelasticXS* KZxsManagerInEl;
00149 
00150   G4ChipsHyperonElasticXS* HxsManagerEl;
00151   G4ChipsHyperonInelasticXS* HxsManagerInEl;
00152 };
00153 
00154 #endif

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