CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
CMSEmStandardPhysicsEMH Class Reference

#include <CMSEmStandardPhysicsEMH.h>

Inheritance diagram for CMSEmStandardPhysicsEMH:

Public Member Functions

 CMSEmStandardPhysicsEMH (G4int ver, const edm::ParameterSet &p)
 
void ConstructParticle () override
 
void ConstructProcess () override
 
 ~CMSEmStandardPhysicsEMH () override
 

Private Attributes

G4double fGeomFactor
 
G4double fLambdaLimit
 
G4double fRangeFactor
 
G4double fSafetyFactor
 
G4MscStepLimitType fStepLimitType
 

Detailed Description

Definition at line 10 of file CMSEmStandardPhysicsEMH.h.

Constructor & Destructor Documentation

◆ CMSEmStandardPhysicsEMH()

CMSEmStandardPhysicsEMH::CMSEmStandardPhysicsEMH ( G4int  ver,
const edm::ParameterSet p 
)

Definition at line 29 of file CMSEmStandardPhysicsEMH.cc.

References fGeomFactor, fLambdaLimit, fRangeFactor, fSafetyFactor, fStepLimitType, AlCaHLTBitMon_ParallelJobs::p, and AlCaHLTBitMon_QueryRunRegistry::string.

30  : G4VPhysicsConstructor("CMSEmStandard_emh") {
31  SetVerboseLevel(ver);
32  G4EmParameters* param = G4EmParameters::Instance();
33  param->SetDefaults();
34  param->SetVerbose(ver);
35  param->SetApplyCuts(true);
36  param->SetStepFunction(0.8, 1 * CLHEP::mm);
37  param->SetMscRangeFactor(0.2);
38  param->SetMscStepLimitType(fUseSafety);
39  param->SetFluo(false);
40  SetPhysicsType(bElectromagnetic);
41  fRangeFactor = p.getParameter<double>("G4MscRangeFactor");
42  fGeomFactor = p.getParameter<double>("G4MscGeomFactor");
43  fSafetyFactor = p.getParameter<double>("G4MscSafetyFactor");
44  fLambdaLimit = p.getParameter<double>("G4MscLambdaLimit") * CLHEP::mm;
45  std::string msc = p.getParameter<std::string>("G4MscStepLimit");
46  fStepLimitType = fUseSafety;
47  if (msc == "UseSafetyPlus") {
48  fStepLimitType = fUseSafetyPlus;
49  }
50  if (msc == "Minimal") {
51  fStepLimitType = fMinimal;
52  }
53  double tcut = p.getParameter<double>("G4TrackingCut") * CLHEP::MeV;
54  param->SetLowestElectronEnergy(tcut);
55  param->SetLowestMuHadEnergy(tcut);
56 }
G4MscStepLimitType fStepLimitType

◆ ~CMSEmStandardPhysicsEMH()

CMSEmStandardPhysicsEMH::~CMSEmStandardPhysicsEMH ( )
override

Definition at line 58 of file CMSEmStandardPhysicsEMH.cc.

58 {}

Member Function Documentation

◆ ConstructParticle()

void CMSEmStandardPhysicsEMH::ConstructParticle ( )
override

Definition at line 60 of file CMSEmStandardPhysicsEMH.cc.

60  {
61  // minimal set of particles for EM physics
62  G4EmBuilder::ConstructMinimalEmSet();
63 }

◆ ConstructProcess()

void CMSEmStandardPhysicsEMH::ConstructProcess ( )
override

Definition at line 65 of file CMSEmStandardPhysicsEMH.cc.

References nanoDQM_cfi::Electron, and HLT_2023v12_cff::verboseLevel.

65  {
66  if (verboseLevel > 0) {
67  edm::LogVerbatim("PhysicsList") << "### " << GetPhysicsName() << " Construct EM Processes";
68  }
69 
70  // This EM builder takes default models of Geant4 10 EMV.
71  // Multiple scattering by WentzelVI for all particles except:
72  // a) e+e- below 100 MeV for which the Urban model is used
73  // b) ions for which Urban model is used
74  G4EmBuilder::PrepareEMPhysics();
75 
76  G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
77  // processes used by several particles
78  G4hMultipleScattering* hmsc = new G4hMultipleScattering("ionmsc");
79  G4NuclearStopping* pnuc(nullptr);
80 
81  G4HepEmProcess* hepEmProcess = new G4HepEmProcess();
82  G4Electron::Electron()->GetProcessManager()->AddProcess(hepEmProcess, -1, -1, 1);
83  G4Positron::Positron()->GetProcessManager()->AddProcess(hepEmProcess, -1, -1, 1);
84  G4Gamma::Gamma()->GetProcessManager()->AddProcess(hepEmProcess, -1, -1, 1);
85 
86  // generic ion
87  G4ParticleDefinition* particle = G4GenericIon::GenericIon();
88  G4ionIonisation* ionIoni = new G4ionIonisation();
89  ph->RegisterProcess(hmsc, particle);
90  ph->RegisterProcess(ionIoni, particle);
91 
92  // muons, hadrons ions
93  G4EmBuilder::ConstructCharged(hmsc, pnuc);
94 }
Log< level::Info, true > LogVerbatim

Member Data Documentation

◆ fGeomFactor

G4double CMSEmStandardPhysicsEMH::fGeomFactor
private

Definition at line 20 of file CMSEmStandardPhysicsEMH.h.

Referenced by CMSEmStandardPhysicsEMH().

◆ fLambdaLimit

G4double CMSEmStandardPhysicsEMH::fLambdaLimit
private

Definition at line 22 of file CMSEmStandardPhysicsEMH.h.

Referenced by CMSEmStandardPhysicsEMH().

◆ fRangeFactor

G4double CMSEmStandardPhysicsEMH::fRangeFactor
private

Definition at line 19 of file CMSEmStandardPhysicsEMH.h.

Referenced by CMSEmStandardPhysicsEMH().

◆ fSafetyFactor

G4double CMSEmStandardPhysicsEMH::fSafetyFactor
private

Definition at line 21 of file CMSEmStandardPhysicsEMH.h.

Referenced by CMSEmStandardPhysicsEMH().

◆ fStepLimitType

G4MscStepLimitType CMSEmStandardPhysicsEMH::fStepLimitType
private

Definition at line 23 of file CMSEmStandardPhysicsEMH.h.

Referenced by CMSEmStandardPhysicsEMH().