History of Geant Changes as inserted into the CVS directory, as well as a description of the methods used to maintan the code and libraries. This may be usefull as a help to others. This file has in addition to the history also the following sections
The current make files have a problem in so far that if the compilation of a routine fails the .f file is left in the lib/[arch] directory. This is fine for checking out the sources code for errors; note that the .f files often are expanded from the .F files. The problem occurs next time the make file is executed. It thinks that the .f in [arch] is the file to use. This problem should normally be taken care of . The make files should delete .f files in the directory.
For compilation on Linux systems see the note in note
The tags were done as follows
On rcf.rhic.bnl.gov cd /brahms/u/videbaek cvs rtag GBRAHMS-1-6-2 geant
On December 1, 1999 a new release was made. The major change is a a better description of detectors like shielding, platforms, multiplicity detector, and corrected geometries. For detailed information on changes consult the dated notes in the history part.
The tags were done as follows
On rcf.rhic.bnl.gov cd /brahms/u/videbaek cvs rtag GBRAHMS-1-6-1 geant cd /afs/rhic/brahms/BRAHMS_LIB/geant mkdir VER_1.6 cvs export -r GBRAHMS-1-6-1 -d VER_1.6 geantThe subtage was done to include the features of setting beam direction in this release.
The tags were done as follows
On rcf.rhic.bnl.gov cd /brahms/u/videbaek cvs rtag GBRAHMS-1-5 geant cd /afs/rhic/brahms/BRAHMS_LIB/geant mkdir VER_1.5 cvs export -r GBRAHMS-1-5 -d VER_1.5 geant
Note that to save space on the afs file system the previous version in the directories VER_1.2 and VER_1.3 has been deleted.
The tags were done as follows
On rpro00.rhic.bnl.gov cd /brahms/u/videbaek cvs rtag GBRAHMS-1-4 geant cd /afs/rhic/brahms/BRAHMS_LIB/geant mkdir VER_1.4 cvs export -r GBRAHMS-1-4 -d VER_1.4 geant
The tags were done as follows
On ribm01.rhic.bnl.gov cd /brahms/u/videbaek cvs rtag GBRAHMS-1-3 geant cd /afs/rhic/brahms/BRAHMS_LIB/geant mkdir VER_1.3 cvs export -r GBRAHMS-1-3 -d VER_1.3 geant
The version 1.1 was at the same time removed from the BRAHMS_LIB directory. It still exists as a tagged version in cvs and can be retrieved if need be.
The tags were done as follows
On ribm01.rhic.bnl.gov cd /brahms/u/videbaek cvs rtag GBRAHMS-1-2 geant cd /afs/rhic/brahms/BRAHMS_LIB/geant mkdir VER_1.2 cvs export -r GBRAHMS-1-2 -d VER_1.2 geant
November 10, 2000 F.Videbaek.
The Beam Beam description was updated, using the right kind of supporting plates,
and the survey numbers for this.
The beam pipe thicknes was update to the nominal 50 mill from 1.2 mm.
Added a check kumac to ana to walk through the display of the beam
beam counters.
check_beam.kumac and check_beamholder.kumac.
TPC geometry The default geometry for MTP2 was not in accordance with the actual layout. E.g. the default setup had only 18 rows not 20. In addition the active rows were modified to reflect the actual instrumentation i.e. TPC Active Rows Inactive rows TPM1 1-12 - TPM2 1,2,5,6,9-12,15,16,19,20 3,4,7,8,13,14,17,18 T1 1,2,3,4,7,8,11-14 5,6,9,10 T2 1,2,5,6,9,10,15,16 3,4,7,8,11-14 Additional a very small area of pad row 13 and 14 is also instrumented from pad#80-95 i.e. a single FEE card. Gbr2c.f The comis routine normally used to generate the .cdat files from the geant hits have had its entry points changed to be more logically. They are now Gbrfile(<nameof file>) to open file Gbrana to be called per event (analyze) Grbend to close file properly ZDC The ZDC is by default off, since it the hit generation in the calorimeter adds a lot of CPU time per event in particular for event data (spectator protons and neutrons). It can be included in the usual fashion using the command set_tree zdc o . New Components A concrete floor has been added to description. By default it is off. You can include it by the set_tree flor o command.
A beam pipe holder was added to the left and right side. The geometry
is close, but may need some fine adjustment.
The fe platform was added to the description. It is a 4-1/4 inch fe
plate. It is only included when the concrete floor is also there. To
turn on use the command 'set_tree flor o'.
April 3, 2000 F.Videbaek.
March 6, 2000 F.Videbaek.
February 11-2000 F.Videbaek,Sorin Zgura.
December 16-1999 F.Videbaek.
December 1-2, 1999 F.Videbaek.
November 8, 1999 F.Videbaek.
October 12, 1999 F.Videbaek.
October 6, 1999 F.Videbaek.
April 20, 1999 F.Videbaek.
The D3 and D4 rotation angles was not written properly with the
write_geom. The reference angle was added to the fd2-angle not the
fms2_angle. This has no effect on the geant results
but has implications for all the sim_xxx.mag files generated for the
MDC2, This files should be corrected.
February 1, 1999 Steve Sanders, Hiro.
The geometry and hits for the multiplicity and si-det detectors have
been added. They were checked into CVS and available. The gbr2c.f
comis module was modified (FV) to deal with the MULT hits.
28 December, 1998 FV
Tagged version 1.5 release.
December, 1998 FV
Continued changes to prepare for some production running.
Several Updates needed for next version of GBRAHMS
July 8, 1998 FV
Minor update to release version 1.4
May 19, 1998 FV
Minor update to release version 1.4 (1.4.01)
May 6, 1998 FV
Minor update to release version 1.4 (1.4.01)
April 24, 1998 FV
Minor update to release version 1.4 (1.4.01)
March 20, 1998 FV
Minor update to release version 1.4
March 13, 1998 FV
Minor fixes to release version 1.4
A few changes were made to the gxuser.F uggxcs.F and ugtxrd.F routine to implement the proper flags for Linux and the Portlan Group Fortran f77 compiler.
The make files was also updated. The is a problem on the RCF linux machine with
csh (it core dumps) and thus some problems exists with the makefile to get it to work on all platforms e.g. the shell command line syntax is different for tsch than for sh.
Added routines CModeRead() and CModeOpen() to slocb.
Fixed a problem in copenfbnd.c (for gcc also).
February 3, 1998 FV
Minor fixes to release version 1.4
January 8, 1998 FV
Minor fixes to released version 1.4
December 30, 1997 FV
Minor fixes to released version 1.4
This is the release 1.4 which was checked into the CVS depository. It
has been checked out for a little while and seems to work. The Ntuple
output as well as the C-stream file output works correctly. It is
utterly important to use updated version of g_anantp.f and gbr2c.f
files.
The old comis routines will not work.
The TPC are implemented with pad-rows as sub elements. In the default
setup each TPC is one active volume. If you want to access the padrow
turn the detail flag on
The documentation was split into one describing the code organization,
and one giving example. (geant_setup.html and code_organization.html)
November 21, 1997 FV
This constitutes a major re-write of GBRAHMS. The geometry for all
detector is now being dealt with relative to coordinate system tied to
the different spectrometer arms, rather than to positions of Magnets.
This allows for specifying displacements of all components relative to
master coordinate systems. This is clearly needed for final setup and
simulations of effects on real data and geometry.
For a full description the writeup should be consulted.
September 22, 1997 FV
A electron positon event generator has been added to the option for
kinematics routines. The code was originally written by Mike Fatyga
BNL; subsequently adapted for Phenix by Mcguirre. It was resuffled by
fv to fit into the GBRAHMS structure. It will be enabled using the
The geometry of C1 has been made more elaborate making the outer
volume and active volume seperate, as well as defining the mirror better.
September 8, 1997 FV
The description of C1 has been changed to better reflect a real
geometry.
The parameters defining active volume, thickness, mirror sizes can now
be set by the set_param c1 name value command.
September 3, 1997 FV
The magnetic field routines updated to properly work with the option GAP i.e. the effective field is determined by the actual length of the gap.
All of the DC T3,T4 and T5 can be properly divided into sub-modules.
August 12 1997 FV
Following this insertion of changes the order is reversed such that
the newest items comes first in the description
The default values for the magnet D3 was inserted taking the values from the
near final engineering drawings.
Several parameters were added to the T3 description in order to access and modify the layout during the design phase. There are many more parameters available
for modification by KUIP command set_param t3. Note that T4 and T5
still have to be modified this way.
February 28 1997
March 10 1997
March 14 1997
April 20-29 14 1997
May 14 1997
Updated scripts and makes files in similar fashion to
Bettys changes to eglib and frit702.
So far this includes
The include file evtzeb.inc had a common name the same as a zebra routine
The name is changed form zstore to zebra_store. AIX complains. SGI does not.
In general sgi is a very forgiving platform.
The code now compiles and links succesfully on the Pentium pros, aix and sgi.
May 28 1997
June 10 1997 FV
The volume of TPC1 has been change to T1. This means that older routines which
reads the hits will not properly find the T1 hits . Thus the other routines
i.e. g_anantp.f has also been modified.
July 3 1997 FV
The gxint memory size was increased to 8,000,000 words- thanks to
S.Sanders
The beam pipe geometry has been modified to make the thickness a
parameter so it can be changed by the user. This is needed for the
design work.
See the modified routine for gbr2c.f in the geant/ana directory.
November, 1998 FV
inc/geo_beampipe.inc
Additional parameters was introduced to the beam pipe. The Be section
can now be placed asymmtricaly relative to the nominal interaction
point. The inner section not of Be i.e. from L1 to L2 can have its
material set by the command set_param beam MATNUM
[value] with the value Al=12 Fe=7.
The volume output has been changed. This has implication for
all program reading the .cdat files. It was necessary to introduce
another word in the data stream to indicate if a volume corresponded
to an active detector or to other non-active volumes like
magnets.Look in the source file to see the real changes.
The definition of BPBB i.e. the bellows was wrong; the inner radii
was that of the following beampipe section.
December 28, 1997 FV
output proper release number
The vertex volume number has to be from isub(1) not the
float usub(1). Was correct in m_anantp.f gbr2c.f
Add CVS information and update revision date
Add CVS information and update revision date
The MRS angle was not set by the set_mangle command. Reference
to the proper mids_angle included.
The hits structures were not properly setup. The settings for
scale factors and offsets had disappeared during the editting.
set_tree t1 af
set_tree t2 af
The calibration drift chambers wm1, wm2, wf1, wf2 (i.e. the old E866
FT1,...) are added to the list of detectors. The are not included by
default. To turn them on e.g. in the MRS execute in the setup files.
set_tree wm1 ao
set_tree wm2 ao
ucards ukin 6
command. For more information read the comments to the routines
qed_ee_evt.F
February 12 1997
The code was written to interface between fortran and c for stream i/o.
The sgi has build in fortran modules open, read, write, close. This is not the case for the other archictures. Therefor a set utility routine copen, cread,..
were written to take care of the.
The modules uggxcs.F was modified to refer to this as an external reference rather than open , close etc. This also requires the analysis routine gb2c.f to be modified.
Updating magnet common block to introduce effective lengths.Up till now the effective length was taken as L+gap size.
D1 205.86 cm from TOSCA
D3 205.57 cm from TOSCA
The modified routines are
The TPC parameters for T1 is modified to reflect the 'best' values as of known today.
At the same time the routine name as well as volume names are changed to
T1 rather than TPC1. This change also applies to T2.
This will necessitate a change of all Analysis modules
which reads hits from GBRAHMS.
The calibration chamber FT1 was added into the general setup including as a descriptor. It has been named WF1 (Wirechamber Forward 1) such that the additional
chambers will be named WF2, (WF3 if need be) in the forward arm
and WM1 WM2 in the Mid-Rapidity-Spectrometer.
zigeom.f was moved to zigeom.F. reflected in CVS.
The changed made by K.Hagel to T3, T4 has been incoorporated.
June 17 1997 FV
The changes made to guxint.F in order to store additional information
from the vertex of tracks (i.e. ubuf) was put back into CVS. In addition this version is being made into a 'new' release compiled on all platforms.
Machine dependencies
Some differences between gnu and other c compilers onSome c -problems
The values of the flags O_WRONLY O_CREAT O_TRUNC which can be specified in the open calla are machine dependent.
In the GBRAHMS framework with the standard gbr2c.f comis routine for creating flat c-stream files one call a fortran wrapper routine copen(..) and uses cread(..) etc.
Since the copen requires and it is machine dependent two additonal functions cmoderead() and cmodewrite() returns the approbiate flag value to be used.
Some Linux and Portland Group Fortran Compiler
This morning at the local RCF meeting there was a discussion on fortran compilers for
Linux. Since the BRAHMS geant does utilize record structure as does much STAF code there is
an interest in understanding if this is a good choice.
since the bnl physics machines have the Portland Group fortran compiler I mentioned to look into this .
it was a fairly painless experience (except for an internal problem of c constants in fortran programs).
The changes which were relevant for a general discussion are summarized below.
The executable was copied to the rlnx01.rhic and seem to function as usual.
In particular all the record structures compiled and worked as advertised.
From BRAHMS perspective this would be a fine choice for fortran compiler.
On a note on Cernlib;
Steve Adler has made a special version of Cernlib compiled with this compiler. Thus this may mean added/special
maintenance at/for RCF.
** added to login file
point to proper fortran library and
cern library.
if ( -d /home/pgi ) then
setenv PGI /home/pgi
set path = ( $PGI/linux86/bin $path /cern/97a.pgf77.p6/bin )
setenv LM_LICENSE_FILE $PGI/license.dat
alias pgman 'man -M $PGI/man'
endif
** changes which had to be made
in (g)make-files:
-----------------
#
# Most fortran compiler do not need the -c flag
FC = pgf77
FFLAGS += -c
in code
--------
The compiler did not like the VMS open keywords
accepted by solaris-pc and sgi f77 (but not by AIX)
-- change in gxuser.F
#if defined(AIX) || defined(PGF77)
OPEN(UNIT=20,STATUS='OLD',FILE=CHREAD,
* FORM='UNFORMATTED',IOSTAT=IERR)
#else
OPEN(UNIT=20,STATUS='OLD',FILE=CHREAD,
* FORM='UNFORMATTED'SHARED,READONLY,IOSTAT=IERR)
#endif
-- change in ugtxrd.F
[ i.e. SHARED and CARRIAGECONTROL presumably]
#if defined(AIX) || defined(PGF77)
OPEN(UNIT=71,FILE=CHKINE,STATUS='OLD')
#else
OPEN(UNIT=71,FILE=CHKINE,STATUS='OLD',
* CARRIAGECONTROL='LIST',SHARED)
#endif