19#ifndef BDSBOPTRMULTIPARTICLECHANGECROSSSECTION_H
20#define BDSBOPTRMULTIPARTICLECHANGECROSSSECTION_H
22#include "G4Version.hh"
23#if G4VERSION_NUMBER > 1009
25#include "G4VBiasingOperator.hh"
27class G4ParticleDefinition;
48 void AddParticle(
const G4String& particleName);
49 void SetBias(
const G4String& biasObjectName,
50 const G4String& particleName,
51 const G4String& process,
54 void StartTracking(
const G4Track* track)
override;
57 virtual G4VBiasingOperation* ProposeOccurenceBiasingOperation(
const G4Track* track,
58 const G4BiasingProcessInterface* callingProcess)
override;
60 virtual G4VBiasingOperation* ProposeFinalStateBiasingOperation(
const G4Track*,
const G4BiasingProcessInterface*)
override
62 virtual G4VBiasingOperation* ProposeNonPhysicsBiasingOperation(
const G4Track*,
const G4BiasingProcessInterface*)
override
64 virtual void OperationApplied(
const G4BiasingProcessInterface* callingProcess,
65 G4BiasingAppliedCase biasingCase,
66 G4VBiasingOperation* occurenceOperationApplied,
67 G4double weightForOccurenceInteraction,
68 G4VBiasingOperation* finalStateOperationApplied,
69 const G4VParticleChange* particleChangeProduced)
override;
71 using G4VBiasingOperator::OperationApplied;
73 std::map<const G4ParticleDefinition*, BDSBOptrChangeCrossSection*> fBOptrForParticle;
74 std::vector<const G4ParticleDefinition*> fParticlesToBias;
Operator that changes cross section of a process for a particle.
Multi-particle cross-section changer.
G4int fnInteractions
Count number of biased interations for current track.