CMS 3D CMS Logo

CMSDarkPairProductionProcess.cc
Go to the documentation of this file.
1 //
2 // ********************************************************************
3 // Authors of this file: Dustin Stolp (dostolp@ucdavis.edu)
4 // Sushil S. Chauhan (schauhan@cern.ch)
5 //
6 // -----------------------------------------------------------------------------
7 
9 #include "G4PhysicalConstants.hh"
10 #include "G4SystemOfUnits.hh"
11 #include "G4BetheHeitlerModel.hh"
12 #include "G4PairProductionRelModel.hh"
13 #include "G4Electron.hh"
14 
15 using namespace std;
16 
18  : G4VEmProcess(processName, type), isInitialised(false), darkFactor(df) {
19  SetMinKinEnergy(2.0 * electron_mass_c2);
20  SetProcessSubType(fGammaConversion);
21  SetStartFromNullFlag(true);
22  SetBuildTableFlag(true);
23  SetSecondaryParticle(G4Electron::Electron());
24  SetLambdaBinning(220);
25 }
26 
28 
29 G4bool CMSDarkPairProductionProcess::IsApplicable(const G4ParticleDefinition& p) {
30  return (p.GetParticleType() == "darkpho");
31 }
32 
33 void CMSDarkPairProductionProcess::InitialiseProcess(const G4ParticleDefinition* p) {
34  if (!isInitialised) {
35  isInitialised = true;
36 
37  AddEmModel(0, new CMSDarkPairProduction(p, darkFactor));
38  }
39 }
40 
41 G4double CMSDarkPairProductionProcess::MinPrimaryEnergy(const G4ParticleDefinition*, const G4Material*) {
42  return 2 * electron_mass_c2;
43 }
44 
type
Definition: HCALResponse.h:21
CMSDarkPairProductionProcess(G4double df=1E0, const G4String &processName="conv", G4ProcessType type=fElectromagnetic)
void InitialiseProcess(const G4ParticleDefinition *) override
G4double MinPrimaryEnergy(const G4ParticleDefinition *, const G4Material *) override
G4bool IsApplicable(const G4ParticleDefinition &) override