Geant4
9.6.p02
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
geant4_9_6_p02
examples
advanced
underground_physics
include
DMXParticleSource.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
//
27
// --------------------------------------------------------------
28
// GEANT 4 - Underground Dark Matter Detector Advanced Example
29
//
30
// For information related to this code contact: Alex Howard
31
// e-mail: alexander.howard@cern.ch
32
// --------------------------------------------------------------
33
// Comments
34
//
35
// Underground Advanced
36
// by A. Howard and H. Araujo
37
// (27th November 2001)
38
//
39
// ParticleSource header
40
// --------------------------------------------------------------
42
// This particle source is a shortened version of G4GeneralParticleSource by
43
// C Ferguson, F Lei & P Truscott (University of Southampton / DERA), with
44
// some minor modifications.
46
47
#ifndef DMXParticleSource_h
48
#define DMXParticleSource_h 1
49
50
#include "
G4VPrimaryGenerator.hh
"
51
#include "
G4Navigator.hh
"
52
#include "
G4ParticleMomentum.hh
"
53
#include "
G4ParticleDefinition.hh
"
54
55
#include "
DMXParticleSourceMessenger.hh
"
56
57
58
class
DMXParticleSource
:
public
G4VPrimaryGenerator
{
59
60
public
:
61
DMXParticleSource
();
62
~DMXParticleSource
();
63
void
GeneratePrimaryVertex
(
G4Event
*evt);
64
65
public
:
66
67
// position distribution
68
void
SetPosDisType
(
G4String
);
69
void
SetPosDisShape
(
G4String
);
70
void
SetCentreCoords
(
G4ThreeVector
);
71
void
SetHalfZ
(
G4double
);
72
void
SetRadius
(
G4double
);
73
void
GeneratePointSource
();
74
void
GeneratePointsInVolume
();
75
G4bool
IsSourceConfined
();
76
void
ConfineSourceToVolume
(
G4String
);
77
78
// angular distribution
79
void
SetAngDistType
(
G4String
);
80
void
SetParticleMomentumDirection
(
G4ParticleMomentum
);
81
void
GenerateIsotropicFlux
();
82
83
// energy distribution
84
void
SetEnergyDisType
(
G4String
);
85
void
SetMonoEnergy
(
G4double
);
86
void
GenerateMonoEnergetic
();
87
inline
G4double
GetParticleEnergy
() {
return
particle_energy;}
88
89
// verbosity
90
void
SetVerbosity
(
G4int
);
91
92
// particle properties
93
void
SetParticleDefinition
(
G4ParticleDefinition
* aParticleDefinition);
94
inline
void
SetParticleCharge
(
G4double
aCharge)
95
{ particle_charge = aCharge; }
96
97
private
:
98
99
// position distribution
100
G4String
SourcePosType;
101
G4String
Shape;
102
G4double
halfz;
103
G4double
Radius;
104
G4ThreeVector
CentreCoords;
105
G4bool
Confine;
106
G4String
VolName;
107
G4String
AngDistType;
108
G4double
MinTheta, MaxTheta, MinPhi, MaxPhi;
109
G4double
Theta, Phi;
110
G4String
EnergyDisType;
111
G4double
MonoEnergy;
112
113
// particle properties
114
G4int
NumberOfParticlesToBeGenerated;
115
G4ParticleDefinition
* particle_definition;
116
G4ParticleMomentum
particle_momentum_direction;
117
G4double
particle_energy;
118
G4double
particle_charge;
119
G4ThreeVector
particle_position;
120
G4double
particle_time;
121
G4ThreeVector
particle_polarization;
122
123
// Verbose
124
G4int
verbosityLevel;
125
126
private
:
127
128
DMXParticleSourceMessenger
*theMessenger;
129
G4Navigator
*gNavigator;
130
131
132
};
133
134
135
#endif
136
Generated on Sat May 25 2013 14:32:15 for Geant4 by
1.8.4