CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/SimG4Core/CustomPhysics/src/CustomPhysics.cc

Go to the documentation of this file.
00001 #include "SimG4Core/CustomPhysics/interface/CustomPhysics.h"
00002 #include "SimG4Core/CustomPhysics/interface/CustomPhysicsList.h"
00003 #include "SimG4Core/PhysicsLists/interface/CMSEmStandardPhysics71.h"
00004 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00005 
00006 #include "G4DecayPhysics.hh"
00007 #include "G4EmExtraPhysics.hh"
00008 #include "G4IonPhysics.hh"
00009 #include "G4QStoppingPhysics.hh"
00010 #include "G4HadronElasticPhysics.hh" 
00011 #include "G4NeutronTrackingCut.hh"
00012 
00013 #include "G4DataQuestionaire.hh"
00014 #include "HadronPhysicsQGSP.hh"
00015  
00016 CustomPhysics::CustomPhysics(G4LogicalVolumeToDDLogicalPartMap& map, 
00017                              const HepPDT::ParticleDataTable * table_,
00018                              sim::FieldBuilder *fieldBuilder_, 
00019                              const edm::ParameterSet & p) : PhysicsList(map, table_, fieldBuilder_, p) {
00020 
00021   G4DataQuestionaire it(photon);
00022 
00023   int  ver     = p.getUntrackedParameter<int>("Verbosity",0);
00024   bool emPhys  = p.getUntrackedParameter<bool>("EMPhysics",true);
00025   bool hadPhys = p.getUntrackedParameter<bool>("HadPhysics",true);
00026   edm::LogInfo("PhysicsList") << "You are using the simulation engine: "
00027                               << "QGSP_EMV 3.3 with Flags for EM Physics "
00028                               << emPhys << " and for Hadronic Physics "
00029                               << hadPhys << "\n";
00030 
00031   // EM Physics
00032   RegisterPhysics( new CMSEmStandardPhysics71("standard EM v71",ver));
00033 
00034   // Synchroton Radiation & GN Physics
00035   RegisterPhysics(new G4EmExtraPhysics("extra EM"));
00036 
00037   // Decays
00038   RegisterPhysics(new G4DecayPhysics("decay"));
00039 
00040   // Hadron Elastic scattering
00041   RegisterPhysics(new G4HadronElasticPhysics("elastic",ver,false)); 
00042 
00043   // Hadron Physics
00044   G4bool quasiElastic=true;
00045   RegisterPhysics(new HadronPhysicsQGSP("hadron",quasiElastic));
00046   //RegisterPhysics(new HadronPhysicsQGSP("hadron"));
00047 
00048   // Stopping Physics
00049   RegisterPhysics(new G4QStoppingPhysics("stopping"));
00050 
00051   // Ion Physics
00052   RegisterPhysics(new G4IonPhysics("ion"));
00053 
00054   // Neutron tracking cut
00055   RegisterPhysics( new G4NeutronTrackingCut("Neutron tracking cut", ver));
00056 
00057   // Custom Physics
00058   RegisterPhysics(new CustomPhysicsList("custom",p));    
00059 }