00001 #include "LHEPCMS.hh"
00002 #include "SimG4Core/PhysicsLists/interface/CMSEmStandardPhysics.h"
00003 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00004
00005 #include "G4DecayPhysics.hh"
00006 #include "G4EmExtraPhysics.hh"
00007 #include "G4IonPhysics.hh"
00008 #include "G4HadronElasticPhysics.hh"
00009
00010 #include "G4DataQuestionaire.hh"
00011 #include "HadronPhysicsLHEP.hh"
00012
00013 LHEPCMS::LHEPCMS(G4LogicalVolumeToDDLogicalPartMap& map,
00014 const edm::ParameterSet & p) : PhysicsList(map, p) {
00015
00016 G4DataQuestionaire it(photon);
00017
00018 int ver = p.getUntrackedParameter<int>("Verbosity",0);
00019 bool emPhys = p.getUntrackedParameter<bool>("EMPhysics",true);
00020 bool hadPhys = p.getUntrackedParameter<bool>("HadPhysics",true);
00021 edm::LogInfo("PhysicsList") << "You are using the simulation engine: "
00022 << "LHEP 4.2 with Flags for EM Physics "
00023 << emPhys << " and for Hadronic Physics "
00024 << hadPhys << "\n";
00025
00026 if (emPhys) {
00027
00028 RegisterPhysics( new CMSEmStandardPhysics("standard EM",ver));
00029
00030
00031 RegisterPhysics( new G4EmExtraPhysics("extra EM"));
00032 }
00033
00034
00035 RegisterPhysics( new G4DecayPhysics("decay"));
00036
00037 if (hadPhys) {
00038
00039 RegisterPhysics( new G4HadronElasticPhysics("LElastic",ver,false));
00040
00041
00042 RegisterPhysics( new HadronPhysicsLHEP("hadron"));
00043
00044
00045 RegisterPhysics( new G4IonPhysics("ion"));
00046 }
00047 }
00048