CMS 3D CMS Logo

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

#include <CMSEmStandardPhysicsEMMT.h>

Inheritance diagram for CMSEmStandardPhysicsEMMT:

Public Member Functions

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

Private Attributes

const edm::ParameterSetfParameterSet
 

Detailed Description

Definition at line 10 of file CMSEmStandardPhysicsEMMT.h.

Constructor & Destructor Documentation

◆ CMSEmStandardPhysicsEMMT()

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

Definition at line 27 of file CMSEmStandardPhysicsEMMT.cc.

References AlCaHLTBitMon_ParallelJobs::p.

28  : G4VPhysicsConstructor("CMSEmStandard_emmt"), fParameterSet(p) {
29  SetVerboseLevel(ver);
30  G4EmParameters* param = G4EmParameters::Instance();
31  param->SetDefaults();
32  param->SetVerbose(ver);
33  param->SetApplyCuts(true);
34  param->SetStepFunction(0.8, 1 * CLHEP::mm);
35  param->SetMscRangeFactor(0.2);
36  param->SetMscStepLimitType(fMinimal);
37  param->SetFluo(false);
38  SetPhysicsType(bElectromagnetic);
39  double tcut = p.getParameter<double>("G4TrackingCut") * CLHEP::MeV;
40  param->SetLowestElectronEnergy(tcut);
41  param->SetLowestMuHadEnergy(tcut);
42 }
const edm::ParameterSet & fParameterSet

◆ ~CMSEmStandardPhysicsEMMT()

CMSEmStandardPhysicsEMMT::~CMSEmStandardPhysicsEMMT ( )
override

Definition at line 44 of file CMSEmStandardPhysicsEMMT.cc.

44 {}

Member Function Documentation

◆ ConstructParticle()

void CMSEmStandardPhysicsEMMT::ConstructParticle ( )
override

Definition at line 46 of file CMSEmStandardPhysicsEMMT.cc.

46  {
47  // minimal set of particles for EM physics
48  G4EmBuilder::ConstructMinimalEmSet();
49 }

◆ ConstructProcess()

void CMSEmStandardPhysicsEMMT::ConstructProcess ( )
override

Definition at line 51 of file CMSEmStandardPhysicsEMMT.cc.

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

51  {
52  if (verboseLevel > 0) {
53  edm::LogVerbatim("PhysicsList") << "### " << GetPhysicsName() << " Construct EM Processes";
54  }
55 
56  G4EmBuilder::PrepareEMPhysics();
57 
58  G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
59  // processes used by several particles
60  G4hMultipleScattering* hmsc = new G4hMultipleScattering("ionmsc");
61  G4NuclearStopping* pnuc(nullptr);
62 
63  // register specialized tracking for e-/e+ and gammas
64  auto* trackingManager = new CMSEmStandardPhysicsTrackingManager(fParameterSet);
65  G4Electron::Electron()->SetTrackingManager(trackingManager);
66  G4Positron::Positron()->SetTrackingManager(trackingManager);
67  G4Gamma::Gamma()->SetTrackingManager(trackingManager);
68 
69  // generic ion
70  G4ParticleDefinition* particle = G4GenericIon::GenericIon();
71  G4ionIonisation* ionIoni = new G4ionIonisation();
72  ph->RegisterProcess(hmsc, particle);
73  ph->RegisterProcess(ionIoni, particle);
74 
75  // muons, hadrons ions
76  G4EmBuilder::ConstructCharged(hmsc, pnuc);
77 
78  // add muon-nuclear processes (normally done by G4EmExtraPhysics)
79  G4MuonNuclearProcess* muNucProcess = new G4MuonNuclearProcess();
80  G4MuonVDNuclearModel* muNucModel = new G4MuonVDNuclearModel();
81  muNucProcess->RegisterMe(muNucModel);
82  ph->RegisterProcess(muNucProcess, G4MuonPlus::MuonPlus());
83  ph->RegisterProcess(muNucProcess, G4MuonMinus::MuonMinus());
84 }
Log< level::Info, true > LogVerbatim
const edm::ParameterSet & fParameterSet

Member Data Documentation

◆ fParameterSet

const edm::ParameterSet& CMSEmStandardPhysicsEMMT::fParameterSet
private

Definition at line 19 of file CMSEmStandardPhysicsEMMT.h.

Referenced by ConstructProcess().