ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
CCalPrimaryGeneratorAction.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file CCalPrimaryGeneratorAction.hh
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
//
27
// File: CCalPrimaryGeneratorAction.hh
28
// Description: Sets up particle beam
29
//
30
// By default 1 pi+ is shot from (0,0,0)
31
// in (1,1,0.1) direction at 100 GeV
32
// Use /gun/... commands to modify energy,origin,direction at run time.
33
// or/and
34
// /CCal/generator/random true/false to have random direction
35
// /CCal/generator/scan true/false to scan in eta/phi
36
// Use
37
// /CCal/generator/minEnergy
38
// /CCal/generator/maxEnergy
39
// /CCal/generator/minPhi
40
// /CCal/generator/maxPhi
41
// /CCal/generator/minEta
42
// /CCal/generator/maxEta
43
// to set the range in energy and direction of particles shot at random.
44
// Use
45
// /CCal/generator/stepsPhi
46
// /CCal/generator/stepsEta
47
// to set number of steps in Phi and Eta for the scan
48
//
50
51
#ifndef CCalPrimaryGeneratorAction_h
52
#define CCalPrimaryGeneratorAction_h 1
53
54
#include "
G4VUserPrimaryGeneratorAction.hh
"
55
#include "
G4ParticleGun.hh
"
56
#include "
G4ThreeVector.hh
"
57
#include "
G4ios.hh
"
58
#include "
G4Event.hh
"
59
#include "
G4VPrimaryGenerator.hh
"
60
61
#include "
CCalPrimaryGeneratorMessenger.hh
"
62
63
enum
generatorInputType
{
singleFixed
,
singleRandom
,
singleScan
};
64
65
class
CCalPrimaryGeneratorAction
:
public
G4VUserPrimaryGeneratorAction
{
66
public
:
67
CCalPrimaryGeneratorAction
();
68
~CCalPrimaryGeneratorAction
();
69
70
public
:
71
void
GeneratePrimaries
(
G4Event
* anEvent);
72
73
public
:
74
void
SetVerboseLevel
(
G4int
val);
75
void
SetRandom
(
G4String
val);
76
void
SetScan
(
G4String
val);
77
void
SetMinimumEnergy
(
G4double
p
);
78
void
SetMaximumEnergy
(
G4double
p);
79
void
SetMinimumPhi
(
G4double
p);
80
void
SetMaximumPhi
(
G4double
p);
81
void
SetStepsPhi
(
G4int
val);
82
void
SetMinimumEta
(
G4double
p);
83
void
SetMaximumEta
(
G4double
p);
84
void
SetStepsEta
(
G4int
val);
85
void
SetGunPosition
(
const
G4ThreeVector
&
pos
)
const
;
86
void
SetRunNo
(
G4int
val);
87
88
public
:
89
G4ThreeVector
GetParticlePosition
() {
return
particleGun
->
GetParticlePosition
();}
90
G4double
GetParticleEnergy
() {
return
particleGun
->
GetParticleEnergy
();}
91
92
private
:
93
CCalPrimaryGeneratorMessenger
*
gunMessenger
;
94
G4ParticleGun
*
particleGun
;
95
generatorInputType
generatorInput
;
96
97
G4int
verboseLevel
;
98
G4int
n_particle
;
99
G4String
particleName
;
100
G4double
particleEnergy
;
101
G4ThreeVector
particlePosition
;
102
G4ThreeVector
particleDir
;
103
104
G4double
energyMin
,
energyMax
;
105
G4double
etaMin
,
etaMax
;
106
G4double
phiMin
,
phiMax
;
107
G4int
etaSteps
,
phiSteps
;
108
109
G4int
isInitialized
;
110
G4double
etaValue
,
phiValue
;
111
G4int
scanSteps
;
112
113
private
:
114
void
initialize
();
115
void
print
(
G4int
val);
116
117
};
118
119
#endif
geant4
tree
geant4-10.6-release
examples
advanced
composite_calorimeter
include
CCalPrimaryGeneratorAction.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:56
using
1.8.2 with
ECCE GitHub integration