File indexing completed on 2024-04-06 12:30:28
0001 #include "QGSPCMS_BERT_EML.h"
0002 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0003
0004 #include "G4DecayPhysics.hh"
0005 #include "G4EmExtraPhysics.hh"
0006 #include "G4IonPhysics.hh"
0007 #include "G4StoppingPhysics.hh"
0008 #include "G4HadronElasticPhysics.hh"
0009 #include "G4NeutronTrackingCut.hh"
0010 #include "G4HadronicProcessStore.hh"
0011 #include "G4EmStandardPhysics_option1.hh"
0012
0013 #include "G4HadronPhysicsQGSP_BERT.hh"
0014
0015 QGSPCMS_BERT_EML::QGSPCMS_BERT_EML(const edm::ParameterSet& p) : PhysicsList(p) {
0016 int ver = p.getUntrackedParameter<int>("Verbosity", 0);
0017 bool emPhys = p.getUntrackedParameter<bool>("EMPhysics", true);
0018 bool hadPhys = p.getUntrackedParameter<bool>("HadPhysics", true);
0019 bool tracking = p.getParameter<bool>("TrackingCut");
0020 edm::LogInfo("PhysicsList") << "You are using the simulation engine: "
0021 << "QGSP_BERT_EMY with Flags for EM Physics " << emPhys << ", for Hadronic Physics "
0022 << hadPhys << " and tracking cut " << tracking;
0023
0024 if (emPhys) {
0025
0026 RegisterPhysics(new G4EmStandardPhysics_option1(ver));
0027
0028
0029 G4EmExtraPhysics* gn = new G4EmExtraPhysics(ver);
0030 RegisterPhysics(gn);
0031 }
0032
0033
0034 this->RegisterPhysics(new G4DecayPhysics(ver));
0035
0036 if (hadPhys) {
0037 G4HadronicProcessStore::Instance()->SetVerbose(ver);
0038
0039
0040 RegisterPhysics(new G4HadronElasticPhysics(ver));
0041
0042
0043 RegisterPhysics(new G4HadronPhysicsQGSP_BERT(ver));
0044
0045
0046 RegisterPhysics(new G4StoppingPhysics(ver));
0047
0048
0049 RegisterPhysics(new G4IonPhysics(ver));
0050
0051
0052 if (tracking) {
0053 RegisterPhysics(new G4NeutronTrackingCut(ver));
0054 }
0055 }
0056 }