Skip to content

Commit 08671d2

Browse files
authored
Merge pull request cms-sw#34059 from civanch/geant4_em_builders
Updated Geant4 EM physics constructors
2 parents e9a85b5 + aeeccd3 commit 08671d2

11 files changed

+317
-151
lines changed

SimG4Core/PhysicsLists/interface/CMSEmNoDeltaRay.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ class CMSEmNoDeltaRay : public G4VPhysicsConstructor {
1414
void ConstructProcess() override;
1515

1616
private:
17-
G4int verbose;
1817
std::string region;
1918
};
2019

SimG4Core/PhysicsLists/interface/CMSEmStandardPhysics.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ class CMSEmStandardPhysics : public G4VPhysicsConstructor {
2828
G4double fSafetyFactor;
2929
G4double fLambdaLimit;
3030
G4MscStepLimitType fStepLimitType;
31-
G4int verbose;
3231
};
3332

3433
#endif
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
2+
//--------------------------------------------------------------------
3+
//
4+
// 15.04.2021 V.Ivanchenko EM physics of CMS mirgrated to Geant4 10.7
5+
// based on option4 Geant4 EM and called EMZ
6+
//
7+
//--------------------------------------------------------------------
8+
9+
#ifndef SimG4Core_PhysicsLists_CMSEmStandardPhysicsEMZ_h
10+
#define SimG4Core_PhysicsLists_CMSEmStandardPhysicsEMZ_h
11+
12+
#include "G4VPhysicsConstructor.hh"
13+
#include "globals.hh"
14+
15+
class CMSEmStandardPhysicsEMZ : public G4VPhysicsConstructor {
16+
public:
17+
CMSEmStandardPhysicsEMZ(G4int ver);
18+
~CMSEmStandardPhysicsEMZ() override;
19+
20+
void ConstructParticle() override;
21+
void ConstructProcess() override;
22+
};
23+
24+
#endif

SimG4Core/PhysicsLists/interface/CMSEmStandardPhysicsLPM.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,6 @@ class CMSEmStandardPhysicsLPM : public G4VPhysicsConstructor {
1919

2020
void ConstructParticle() override;
2121
void ConstructProcess() override;
22-
23-
private:
24-
G4int verbose;
2522
};
2623

2724
#endif

SimG4Core/PhysicsLists/interface/CMSEmStandardPhysicsXS.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
//--------------------------------------------------------------------
22
//
33
// 15.04.2021 V.Ivanchenko EM physics of CMS mirgrated to Geant4 10.7
4-
// based on option1 Geant4 EM and called EMN
4+
// based on option4 Geant4 EM and called EMN
5+
// several simlifications to original option4
6+
// are added
57
//
68
//--------------------------------------------------------------------
79

@@ -28,7 +30,6 @@ class CMSEmStandardPhysicsXS : public G4VPhysicsConstructor {
2830
G4double fSafetyFactor;
2931
G4double fLambdaLimit;
3032
G4MscStepLimitType fStepLimitType;
31-
G4int verbose;
3233
};
3334

3435
#endif

SimG4Core/PhysicsLists/plugins/FTFPCMS_BERT_EMZ.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include "FTFPCMS_BERT_EMZ.h"
22
#include "FWCore/MessageLogger/interface/MessageLogger.h"
3+
#include "SimG4Core/PhysicsLists/interface/CMSEmStandardPhysicsEMZ.h"
34
#include "SimG4Core/PhysicsLists/interface/CMSHadronPhysicsFTFP_BERT.h"
45

56
#include "G4DecayPhysics.hh"
@@ -23,7 +24,7 @@ FTFPCMS_BERT_EMZ::FTFPCMS_BERT_EMZ(const edm::ParameterSet& p) : PhysicsList(p)
2324

