Anaphe
Frequently
Asked
Questions
General Questions
-
Is this a new tool? Why haven't I heard about it before?
Anaphe used to be called LHC++. The project was started a few
years ago and has developed alongside Geant4 and CLHEP. The planning
stage of Lizard (the interactive part) was started in
September 1999 and the first prototype was completed in time for
CHEP 2000.
Work on the production version began in April 2000 and the first
`fully functional' release was in June 2001.
-
Why should I use Lizard?
It's modular, it's extensible, and it's very flexible.
It's carefully designed to be maintainable in the
long term. It is (and will continue to be) fully
supported by CERN. Despite being a very young project, it is already
comparable with PAW and we will keep adding functionality.
-
What is planned for the future?
A condensed (and incomplete) list of things we want to
do in the near and medium future is
here. If you have suggestions
and/or requests we would love to
hear from you!
-
What about PAW/HBOOK?
PAW will still be supported by CERN for some time, but maintenance
and support will stop eventually. Long before that happens, Anaphe/Lizard
will be able to do everything that PAW can, and much more. This is
already true for many tasks.
-
How does this relate to the LCG?
Anaphe now falls under the umbrella of the Applications workgroup of
the LCG (leader T.Wenaus). As of May 2002 our work has been guided by
their requirements, though the project remains part of the IT/API group.
-
How do I report a bug?
Send an email to the
the mailing list.
-
How can I help?
We are still developing Lizard, and are actively
seeking users who would like to help shape the functionality and
user interface. Contact us if you would
like to help.
Python Questions
-
Why use Python (instead of KUIP, Cint, Perl...)
Python is a very powerful and stable interpreted OO programming language.
It is free, open-source, and remarkably bug-free. Python has hundreds of
thousands of users and hundreds of maintainers and developers. It has
been around for ten years and will certainly be around for another ten or
more. There are a large number of powerful Python libraries which are
trivial for the user to add, and extending it yourself is quite simple.
It is more weakly-typed and compact than C++ (which makes it considerably
less tedious to type). It also, importantly, acts as an insulating layer
between you and the details of the libraries you are currently using to
do the work. Some/all of the libraries underlying Lizard could be
rewritten in Java (or something else) in 2010 and all your scripts and
experiment frameworks would remain valid. Regarding Cint (the C++
interpreter used for the interactive part of Root) we feel the benefits
(similar syntax for interpreted and compiled parts) are outweighed by
the problems (tied to C++ for ever, tedious to type, smaller user
base = riskier). Regarding KUIP, we feel Python provides everything KUIP
did (and much more) and we don't have to support it, which wastes
manpower. Regarding Perl, we just preferred the language, although in
principle the Anaphe libraries could be bound to Perl instead of Python.
Python is genuinely OO in philosophy and syntax, and mirrors much more
closely the underlying structure of the libraries, which has less
potential for confusion.
-
Isn't it slow?
Not particularly (it's about as fast as an interpreted language gets).
If you write something and find it's slow, you can use the Analyzer
module in Lizard to move the bottlenecks (for example, histogram filling)
into a compiled library. Most applications have a very few time-critical
components, and the rest can be interpreted without noticeable penalty.
Where the Anaphe libraries are concerned, the "translation" from Python
to C++ often consists of nothing more than changing the dots to arrows
(Python has no pointers) and putting it in a function.
-
What about support?
The Python web site has lots and
lots of documentation and FAQs (some of it mirrored
here at CERN).
There is also a very active
comp.lang.python newsgroup if you
can't find a solution to your problem in the docs. We will also help
you with Python problems if you still can't find a solution.
Installation
-
I want to run on Fedora Core 1. How do I do this?
For Fedora Core 1 follow the procedure for RedHat 9: please download the binaries for the redhat73/gcc-3.2
platform. After this, you need to do two fixes in order to get Anaphe
run:
- Upgrade the guessPlatf.py script in your /path/to/Anaphe/share/LHCXX/5.0.6/scripts/
directory. To do this, please download the new script
and copy it into your /path/to/Anaphe/share/LHCXX/5.0.6/scripts/guessPlatf.py.
Alternatively, you can edit the file /path/to/Anaphe/share/LHCXX/5.0.6/scripts/guessPlatf.py
and replace the "9.0" for redhat with just "9".
- Replace the libg2cforMinuit.so :
pushd /path/to/Anaphe/specific/redhat73/gcc-3.2/5.0.6/lib
mv libg2c-forMinuit.so libg2c-forMinuit.so-fromRelease
ln -s /usr/lib/libg2c.so.0 libg2c-forMinuit.so
Ignore the "Segmentation fault" in aida-config.py, if you get it
(this appears in some environments after the ending of python when
unloading the libraries and is not yet traced, but is harmless)
Make sure you have added the path to the libraries:
/specific/redhat73/gcc-3.2/5.0.6/lib to your
LD_LIBRARY_PATH environment variable before running any executable.
-
I want to run on RedHat 9. How do I do this?
For RedHat 9 please download the binaries for the redhat73/gcc-3.2
platform. After this, you need to do two fixes in order to get Anaphe
5.0.6 to run:
- Upgrade the guessPlatf.py script in your /path/to/Anaphe/share/LHCXX/5.0.6/scripts/
directory. To do this, please download the new script
and copy it into your /path/to/Anaphe/share/LHCXX/5.0.6/scripts/guessPlatf.py.
Alternatively, you can edit the file /path/to/Anaphe/share/LHCXX/5.0.6/scripts/guessPlatf.py
and replace the "9.0" for redhat with just "9".
- Replace the libg2cforMinuit.so :
pushd /path/to/Anaphe/specific/redhat73/gcc-3.2/5.0.6/lib
mv libg2c-forMinuit.so libg2c-forMinuit.so-fromRelease
ln -s /usr/lib/libg2c.so.0 libg2c-forMinuit.so
For Anaphe 5.0.5 the following two patches have been
provided by Ping Yeh (Thanks !!) to run on RedHat 9:
patch to setup-Anaphe and
patch to anaphe-setup.py .
-
I can't find the AIDA header files. What's wrong?
The AIDA headers are not (currently) distributed as part of Anaphe.
If the environment variable AIDA_DIR is
not set then the default behaviour of aida-config is to produce
-I/afs/cern.ch/sw/contrib/AIDA/<version>/cpp. If you are
doing a local installation then you need to put the AIDA header files
(available from the web site)
somewhere and set AIDA_DIR to point to
it.
-
How do I check out a package from the CVS repository?
Use the following commands:
cvs -d :pserver:cvsuser@pcitasd28.cern.ch:/data/CVS/Anaphe/cvsroot login
passwd: cvsuser
cvs -d :pserver:cvsuser@pcitasd28.cern.ch:/data/CVS/Anaphe/cvsroot checkout package
Alternatively, you can set the environment variable CVSROOT to
point to the directory:
export CVSROOT=:pserver:cvsuser@pcitasd28.cern.ch:/data/CVS/Anaphe/cvsroot (bash etal.)
setenv CVSROOT=:pserver:cvsuser@pcitasd28.cern.ch:/data/CVS/Anaphe/cvsroot (tcsh et al.)
and use the cvs commands without the -d option:
cvs login
passwd: cvsuser
cvs checkout package
-
My version of g++ is not up-to-date. How can I switch to gcc 2.95.2?
Read this page.
-
Using Nag Mark 6, the compiler fails on the nagg01.h
header file. Why?
A: The nagg01.h header file in the standard distribution
contains a function prototype that can't be compiled in C++ (because it
uses the C++ keyword class).
If you're using the NAG C libraries under the Cern
licensing scheme, please contact us to get the fixed header file.
Otherwise, report the problem to your local NAG dealer.
If you need a quick-and-dirty fix, just substitute
Nag_ClassBoundary class_ind to
Nag_ClassBoundary class in the prototype:
g01aec(Integer n, const double x[], Integer num_class,Nag_ClassBoundary class,
double cint[], Integer ifreq[], double *xmin,double *xmax,
NagError *fail);
Error Messages
Histograms and Ntuples
Plotting and Graphics
Fitting
|
|