00001 #include "QGSPCMS_BERT_HP.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 "G4QStoppingPhysics.hh"
00009 #include "G4HadronElasticPhysics.hh"
00010
00011 #include "G4DataQuestionaire.hh"
00012 #include "HadronPhysicsQGSP_BERT_HP.hh"
00013
00014 QGSPCMS_BERT_HP::QGSPCMS_BERT_HP(G4LogicalVolumeToDDLogicalPartMap& map,
00015 const edm::ParameterSet & p) : PhysicsList(map, p) {
00016
00017 G4DataQuestionaire it(photon);
00018 edm::LogInfo("PhysicsList") << "You are using the simulation engine: QGSP_BERT_HP 2.3\n";
00019
00020 int ver = p.getUntrackedParameter<int>("Verbosity",0);
00021 bool emPhys = p.getUntrackedParameter<bool>("EMPhysics",true);
00022 bool hadPhys = p.getUntrackedParameter<bool>("HadPhysics",true);
00023
00024 if (emPhys) {
00025
00026 RegisterPhysics( new CMSEmStandardPhysics("standard EM",ver));
00027
00028
00029 RegisterPhysics( new G4EmExtraPhysics("extra EM"));
00030 }
00031
00032
00033 RegisterPhysics( new G4DecayPhysics("decay",ver) );
00034
00035 if (hadPhys) {
00036
00037 RegisterPhysics( new G4HadronElasticPhysics("elastic",ver,true));
00038
00039
00040 G4bool quasiElastic=true;
00041 RegisterPhysics( new HadronPhysicsQGSP_BERT_HP("hadron",quasiElastic));
00042
00043
00044
00045 RegisterPhysics( new G4QStoppingPhysics("stopping"));
00046
00047
00048 RegisterPhysics( new G4IonPhysics("ion"));
00049 }
00050 }
00051