207 if(particleName ==
"neutron")
299 if (particleName ==
"gamma")
318 else if (particleName ==
"e-")
336 pmanager->
AddProcess(eBremsstrahlung, -1,-3, 3);
338 else if (particleName ==
"e+")
356 else if( particleName ==
"mu+" ||
357 particleName ==
"mu-" )
364 if( particleName ==
"mu-" )
367 else if (particleName ==
"proton" ||
368 particleName ==
"pi+" ||
369 particleName ==
"pi-")
382 else if(particleName ==
"alpha" ||
383 particleName ==
"deuteron" ||
384 particleName ==
"triton" ||
385 particleName ==
"He3")
395 else if (particleName ==
"GenericIon")
420 pmanager->
AddProcess(aMultipleScattering,-1,1,1);
498 if (particleName ==
"opticalphoton") {
633 if (particleName ==
"pi+")
638 theElasticProcess->
RegisterMe( elastic_lhep1 );
645 theInelasticProcess->
RegisterMe( theFTFModel1 );
646 theInelasticProcess->
RegisterMe( theBERTModel0 );
650 else if (particleName ==
"pi-")
655 theElasticProcess->
RegisterMe( elastic_lhep1 );
662 theInelasticProcess->
RegisterMe( theFTFModel1 );
663 theInelasticProcess->
RegisterMe( theBERTModel0 );
669 else if (particleName ==
"kaon+")
673 theElasticProcess->
RegisterMe( elastic_lhep0 );
680 theInelasticProcess->
RegisterMe( theFTFModel1 );
681 theInelasticProcess->
RegisterMe( theBERTModel0 );
685 else if (particleName ==
"kaon0S")
689 theElasticProcess->
RegisterMe( elastic_lhep0 );
696 theInelasticProcess->
RegisterMe( theFTFModel1 );
697 theInelasticProcess->
RegisterMe( theBERTModel0 );
701 else if (particleName ==
"kaon0L")
705 theElasticProcess->
RegisterMe( elastic_lhep0 );
712 theInelasticProcess->
RegisterMe( theFTFModel1 );
713 theInelasticProcess->
RegisterMe( theBERTModel0 );
717 else if (particleName ==
"kaon-")
721 theElasticProcess->
RegisterMe( elastic_lhep0 );
728 theInelasticProcess->
RegisterMe( theFTFModel1 );
729 theInelasticProcess->
RegisterMe( theBERTModel0 );
734 else if (particleName ==
"proton")
740 theElasticProcess->
RegisterMe( elastic_chip );
746 theInelasticProcess->
RegisterMe( theFTFModel1 );
747 theInelasticProcess->
RegisterMe( theBERTModel0 );
750 else if (particleName ==
"anti_proton")
758 elastic_lhep2->SetMaxEnergy( elastic_elimitAntiNuc );
760 theElasticProcess->
AddDataSet( elastic_anucxs );
761 theElasticProcess->
RegisterMe( elastic_lhep2 );
762 theElasticProcess->
RegisterMe( elastic_anuc );
767 theInelasticProcess->
AddDataSet( theAntiNucleonData );
768 theInelasticProcess->
RegisterMe( theFTFModel0 );
774 else if (particleName ==
"neutron") {
780 theElasticProcess->
RegisterMe( elastic_neutronChipsModel );
784 theElasticProcess->
RegisterMe( theElasticNeutronHP );
791 theInelasticProcess->
RegisterMe( theFTFModel1 );
792 theInelasticProcess->
RegisterMe( theBERTModel1 );
796 theInelasticProcess->
RegisterMe( theNeutronInelasticHPModel );
805 theCaptureProcess->
RegisterMe(theLENeutronCaptureModel);
810 else if (particleName ==
"anti_neutron")
814 theElasticProcess->
RegisterMe( elastic_lhep0 );
819 theInelasticProcess->
AddDataSet( theAntiNucleonData );
820 theInelasticProcess->
RegisterMe( theFTFModel0 );
824 else if (particleName ==
"deuteron")
828 theElasticProcess->
RegisterMe( elastic_lhep0 );
833 theInelasticProcess->
AddDataSet( theGGNuclNuclData );
834 theInelasticProcess->
RegisterMe( theFTFModel1 );
835 theInelasticProcess->
RegisterMe( theBERTModel0 );
839 else if (particleName ==
"triton")
843 theElasticProcess->
RegisterMe( elastic_lhep0 );
848 theInelasticProcess->
AddDataSet( theGGNuclNuclData );
849 theInelasticProcess->
RegisterMe( theFTFModel1 );
850 theInelasticProcess->
RegisterMe( theBERTModel0 );
853 else if (particleName ==
"alpha")
857 theElasticProcess->
RegisterMe( elastic_lhep0 );
862 theInelasticProcess->
AddDataSet( theGGNuclNuclData );
863 theInelasticProcess->
RegisterMe( theFTFModel1 );
864 theInelasticProcess->
RegisterMe( theBERTModel0 );
908 if (particleName ==
"GenericIon")
925 G4cout <<
"DMXPhysicsList::SetCuts:";
928 G4cout <<
"DMXPhysicsList::SetCuts:";
void SetMaxEnergy(G4double val)
G4ParticleDefinition * GetParticle(G4int index) const
static constexpr double micrometer
void SetScintillationExcitationRatio(const G4double ratio)
void ConstructMyShortLiveds()
void SetStepFunction(G4double v1, G4double v2, G4bool lock=true)
void SetMinEnergy(G4double anEnergy)
void SetEmModel(G4VEmModel *, G4int index=0)
void SetMaxEnergy(const G4double anEnergy)
static G4ParticleTable * GetParticleTable()
G4VAtomDeexcitation * AtomDeexcitation()
static constexpr double MeV
void SetProcessOrderingToLast(G4VProcess *aProcess, G4ProcessVectorDoItIndex idDoIt)
G4int AddRestProcess(G4VProcess *aProcess, G4int ord=ordDefault)
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
static G4ChargedGeantino * ChargedGeantinoDefinition()
virtual void AddTransportation()
void RegisterMe(G4HadronicInteraction *a)
static const char * Default_Name()
static void ConstructParticle()
static void ConstructParticle()
virtual void ConstructProcess()
const G4String & GetParticleName() const
const G4String & GetParticleType() const
void SetTrackSecondariesFirst(const G4bool state)
void ConstructMyHadrons()
G4IonTable * GetIonTable() const
static const char * Default_Name()
static const char * Default_Name()
G4double GetPDGCharge() const
static G4CrossSectionDataSetRegistry * Instance()
void ConstructMyLeptons()
virtual G4bool IsApplicable(const G4ParticleDefinition &) override
void SetEnergyRange(G4double lowedge, G4double highedge)
static G4Proton * Proton()
void SetProcessOrdering(G4VProcess *aProcess, G4ProcessVectorDoItIndex idDoIt, G4int ordDoIt=ordDefault)
virtual void ConstructEM()
static constexpr double um
static G4MuonMinus * MuonMinusDefinition()
virtual void ConstructOp()
void SetVerboseLevel(G4int value)
static constexpr double TeV
virtual void ConstructGeneral()
G4ParticleTable::G4PTblDicIterator * GetParticleIterator() const
static void ConstructParticle()
G4int AddProcess(G4VProcess *aProcess, G4int ordAtRestDoIt=ordInActive, G4int ordAlongSteptDoIt=ordInActive, G4int ordPostStepDoIt=ordInActive)
void SetTransport(G4VIntraNuclearTransportModel *const value)
void SetEmModel(G4VEmModel *, G4int index=0)
static G4OpticalPhoton * OpticalPhotonDefinition()
static constexpr double eV
void SetAuger(G4bool val)
void SetNumberOfBinsPerDecade(G4int val)
static const char * Default_Name()
static void ConstructParticle()
static const char * Default_Name()
static G4Electron * ElectronDefinition()
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
static G4AntiNeutrinoMu * AntiNeutrinoMuDefinition()
static G4ProductionCutsTable * GetProductionCutsTable()
void SetMscStepLimitType(G4MscStepLimitType val)
static G4Gamma * GammaDefinition()
void AddDataSet(G4VCrossSectionDataSet *aDataSet)
void SetHighEnergyGenerator(G4VHighEnergyGenerator *const value)
G4ComponentAntiNuclNuclearXS * GetComponentCrossSection()
static G4Neutron * Neutron()
G4ProcessManager * GetProcessManager() const
void SetStepLimitType(G4MscStepLimitType val)
static G4NeutrinoE * NeutrinoEDefinition()
std::vector< G4InuclElementaryParticle >::iterator particleIterator
G4GLOB_DLL std::ostream G4cout
void SetVerboseLevel(G4int value)
static G4LossTableManager * Instance()
void SetAtomDeexcitation(G4VAtomDeexcitation *)
void SetCutValue(G4double aCut, const G4String &pname)
G4bool IsApplicable(const G4ParticleDefinition &aParticleType) override
void SetFragmentationModel(G4VStringFragmentation *aModel)
static G4Positron * PositronDefinition()
static G4NeutrinoMu * NeutrinoMuDefinition()
G4bool IsShortLived() const
static G4Geantino * GeantinoDefinition()
void SetScintillationYieldFactor(const G4double yieldfactor)
static G4MuonPlus * MuonPlusDefinition()
void SetVerboseLevel(G4int value)
void DumpCutValuesTable(G4int flag=1)
virtual void ConstructHad()
static G4AntiNeutrinoE * AntiNeutrinoEDefinition()
static constexpr double GeV
virtual void ConstructParticle()
static G4EmParameters * Instance()
static constexpr double nanometer