52 fEminusIonisation(0),fPIonisation(0),
53 fUse_eionisation(true),fUse_pionisation(true),
54 fUse_brem(true),fUse_compton(true),fUse_ms(true),
55 fUse_egain_fluctuation(true),fUse_peeffect(true),
56 fEmin_adj_models(1.*
keV), fEmax_adj_models(1.*
MeV),
57 fCS_biasing_factor_compton(1.),fCS_biasing_factor_brem(1.),
58 fCS_biasing_factor_ionisation(1.),fCS_biasing_factor_PEeffect(1.)
221 if (fUse_brem || fUse_peeffect ||fUse_compton)
225 if (fUse_eionisation) {
231 if (fUse_pionisation) {
239 if (fUse_brem && fUse_eionisation)
263 if (fUse_eionisation) {
270 fCS_biasing_factor_ionisation);
271 theeInverseIonisationProjToProjCase =
273 theeInverseIonisationModel);
274 theeInverseIonisationProdToProjCase =
276 theeInverseIonisationModel);
286 if (fUse_brem && fUse_eionisation) {
291 fCS_biasing_factor_brem);
293 true,
"Inv_eBrem",theeInverseBremsstrahlungModel);
295 false,
"Inv_eBrem1",theeInverseBremsstrahlungModel);
316 theeInverseComptonModel);
318 theeInverseComptonModel);
333 fCS_biasing_factor_PEeffect);
335 theInversePhotoElectricModel);
346 if (fUse_pionisation) {
353 "Inv_pIon",thepInverseIonisationModel);
355 "Inv_pIon1",thepInverseIonisationModel);
374 if (particleName ==
"e-") {
375 if (fUse_ms && fUse_eionisation) pmanager->
AddProcess(theeminusMS);
376 if (fUse_eionisation){
381 if (fUse_brem && fUse_eionisation) {
382 pmanager->
AddProcess(theeminusBremsstrahlung);
384 RegisterEnergyLossProcess(theeminusBremsstrahlung,particle);
387 if (fUse_ms && fUse_eionisation) {
391 if (fUse_eionisation) {
395 if (fUse_brem && fUse_eionisation) {
401 if (fUse_ms && fUse_eionisation) {
405 if (fUse_eionisation) {
409 if (fUse_brem && fUse_eionisation) {
416 if (particleName ==
"adj_e-") {
418 if (fUse_eionisation ) {
421 fUse_egain_fluctuation);
425 pmanager->
AddProcess(theContinuousGainOfEnergy);
442 pmanager->
AddProcess(theAlongStepWeightCorrection);
447 if (fUse_eionisation) {
448 pmanager->
AddProcess(theeInverseIonisationProjToProjCase);
449 pmanager->
AddProcess(theeInverseIonisationProdToProjCase);
458 if (fUse_brem && fUse_eionisation) {
459 pmanager->
AddProcess(theeInverseBremsstrahlungProjToProjCase);
462 theeInverseBremsstrahlungProjToProjCase,
467 pmanager->
AddProcess(theeInverseComptonProdToProjCase);
478 if (fUse_pionisation) {
479 pmanager->
AddProcess(thepInverseIonisationProdToProjCase);
484 if (fUse_ms && fUse_eionisation) {
491 if(particleName ==
"adj_gamma") {
495 pmanager->
AddProcess(theAlongStepWeightCorrection);
499 if (fUse_brem && fUse_eionisation) {
500 pmanager->
AddProcess(theeInverseBremsstrahlungProdToProjCase);
503 theeInverseBremsstrahlungProdToProjCase,
514 if (particleName ==
"gamma") {
518 RegisterEmProcess(theComptonScattering,particle);
523 RegisterEmProcess(thePEEffect,particle);
525 if (fUse_gamma_conversion) {
530 if (particleName ==
"e+" && fUse_gamma_conversion) {
537 pmanager->
AddProcess(theeplusMultipleScattering);
558 if (particleName ==
"proton" && fUse_pionisation) {
559 if (fUse_ms && fUse_pionisation) pmanager->
AddProcess(thepMS);
561 if (fUse_pionisation){
568 if (fUse_ms && fUse_pionisation) {
573 if (fUse_pionisation) {
579 if (fUse_ms && fUse_pionisation) {
584 if (fUse_pionisation) {
591 if (particleName ==
"adj_proton" && fUse_pionisation) {
593 if (fUse_pionisation ) {
596 fUse_egain_fluctuation);
599 pmanager->
AddProcess(theContinuousGainOfEnergy);
616 pmanager->
AddProcess(theAlongStepWeightCorrection);
621 if (fUse_pionisation) {
622 pmanager->
AddProcess(thepInverseIonisationProjToProjCase);
625 thepInverseIonisationProjToProjCase,
629 if (fUse_ms && fUse_pionisation) {
662 G4cout <<
"G4AdjointPhysicsList::SetCuts:";
static G4Geantino * GeantinoDefinition()
static G4AdjointSimManager * GetInstance()
static G4AdjointGamma * AdjointGamma()
static G4Electron * ElectronDefinition()
static G4KaonPlus * KaonPlusDefinition()
static G4AdjointGamma * AdjointGammaDefinition()
static G4MuonPlus * MuonPlusDefinition()
void SetProcessManager(G4ProcessManager *aProcessManager)
void ConstructAdjointParticles()
void SetCutValue(G4double aCut, const G4String &pname)
void SetProcessOrderingToFirst(G4VProcess *aProcess, G4ProcessVectorDoItIndex idDoIt)
virtual G4bool IsApplicable(const G4ParticleDefinition &)
virtual void ConstructParticle()
static G4KaonMinus * KaonMinusDefinition()
static G4Proton * ProtonDefinition()
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
static G4KaonZero * KaonZeroDefinition()
static G4AntiKaonZero * AntiKaonZeroDefinition()
static G4AdjointElectron * AdjointElectron()
static G4KaonZeroShort * KaonZeroShortDefinition()
virtual void ConstructProcess()
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
static G4AntiProton * AntiProtonDefinition()
void SetLowEnergyLimit(G4double aVal)
G4ProcessManager * GetProcessManager() const
static G4AntiNeutron * AntiNeutronDefinition()
static G4PionZero * PionZeroDefinition()
const G4String & GetParticleName() const
static G4AdjointProton * AdjointProtonDefinition()
virtual ~G4AdjointPhysicsList()
void SetHighEnergyLimit(G4double aVal)
void RegisterAdjointParticle(G4ParticleDefinition *aPartDef)
void SetLossFluctuationFlag(bool aBool)
void SetDirectEnergyLossProcess(G4VEnergyLossProcess *aProcess)
void DumpCutValuesTable(G4int flag=1)
G4GLOB_DLL std::ostream G4cout
static G4PionMinus * PionMinusDefinition()
void SetLossFluctuations(G4bool val)
static G4KaonZeroLong * KaonZeroLongDefinition()
void SetVerboseLevel(G4int value)
G4int AddProcess(G4VProcess *aProcess, G4int ordAtRestDoIt=ordInActive, G4int ordAlongSteptDoIt=ordInActive, G4int ordPostStepDoIt=ordInActive)
static G4NeutrinoE * NeutrinoEDefinition()
void SetDirectParticle(G4ParticleDefinition *p)
static G4AntiNeutrinoMu * AntiNeutrinoMuDefinition()
static G4PionPlus * PionPlusDefinition()
static G4Proton * Proton()
void SetUseMatrix(G4bool aBool)
void SetProcessOrdering(G4VProcess *aProcess, G4ProcessVectorDoItIndex idDoIt, G4int ordDoIt=ordDefault)
void SetDirectProcess(G4VEmProcess *aProcess)
static G4Positron * PositronDefinition()
static G4EtaPrime * EtaPrimeDefinition()
void SetLossFluctuations(G4bool val)
static G4AdjointProton * AdjointProton()
Definition of the G4AdjointPhysicsList class.
static G4AdjointElectron * AdjointElectronDefinition()
void ConsiderParticleAsPrimary(const G4String &particle_name)
virtual void SetCSBiasingFactor(G4double aVal)
static G4MuonMinus * MuonMinusDefinition()
G4eIonisation * fEminusIonisation
static G4ChargedGeantino * ChargedGeantinoDefinition()
static G4Electron * Electron()
static G4AntiNeutrinoE * AntiNeutrinoEDefinition()
static G4OpticalPhoton * OpticalPhotonDefinition()
static G4NeutrinoMu * NeutrinoMuDefinition()
static G4Neutron * NeutronDefinition()
static G4AdjointCSManager * GetAdjointCSManager()
#define theParticleIterator
Definition of the G4AdjointPhysicsMessenger class.
G4hIonisation * fPIonisation
static G4Eta * EtaDefinition()
static G4Gamma * GammaDefinition()