| 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. |