52 fEminusIonisation(0),fPIonisation(0),
53 fUse_forced_interaction(true),
54 fUse_eionisation(true),fUse_pionisation(true),
55 fUse_brem(true),fUse_compton(true),fUse_ms(true),
56 fUse_egain_fluctuation(true),fUse_peeffect(true),
57 fEmin_adj_models(1.*
keV), fEmax_adj_models(1.*
MeV),
58 fCS_biasing_factor_compton(1.),fCS_biasing_factor_brem(1.),
59 fCS_biasing_factor_ionisation(1.),fCS_biasing_factor_PEeffect(1.)
287 theeInverseIonisationProjToProjCase =
289 theeInverseIonisationModel);
290 theeInverseIonisationProdToProjCase =
292 theeInverseIonisationModel);
309 true,
"Inv_eBrem",theeInverseBremsstrahlungModel);
311 false,
"Inv_eBrem1",theeInverseBremsstrahlungModel);
317 theeInverseBremsstrahlungModel);
321 theForcedInteractionForGamma =
324 theeInverseBremsstrahlungModel);
347 theeInverseComptonModel);
349 if (!theForcedInteractionForGamma ) theForcedInteractionForGamma =
351 theForcedInteractionForGamma->
352 RegisterAdjointComptonModel(theeInverseComptonModel);
370 theInversePhotoElectricModel);
388 "Inv_pIon",thepInverseIonisationModel);
390 "Inv_pIon1",thepInverseIonisationModel);
408 if (particleName ==
"e-") {
416 pmanager->
AddProcess(theeminusBremsstrahlung);
418 RegisterEnergyLossProcess(theeminusBremsstrahlung,particle);
450 if (particleName ==
"adj_e-") {
459 pmanager->
AddProcess(theContinuousGainOfEnergy);
475 pmanager->
AddProcess(theAlongStepWeightCorrection);
481 pmanager->
AddProcess(theeInverseIonisationProjToProjCase);
482 pmanager->
AddProcess(theeInverseIonisationProdToProjCase);
491 pmanager->
AddProcess(theeInverseBremsstrahlungProjToProjCase);
494 theeInverseBremsstrahlungProjToProjCase,
499 pmanager->
AddProcess(theeInverseComptonProdToProjCase);
511 pmanager->
AddProcess(thepInverseIonisationProdToProjCase);
524 if(particleName ==
"adj_gamma") {
529 pmanager->
AddProcess(theAlongStepWeightCorrection);
534 pmanager->
AddProcess(theeInverseBremsstrahlungProdToProjCase);
537 theeInverseBremsstrahlungProdToProjCase,
548 if (theForcedInteractionForGamma) {
549 pmanager->
AddProcess(theForcedInteractionForGamma);
559 if (particleName ==
"gamma") {
563 RegisterEmProcess(theComptonScattering,particle);
568 RegisterEmProcess(thePEEffect,particle);
582 pmanager->
AddProcess(theeplusMultipleScattering);
644 pmanager->
AddProcess(theContinuousGainOfEnergy);
661 pmanager->
AddProcess(theAlongStepWeightCorrection);
667 pmanager->
AddProcess(thepInverseIonisationProjToProjCase);
670 thepInverseIonisationProjToProjCase,
708 G4cout <<
"G4AdjointPhysicsList::SetCuts:";
Definition of the G4AdjointPhysicsMessenger class.
virtual ~G4AdjointPhysicsList()
G4double fCS_biasing_factor_ionisation
void ConstructAdjointParticles()
static constexpr double MeV
static G4AntiNeutron * AntiNeutronDefinition()
void SetDirectParticle(G4ParticleDefinition *p)
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
static G4ChargedGeantino * ChargedGeantinoDefinition()
static constexpr double keV
static constexpr double mm
static G4KaonZero * KaonZeroDefinition()
G4double fEmax_adj_models
static G4AdjointElectron * AdjointElectronDefinition()
const G4String & GetParticleName() const
static G4AdjointElectron * AdjointElectron()
virtual void ConstructProcess()
G4bool fUse_forced_interaction
virtual G4bool IsApplicable(const G4ParticleDefinition &) override
static G4Proton * Proton()
static G4PionPlus * PionPlusDefinition()
static G4KaonZeroShort * KaonZeroShortDefinition()
G4eIonisation * fEminusIonisation
void SetProcessOrdering(G4VProcess *aProcess, G4ProcessVectorDoItIndex idDoIt, G4int ordDoIt=ordDefault)
static G4AdjointProton * AdjointProtonDefinition()
static G4MuonMinus * MuonMinusDefinition()
static G4AdjointGamma * AdjointGamma()
G4double fCS_biasing_factor_brem
G4ParticleTable::G4PTblDicIterator * GetParticleIterator() const
G4int AddProcess(G4VProcess *aProcess, G4int ordAtRestDoIt=ordInActive, G4int ordAlongSteptDoIt=ordInActive, G4int ordPostStepDoIt=ordInActive)
void RegisterAdjointBremModel(G4VEmAdjointModel *aAdjointBremModel)
void SetProcessManager(G4ProcessManager *aProcessManager)
static G4Proton * ProtonDefinition()
void SetLossFluctuations(G4bool val)
static G4AdjointGamma * AdjointGammaDefinition()
static G4PionZero * PionZeroDefinition()
void SetProcessOrderingToFirst(G4VProcess *aProcess, G4ProcessVectorDoItIndex idDoIt)
G4double fCS_biasing_factor_PEeffect
static G4OpticalPhoton * OpticalPhotonDefinition()
static G4AdjointProton * AdjointProton()
G4double fEmin_adj_models
void RegisterAdjointParticle(G4ParticleDefinition *aPartDef)
void SetDirectEnergyLossProcess(G4VEnergyLossProcess *aProcess)
static G4PionMinus * PionMinusDefinition()
static G4Electron * Electron()
static G4Electron * ElectronDefinition()
static G4AdjointCSManager * GetAdjointCSManager()
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
static G4AntiNeutrinoMu * AntiNeutrinoMuDefinition()
static G4KaonMinus * KaonMinusDefinition()
static G4Gamma * GammaDefinition()
void SetEmModel(G4VMscModel *, size_t index=0)
G4ProcessManager * GetProcessManager() const
static G4NeutrinoE * NeutrinoEDefinition()
G4double fCS_biasing_factor_compton
void SetLossFluctuations(G4bool val)
Definition of the G4AdjointPhysicsList class.
virtual void ConstructParticle()
static G4KaonZeroLong * KaonZeroLongDefinition()
virtual void SetCSBiasingFactor(G4double aVal)
static G4Neutron * NeutronDefinition()
std::vector< G4InuclElementaryParticle >::iterator particleIterator
G4bool fUse_egain_fluctuation
void SetLowEnergyLimit(G4double aVal)
G4GLOB_DLL std::ostream G4cout
static G4AntiKaonZero * AntiKaonZeroDefinition()
static G4Eta * EtaDefinition()
void SetCutValue(G4double aCut, const G4String &pname)
G4AdjointPhysicsMessenger * fPhysicsMessenger
static G4Positron * PositronDefinition()
static G4NeutrinoMu * NeutrinoMuDefinition()
static G4Geantino * GeantinoDefinition()
void SetHighEnergyLimit(G4double aVal)
static G4KaonPlus * KaonPlusDefinition()
static G4MuonPlus * MuonPlusDefinition()
void SetVerboseLevel(G4int value)
static G4AdjointSimManager * GetInstance()
void ConsiderParticleAsPrimary(const G4String &particle_name)
void DumpCutValuesTable(G4int flag=1)
static G4AntiProton * AntiProtonDefinition()
void SetDirectProcess(G4VEmProcess *aProcess)
G4bool fUse_gamma_conversion
static G4AntiNeutrinoE * AntiNeutrinoEDefinition()
static G4EtaPrime * EtaPrimeDefinition()
G4hIonisation * fPIonisation
void SetLossFluctuationFlag(bool aBool)
void SetUseMatrix(G4bool aBool)