GEMC  2.2
Geant4 Monte-Carlo Framework
SConstruct
Go to the documentation of this file.
1 from init_env import init_environment
2 
3 env = init_environment("qt5 geant4 clhep evio xercesc")
4 
5 # env.Replace(CXX = "/apps/gcc/4.7.2/bin/g++")
6 
7 # Materials
8 env.Append(CPPPATH = 'materials')
9 materials_sources = Split("""
10  materials/material_factory.cc
11  materials/cpp_materials.cc
12  materials/mysql_materials.cc
13  materials/text_materials.cc
14  materials/gdml_materials.cc""")
15 env.Library(source = materials_sources, target = "lib/materials")
16 
17 # Mirrors
18 env.Append(CPPPATH = 'mirrors')
19 mirrors_sources = Split("""
20  mirrors/mirrors_factory.cc
21  mirrors/mysql_mirrors.cc
22  mirrors/text_mirrors.cc""")
23 env.Library(source = mirrors_sources, target = "lib/mirrors")
24 
25 
26 # Parameters
27 env.Append(CPPPATH = 'parameters')
28 parameters_sources = Split("""
29  parameters/parameter_factory.cc
30  parameters/mysql_parameters.cc
31  parameters/text_parameters.cc""")
32 env.Library(source = parameters_sources, target = "lib/parameters")
33 
34 
35 # Utilities
36 env.Append(CPPPATH = 'utilities')
37 util_sources = Split("""
38  utilities/string_utilities.cc
39  utilities/utils.cc
40  utilities/lStdHep.cc
41  utilities/lXDR.cc
42  utilities/options.cc""")
43 env.Library(source = util_sources, target = "lib/utilities")
44 
45 
46 # Detector
47 env.Append(CPPPATH = 'detector')
48 det_sources = Split("""
49  detector/detector.cc
50  detector/detector_factory.cc
51  detector/mysql_det_factory.cc
52  detector/gdml_det_factory.cc
53  detector/clara_det_factory.cc
54  detector/gdml_solids.cc
55  detector/text_det_factory.cc""")
56 env.Library(source = det_sources, target = "lib/detector")
57 
58 
59 # Sensitivity
60 env.Append(CPPPATH = 'sensitivity')
61 sensi_sources = Split("""
62  sensitivity/sensitiveDetector.cc
63  sensitivity/identifier.cc
64  sensitivity/Hit.cc
65  sensitivity/HitProcess.cc
66  sensitivity/sensitiveID.cc""")
67 env.Library(source = sensi_sources, target = "lib/sensitivity")
68 
69 
70 # Physics
71 env.Append(CPPPATH = 'physics')
72 phys_sources = Split("""
73  physics/PhysicsList.cc
74  physics/PhysicsListMessenger.cc""")
75 env.Library(source = phys_sources, target = "lib/physics")
76 
77 # Fields
78 env.Append(CPPPATH = 'fields')
79 field_sources = Split("""
80  fields/field.cc
81  fields/fieldFactory.cc
82  fields/asciiField.cc
83  fields/mappedField.cc
84  fields/multipoleField.cc
85  fields/symmetries/dipole.cc
86  fields/symmetries/cylindrical.cc
87  fields/symmetries/phi-segmented.cc""")
88 env.Library(source = field_sources, target = "lib/fields")
89 
90 
91 # Hit Processes
92 env.Append(CPPPATH = ['hitprocess', 'hitprocess/clas12', 'hitprocess/clas12/svt', 'hitprocess/clas12/micromegas'])
93 env.Append(CPPPATH = ['hitprocess/Aprime', 'hitprocess/GlueX', 'hitprocess/solid'])
94 hitp_sources = Split("""
95  hitprocess/HitProcess_MapRegister.cc
96  hitprocess/flux_hitprocess.cc
97  hitprocess/clas12/micromegas/FMT_hitprocess.cc
98  hitprocess/clas12/micromegas/fmt_strip.cc
99  hitprocess/clas12/micromegas/BMT_hitprocess.cc
100  hitprocess/clas12/micromegas/bmt_strip.cc
101  hitprocess/clas12/micromegas/ftm_hitprocess.cc
102  hitprocess/clas12/micromegas/ftm_strip.cc
103  hitprocess/clas12/svt/bst_hitprocess.cc
104  hitprocess/clas12/svt/bst_strip.cc
105  hitprocess/clas12/ctof_hitprocess.cc
106  hitprocess/clas12/dc_hitprocess.cc
107  hitprocess/clas12/ec_hitprocess.cc
108  hitprocess/clas12/ecs_hitprocess.cc
109  hitprocess/clas12/ftof_hitprocess.cc
110  hitprocess/clas12/ft_cal_hitprocess.cc
111  hitprocess/clas12/ft_hodo_hitprocess.cc
112  hitprocess/clas12/htcc_hitprocess.cc
113  hitprocess/clas12/pcal_hitprocess.cc
114  hitprocess/clas12/rich_hitprocess.cc
115  hitprocess/HPS/ECAL_hitprocess.cc
116  hitprocess/HPS/SVT_hitprocess.cc
117  hitprocess/HPS/muon_hodo_hitprocess.cc""")
118 env.Library(source = hitp_sources, target = "lib/hitprocess")
119 
120 
121 # Output
122 env.Append(CPPPATH = 'output')
123 output_sources = Split("""
124  output/outputFactory.cc
125  output/evio_output.cc
126  output/txt_output.cc
127  output/gbank.cc""")
128 env.Library(source = output_sources, target = "lib/output")
129 
130 # GUI
131 env.Append(CPPPATH = 'gui/src')
132 gui_sources = Split("""
133  gui/src/gemc_MainGui.cc
134  gui/src/detector_editor.cc
135  gui/src/runControl/run_control.cc
136  gui/src/runControl/primaryTab.cc
137  gui/src/runControl/momControls.cc
138  gui/src/runControl/vtxControls.cc
139  gui/src/camera_control.cc
140  gui/src/detector_tree.cc
141  gui/src/infos.cc
142  gui/src/g4dialog.cc
143  gui/src/gsignal.cc
144  gui/src/physicsListGui.cc""")
145 env.Library(source = gui_sources, target = "lib/gui")
146 
147 
148 # gemc
149 env.Append(CPPPATH = 'src')
150 gemc_sources = Split("""
151  gemc.cc
152  src/dmesg_init.cc
153  src/run_conditions.cc
154  src/gemc_options.cc
155  src/MDetectorConstruction.cc
156  src/MDetectorMessenger.cc
157  src/MEventAction.cc
158  src/MPrimaryGeneratorAction.cc
159  src/MSteppingAction.cc""")
160 
161 env.Append(LIBPATH = ['lib'])
162 env.Prepend(LIBS = ['materials', 'mirrors', 'parameters', 'utilities', 'detector', 'sensitivity', 'physics', 'fields', 'hitprocess', 'output', 'gui'])
163 env.Program(source = gemc_sources, target = "gemc")
164 
165 
166 if env['LIBRARY'] == "static":
167  env.Library(source = gemc_sources, target = "gemc")
168 
169 
170 if env['LIBRARY'] == "shared":
171  env.SharedLibrary(source = gemc_sources, target = "gemc")
172 
173 
174 
175 
176 
177 
178