2425
if (emPhys) {
2526
// EM Physics
26-
RegisterPhysics(new G4EmStandardPhysics_option4(ver));
27+
RegisterPhysics(new CMSEmStandardPhysicsEMZ(ver));
2728

2829
// Synchroton Radiation & GN Physics
2930
G4EmExtraPhysics* gn = new G4EmExtraPhysics(ver);

SimG4Core/PhysicsLists/src/CMSEmNoDeltaRay.cc

Lines changed: 6 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -36,44 +36,23 @@
3636
#include "G4Positron.hh"
3737
#include "G4MuonPlus.hh"
3838
#include "G4MuonMinus.hh"
39-
#include "G4TauMinus.hh"
40-
#include "G4TauPlus.hh"
4139
#include "G4PionPlus.hh"
4240
#include "G4PionMinus.hh"
4341
#include "G4KaonPlus.hh"
4442
#include "G4KaonMinus.hh"
45-
#include "G4BMesonMinus.hh"
46-
#include "G4BMesonPlus.hh"
47-
#include "G4DMesonMinus.hh"
48-
#include "G4DMesonPlus.hh"
4943
#include "G4Proton.hh"
5044
#include "G4AntiProton.hh"
51-
#include "G4SigmaMinus.hh"
52-
#include "G4AntiSigmaMinus.hh"
53-
#include "G4SigmaPlus.hh"
54-
#include "G4AntiSigmaPlus.hh"
55-
#include "G4XiMinus.hh"
56-
#include "G4AntiXiMinus.hh"
57-
#include "G4OmegaMinus.hh"
58-
#include "G4AntiOmegaMinus.hh"
59-
#include "G4LambdacPlus.hh"
60-
#include "G4AntiLambdacPlus.hh"
61-
#include "G4XicPlus.hh"
62-
#include "G4AntiXicPlus.hh"
63-
#include "G4Deuteron.hh"
64-
#include "G4Triton.hh"
65-
#include "G4He3.hh"
66-
#include "G4Alpha.hh"
6745
#include "G4GenericIon.hh"
6846

47+
#include "G4EmBuilder.hh"
6948
#include "G4BuilderType.hh"
7049
#include "G4SystemOfUnits.hh"
7150

7251
CMSEmNoDeltaRay::CMSEmNoDeltaRay(const G4String& name, G4int ver, const std::string& reg)
73-
: G4VPhysicsConstructor(name), verbose(ver), region(reg) {
52+
: G4VPhysicsConstructor(name), region(reg) {
7453
G4EmParameters* param = G4EmParameters::Instance();
7554
param->SetDefaults();
76-
param->SetVerbose(verbose);
55+
param->SetVerbose(ver);
7756
param->SetApplyCuts(true);
7857
param->SetMscRangeFactor(0.2);
7958
param->SetMscStepLimitType(fMinimal);
@@ -83,49 +62,8 @@ CMSEmNoDeltaRay::CMSEmNoDeltaRay(const G4String& name, G4int ver, const std::str
8362
CMSEmNoDeltaRay::~CMSEmNoDeltaRay() {}
8463

8564
void CMSEmNoDeltaRay::ConstructParticle() {
86-
// gamma
87-
G4Gamma::Gamma();
88-
89-
// leptons
90-
G4Electron::Electron();
91-
G4Positron::Positron();
92-
G4MuonPlus::MuonPlus();
93-
G4MuonMinus::MuonMinus();
94-
G4TauMinus::TauMinusDefinition();
95-
G4TauPlus::TauPlusDefinition();
96-
97-
// mesons
98-
G4PionPlus::PionPlusDefinition();
99-
G4PionMinus::PionMinusDefinition();
100-
G4KaonPlus::KaonPlusDefinition();
101-
G4KaonMinus::KaonMinusDefinition();
102-
G4DMesonMinus::DMesonMinusDefinition();
103-
G4DMesonPlus::DMesonPlusDefinition();
104-
G4BMesonMinus::BMesonMinusDefinition();
105-
G4BMesonPlus::BMesonPlusDefinition();
106-
107-
// barions
108-
G4Proton::Proton();
109-
G4AntiProton::AntiProton();
110-
G4SigmaMinus::SigmaMinusDefinition();
111-
G4AntiSigmaMinus::AntiSigmaMinusDefinition();
112-
G4SigmaPlus::SigmaPlusDefinition();
113-
G4AntiSigmaPlus::AntiSigmaPlusDefinition();
114-
G4XiMinus::XiMinusDefinition();
115-
G4AntiXiMinus::AntiXiMinusDefinition();
116-
G4OmegaMinus::OmegaMinusDefinition();
117-
G4AntiOmegaMinus::AntiOmegaMinusDefinition();
118-
G4LambdacPlus::LambdacPlusDefinition();
119-
G4AntiLambdacPlus::AntiLambdacPlusDefinition();
120-
G4XicPlus::XicPlusDefinition();
121-
G4AntiXicPlus::AntiXicPlusDefinition();
122-
123-
// ions
124-
G4Deuteron::Deuteron();
125-
G4Triton::Triton();
126-
G4He3::He3();
127-
G4Alpha::Alpha();
128-
G4GenericIon::GenericIonDefinition();
65+
// minimal set of particles for EM physics
66+
G4EmBuilder::ConstructMinimalEmSet();
12967
}
13068

13169
void CMSEmNoDeltaRay::ConstructProcess() {
@@ -141,7 +79,7 @@ void CMSEmNoDeltaRay::ConstructProcess() {
14179
for (const auto& particleName : emList.PartNames()) {
14280
G4ParticleDefinition* particle = table->FindParticle(particleName);
14381
G4ProcessManager* pmanager = particle->GetProcessManager();
144-
if (verbose > 1)
82+
if (verboseLevel > 1)
14583
edm::LogVerbatim("PhysicsList") << "### " << GetPhysicsName() << " instantiates for " << particleName;
14684

14785
if (particleName == "gamma") {

SimG4Core/PhysicsLists/src/CMSEmStandardPhysics.cc

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,11 @@
4343
#include <string>
4444

4545
CMSEmStandardPhysics::CMSEmStandardPhysics(G4int ver, const edm::ParameterSet& p)
46-
: G4VPhysicsConstructor("CMSEmStandard_emm"), verbose(ver) {
46+
: G4VPhysicsConstructor("CMSEmStandard_emm") {
47+
SetVerboseLevel(ver);
4748
G4EmParameters* param = G4EmParameters::Instance();
4849
param->SetDefaults();
49-
param->SetVerbose(verbose);
50+
param->SetVerbose(ver);
5051
param->SetApplyCuts(true);
5152
param->SetStepFunction(0.8, 1 * CLHEP::mm);
5253
param->SetMscRangeFactor(0.2);
@@ -75,7 +76,7 @@ void CMSEmStandardPhysics::ConstructParticle() {
7576
}
7677

7778
void CMSEmStandardPhysics::ConstructProcess() {
78-
if (verbose > 0) {
79+
if (verboseLevel > 0) {
7980
edm::LogVerbatim("PhysicsList") << "### " << GetPhysicsName() << " Construct EM Processes";
8081
}
8182

0 commit comments

Comments
 (0)