CMS 3D CMS Logo

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 private:
31  void Initialise(G4int Z, G4DynamicParticle* dp = nullptr, const char* = nullptr);
32 
33  CMSSIMPInelasticXS& operator=(const CMSSIMPInelasticXS& right) = delete;
34  CMSSIMPInelasticXS(const CMSSIMPInelasticXS&) = delete;
35 
36  G4NeutronInelasticXS* nXsection;
37  const G4ParticleDefinition* neutron;
38  G4bool isInitialized;
39 };
40 
41 #endif
CMSSIMPInelasticXS::neutron
const G4ParticleDefinition * neutron
Definition: CMSSIMPInelasticXS.h:37
CMSSIMPInelasticXS
Definition: CMSSIMPInelasticXS.h:9
CMSSIMPInelasticXS::~CMSSIMPInelasticXS
~CMSSIMPInelasticXS() override
Definition: CMSSIMPInelasticXS.cc:19
CMSSIMPInelasticXS::operator=
CMSSIMPInelasticXS & operator=(const CMSSIMPInelasticXS &right)=delete
CMSSIMPInelasticXS::CMSSIMPInelasticXS
CMSSIMPInelasticXS()
Definition: CMSSIMPInelasticXS.cc:13
CMSSIMPInelasticXS::isInitialized
G4bool isInitialized
Definition: CMSSIMPInelasticXS.h:38
Calorimetry_cff.dp
dp
Definition: Calorimetry_cff.py:157
CMSSIMPInelasticXS::IsIsoApplicable
G4bool IsIsoApplicable(const G4DynamicParticle *, G4int Z, G4int A, const G4Element *, const G4Material *) override
Definition: CMSSIMPInelasticXS.cc:23
A
DOFs::Z
Definition: AlignPCLThresholdsWriter.cc:37
CMSSIMPInelasticXS::GetIsoCrossSection
G4double GetIsoCrossSection(const G4DynamicParticle *, G4int Z, G4int A, const G4Isotope *iso, const G4Element *elm, const G4Material *mat) override
Definition: CMSSIMPInelasticXS.cc:33
CMSSIMPInelasticXS::IsElementApplicable
G4bool IsElementApplicable(const G4DynamicParticle *, G4int Z, const G4Material *) override
Definition: CMSSIMPInelasticXS.cc:21
CMSSIMPInelasticXS::BuildPhysicsTable
void BuildPhysicsTable(const G4ParticleDefinition &) override
Definition: CMSSIMPInelasticXS.cc:42
CMSSIMPInelasticXS::nXsection
G4NeutronInelasticXS * nXsection
Definition: CMSSIMPInelasticXS.h:36
CMSSIMPInelasticXS::Initialise
void Initialise(G4int Z, G4DynamicParticle *dp=nullptr, const char *=nullptr)
CMSSIMPInelasticXS::GetElementCrossSection
G4double GetElementCrossSection(const G4DynamicParticle *, G4int Z, const G4Material *mat=nullptr) override
Definition: CMSSIMPInelasticXS.cc:27