102 ConstructMyLeptons();
103 ConstructMyHadrons();
104 ConstructMyShortLiveds();
110 void DMXPhysicsList::ConstructMyBosons()
126 void DMXPhysicsList::ConstructMyLeptons()
146 void DMXPhysicsList::ConstructMyHadrons()
165 void DMXPhysicsList::ConstructMyShortLiveds()
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:";
static G4Geantino * GeantinoDefinition()
static G4Electron * ElectronDefinition()
static G4MuonPlus * MuonPlusDefinition()
static G4LossTableManager * Instance()
void SetCutValue(G4double aCut, const G4String &pname)
void SetEnergyRange(G4double lowedge, G4double highedge)
void SetMscStepLimitType(G4MscStepLimitType val)
virtual void ConstructGeneral()
virtual G4bool IsApplicable(const G4ParticleDefinition &)
void SetFragmentationModel(G4VStringFragmentation *aModel)
void SetAuger(G4bool val)
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
void SetVerboseLevel(G4int value)
static constexpr double nanometer
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
static void ConstructParticle()
static const char * Default_Name()
static void ConstructParticle()
static void ConstructParticle()
void SetMaxEnergy(G4double val)
void SetStepFunction(G4double v1, G4double v2, G4bool lock=true)
G4ComponentAntiNuclNuclearXS * GetComponentCrossSection()
const G4String & GetParticleName() const
virtual void ConstructProcess()
void SetHighEnergyGenerator(G4VHighEnergyGenerator *const value)
static void ConstructParticle()
void RegisterMe(G4HadronicInteraction *a)
static constexpr double TeV
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
static constexpr double um
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()
void SetNumberOfBinsPerDecade(G4int val)
static G4Proton * Proton()
static constexpr double eV
const G4String & GetParticleType() const
static G4Neutron * Neutron()
void SetProcessOrdering(G4VProcess *aProcess, G4ProcessVectorDoItIndex idDoIt, G4int ordDoIt=ordDefault)
virtual void ConstructHad()
static const char * Default_Name()
void SetScintillationExcitationRatio(const G4double ratio)
static G4Positron * PositronDefinition()
G4bool IsShortLived() const
static G4ProductionCutsTable * GetProductionCutsTable()
static G4ParticleTable * GetParticleTable()
void SetTrackSecondariesFirst(const G4bool state)
void SetProcessOrderingToLast(G4VProcess *aProcess, G4ProcessVectorDoItIndex idDoIt)
G4ProcessManager * GetProcessManager() const
static G4EmParameters * Instance()
void SetEmModel(G4VEmModel *, G4int index=1)
static G4MuonMinus * MuonMinusDefinition()
static constexpr double GeV
virtual void ConstructOp()
void SetMaxEnergy(const G4double anEnergy)
std::vector< G4InuclElementaryParticle >::iterator particleIterator
static G4ChargedGeantino * ChargedGeantinoDefinition()
G4ParticleTable::G4PTblDicIterator * GetParticleIterator() const
static const char * Default_Name()
void SetTransport(G4VIntraNuclearTransportModel *const value)
static constexpr double MeV
G4int AddRestProcess(G4VProcess *aProcess, G4int ord=ordDefault)
G4VAtomDeexcitation * AtomDeexcitation()
static G4AntiNeutrinoE * AntiNeutrinoEDefinition()
static G4OpticalPhoton * OpticalPhotonDefinition()
G4bool IsApplicable(const G4ParticleDefinition &aParticleType) override
G4double GetPDGCharge() const
static G4NeutrinoMu * NeutrinoMuDefinition()
static constexpr double micrometer
void SetAtomDeexcitation(G4VAtomDeexcitation *)
virtual void ConstructParticle()
void SetVerboseLevel(G4int value)
virtual void ConstructEM()
void SetStepLimitType(G4MscStepLimitType val)
static G4Gamma * GammaDefinition()
G4ParticleDefinition * GetParticle(G4int index) const