CMS 3D CMS Logo

QGSCCMS.cc

Go to the documentation of this file.
00001 #include "QGSCCMS.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 #include "G4NeutronTrackingCut.hh"
00011 
00012 #include "G4DataQuestionaire.hh"
00013 #include "HadronPhysicsQGSC.hh"
00014 
00015 QGSCCMS::QGSCCMS(G4LogicalVolumeToDDLogicalPartMap& map,
00016                  const edm::ParameterSet & p) : PhysicsList(map, p) {
00017 
00018   G4DataQuestionaire it(photon);
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   edm::LogInfo("PhysicsList") << "You are using the simulation engine: "
00024                               << "QGSC 4.4 with Flags for EM Physics "
00025                               << emPhys << " and for Hadronic Physics "
00026                               << hadPhys << "\n";
00027 
00028   if (emPhys) {
00029     // EM Physics
00030     RegisterPhysics( new CMSEmStandardPhysics("standard EM",ver));
00031 
00032     // Synchroton Radiation & GN Physics
00033     RegisterPhysics( new G4EmExtraPhysics("extra EM"));
00034   }
00035 
00036   // Decays
00037   RegisterPhysics( new G4DecayPhysics("decay",ver) );
00038 
00039   if (hadPhys) {
00040     // Hadron Elastic scattering
00041     RegisterPhysics( new G4HadronElasticPhysics("elastic",ver));
00042 
00043     // Hadron Physics
00044     G4bool quasiElastic=true;
00045     RegisterPhysics(  new HadronPhysicsQGSC("hadron",quasiElastic));
00046     //RegisterPhysics(  new HadronPhysicsQGSC("hadron"));
00047 
00048     // Stopping Physics
00049     //RegisterPhysics( new G4QStoppingPhysics("stopping",ver));
00050     RegisterPhysics( new G4QStoppingPhysics("stopping",ver,false));
00051     
00052     // Ion Physics
00053     RegisterPhysics( new G4IonPhysics("ion"));
00054 
00055     // Neutron tracking cut
00056     RegisterPhysics( new G4NeutronTrackingCut("Neutron tracking cut", ver));
00057   }
00058 }
00059 

Generated on Tue Jun 9 17:47:07 2009 for CMSSW by  doxygen 1.5.4