CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 
8 #include "SimG4Core/CustomPhysics/interface/CMSDarkPairProductionProcess.hh"
9 #include "G4PhysicalConstants.hh"
10 #include "G4SystemOfUnits.hh"
11 #include "G4BetheHeitlerModel.hh"
12 #include "G4PairProductionRelModel.hh"
13 #include "G4Electron.hh"
14 
15 
16 using namespace std;
17 
18 static G4double darkFactor;
19 
20 CMSDarkPairProductionProcess::CMSDarkPairProductionProcess(
21  G4double df,
22  const G4String& processName,
23  G4ProcessType type):G4VEmProcess (processName, type),
24  isInitialised(false)
25 {
26  darkFactor = df;
27  SetMinKinEnergy(2.0*electron_mass_c2);
28  SetProcessSubType(fGammaConversion);
29  SetStartFromNullFlag(true);
30  SetBuildTableFlag(true);
31  SetSecondaryParticle(G4Electron::Electron());
32  SetLambdaBinning(220);
33 }
34 
35 
36 CMSDarkPairProductionProcess::~CMSDarkPairProductionProcess()
37 {}
38 
39 
40 G4bool CMSDarkPairProductionProcess::IsApplicable(const G4ParticleDefinition& p)
41 {
42  return (p.GetParticleType()=="darkpho");
43 }
44 
45 
46 void CMSDarkPairProductionProcess::InitialiseProcess(const G4ParticleDefinition* p)
47 {
48  if(!isInitialised) {
49  isInitialised = true;
50 
51  AddEmModel(0, new CMSDarkPairProduction(p,darkFactor));
52 
53  }
54 }
55 
56 
57 G4double CMSDarkPairProductionProcess::MinPrimaryEnergy(const G4ParticleDefinition*,
58  const G4Material*)
59 {
60  return 2*electron_mass_c2;
61 }
62 
63 
64 void CMSDarkPairProductionProcess::PrintInfo()
65 {}
66 
type
Definition: HCALResponse.h:21
static G4double darkFactor
volatile std::atomic< bool > shutdown_flag false