CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
CMSSIMPInelasticXS.h
Go to the documentation of this file.
1 #ifndef SimG4Core_CustomPhysics_CMSSIMPInelasticXS_H
2 #define SimG4Core_CustomPhysics_CMSSIMPInelasticXS_H
3 
4 #include "G4VCrossSectionDataSet.hh"
5 #include "globals.hh"
6 
7 class G4NeutronInelasticXS;
8 
9 class CMSSIMPInelasticXS : public G4VCrossSectionDataSet {
10 public:
12 
13  ~CMSSIMPInelasticXS() override;
14 
15  G4bool IsElementApplicable(const G4DynamicParticle*, G4int Z, const G4Material*) override;
16 
17  G4bool IsIsoApplicable(const G4DynamicParticle*, G4int Z, G4int A, const G4Element*, const G4Material*) override;
18 
19  G4double GetElementCrossSection(const G4DynamicParticle*, G4int Z, const G4Material* mat = nullptr) override;
20 
21  G4double GetIsoCrossSection(const G4DynamicParticle*,
22  G4int Z,
23  G4int A,
24  const G4Isotope* iso,
25  const G4Element* elm,
26  const G4Material* mat) override;
27 
28  void BuildPhysicsTable(const G4ParticleDefinition&) override;
29 
30  CMSSIMPInelasticXS& operator=(const CMSSIMPInelasticXS& right) = delete;
31  CMSSIMPInelasticXS(const CMSSIMPInelasticXS&) = delete;
32 
33 private:
34  void Initialise(G4int Z, G4DynamicParticle* dp = nullptr, const char* = nullptr);
35 
36  G4NeutronInelasticXS* nXsection;
37  const G4ParticleDefinition* neutron;
38  G4bool isInitialized;
39 };
40 
41 #endif
void BuildPhysicsTable(const G4ParticleDefinition &) override
const G4ParticleDefinition * neutron
~CMSSIMPInelasticXS() override
CMSSIMPInelasticXS & operator=(const CMSSIMPInelasticXS &right)=delete
G4bool IsIsoApplicable(const G4DynamicParticle *, G4int Z, G4int A, const G4Element *, const G4Material *) override
G4NeutronInelasticXS * nXsection
void Initialise(G4int Z, G4DynamicParticle *dp=nullptr, const char *=nullptr)
G4double GetElementCrossSection(const G4DynamicParticle *, G4int Z, const G4Material *mat=nullptr) override
G4bool IsElementApplicable(const G4DynamicParticle *, G4int Z, const G4Material *) override
G4double GetIsoCrossSection(const G4DynamicParticle *, G4int Z, G4int A, const G4Isotope *iso, const G4Element *elm, const G4Material *mat) override