102 ConstructMyLeptons();
103 ConstructMyHadrons();
104 ConstructMyShortLiveds();
110 void DMXPhysicsList::ConstructMyBosons()
126 void DMXPhysicsList::ConstructMyLeptons()
146 void DMXPhysicsList::ConstructMyHadrons()
164 void DMXPhysicsList::ConstructMyShortLiveds()
205 if(particleName ==
"neutron")
285 if (particleName ==
"gamma")
305 else if (particleName ==
"e-")
323 pmanager->
AddProcess(eBremsstrahlung, -1,-3, 3);
325 else if (particleName ==
"e+")
343 else if( particleName ==
"mu+" ||
344 particleName ==
"mu-" )
351 if( particleName ==
"mu-" )
354 else if (particleName ==
"proton" ||
355 particleName ==
"pi+" ||
356 particleName ==
"pi-")
369 else if(particleName ==
"alpha" ||
370 particleName ==
"deuteron" ||
371 particleName ==
"triton" ||
372 particleName ==
"He3")
382 else if (particleName ==
"GenericIon")
407 pmanager->
AddProcess(aMultipleScattering,-1,1,1);
493 if (particleName ==
"opticalphoton") {
628 if (particleName ==
"pi+")
633 theElasticProcess->
RegisterMe( elastic_lhep1 );
640 theInelasticProcess->
RegisterMe( theFTFModel1 );
641 theInelasticProcess->
RegisterMe( theBERTModel0 );
645 else if (particleName ==
"pi-")
650 theElasticProcess->
RegisterMe( elastic_lhep1 );
657 theInelasticProcess->
RegisterMe( theFTFModel1 );
658 theInelasticProcess->
RegisterMe( theBERTModel0 );
664 else if (particleName ==
"kaon+")
668 theElasticProcess->
RegisterMe( elastic_lhep0 );
675 theInelasticProcess->
RegisterMe( theFTFModel1 );
676 theInelasticProcess->
RegisterMe( theBERTModel0 );
680 else if (particleName ==
"kaon0S")
684 theElasticProcess->
RegisterMe( elastic_lhep0 );
691 theInelasticProcess->
RegisterMe( theFTFModel1 );
692 theInelasticProcess->
RegisterMe( theBERTModel0 );
696 else if (particleName ==
"kaon0L")
700 theElasticProcess->
RegisterMe( elastic_lhep0 );
707 theInelasticProcess->
RegisterMe( theFTFModel1 );
708 theInelasticProcess->
RegisterMe( theBERTModel0 );
712 else if (particleName ==
"kaon-")
716 theElasticProcess->
RegisterMe( elastic_lhep0 );
723 theInelasticProcess->
RegisterMe( theFTFModel1 );
724 theInelasticProcess->
RegisterMe( theBERTModel0 );
729 else if (particleName ==
"proton")
735 theElasticProcess->
RegisterMe( elastic_chip );
741 theInelasticProcess->
RegisterMe( theFTFModel1 );
742 theInelasticProcess->
RegisterMe( theBERTModel0 );
745 else if (particleName ==
"anti_proton")
748 const G4double elastic_elimitAntiNuc = 100.0*CLHEP::MeV;
753 elastic_lhep2->SetMaxEnergy( elastic_elimitAntiNuc );
755 theElasticProcess->
AddDataSet( elastic_anucxs );
756 theElasticProcess->
RegisterMe( elastic_lhep2 );
757 theElasticProcess->
RegisterMe( elastic_anuc );
762 theInelasticProcess->
AddDataSet( theAntiNucleonData );
763 theInelasticProcess->
RegisterMe( theFTFModel0 );
769 else if (particleName ==
"neutron") {
774 elastic_neutronChipsModel->
SetMinEnergy( 19.0*CLHEP::MeV );
775 theElasticProcess->
RegisterMe( elastic_neutronChipsModel );
779 theElasticProcess->
RegisterMe( theElasticNeutronHP );
786 theInelasticProcess->
RegisterMe( theFTFModel1 );
787 theInelasticProcess->
RegisterMe( theBERTModel1 );
791 theInelasticProcess->
RegisterMe( theNeutronInelasticHPModel );
800 theCaptureProcess->
RegisterMe(theLENeutronCaptureModel);
805 else if (particleName ==
"anti_neutron")
809 theElasticProcess->
RegisterMe( elastic_lhep0 );
814 theInelasticProcess->
AddDataSet( theAntiNucleonData );
815 theInelasticProcess->
RegisterMe( theFTFModel0 );
819 else if (particleName ==
"deuteron")
823 theElasticProcess->
RegisterMe( elastic_lhep0 );
828 theInelasticProcess->
AddDataSet( theGGNuclNuclData );
829 theInelasticProcess->
RegisterMe( theFTFModel1 );
830 theInelasticProcess->
RegisterMe( theBERTModel0 );
834 else if (particleName ==
"triton")
838 theElasticProcess->
RegisterMe( elastic_lhep0 );
843 theInelasticProcess->
AddDataSet( theGGNuclNuclData );
844 theInelasticProcess->
RegisterMe( theFTFModel1 );
845 theInelasticProcess->
RegisterMe( theBERTModel0 );
848 else if (particleName ==
"alpha")
852 theElasticProcess->
RegisterMe( elastic_lhep0 );
857 theInelasticProcess->
AddDataSet( theGGNuclNuclData );
858 theInelasticProcess->
RegisterMe( theFTFModel1 );
859 theInelasticProcess->
RegisterMe( theBERTModel0 );
902 if (particleName ==
"GenericIon")
919 G4cout <<
"DMXPhysicsList::SetCuts:";
922 G4cout <<
"DMXPhysicsList::SetCuts:";
static G4Geantino * GeantinoDefinition()
static G4Electron * ElectronDefinition()
static G4MuonPlus * MuonPlusDefinition()
void SetCutValue(G4double aCut, const G4String &pname)
void SetEnergyRange(G4double lowedge, G4double highedge)
virtual void ConstructGeneral()
virtual G4bool IsApplicable(const G4ParticleDefinition &)
void SetFragmentationModel(G4VStringFragmentation *aModel)
void SetScintillationExcitationRatio(const G4double excitationratio)
void SetStepFunction(G4double v1, G4double v2)
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
void SetVerboseLevel(G4int value)
G4bool IsApplicable(const G4ParticleDefinition &aParticleType)
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
static void ConstructParticle()
static const char * Default_Name()
static void ConstructParticle()
static const char * Default_Name()
G4ProcessManager * GetProcessManager() const
G4ComponentAntiNuclNuclearXS * GetComponentCrossSection()
const G4String & GetParticleName() const
virtual void ConstructProcess()
void SetHighEnergyGenerator(G4VHighEnergyGenerator *const value)
static void ConstructParticle()
void SetAuger(G4bool val)
void RegisterMe(G4HadronicInteraction *a)
void SetDEDXBinning(G4int val)
virtual void AddTransportation()
void SetScintillationYieldFactor(const G4double yieldfactor)
static const char * Default_Name()
void SetMinEnergy(G4double anEnergy)
void SetEmModel(G4VEmModel *, G4int index=1)
void AddDataSet(G4VCrossSectionDataSet *aDataSet)
G4IonTable * GetIonTable() const
void DumpCutValuesTable(G4int flag=1)
G4GLOB_DLL std::ostream G4cout
void SetLambdaBinning(G4int val)
void SetVerboseLevel(G4int value)
G4int AddProcess(G4VProcess *aProcess, G4int ordAtRestDoIt=ordInActive, G4int ordAlongSteptDoIt=ordInActive, G4int ordPostStepDoIt=ordInActive)
static G4NeutrinoE * NeutrinoEDefinition()
static const char * Default_Name()
static G4AntiNeutrinoMu * AntiNeutrinoMuDefinition()
static G4CrossSectionDataSetRegistry * Instance()
static G4Proton * Proton()
const G4String & GetParticleType() const
static G4Neutron * Neutron()
void SetProcessOrdering(G4VProcess *aProcess, G4ProcessVectorDoItIndex idDoIt, G4int ordDoIt=ordDefault)
void SetMaxEnergy(G4double val)
virtual void ConstructHad()
static const char * Default_Name()
static G4Positron * PositronDefinition()
G4bool IsShortLived() const
static G4ProductionCutsTable * GetProductionCutsTable()
static G4ParticleTable * GetParticleTable()
void SetTrackSecondariesFirst(const G4bool state)
void SetProcessOrderingToLast(G4VProcess *aProcess, G4ProcessVectorDoItIndex idDoIt)
void SetEmModel(G4VEmModel *, G4int index=1)
static G4MuonMinus * MuonMinusDefinition()
virtual void ConstructOp()
void SetMaxEnergy(const G4double anEnergy)
static G4ChargedGeantino * ChargedGeantinoDefinition()
static const char * Default_Name()
void SetTransport(G4VIntraNuclearTransportModel *const value)
void SetMscStepLimitation(G4MscStepLimitType val)
G4int AddRestProcess(G4VProcess *aProcess, G4int ord=ordDefault)
static G4AntiNeutrinoE * AntiNeutrinoEDefinition()
static G4OpticalPhoton * OpticalPhotonDefinition()
G4double GetPDGCharge() const
static G4NeutrinoMu * NeutrinoMuDefinition()
#define theParticleIterator
virtual void ConstructParticle()
void SetVerboseLevel(G4int value)
virtual void ConstructEM()
void SetStepLimitType(G4MscStepLimitType val)
static G4Gamma * GammaDefinition()
G4ParticleDefinition * GetParticle(G4int index) const