// // Simulation of neutron interactions in test objects and their energy deposit in the detector // Author: N. Höflich // /// \file PhysicsList.hh /// \brief Implementation of the PhysicsList class #include "PhysicsList.hh" //#include //#include #include #include #include //#include #include #include //#include #include #include #include #include #include #include #include // check this for realistic simulation, evtl SetCuts, more processes? PhysicsList::PhysicsList(int verbose) { //G4OpticalPhysics* opticalPhysics= new G4OpticalPhysics(verbose); //opticalPhysics->SetFiniteRiseTime(true); //opticalPhysics->SetTrackSecondariesFirst(kScintillation,true); //opticalPhysics->SetScintillationByParticleType(true); //RegisterPhysics(opticalPhysics); //RegisterPhysics(new G4EmStandardPhysics()); RegisterPhysics(new G4EmLowEPPhysics(verbose)); RegisterPhysics(new G4EmExtraPhysics(verbose)); RegisterPhysics(new G4DecayPhysics(verbose)); //RegisterPhysics(new G4ChargeExchangePhysics(verbose)); // THIS IS NOT IN THE REFERENCE PHYSICS LIST QGSP_BERT_HP -> DESCRIBES charge exchange like np->pn or pi-p->pi0n etc -> DOES TGHIS WORK PROPERLY FOR NEUTRONS? STRANGE THINGS HAPPEN RegisterPhysics(new G4HadronElasticPhysicsHP(verbose)); RegisterPhysics(new G4HadronPhysicsQGSP_BERT_HP(verbose)); RegisterPhysics(new G4IonPhysics(verbose)); RegisterPhysics(new G4StoppingPhysics(verbose)); //RegisterPhysics(new G4HadronPhysicsQGSP_BIC_HP(verbose)); SetVerboseLevel(verbose); } void PhysicsList::SetCuts() { //SetCutsWithDefault(); SetDefaultCutValue(0.001*CLHEP::mm); //SetDefaultCutValue(0.1*mm); SetCutValue(0*CLHEP::mm, "proton"); if (this->verboseLevel > 0) { DumpCutValuesTable(); } }