Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G4AdjointPrimaryGenerator.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//
26// $Id$
27//
28/////////////////////////////////////////////////////////////////////////////////
29// Module: G4AdjointPrimaryGenerator
30// Author: L. Desorgher
31// Organisation: SpaceIT GmbH
32// Contract: ESA contract 21435/08/NL/AT
33// Customer: ESA/ESTEC
34/////////////////////////////////////////////////////////////////////////////////
35//
36// CHANGE HISTORY
37// --------------
38// ChangeHistory:
39// November 2009 creation by L. Desorgher, Splitting of G4AdjointPrimaryGeneratorAction in two classes G4AdjointPrimaryGeneratorAction and G4AdjointPrimaryGenerator
40//
41//-------------------------------------------------------------
42// Documentation:
43// This class represents the Primary Generator that generate vertex (energy,position and direction) of primary adjoint particles.
44// It is used by G4AdjointPrimaryGeneratorAction. If the adjoint source is selected by the user as being on the external boundary of a volume
45// it uses the class G4AdjointPosOnPhysVolGenerator to generate the vertex positions and directions. Otherwise G4SingleParticleSource is used.
46//
47//
48//
49#ifndef G4AdjointPrimaryGenerator_h
50#define G4AdjointPrimaryGenerator_h 1
51#include "globals.hh"
52#include"G4ThreeVector.hh"
53#include <vector>
54#include <map>
55#include <iterator>
56
58class G4Event;
61/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
62//
64{
65 public: //constructor, destructor
66
69
70 public: //public methods
71
75
76 private: //attributes
77
78 //The class responsible for the random generation of positions and direction of primaries for adjoint source set on the external surface of
79 //a G4 volume
80 G4AdjointPosOnPhysVolGenerator* theG4AdjointPosOnPhysVolGenerator;
81
82 G4SingleParticleSource* theSingleParticleSource;
83
84 //Type of adjoint source
85 //--------------------
86 G4String type_of_adjoint_source; //Spherical ExtSurfaceOfAVolume
87 G4double radius_spherical_source;
88 G4ThreeVector center_spherical_source;
89};
90#endif
91
double G4double
Definition: G4Types.hh:64
void SetSphericalAdjointPrimarySource(G4double radius, G4ThreeVector pos)
void GenerateAdjointPrimaryVertex(G4Event *anEvt, G4ParticleDefinition *adj_part, G4double E1, G4double E2)
void SetAdjointPrimarySourceOnAnExtSurfaceOfAVolume(const G4String &volume_name)