CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
CMSSIMPInelasticXS Class Reference

#include <CMSSIMPInelasticXS.h>

Inheritance diagram for CMSSIMPInelasticXS:

Public Member Functions

void BuildPhysicsTable (const G4ParticleDefinition &) override
 
 CMSSIMPInelasticXS ()
 
 CMSSIMPInelasticXS (const CMSSIMPInelasticXS &)=delete
 
G4double GetElementCrossSection (const G4DynamicParticle *, G4int Z, const G4Material *mat=nullptr) override
 
G4double GetIsoCrossSection (const G4DynamicParticle *, G4int Z, G4int A, const G4Isotope *iso, const G4Element *elm, const G4Material *mat) override
 
G4bool IsElementApplicable (const G4DynamicParticle *, G4int Z, const G4Material *) override
 
G4bool IsIsoApplicable (const G4DynamicParticle *, G4int Z, G4int A, const G4Element *, const G4Material *) override
 
CMSSIMPInelasticXSoperator= (const CMSSIMPInelasticXS &right)=delete
 
 ~CMSSIMPInelasticXS () override
 

Private Member Functions

void Initialise (G4int Z, G4DynamicParticle *dp=nullptr, const char *=nullptr)
 

Private Attributes

G4bool isInitialized
 
const G4ParticleDefinition * neutron
 
G4NeutronInelasticXS * nXsection
 

Detailed Description

Definition at line 9 of file CMSSIMPInelasticXS.h.

Constructor & Destructor Documentation

◆ CMSSIMPInelasticXS() [1/2]

CMSSIMPInelasticXS::CMSSIMPInelasticXS ( )

Definition at line 13 of file CMSSIMPInelasticXS.cc.

References isInitialized, nXsection, and HLT_2022v12_cff::verboseLevel.

13  : G4VCrossSectionDataSet("CMSSIMPInelasticXS"), neutron(G4Neutron::Neutron()) {
14  verboseLevel = 1;
15  nXsection = new G4NeutronInelasticXS();
16  isInitialized = false;
17 }
const G4ParticleDefinition * neutron
G4NeutronInelasticXS * nXsection

◆ ~CMSSIMPInelasticXS()

CMSSIMPInelasticXS::~CMSSIMPInelasticXS ( )
override

Definition at line 19 of file CMSSIMPInelasticXS.cc.

19 {}

◆ CMSSIMPInelasticXS() [2/2]

CMSSIMPInelasticXS::CMSSIMPInelasticXS ( const CMSSIMPInelasticXS )
delete

Member Function Documentation

◆ BuildPhysicsTable()

void CMSSIMPInelasticXS::BuildPhysicsTable ( const G4ParticleDefinition &  p)
override

Definition at line 42 of file CMSSIMPInelasticXS.cc.

References ecalTB2006H4_GenSimDigiReco_cfg::G4cout, isInitialized, nXsection, AlCaHLTBitMon_ParallelJobs::p, and HLT_2022v12_cff::verboseLevel.

42  {
43  if (isInitialized) {
44  return;
45  }
46  nXsection->BuildPhysicsTable(p);
47  if (verboseLevel > 0) {
48  G4cout << "CMSSIMPInelasticXS::BuildPhysicsTable for " << p.GetParticleName() << G4endl;
49  }
50  if (p.GetParticleName() != "chi" && p.GetParticleName() != "anti_chi" && p.GetParticleName() != "chibar") {
51  G4ExceptionDescription ed;
52  ed << p.GetParticleName() << " is a wrong particle type -"
53  << " only simp is allowed";
54  G4Exception("CMSSIMPInelasticXS::BuildPhysicsTable(..)", "had012", FatalException, ed, "");
55  return;
56  }
57  isInitialized = true;
58 }
G4NeutronInelasticXS * nXsection

◆ GetElementCrossSection()

G4double CMSSIMPInelasticXS::GetElementCrossSection ( const G4DynamicParticle *  aParticle,
G4int  Z,
const G4Material *  mat = nullptr 
)
override

Definition at line 27 of file CMSSIMPInelasticXS.cc.

References nXsection, and BeamSpotPI::Z.

29  {
30  return nXsection->GetElementCrossSection(aParticle, Z, mat);
31 }
G4NeutronInelasticXS * nXsection

◆ GetIsoCrossSection()

G4double CMSSIMPInelasticXS::GetIsoCrossSection ( const G4DynamicParticle *  aParticle,
G4int  Z,
G4int  A,
const G4Isotope *  iso,
const G4Element *  elm,
const G4Material *  mat 
)
override

Definition at line 33 of file CMSSIMPInelasticXS.cc.

References A, nXsection, and BeamSpotPI::Z.

38  {
39  return nXsection->GetIsoCrossSection(aParticle, Z, A, iso, elm, mat);
40 }
G4NeutronInelasticXS * nXsection
Definition: APVGainStruct.h:7

◆ Initialise()

void CMSSIMPInelasticXS::Initialise ( G4int  Z,
G4DynamicParticle *  dp = nullptr,
const char *  = nullptr 
)
private

◆ IsElementApplicable()

G4bool CMSSIMPInelasticXS::IsElementApplicable ( const G4DynamicParticle *  ,
G4int  Z,
const G4Material *   
)
override

Definition at line 21 of file CMSSIMPInelasticXS.cc.

21 { return true; }

◆ IsIsoApplicable()

G4bool CMSSIMPInelasticXS::IsIsoApplicable ( const G4DynamicParticle *  ,
G4int  Z,
G4int  A,
const G4Element *  ,
const G4Material *   
)
override

Definition at line 23 of file CMSSIMPInelasticXS.cc.

23  {
24  return true;
25 }

◆ operator=()

CMSSIMPInelasticXS& CMSSIMPInelasticXS::operator= ( const CMSSIMPInelasticXS right)
delete

Member Data Documentation

◆ isInitialized

G4bool CMSSIMPInelasticXS::isInitialized
private

Definition at line 38 of file CMSSIMPInelasticXS.h.

Referenced by BuildPhysicsTable(), and CMSSIMPInelasticXS().

◆ neutron

const G4ParticleDefinition* CMSSIMPInelasticXS::neutron
private

Definition at line 37 of file CMSSIMPInelasticXS.h.

◆ nXsection

G4NeutronInelasticXS* CMSSIMPInelasticXS::nXsection
private