File indexing completed on 2023-03-17 11:25:02
0001 #include "SimG4Core/PhysicsLists/interface/DummyEMPhysics.h"
0002 #include "G4EmParameters.hh"
0003 #include "G4ParticleTable.hh"
0004
0005 #include "G4ParticleDefinition.hh"
0006
0007 #include "G4ComptonScattering.hh"
0008 #include "G4GammaConversion.hh"
0009 #include "G4PhotoElectricEffect.hh"
0010
0011 #include "G4eMultipleScattering.hh"
0012 #include "G4eIonisation.hh"
0013 #include "G4eBremsstrahlung.hh"
0014 #include "G4eplusAnnihilation.hh"
0015
0016 #include "G4Gamma.hh"
0017 #include "G4Electron.hh"
0018 #include "G4Positron.hh"
0019 #include "G4LeptonConstructor.hh"
0020
0021 #include "G4PhysicsListHelper.hh"
0022 #include "G4BuilderType.hh"
0023
0024 #include "G4SystemOfUnits.hh"
0025
0026 DummyEMPhysics::DummyEMPhysics(G4int ver) : G4VPhysicsConstructor("CMSEmGeantV"), verbose(ver) {
0027 G4EmParameters* param = G4EmParameters::Instance();
0028 param->SetDefaults();
0029 param->SetVerbose(verbose);
0030 param->SetApplyCuts(true);
0031 param->SetStepFunction(0.8, 1 * CLHEP::mm);
0032 param->SetLossFluctuations(false);
0033 param->SetMscRangeFactor(0.2);
0034 param->SetMscStepLimitType(fMinimal);
0035 SetPhysicsType(bElectromagnetic);
0036 }
0037
0038 void DummyEMPhysics::ConstructParticle() {
0039
0040 G4Gamma::Gamma();
0041
0042
0043 G4Electron::Electron();
0044 G4Positron::Positron();
0045
0046 G4LeptonConstructor pLeptonConstructor;
0047 pLeptonConstructor.ConstructParticle();
0048 }
0049
0050 void DummyEMPhysics::ConstructProcess() {
0051 if (verbose > 0) {
0052 G4cout << "### " << GetPhysicsName() << " Construct Processes " << G4endl;
0053 }
0054
0055
0056
0057 G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
0058
0059 G4ParticleDefinition* particle = G4Gamma::Gamma();
0060
0061 ph->RegisterProcess(new G4PhotoElectricEffect(), particle);
0062 ph->RegisterProcess(new G4ComptonScattering(), particle);
0063 ph->RegisterProcess(new G4GammaConversion(), particle);
0064
0065 particle = G4Electron::Electron();
0066
0067 ph->RegisterProcess(new G4eMultipleScattering(), particle);
0068 ph->RegisterProcess(new G4eIonisation(), particle);
0069 ph->RegisterProcess(new G4eBremsstrahlung(), particle);
0070
0071 particle = G4Positron::Positron();
0072
0073 ph->RegisterProcess(new G4eMultipleScattering(), particle);
0074 ph->RegisterProcess(new G4eIonisation(), particle);
0075 ph->RegisterProcess(new G4eBremsstrahlung(), particle);
0076 ph->RegisterProcess(new G4eplusAnnihilation(), particle);
0077 }