1 |
@ PREAMBLE |
2 |
This text will help you in installation of PamVMC simulator. This document will be |
3 |
updated after next release of tools. |
4 |
Installation was done on Debian machine, kernel 2.6.26-2-686, |
5 |
gcc version 3.4.6 (Debian 3.4.6-5) |
6 |
Everything was compiled under ROOT v. 5.23. PAMELA software (8th reduction) was corrected |
7 |
to be compiled (see list of changes below). PAMELA libraries was compiled, but executables, |
8 |
like chewbacca still doesn't work (need to be corrected). Anyway, PamVMC needs only libraries |
9 |
for getting information about real magnetic field. To proceess data, I prefer now to have |
10 |
also standard (second) PAMELA SW installaton under previous version of ROOT (5.20). @ |
11 |
|
12 |
This is a list of tools to do simulation: |
13 |
CLHEP 2.0.4.2 |
14 |
GEANT 4.9.2.p01 |
15 |
ROOT v. 5.23.04 |
16 |
VGM v.3.02 |
17 |
PAMELA 8th reduction (should be corrected by yourself if any problems) |
18 |
|
19 |
In /scripts directory you will find examples of scripts that does an export of |
20 |
ALL enviroment variables for this installation. Please check them with yours. |
21 |
|
22 |
1) @installed packages mesa-libGLU mesa-libGLU-devel gcc-g77 libXi libXi-devel@ |
23 |
2) @set gcc and g++ and f77 @ |
24 |
3) @install CLHEP 2.0.4.2@ |
25 |
mkdir /cern |
26 |
cd /cern |
27 |
wget <source> |
28 |
tar zxf clhep-2.0.4.2.tgz |
29 |
ln -s /cern/2.0.4.2 CLHEP |
30 |
cd CLHEP |
31 |
./configure --prefix=/cern/CLHEP |
32 |
make |
33 |
make test |
34 |
make install |
35 |
4) @install GEANT 4.9.2.p01@ |
36 |
cd /cern |
37 |
mkdir G4 |
38 |
cd G4 |
39 |
mkdir data |
40 |
@copy all cross-section data files in /cern/G4/data and untar them@ |
41 |
cd /cern |
42 |
@copy geant4 sorce tar file in /cern and untar@ |
43 |
cd /cern/geant4.9.2.p01 |
44 |
./Configure -build |
45 |
@ Would you like to see the instructions? [n] @ |
46 |
@ [Press [Enter] for default settings] @ |
47 |
@ Do you expect to run these scripts and binaries on multiple machines? [n] @ |
48 |
@ Where is Geant4 source installed? [/cern/geant4.9.2.p01] @ |
49 |
@ Specify the path where Geant4 libraries and source files should be installed. [/cern/G4] @ |
50 |
@ Do you want to copy all Geant4 headers in one directory? [y] @ |
51 |
@ Specify the path where are the Geant4 data libraries |
52 |
PhotonEvaporation2.0 RadioactiveDecay3.2 G4EMLOW6.2 G4NDL3.13 G4ABLA3.0 |
53 |
are installed. For now, a flat directory structure is assumed, and this can |
54 |
be customized at the next step if needed. [/cern/G4/data] @ |
55 |
@ Please, specify where CLHEP is installed. [/cern/CLHEP] @ |
56 |
@ You can customize paths and library name of you CLHEP installation: |
57 |
1) CLHEP_INCLUDE_DIR: /cern/CLHEP/include |
58 |
2) CLHEP_LIB_DIR: /cern/CLHEP/lib |
59 |
3) CLHEP_LIB: CLHEP |
60 |
To modify default settings, select number above (e.g. 2) |
61 |
[Press [Enter] for default settings] @ |
62 |
@ By default 'static' (.a) libraries are built. |
63 |
Do you want to build 'shared' (.so) libraries? [y] @ |
64 |
@ You selected to build 'shared' (.so) libraries. |
65 |
Do you want to build 'static' (.a) libraries too? [n] @ |
66 |
@ Do you want to build 'global' compound libraries? [n] @ |
67 |
@ Do you want to compile libraries in DEBUG mode (-g)? [n] @ |
68 |
@ G4UI_NONE |
69 |
If this variable is set, no UI sessions nor any UI libraries are built. |
70 |
This can be useful when running a pure batch job or in a user framework |
71 |
having its own UI system. |
72 |
Do you want to set this variable ? [n] @ |
73 |
@ G4UI_BUILD_XAW_SESSION |
74 |
G4UI_USE_XAW |
75 |
Specifies to include and use the XAW interfaces in the |
76 |
application to be built. |
77 |
The XAW (X11 Athena Widget set) extensions are required to activate |
78 |
and build this driver. [n] @ |
79 |
@ G4UI_BUILD_XM_SESSION |
80 |
G4UI_USE_XM |
81 |
Specifies to include and use the XM Motif based user interfaces. |
82 |
The XM Motif extensions are required to activate and build this |
83 |
driver. [n] @ |
84 |
@ G4UI_BUILD_QT_SESSION |
85 |
G4UI_USE_QT |
86 |
Setting these variables will enable the building of the G4 Qt based |
87 |
user interface module and the use of this module in your applications |
88 |
respectively. |
89 |
The Qt3 or Qt4 headers, libraries and moc application are required to enable |
90 |
the building of this module. |
91 |
Do you want to enable build and use of this module? [n] @ |
92 |
@ G4VIS_NONE |
93 |
If this variable is set, no visualization drivers will be built or used. |
94 |
Do you want to set this variable ? [n] @ |
95 |
@ G4VIS_BUILD_OPENGLX_DRIVER |
96 |
G4VIS_USE_OPENGLX |
97 |
It is an interface to the de facto standard 3D graphics library, |
98 |
OpenGL. It is well suited for real-time fast visualization |
99 |
and prototyping. The X11 version of the OpenGL libraries is required. [y] @ |
100 |
@ G4VIS_BUILD_OPENGLXM_DRIVER |
101 |
G4VIS_USE_OPENGLXM |
102 |
It is an interface to the de facto standard 3D graphics library, |
103 |
OpenGL. It is well suited for real-time fast visualization |
104 |
and prototyping. The X11 version of the OpenGL libraries and |
105 |
the Motif Xm extension is required. [n] @ |
106 |
@ G4VIS_BUILD_DAWN_DRIVER |
107 |
G4VIS_USE_DAWN |
108 |
DAWN drivers are interfaces to the Fukui Renderer DAWN. DAWN is |
109 |
a vectorized 3D PostScript processor suited to prepare technical |
110 |
high quality outputs for presentation and/or documentation. [n] @ |
111 |
@ G4VIS_BUILD_OIX_DRIVER |
112 |
G4VIS_USE_OIX |
113 |
The OpenInventor driver is based on OpenInventor technology |
114 |
for scientific visualization. |
115 |
The X11 version of OpenInventor is required. [n] @ |
116 |
@ G4VIS_BUILD_RAYTRACERX_DRIVER |
117 |
G4VIS_USE_RAYTRACERX |
118 |
Allows for interactive ray-tracing graphics through X11. |
119 |
The X11 package is required. [n] @ |
120 |
@ G4VIS_BUILD_VRML_DRIVER |
121 |
G4VIS_USE_VRML |
122 |
These driver generate VRML files, which describe 3D scenes to be |
123 |
visualized with a proper VRML viewer. [n] @ |
124 |
@ OGLHOME/include |
125 |
OGLHOME/lib |
126 |
You have selected to use OpenGL driver. |
127 |
Specify the correct path (OGLHOME) where OpenGL is installed in your system. |
128 |
It was found in /usr. Press [Enter] to set this path or type the correct one. |
129 |
You can set '-' (without quotation) to CANCEL the OpenGL flag at all: [/usr] |
130 |
"here you need to specify path to your OpenGL headers and libraries. |
131 |
Please note, that you have to install development version of OpenGL to have headers" @ |
132 |
@ G4UI_BUILD_OPENGLQT_DRIVER |
133 |
G4UI_USE_OPENGLQT |
134 |
Setting these variables will enable the building of the G4 OpenGL Qt based |
135 |
visualisation driver and the use of this driver in your applications |
136 |
respectively. |
137 |
The Qt3 or Qt4 headers, libraries and moc application are required to enable |
138 |
the building of this module. |
139 |
Do you want to enable build and use of this module? [n] @ |
140 |
@ G4LIB_BUILD_GDML |
141 |
Setting this variable will enable building of the GDML plugin module embedded |
142 |
in Geant4 for detector description persistency. |
143 |
It requires your system to have the XercesC library and headers installed. |
144 |
Do you want to set this variable? [n] @ |
145 |
@ G4LIB_BUILD_G3TOG4 |
146 |
The utility module 'g3tog4' will be built by setting this |
147 |
variable. NOTE: it requires a valid FORTRAN compiler to be |
148 |
installed on your system and the 'cernlib' command in the |
149 |
path, in order to build the ancillary tools! |
150 |
Do you want to build 'g3tog4' ? [y] @ |
151 |
@ G4LIB_BUILD_ZLIB |
152 |
Do you want to activate compression for output files |
153 |
generated by the HepRep visualization driver? [y] @ |
154 |
@ G4ANALYSIS_USE |
155 |
Activates the configuration setup for allowing plugins to |
156 |
analysis tools based on AIDA (Astract Interfaces for Data |
157 |
Analysis). In order to use AIDA features and compliant analysis |
158 |
tools, the proper environment for these tools will have to be |
159 |
set (see documentation for the specific analysis tools). [n] @ |
160 |
@ end of configuration phase. |
161 |
Creating configuration setup file... |
162 |
WARNING: the generated configuration file |
163 |
can be edited if necessary! |
164 |
You can introduce any change to the configuration file |
165 |
/cern/geant4.9.2.p01/.config/bin/Linux-g++/config.sh before the final installation. |
166 |
To do so, use a shell escape now (e.g. !vi /cern/geant4.9.2.p01/.config/bin/Linux-g++/config.sh). |
167 |
Press [Enter] to start installation or use a shell escape to edit config.sh: @ |
168 |
|
169 |
@ Finally,@ |
170 |
./Configure - install |
171 |
@script to setup enviroment: /cern//geant4.9.2.p01/.config/bin/Linux-g++/env.sh @ |
172 |
|
173 |
6) @ install PYTHIA6 @ |
174 |
@ get archive ftp://root.cern.ch/root/pythia6.tar.gz and put it in /cern @ |
175 |
tar zxf pythia6.tar.gz |
176 |
cd pythia6 |
177 |
makePythia6.linux |
178 |
5) @ installation of ROOT v. 5.23.04 @ |
179 |
@ put root_v5.23.04.source.tar.gz in /cern @ |
180 |
cd /cern |
181 |
tar zxf root_v5.23.04.source.tar.gz |
182 |
mv root root_v5.23.04 |
183 |
ln -s root_v5.23.04 ROOT |
184 |
cd ROOT/lib |
185 |
ln -s /cern/pythia6/libPythia6.so libPythia6.so |
186 |
cd /cern/ROOT |
187 |
source /cern//geant4.9.2.p01/.config/bin/Linux-g++/env.sh |
188 |
export ROOTSYS=/cern/ROOT |
189 |
./configure linux --disable-afs --enable-cern --enable-mysql --disable-cintex |
190 |
--disable-globus --enable-roofit --enable-g4root |
191 |
--with-g4-incdir=$G4INCLUDE --with-g4-libdir=$G4LIB/Linux-g++ |
192 |
--with-clhep-incdir=$CLHEP_BASE_DIR/include |
193 |
--with-f77=g77 --enable-pythia6 --with-pythia6-libdir=/cern/pythia6 |
194 |
make |
195 |
|
196 |
6) @installation of VGM v.3.02@ |
197 |
@Note: VGM is needed to convert ROOT-defined geomery in GEANT4. So, you need |
198 |
install VGM only if you plan to use in RunConfiguration of your application |
199 |
an option "geomRootToGeant4" - geometry defined in Root, but GEANT4 navigation. |
200 |
By default, in PamVMC option "geomRoot" was defined because GEANT4 has no |
201 |
option ONLY/MANY, so if I use "geomRootToGeant4" translation could be wrong (WARNING!). |
202 |
But if you wish to do some run-time visualization, like showers, you should use |
203 |
VGM libraries and option "geomRootToGeant4" in PamVMC Run configuration.@ |
204 |
|
205 |
@ get archive from http://ivana.home.cern.ch/ivana/VGM.html and put in in /cern @ |
206 |
cd /cern |
207 |
tar zxf v3-02.tar.gz |
208 |
ln -s /cern/v3-02 /cern/VGM |
209 |
emacs -nw VGM/config/geant4.gmk |
210 |
@ correct line 23: CPPFLAGS += -I$(G4INCLUDE) on some machines @ |
211 |
cd /VGM/packages |
212 |
make |
213 |
@ after you should fin in /cern/VGM/lib/Linux-g++ libaries: |
214 |
libBaseVGM.so libClhepVGM.so libGeant4GM.so libRootGM.so libXmlVGM.so @ |
215 |
|
216 |
7) Installation of PAMELA software |
217 |
|
218 |
@ create a symbolic link to cint includes: (needed for Darth Vader with ROOT 5.23) |
219 |
for ROOT 5.20 you don't need to do it@ |
220 |
cd /cern/ROOT/include |
221 |
ln -s ../cint/cint/inc/ cint |
222 |
|
223 |
|
224 |
8) Installation of geant4_vmc |
225 |
|
226 |
@ get source ftp://root.cern.ch/root/vmc/geant4_vmc.2.6.tar.gz and put in /cern @ |
227 |
cd /cern |
228 |
tar zxf geant4_vmc.2.6.tar.gz |
229 |
ln -s /cern/geant4_vmc_2.6 /cern/geant4_vmc |
230 |
cd /geant4_vmc/source |
231 |
make |
232 |
|
233 |
9) Installation of PamVMC |
234 |
|
235 |
@Before you start, do an export of PAM_VMC env. variable to source directory |
236 |
In case if you wish to use PamVMC with GEANT4 you should go to $(PAM_VMC)/PamG4RunConfiguration @ |
237 |
make clean |
238 |
make |
239 |
@ this will produce a libPamG4RunConfiguration.so library in $(PAM_VMC)/lib/tgt_$(PLATFORM) @ |
240 |
cd $(PAM_VMC) |
241 |
make |
242 |
@ after this step an application library $(PAM_VMC)/lib/tgt_$(PLATFORM)/libPamVMC_fc.so will be compiled |
243 |
and some calibration files will be copied from $(PAM_VMC)/aux@ |
244 |
@ do an export |
245 |
export LD_LIBRARY_PATH=$(PAM_VMC)/lib/tgt_$(PLATFORM):$(LD_LIBRARY_PATH) |
246 |
|
247 |
@ in $(PAM_VMC)/examples you can find an example of usage @ |
248 |
@ For more details please look inside $(PAM_VMC)/include PamVMCPrimaryGenerator.h and PamVMCDetectorHit.h @ |
249 |
|
250 |
/////////////EXTERNAL DIGITIZER///////////////// |
251 |
In aux/PamVMVDigitizer you can find a source code of stand-alone digitizer. Just do make. |
252 |
There are only 3 parameters: input root-file name, output raw-filename and integer random seed. |
253 |
If you specify 0, then TRandom3(0) object will be created. All digitizers use this object. |
254 |
Please note, that current version of digidaizer could be not compatible with root-files generated |
255 |
with previous versions of PamVMC due to addtitonal variables in PamVMCDetectorHit class |
256 |
|
257 |
|
258 |
/////////////SPGECTRA GENERATOR///////////////// |
259 |
@ spectra_generator is a tool which allow you to generate tracks above the apparatus |
260 |
isotropically and save initial kinematic parameters (X0,Y0,Z0=110., P, Theta, Phi) |
261 |
"good" tracks in output root-file. After this, file could be used to do simulations. |
262 |
The condition to accept tracks is satisfaction to 14 acceptance planes, defined by |
263 |
TrkParams in Level2. This tool is based on DoTrack method of Level2. |
264 |
To save data in root-file PrimaryInfo class was developed and compiled in library. |
265 |
If later you wish to develop your own script to work with data stored threre, |
266 |
you need just load libPrimaryInfo.so shared library @ |
267 |
|
268 |
1) @ To compile library you need change your .rootlogon.C file. One example is provided |
269 |
in directory /aux/spectra_generator. Please check your enviroment variables. All pathes |
270 |
in this file completetly dependent on your enviroment @ |
271 |
2) cd /aux/spectra_generator |
272 |
make clean |
273 |
make |
274 |
@ After this you should find a library: libPrimaryInfo.so, and executable: sp_gen @ |
275 |
|
276 |
@+++SPECTRA GENERATOR HOWTO +++@ |
277 |
@ There are 3 different regimes in which sp_gen could work, and application recognize in |
278 |
which way you wish it work by number and type of parameters which you specify to launch it: |
279 |
|
280 |
1) Fixed rigidity mode: Shooting isotropically with fixed rigitity tracks |
281 |
PARAMETERS: |
282 |
(INTEGER) Number of "good" track that you wish to have finally |
283 |
(INTEGER) Charge of particle in (e+ units) |
284 |
(INTEGER) PDG of particle, see NOTE below |
285 |
(DOUBLE) Fiducial value (cm) that you wish to cut each side from all of |
286 |
14 acceptance planes. (0. - nominal acceptance) |
287 |
(DOUBLE) Rigidity (GV) of tracks. |
288 |
(STRING) Name of output file (ex. out.root) where you wish to store your |
289 |
"good" tracks. |
290 |
|
291 |
exampale: ./sp_gen 10000 1 2212 0.15 2.0 out.root |
292 |
Generates 10000 monoenergetic protons with rigidity 2 GV in fiducial acceptance |
293 |
cutting 0.15 cm on each side. Result will be put into out.root file. |
294 |
|
295 |
2) Flat spectra mode: Shooting isotropically with uniform distributed [Rmin, Rmax] |
296 |
rigitity tracks |
297 |
PARAMETERS: |
298 |
(INTEGER) Number of "good" track that you wish to have finally |
299 |
(INTEGER) Charge of particle in (e+ units) |
300 |
(INTEGER) PDG of particle, see NOTE below |
301 |
(DOUBLE) Fiducial value (cm) that you wish to cut each side from all of |
302 |
14 acceptance planes. (0. - nominal acceptance) |
303 |
(DOUBLE) Minimal Rigidity (GV) of tracks. |
304 |
(DOUBLE) Maximal Rigidity (GV) of tracks. |
305 |
(STRING) Name of output file (ex. out.root) where you wish to store your |
306 |
"good" tracks. |
307 |
|
308 |
example: /sp_gen 10000 1 2212 0.15 2.0 3.0 out.root |
309 |
Generates 10000 protons with flat spectra and with rigidity 2-3 |
310 |
GV in fiducial acceptance cutting 0.15 cm on each side. Result will be put into out.root file |
311 |
|
312 |
3) Full spectra mode: Shooting isotropically with all spectra which differrential |
313 |
profile defined in input file. |
314 |
PARAMETERS: |
315 |
(INTEGER) Number of "good" track that you wish to have finally |
316 |
(INTEGER) Charge of particle in (e+ units) |
317 |
(INTEGER) PDG of particle, see NOTE below |
318 |
(DOUBLE) Fiducial value (cm) that you wish to cut each side from all of |
319 |
14 acceptance planes. (0. - nominal acceptance) |
320 |
(STRING) Name of INPUT file (ex. input.root) where you stored your |
321 |
TGraphAsymmErrors object with diffrerntial spectra profile. |
322 |
Please note, that application suppose that name of graph is |
323 |
"gflux". Of course, you can define your own. See sp_gen.C, line 170. |
324 |
(STRING) Name of output file (ex. out.root) where you wish to store your |
325 |
"good" tracks. |
326 |
|
327 |
example: /sp_gen 10000 1 2212 0.15 input_flux.root out.root |
328 |
Generates 10000 protons with rigidity distributed accroding TGrapAsymmErorrs |
329 |
in input_flux.root in fiducial acceptance cutting 0.15 cm on each side. |
330 |
Result will be putt into out.root file |
331 |
|
332 |
!!!NOTE: Use http://pdg.lbl.gov/2007/reviews/montecarlorpp.pdf document to define your |
333 |
particle according PDG numeration scheme. |