: PhysicsList(map, table_, fieldBuilder_, p),
thePar(p.getParameter<edm::ParameterSet>("GFlash")) {
G4DataQuestionaire it(photon);
std::string hadronPhysics = thePar.getParameter<std::string>("GflashHadronPhysics");
int ver = p.getUntrackedParameter<int>("Verbosity",0);
bool emPhys = p.getUntrackedParameter<bool>("EMPhysics",true);
bool hadPhys = p.getUntrackedParameter<bool>("HadPhysics",true);
bool tracking= p.getParameter<bool>("TrackingCut");
std::string region = p.getParameter<std::string>("Region");
edm::LogInfo("PhysicsList") << "You are using the simulation engine: "
<< hadronPhysics << " + CMS GFLASH with Flags for EM Physics "
<< emPhys << ", for Hadronic Physics "
<< hadPhys << " and tracking cut " << tracking
<< " with special region " << region;
RegisterPhysics(new ParametrisedPhysics("parametrised",thePar));
if (emPhys) {
RegisterPhysics( new CMSEmStandardPhysics92("standard EM EML",ver,region));
RegisterPhysics( new G4EmExtraPhysics("extra EM"));
}
RegisterPhysics( new G4DecayPhysics("decay",ver) );
if (hadPhys) {
RegisterPhysics( new G4HadronElasticPhysics("elastic",ver,false));
G4bool quasiElastic=true;
if(hadronPhysics=="QGSP_FTFP_BERT") {
RegisterPhysics( new HadronPhysicsQGSPCMS_FTFP_BERT_WP("hadron",quasiElastic));
}
else if(hadronPhysics=="QGSP_BERT") {
RegisterPhysics( new HadronPhysicsQGSP_BERT_WP("hadron",quasiElastic));
}
else if (hadronPhysics=="QGSP") {
RegisterPhysics( new HadronPhysicsQGSP_WP("hadron",quasiElastic));
}
else {
edm::LogInfo("PhysicsList") << hadronPhysics << " is not available for GflashHadronPhysics!"
<< "... Using QGSP_FTFP_BERT\n";
RegisterPhysics( new HadronPhysicsQGSPCMS_FTFP_BERT_WP("hadron",quasiElastic));
}
RegisterPhysics( new G4QStoppingPhysics("stopping"));
RegisterPhysics( new G4IonPhysics("ion"));
if (tracking)
RegisterPhysics( new G4NeutronTrackingCut("Neutron tracking cut", ver));
}
RegisterPhysics( new CMSMonopolePhysics(table_,fieldBuilder_,p));
if(thePar.getParameter<bool>("GflashHistogram")) {
theHisto = GflashHistogram::instance();
theHisto->setStoreFlag(true);
theHisto->bookHistogram(thePar.getParameter<std::string>("GflashHistogramName"));
}
}