Geant4
10.03.p03
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
GB02BOptrMultiParticleForceCollision.hh
Go to the documentation of this file.
1
//
2
// ********************************************************************
3
// * License and Disclaimer *
4
// * *
5
// * The Geant4 software is copyright of the Copyright Holders of *
6
// * the Geant4 Collaboration. It is provided under the terms and *
7
// * conditions of the Geant4 Software License, included in the file *
8
// * LICENSE and available at http://cern.ch/geant4/license . These *
9
// * include a list of copyright holders. *
10
// * *
11
// * Neither the authors of this software system, nor their employing *
12
// * institutes,nor the agencies providing financial support for this *
13
// * work make any representation or warranty, express or implied, *
14
// * regarding this software system or assume any liability for its *
15
// * use. Please see the license in the file LICENSE and URL above *
16
// * for the full disclaimer and the limitation of liability. *
17
// * *
18
// * This code implementation is the result of the scientific and *
19
// * technical work of the GEANT4 collaboration. *
20
// * By using, copying, modifying or distributing the software (or *
21
// * any work based on the software) you agree to acknowledge its *
22
// * use in resulting scientific publications, and indicate your *
23
// * acceptance of all terms of the Geant4 Software license. *
24
// ********************************************************************
25
//
28
//
29
#ifndef GB02BOptrMultiParticleForceCollision_hh
30
#define GB02BOptrMultiParticleForceCollision_hh 1
31
32
#include "
G4VBiasingOperator.hh
"
33
class
G4BOptrForceCollision
;
34
class
G4ParticleDefinition
;
35
36
#include <map>
37
38
class
GB02BOptrMultiParticleForceCollision
:
public
G4VBiasingOperator
{
39
public
:
40
GB02BOptrMultiParticleForceCollision
();
41
virtual
~GB02BOptrMultiParticleForceCollision
() {}
42
43
// --------------------------
44
// -- Specific to this class:
45
// --------------------------
46
// -- Declare particles to be biased:
47
void
AddParticle
(
G4String
particleName );
48
49
private
:
50
// -----------------------------
51
// -- Mandatory from base class:
52
// -----------------------------
53
virtual
G4VBiasingOperation
*
54
ProposeNonPhysicsBiasingOperation(
const
G4Track
* track,
55
const
G4BiasingProcessInterface
* callingProcess)
final
;
56
virtual
G4VBiasingOperation
*
57
ProposeOccurenceBiasingOperation (
const
G4Track
* track,
58
const
G4BiasingProcessInterface
* callingProcess)
final
;
59
virtual
G4VBiasingOperation
*
60
ProposeFinalStateBiasingOperation(
const
G4Track
* track,
61
const
G4BiasingProcessInterface
* callingProcess)
final
;
62
63
private
:
64
// -------------------------------
65
// -- Optionnal, from base class :
66
// -------------------------------
67
// -- Here, these are needed implementions to forward calls to the underneath
68
// -- G4BOptrForceCollision biasing operator
69
void
OperationApplied(
const
G4BiasingProcessInterface
* callingProcess,
70
G4BiasingAppliedCase
biasingCase,
71
G4VBiasingOperation
* operationApplied,
72
const
G4VParticleChange
* particleChangeProduced )
final
;
73
void
OperationApplied(
const
G4BiasingProcessInterface
* callingProcess,
74
G4BiasingAppliedCase
biasingCase,
75
G4VBiasingOperation
* occurenceOperationApplied,
76
G4double
weightForOccurenceInteraction,
77
G4VBiasingOperation
* finalStateOperationApplied,
78
const
G4VParticleChange
* particleChangeProduced )
final
;
79
80
void
ExitBiasing(
const
G4Track
*,
const
G4BiasingProcessInterface
* ) final;
81
82
public:
83
virtual
void
StartTracking
(
const
G4Track
* track ) final;
84
85
private:
86
std::map <
const
G4ParticleDefinition
*,
G4BOptrForceCollision
* > fBOptrForParticle;
87
std::vector <
const
G4ParticleDefinition* > fParticlesToBias;
88
G4BOptrForceCollision
* fCurrentOperator;
89
};
90
91
#endif
G4BiasingProcessInterface
Definition:
G4BiasingProcessInterface.hh:70
GB02BOptrMultiParticleForceCollision::~GB02BOptrMultiParticleForceCollision
virtual ~GB02BOptrMultiParticleForceCollision()
Definition:
GB02BOptrMultiParticleForceCollision.hh:41
G4ParticleDefinition
Definition:
G4ParticleDefinition.hh:72
pyG4MagneticField::const
const G4ThreeVector const G4double const
Definition:
pyG4MagneticField.cc:80
GB02BOptrMultiParticleForceCollision::StartTracking
virtual void StartTracking(const G4Track *track) final
Definition:
GB02BOptrMultiParticleForceCollision.cc:106
G4BiasingAppliedCase
G4BiasingAppliedCase
Definition:
G4BiasingAppliedCase.hh:46
GB02BOptrMultiParticleForceCollision::GB02BOptrMultiParticleForceCollision
GB02BOptrMultiParticleForceCollision()
Definition:
GB02BOptrMultiParticleForceCollision.cc:38
GB02BOptrMultiParticleForceCollision::AddParticle
void AddParticle(G4String particleName)
Definition:
GB02BOptrMultiParticleForceCollision.cc:45
G4VBiasingOperation
Definition:
G4VBiasingOperation.hh:77
G4VBiasingOperator.hh
G4BOptrForceCollision
Definition:
G4BOptrForceCollision.hh:59
G4Track
Definition:
G4Track.hh:76
GB02BOptrMultiParticleForceCollision
Definition:
GB02BOptrMultiParticleForceCollision.hh:38
G4double
double G4double
Definition:
G4Types.hh:76
G4VParticleChange
Definition:
G4VParticleChange.hh:94
G4VBiasingOperator
Definition:
G4VBiasingOperator.hh:181
G4String
Definition:
G4String.hh:45
source
geant4.10.03.p03
examples
extended
biasing
GB02
include
GB02BOptrMultiParticleForceCollision.hh
Generated on Tue Nov 28 2017 21:43:48 for Geant4 by
1.8.5