CMS 3D CMS Logo

CMSDarkPairProduction.cc
Go to the documentation of this file.
1 //
2 // Authors of this file: Dustin Stolp (dostolp@ucdavis.edu)
3 // Sushil S. Chauhan (schauhan@cern.ch)
4 // Creation date: 01.22.2015
5 //
6 // -------------------------------------------------------------------
7 //
9 #include "G4PhysicalConstants.hh"
10 #include "G4SystemOfUnits.hh"
11 #include "G4PairProductionRelModel.hh"
12 
13 using namespace std;
14 
15 static const G4double xsfactor =
16  4*CLHEP::fine_structure_const*CLHEP::classic_electr_radius*CLHEP::classic_electr_radius;
17 
18 CMSDarkPairProduction::CMSDarkPairProduction(const G4ParticleDefinition* p,G4double df,
19  const G4String& nam) : G4PairProductionRelModel(p,nam), dark_factor(df) {}
20 
22 
23 G4double CMSDarkPairProduction::ComputeCrossSectionPerAtom(const G4ParticleDefinition*,
24  G4double gammaEnergy, G4double Z,
25  G4double, G4double, G4double)
26 {
27 
28  G4double crossSection = 0.0 ;
29  if ( gammaEnergy <= 2.0*electron_mass_c2 ) return crossSection;
30 
31  SetCurrentElement(Z);
32  // choose calculator according to parameters and switches
33  // in the moment only one calculator:
34  crossSection=ComputeXSectionPerAtom(gammaEnergy,Z);
35 
36  G4double xi = Finel/(Fel - fCoulomb); // inelastic contribution
37  crossSection *= dark_factor * xsfactor*Z*(Z+xi);
38  return crossSection;
39 }
G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition *, G4double kinEnergy, G4double Z, G4double A=0., G4double cut=0., G4double emax=DBL_MAX) override
static const G4double xsfactor
CMSDarkPairProduction(const G4ParticleDefinition *p=nullptr, G4double df=1.0, const G4String &nam="BetheHeitlerLPM")