Physics Study Libraries
News
- March 26, 2005: K.Fujii
(physsim-2005a-2)
- Fixed bugs (mostly typos in comments and a problem with sfermion masses
that would have affected the results when non-degenerate sfermions are
active in decay chains) in susy/XN2XN2Study.
- March 2, 2005: K.Fujii
(physsim-2005a-1)
- November 23, 2004: K.Fujii
(physsim-2004a-1)
- Separated and Moved JSF-independent part of Anlib to Leda and renamed
those that depend on JSF as JSFAnlib.
Imakefiles, jsf.conf's, xxx.C have been modified to load both of libJSFAnlib.so
and libAnlib.so.
The modification was done with bin/sepanlib.
- May 25, 2001: K.Fujii
(physsim-2001a-1)
- MacOS X support + bug fixes found in porting to MacOS X.
- August 29, 2000: K.Fujii
(physsim-2000a-5)
- Removed dynamic loading of shared libraries from bases.C and sim.C
since they are now handled by JSF through jsf.conf.
- August 24, 2000: K.Fujii
(physsim-200a-4)
- Now uses the standard gui.C, since shared library loading can be handled
by JSF through jsf.conf:
e.g.)
JSF.SharedLibraries: TTSpring.so:libAnlib.so
This version requires root_v.2.25.02 or greater.
- July 13, 2000: K.Fujii
(physsim-200a-3)
- Userin() call removed from ctor of XXBases. Because of this, the physsim
package now requires jsf-1-15 or later.
- June 26, 2000: K.Fujii
(physsim-2000a-2)
- This version works with the latest version of JSF: jsf-1-14
and LCLIB: lclib-2000-1. Since
this uses a completely new BASES/SPRING package which is written in C++,
it should be still considered as a development version. Use the last version
(Physsim-2000a-1) for any serious physics studies, for a while. Various
generators contained in this package are, however, still basically fortran
wrapped with C++ wrappers. We are working on this, so be patient. This
version should compile on RedHat Linux 6.x (egcs-1.1.2,glibc-2.1.x), LinuxPPC-2000
(gcc-2.95.x,glibc-2.1.x), and HP-UX10.20(aCC) with the help of Imake files.
In order to create on HP-UX10.20, shared libraries dynamically loadable
from JSF, one has to use CERNLIB compiled with a PIC flag. On LinuxPPC-2000,
one needs to recompile libg2c.a with a PIC flag to create a shared library
containing fortran functions. If you need a libg2c.a rebuilt with a PIC
flag, contact us.
- May 16, 2000: K.Fujii
(physsim-2000a-1)
- Feature enhancements to Anlib mostly due to K.Ikematsu for vertex tagging
and MC truth inquiry, together with some bug fixes. Various generators
contained in this package (including the above mentioned ttbar generator)
are still basically fortran wrapped with C++ wrappers and to be replaced
in future by a fully C++ version. Because of this, this version is incompatible
with the latest JSF. Use jsf-1-13
which has been patched to work with the latest root (v.2.24.04). As for
lclib, lclib-2000-1 should work.
This version should compile on RedHat Linux 6.x (egcs-1.1.2,glibc-2.1.x),
LinuxPPC-2000 (gcc-2.95.x,glibc-2.1.x), and HP-UX10.20(aCC) with the help
of Imake files. In order to create on HP-UX10.20, shared libraries dynamically
loadable from JSF, one has to use CERNLIB compiled with a PIC flag. On
LinuxPPC-2000, one needs to recompile libg2c.a with a PIC flag to create
a shared library containing fortran functions. If you need a libg2c.a
rebuilt with a PIC flag, contact us.
- Oct 12, 1999: K.Fujii
(physsim-99a-1)
- A new temporary JSF version (99a-1) with a very primitive version of
Analysis package (Anlib) containing jet finder, event shape routines,
combiner, vertex tagger, etc. with some examples (Anlib/examples) using
them. The e+e- -> ttbar generator now includes P-wave contribution
at threshold as well as that from S-wave, so that it now produces a forward-backward
charge asymmetry even below threshold. Various generators contained in
this package (including the above mentioned ttbar generator) are still
basically fortran wrapped with C++ wrappers and to be replaced in future
by a fully C++ version. This version should compile on RedHat Linux 6.x
(egcs-1.1.2,glibc-2.1.1), LinuxPPC-1999 (egcs-1.1.2,glibc-2.1.1), and
HP-UX10.20(aCC) with the help of Imake files. You need to install lclib-98a-6
and jsf-1-12 or newer to use it. In order to create, on HP-UX10.20, shared
libraries dynamically loadable from JSF, one has to use CERNLIB compiled
with a PIC flag. On LinuxPPC-1999, one needs to recompile libg2c.a with
a PIC flag to create a shared library containing fortran functions. If
you need a libg2c.a rebuilt with a PIC flag, contact us.
- May 24, 1999: K.Fujii
(physsim-98a-1)
- A temporary JSF version (98a-1) with C++ wrappers to be replaced in
future by a fully C++ version. This version should compile on RedHat Linux
5.x (egcs-1.1.1,glibc-2.0.7-29), LinuxPPC DR4.x(egcs-1.1.2,glibc-1.99-1r),
and HP-UX10.20(aCC) with the help of Imake files. You need to install
lclib-98a-6 and jsf-1-11 or newer to use it. In order to create, on HP-UX10.20,
shared libraries dynamically loadable from JSF, one has to use CERNLIB
compiled with a PIC flag.
- Dec 03, 1998: K.Fujii
(phys97a)
- Generator and analysis program libraries. They should compile on Linux
5.x, MkLinux DR3, and HP-UX with the help of Imake files. You need to
install lclib97a beforehand.
Features
The package contains various MC event generators:
higgs : zh, ...
susy : sfsf, xcxc, ...
top : eett, nntt, tth, tt, ttz, ...
twoph : eeff (f=e,mu,tau,q)
wz : eeww, eez, enw, nnww, nnz, ww, wwz, zz, ...
which are all based on BASES/SPRING. The amplitudes squared used
in the integration are calculated with HELAS and include full
helicity amplitudes: all the angular correations are included
and beam polarization can be specified.
You can also switch on and off the beam effects: beam energy
spread and beamstrahlung.
The package also contains some analysis tools, Anlib, prepared
as a C++ library: you can find jet finders, event shape routines,
a rather primitive vertex tagger, ..., etc.
You can find some examples showing its usage in the directory
- Anlib/examples/jsf
and its subdirectories.
Files
How to Install the Libraries
In order to use physsim, you have to have cernlib installed. Then you should
be able to install "lcbase", "leda", "lclib",
and "jsf" following the instructions given in the jsf
and lclib home pages. You can get the latest
versions of these libraries from the JLCCVS
server.
Then you can install "physsim":
- $ tar -zxvf physsim-2005a-2.tar.gz -C <somewhere>
In order to use this package you should first set some
environmental variables:
- $ cd <somewhere>
- $ export KFLIBROOT=`pwd`
- $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$KFLIBROOT/lib
- $ export IMAKEINCLUDE="$IMAKEINCLUDE -I$KFLIBROOT"
- $ vi ~/.rootrc
- Unix.*.Root.DynamicPath: .:$(ROOTSYS)/lib:$(JSFROOT)/lib:$(KFLIBROOT)/lib
- Unix.*.Root.MacroPath: .:$(ROOTSYS)/macros:$(JSFROOT)/example/guiexam1
where the JSF standard environmental variables such as ROOTSYS, LCBASEDIR,
LEDAROOT, JSFROOT, LCLIBROOT, CERN_ROOT, .... are assumed to be set beforehand
(see HowToInstall of JSF for details).
Once the environment is set up, do:
- $ make
How to Build Individual Generators
The above step will create libraries necessary to build various MC event generators
based on BASES/SPRING stored in
higgs : zh, ...
susy : sfsf, xcxc, xn1xn2, xn2xn2, ...
xd : hh, ...
top : eett, nntt, tth, tt, ttz, ...
twoph : eeff (f=e,mu,tau,q)
wz : eeww, eezz, eez, enw, nnww, nnzz, nnz, ww, wwz, zz, ...
These subdirectories contain subsubdirectories named <PROCESSNAME>Study.
The top levelMakefile does NOT build individual Monte Carlo event generators:
it only creates necessary libraries for them.
You should "cd" to one of these subsubdirectories and do
- $ xmkmf -a
- $ make
How to Use Individual Generators
The previous step will create a shared object : prod/<PROCESS>Spring.so
which can dynamically be loaded into "jsf".
Dynamic loading is automatically done by using macro files:
bases.C : MC integration (BASES step) necessary for SPRING step.
sim.C : event generation (SPRING step).
gui.C : Miyamoto's GUI for jsf which loads:
MainMacro.C : steers through events.
UserAnalysis : analyzes events (user defined).
You can use them as:
- $ jsf -b -q bases.C >& bs.out & # BASES step
- $ tail -f bs.out # monitor SYSOUT
- .......
- ^C # quit "tail"
As a rule of thumb, you are strongly recommended to
check "bs.out" if integration successfully converges:
if there exists any iteration that gives a temporary
estimate that fluctuates by 5% or more from the other
iterations, you should suspect some convergence problem.
This will also allow you to get the cross section of the
process given usually in (pb).
Optionally, you can examine a TOPDRAW file (bases.tdr) by
- $ tdr -v X bases.tdr
if "tdr" command is available.
The integration conditions
can be controlled by editing "jsf.conf" which allows you
to change job parameters such as "m_t", "m_H", "E_cm",
"Pol_e", "Delta E_beam", ..., etc.
You can also switch on and off ISR and beam effects
(beam energy spread and beamstrahlung) by setting
....
PROCESS.ISRBM: n
....
where n=(1,2,3)=(ISR:off and BM:off, ISR:on and BM:off, ISR:on and BM:on).
When decay modes for W/Z are slectable,
the decay mode numbering obays the following convention:
mode W decay comment mode Z decay comment
-------------------------- --------------------------
1 e nu 1 nue
2 mu nu 2 numu
3 tau nu 3 nutau
4 d u 4 e
5 d c 5 mu
6 d t forbidden 6 tau
7 s u 7 u
8 s c 8 c
9 s t forbidden 9 t forbidden
10 b u 10 d
11 b c 11 s
12 b t forbidden 12 b
-------------------------- --------------------------
If everything is OK. you can continue with event generation.
- $ jsf -b -q sim.C >& sm.out & # SPRING step
- $ tail -f sm.out # monitor SYSOUT
- .......
- ^C # quit "tail"
Again, you had better check "sm.out" to confirm that the
SPRNG step ended with no error.
You can change the input BASES file (bases.root) or the number
of events to generate by editing "sim.C".
Generated events can be browsed using Miyamoto's GUI:
- $ jsf gui.C
which navigates you through generated events and allows you
to display and analyze them using a user analysis macro
called "UserAnalysis".
Which "<PROCESS>Spring.so" is loaded and which file is read
in are controlled by editing "gui.C" and jsf.conf, respectively.
The input file can also be selected through the GUI's file
chooser. "<PROCESS>Spring.so" will be selectable from the GUI
in a future release, I hope.
Default UserAnalysis macros are meant to be a template and
NOT very realistic yet, except for that of SFSFStudy.
When more useful ones become available I will include them.
Your contributions are very much welcome.
Known Problems
There is a pitfall known to exist in the current version
using C++ wrappers called function name confusion.
If multiple <PROCESS>Spring.so's are loaded into a single
JSF session, there can be function name confusions.
A typical example is HELAS/DHELAS confusion which is caused
by the fact that both single and double precision versions
have the same function names. To avoid this problem, NEVER
try to load multiple generator packages.
Quit the JSF session before starting analysis of a different
process.
Back to JLC Offline Group Home Page
fujiik@jlcuxf.kek.jp May. 28, 1999