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
ECCE @ EIC Software
Deprecated List
Modules
Namespaces
Classes
Files
File List
acts
analysis
coresoftware
Doxygen_Assist
ecce-detectors
fun4all_eicdetectors
geant4
macros
online_distribution
tutorials
blob
master
AnaTutorial
AnaTutorialECCE
block
CaloAna
clusters
CreateSubsysRecoModule
cylinder
DisplayOn.C
Fun4All_G4_Cylinder.C
MyHitTTree.C
dst_workflow
eventgenerator_display
IonGun
MagneticField
materialscan
Momentum
myjetanalysis
MyOwnTTree
PHG4DSTReader
doxygen_mainpage.h
File Members
External Links
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
Fun4All_G4_Cylinder.C
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file Fun4All_G4_Cylinder.C
1
#pragma once
2
#if ROOT_VERSION_CODE >= ROOT_VERSION(6,00,0)
3
#include <
fun4all/SubsysReco.h
>
4
#include <
fun4all/Fun4AllServer.h
>
5
#include <
fun4all/Fun4AllInputManager.h
>
6
#include <
fun4all/Fun4AllDstOutputManager.h
>
7
#include <
fun4all/Fun4AllOutputManager.h
>
8
#include <
fun4all/Fun4AllDummyInputManager.h
>
9
#include <
g4detectors/PHG4CylinderSubsystem.h
>
10
#include <
g4eval/PHG4DSTReader.h
>
11
#include <
g4main/PHG4ParticleGenerator.h
>
12
#include <
g4main/PHG4Reco.h
>
13
#include <
g4main/PHG4TruthSubsystem.h
>
14
#include <
phool/recoConsts.h
>
15
R__LOAD_LIBRARY
(libg4eval.so)
16
R__LOAD_LIBRARY
(libfun4all.so)
17
R__LOAD_LIBRARY
(libg4testbench.so)
18
R__LOAD_LIBRARY
(libg4detectors.so)
19
#endif
20
int
Fun4All_G4_Cylinder
(
const
int
nEvents
= 10,
const
char
* outfile = NULL)
21
{
22
23
gSystem->Load(
"libfun4all"
);
24
gSystem->Load(
"libg4detectors.so"
);
25
gSystem->Load(
"libg4testbench.so"
);
26
28
// Make the Server
30
Fun4AllServer
*se =
Fun4AllServer::instance
();
31
se->
Verbosity
(0);
32
33
recoConsts
*rc =
recoConsts::instance
();
34
// rc->set_IntFlag("RANDOMSEED", 12345); // if you want to use a fixed seed
35
// PHG4ParticleGenerator generates particle
36
// distributions in eta/phi/mom range
37
PHG4ParticleGenerator
*gen =
new
PHG4ParticleGenerator
(
"PGENERATOR"
);
38
//gen->set_name("gamma");
39
gen->
set_name
(
"e+"
);
40
gen->
set_vtx
(0, 0, 0);
41
gen->
set_eta_range
(-0.05, +0.05);
42
gen->
set_mom_range
(0.4, 10.0);
43
gen->
set_phi_range
(0., 90. / 180.*TMath::Pi());
// 0-90 deg
44
se->
registerSubsystem
(gen);
45
46
PHG4Reco
* g4Reco =
new
PHG4Reco
();
47
g4Reco->
set_field
(1.5);
// 1.5 T solenoidal field
48
49
50
double
si_thickness[6] = {0.02, 0.02, 0.0625, 0.032, 0.032, 0.032};
51
double
svxrad[6] = {2.71, 4.63, 11.765, 25.46, 41.38, 63.66};
52
double
length
[6] = {20., 20., 36., -1., - 1., - 1.};
// -1 use eta coverage to determine length
53
PHG4CylinderSubsystem
*cyl;
54
// here is our silicon:
55
for
(
int
ilayer = 0; ilayer < 6; ilayer++)
56
{
57
cyl =
new
PHG4CylinderSubsystem
(
"SVTX"
, ilayer);
58
cyl->
set_double_param
(
"radius"
,svxrad[ilayer]);
59
cyl->
set_string_param
(
"material"
,
"G4_Si"
);
60
cyl->
set_double_param
(
"thickness"
,si_thickness[ilayer]);
61
cyl->
SetActive
();
62
cyl->
SuperDetector
(
"SVTX"
);
63
if
(length[ilayer] > 0)
64
{
65
cyl->
set_double_param
(
"length"
,length[ilayer]);
66
}
67
g4Reco->
registerSubsystem
( cyl );
68
}
69
se->
registerSubsystem
( g4Reco );
70
71
if
(outfile)
72
{
73
Fun4AllOutputManager
*out =
new
Fun4AllDstOutputManager
(
"DSTOUT"
,outfile);
74
se->
registerOutputManager
(out);
75
}
76
Fun4AllInputManager
*
in
=
new
Fun4AllDummyInputManager
(
"JADE"
);
77
se->
registerInputManager
( in );
78
79
80
if
(
nEvents
> 0)
81
{
82
se->
run
(
nEvents
);
83
// finish job - close and save output files
84
se->
End
();
85
std::cout <<
"All done"
<< std::endl;
86
87
// cleanup - delete the server and exit
88
delete
se;
89
gSystem->Exit(0);
90
}
91
return
0;
92
}
93
94
PHG4ParticleGenerator
*
get_gen
(
const
char
*
name
=
"PGENERATOR"
)
95
{
96
Fun4AllServer
*se =
Fun4AllServer::instance
();
97
PHG4ParticleGenerator
*pgun = (
PHG4ParticleGenerator
*) se->
getSubsysReco
(
name
);
98
return
pgun;
99
}
tutorials
blob
master
cylinder
Fun4All_G4_Cylinder.C
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:26:00
using
1.8.2 with
ECCE GitHub integration