233 if (fUse_brem || fUse_peeffect ||fUse_compton)
237 if (fUse_eionisation) {
242 if (fUse_pionisation) {
250 if (fUse_brem && fUse_eionisation)
281 if (fUse_eionisation) {
288 fCS_biasing_factor_ionisation);
289 theeInverseIonisationProjToProjCase =
291 theeInverseIonisationModel);
292 theeInverseIonisationProdToProjCase =
294 theeInverseIonisationModel);
304 if (fUse_brem && fUse_eionisation) {
309 fCS_biasing_factor_brem);
311 true,
"Inv_eBrem",theeInverseBremsstrahlungModel);
313 false,
"Inv_eBrem1",theeInverseBremsstrahlungModel);
317 if (!fUse_forced_interaction) theeInverseBremsstrahlungProdToProjCase
319 theeInverseBremsstrahlungModel);
322 if (fUse_forced_interaction){
323 theForcedInteractionForGamma =
326 theeInverseBremsstrahlungModel);
346 if (!fUse_forced_interaction) theeInverseComptonProjToProjCase =
349 theeInverseComptonModel);
350 if (fUse_forced_interaction){
351 if (!theForcedInteractionForGamma ) theForcedInteractionForGamma =
353 theForcedInteractionForGamma->
354 RegisterAdjointComptonModel(theeInverseComptonModel);
370 fCS_biasing_factor_PEeffect);
372 theInversePhotoElectricModel);
383 if (fUse_pionisation) {
390 "Inv_pIon",thepInverseIonisationModel);
392 "Inv_pIon1",thepInverseIonisationModel);
410 if (particleName ==
"e-") {
411 if (fUse_ms && fUse_eionisation) pmanager->
AddProcess(theeminusMS);
412 if (fUse_eionisation){
417 if (fUse_brem && fUse_eionisation) {
418 pmanager->
AddProcess(theeminusBremsstrahlung);
420 RegisterEnergyLossProcess(theeminusBremsstrahlung,particle);
423 if (fUse_ms && fUse_eionisation) {
427 if (fUse_eionisation) {
431 if (fUse_brem && fUse_eionisation) {
437 if (fUse_ms && fUse_eionisation) {
441 if (fUse_eionisation) {
445 if (fUse_brem && fUse_eionisation) {
452 if (particleName ==
"adj_e-") {
454 if (fUse_eionisation ) {
457 fUse_egain_fluctuation);
461 pmanager->
AddProcess(theContinuousGainOfEnergy);
477 pmanager->
AddProcess(theAlongStepWeightCorrection);
482 if (fUse_eionisation) {
483 pmanager->
AddProcess(theeInverseIonisationProjToProjCase);
484 pmanager->
AddProcess(theeInverseIonisationProdToProjCase);
492 if (fUse_brem && fUse_eionisation) {
493 pmanager->
AddProcess(theeInverseBremsstrahlungProjToProjCase);
496 theeInverseBremsstrahlungProjToProjCase,
501 pmanager->
AddProcess(theeInverseComptonProdToProjCase);
512 if (fUse_pionisation) {
513 pmanager->
AddProcess(thepInverseIonisationProdToProjCase);
518 if (fUse_ms && fUse_eionisation) {
526 if(particleName ==
"adj_gamma") {
528 if (!fUse_forced_interaction){
531 pmanager->
AddProcess(theAlongStepWeightCorrection);
535 if (fUse_brem && fUse_eionisation) {
536 pmanager->
AddProcess(theeInverseBremsstrahlungProdToProjCase);
539 theeInverseBremsstrahlungProdToProjCase,
550 if (theForcedInteractionForGamma) {
551 pmanager->
AddProcess(theForcedInteractionForGamma);
561 if (particleName ==
"gamma") {
565 RegisterEmProcess(theComptonScattering,particle);
570 RegisterEmProcess(thePEEffect,particle);
572 if (fUse_gamma_conversion) {
577 if (particleName ==
"e+" && fUse_gamma_conversion) {
584 pmanager->
AddProcess(theeplusMultipleScattering);
605 if (particleName ==
"proton" && fUse_pionisation) {
606 if (fUse_ms && fUse_pionisation) pmanager->
AddProcess(thepMS);
608 if (fUse_pionisation){
615 if (fUse_ms && fUse_pionisation) {
620 if (fUse_pionisation) {
626 if (fUse_ms && fUse_pionisation) {
631 if (fUse_pionisation) {
638 if (particleName ==
"adj_proton" && fUse_pionisation) {
640 if (fUse_pionisation ) {
643 fUse_egain_fluctuation);
646 pmanager->
AddProcess(theContinuousGainOfEnergy);
663 pmanager->
AddProcess(theAlongStepWeightCorrection);
668 if (fUse_pionisation) {
669 pmanager->
AddProcess(thepInverseIonisationProjToProjCase);
672 thepInverseIonisationProjToProjCase,
676 if (fUse_ms && fUse_pionisation) {
static G4AdjointSimManager * GetInstance()
static G4AdjointGamma * AdjointGamma()
void SetProcessManager(G4ProcessManager *aProcessManager)
void SetProcessOrderingToFirst(G4VProcess *aProcess, G4ProcessVectorDoItIndex idDoIt)
void SetNewDisplacementFlag(G4bool)
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
static G4AdjointElectron * AdjointElectron()
void SetNewDisplacementFlag(G4bool)
void SetLowEnergyLimit(G4double aVal)
const G4String & GetParticleName() const
void SetHighEnergyLimit(G4double aVal)
void RegisterAdjointParticle(G4ParticleDefinition *aPartDef)
void SetDirectEnergyLossProcess(G4VEnergyLossProcess *aProcess)
void SetLossFluctuations(G4bool val)
G4int AddProcess(G4VProcess *aProcess, G4int ordAtRestDoIt=ordInActive, G4int ordAlongSteptDoIt=ordInActive, G4int ordPostStepDoIt=ordInActive)
void SetDirectParticle(G4ParticleDefinition *p)
static G4Proton * Proton()
void SetUseMatrix(G4bool aBool)
void SetProcessOrdering(G4VProcess *aProcess, G4ProcessVectorDoItIndex idDoIt, G4int ordDoIt=ordDefault)
void SetDirectProcess(G4VEmProcess *aProcess)
void SetLossFluctuations(G4bool val)
static G4AdjointProton * AdjointProton()
G4ProcessManager * GetProcessManager() const
void ConsiderParticleAsPrimary(const G4String &particle_name)
void RegisterAdjointBremModel(G4VEmAdjointModel *aAdjointBremModel)
virtual void SetCSBiasingFactor(G4double aVal)
void AddEmModel(G4int order, G4VEmModel *, const G4Region *region=nullptr)
G4eIonisation * fEminusIonisation
std::vector< G4InuclElementaryParticle >::iterator particleIterator
static G4Electron * Electron()
G4ParticleTable::G4PTblDicIterator * GetParticleIterator() const
static G4AdjointCSManager * GetAdjointCSManager()
G4hIonisation * fPIonisation