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 
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 using namespace std;
16 
17 CMSDarkPairProductionProcess::CMSDarkPairProductionProcess(
18  G4double df,
19  const G4String& processName,
20  G4ProcessType type):G4VEmProcess (processName, type),
21  isInitialised(false), darkFactor(df)
22 {
23  SetMinKinEnergy(2.0*electron_mass_c2);
24  SetProcessSubType(fGammaConversion);
25  SetStartFromNullFlag(true);
26  SetBuildTableFlag(true);
27  SetSecondaryParticle(G4Electron::Electron());
28  SetLambdaBinning(220);
29 }
30 
31 
32 CMSDarkPairProductionProcess::~CMSDarkPairProductionProcess()
33 {}
34 
35 
36 G4bool CMSDarkPairProductionProcess::IsApplicable(const G4ParticleDefinition& p)
37 {
38  return (p.GetParticleType()=="darkpho");
39 }
40 
41 
42 void CMSDarkPairProductionProcess::InitialiseProcess(const G4ParticleDefinition* p)
43 {
44  if(!isInitialised) {
45  isInitialised = true;
46 
47  AddEmModel(0, new CMSDarkPairProduction(p,darkFactor));
48 
49  }
50 }
51 
52 
53 G4double CMSDarkPairProductionProcess::MinPrimaryEnergy(const G4ParticleDefinition*,
54  const G4Material*)
55 {
56  return 2*electron_mass_c2;
57 }
58 
59 
60 void CMSDarkPairProductionProcess::PrintInfo()
61 {}
62 
type
Definition: HCALResponse.h:21