CMS 3D CMS Logo

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

#include <CMSSQInelasticCrossSection.h>

Inheritance diagram for CMSSQInelasticCrossSection:

Public Member Functions

 CMSSQInelasticCrossSection (double mass)
 
virtual G4double GetElementCrossSection (const G4DynamicParticle *, G4int Z, const G4Material *)
 
G4double GetSQCrossSection (G4double kineticEnergy, G4int Z)
 
virtual G4bool IsElementApplicable (const G4DynamicParticle *aPart, G4int Z, const G4Material *)
 
 ~CMSSQInelasticCrossSection ()
 

Private Attributes

G4NistManager * nist
 
CMSAntiSQtheAntiSQ
 
CMSSQtheSQ
 

Detailed Description

Definition at line 12 of file CMSSQInelasticCrossSection.h.

Constructor & Destructor Documentation

◆ CMSSQInelasticCrossSection()

CMSSQInelasticCrossSection::CMSSQInelasticCrossSection ( double  mass)

Definition at line 10 of file CMSSQInelasticCrossSection.cc.

References CMSAntiSQ::AntiSQ(), EgHLTOffHistBins_cfi::mass, nist, CMSSQ::SQ(), theAntiSQ, and theSQ.

10  : G4VCrossSectionDataSet("SQ-neutron") {
11  nist = G4NistManager::Instance();
12  theSQ = CMSSQ::SQ(mass);
14 }
static CMSSQ * SQ(double mass)
Definition: CMSSQ.cc:41
static CMSAntiSQ * AntiSQ(double mass)
Definition: CMSAntiSQ.cc:41

◆ ~CMSSQInelasticCrossSection()

CMSSQInelasticCrossSection::~CMSSQInelasticCrossSection ( )

Definition at line 16 of file CMSSQInelasticCrossSection.cc.

16 {}

Member Function Documentation

◆ GetElementCrossSection()

G4double CMSSQInelasticCrossSection::GetElementCrossSection ( const G4DynamicParticle *  aPart,
G4int  Z,
const G4Material *   
)
virtual

Definition at line 22 of file CMSSQInelasticCrossSection.cc.

References A, nist, theAntiSQ, and beamSpotPI::Z.

24  {
25  // return zero for particle instead of antiparticle
26  // sexaquark interaction with matter expected really tiny
27  if (aPart->GetDefinition() != theAntiSQ)
28  return 0;
29 
30  //I don't want to interact on hydrogen
31  if (Z <= 1) {
32  return 0.0;
33  }
34 
35  // get the atomic weight (to estimate nr neutrons)
36  G4double A = nist->GetAtomicMassAmu(Z);
37 
38  // put the X section low for the antiS to get a flat interaction rate,
39  // but also make it scale with the number of neutrons in the material
40  // because we are going to interact on neutrons, not on protons
41  return (100. * (A - (G4double)Z) / (G4double)Z) * millibarn;
42 }
Definition: APVGainStruct.h:7

◆ GetSQCrossSection()

G4double CMSSQInelasticCrossSection::GetSQCrossSection ( G4double  kineticEnergy,
G4int  Z 
)

◆ IsElementApplicable()

G4bool CMSSQInelasticCrossSection::IsElementApplicable ( const G4DynamicParticle *  aPart,
G4int  Z,
const G4Material *   
)
virtual

Definition at line 18 of file CMSSQInelasticCrossSection.cc.

18  {
19  return true;
20 }

Member Data Documentation

◆ nist

G4NistManager* CMSSQInelasticCrossSection::nist
private

◆ theAntiSQ

CMSAntiSQ* CMSSQInelasticCrossSection::theAntiSQ
private

◆ theSQ

CMSSQ* CMSSQInelasticCrossSection::theSQ
private

Definition at line 26 of file CMSSQInelasticCrossSection.h.

Referenced by CMSSQInelasticCrossSection().