Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-04-14 02:23:03

0001 #include "QGSPCMS_BERT_HP_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 "G4HadronElasticPhysicsHP.hh"
0009 #include "G4NeutronTrackingCut.hh"
0010 #include "G4HadronicProcessStore.hh"
0011 #include "G4EmStandardPhysics_option1.hh"
0012 
0013 #include "G4HadronPhysicsQGSP_BERT_HP.hh"
0014 
0015 QGSPCMS_BERT_HP_EML::QGSPCMS_BERT_HP_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_HP_EML \n Flags for EM Physics " << emPhys << ", for Hadronic Physics "
0022                               << hadPhys << " and tracking cut " << tracking;
0023 
0024   if (emPhys) {
0025     // EM Physics
0026     RegisterPhysics(new G4EmStandardPhysics_option1(ver));
0027 
0028     // Synchroton Radiation & GN Physics
0029     G4EmExtraPhysics* gn = new G4EmExtraPhysics(ver);
0030     RegisterPhysics(gn);
0031   }
0032 
0033   // Decays
0034   this->RegisterPhysics(new G4DecayPhysics(ver));
0035 
0036   if (hadPhys) {
0037     G4HadronicProcessStore::Instance()->SetVerbose(ver);
0038 
0039     // Hadron Elastic scattering
0040     RegisterPhysics(new G4HadronElasticPhysicsHP(ver));
0041 
0042     // Hadron Physics
0043     RegisterPhysics(new G4HadronPhysicsQGSP_BERT_HP(ver));
0044 
0045     // Stopping Physics
0046     RegisterPhysics(new G4StoppingPhysics(ver));
0047 
0048     // Ion Physics
0049     RegisterPhysics(new G4IonPhysics(ver));
0050 
0051     // Neutron tracking cut
0052     if (tracking) {
0053       RegisterPhysics(new G4NeutronTrackingCut(ver));
0054     }
0055   }
0056 }