This update adds a new target model to represent the tubular (cigar) cells which were used in the deuteron experiment. Beside having a new target model (model 4), the entire calculation of the energy loss was moved from the header file (the eloss line) to espace. A new entry is now required instead of the eloss line in the header file to count for the thickness of the cell side-wall and end-caps. For example the following header file is used for run # 1436:
reaction c (e,e,p) e0 r 1 2843.6 particle_r c hadron specr r 5 2.61171 -63.6831 0.000 0.030 0.060 specr_offset r 3 0.000485 0.00 0.000981 particle_l c lepton specl r 5 9.6516 13.9909 0.000 0.030 0.060 specl_offset r 3 0.001223 0.000 -0.000305 target r 8 15.00 0.0723 1.0 1.0 4 4.066 2.033 2.033 tar_offset r 3 0.00 0.00 0.00 tar_angle r 2 666.666666 666.666666 isotope1_name c 1H isotope1 r 3 1.000 1.00 1.000 reconstruct r 1 2.0 cell_thickness r 3 0.0127 0.0127 0.0124 beam_vertex r 1 1
In this header file the last 3 parameters of the target line are the cell side-wall cylindrical diameter, downstream end-cap spherical radius and its height respectively. In general, the radius of the spherical cap and its height are equal. The cell_thickness line includes the thickness of the side-wall, downstream and upstream end-caps respectively. All numbers are given in centimeters. After this update, the eloss line in the header file would not be needed anymore for any other target type!
To install this update, copy the target_update.tar.gz file to the top source directory (espace/src/r*) and execute there the following command before you make espace:
tar -xvzf target_update.tar.gz
The ntuple (external) variables px and px_loss (variables # 98 and # 99 respectively in the espace_lib/block_data_var.f subroutine) were both swapped (reversed) for the left and right spectrometers. For example if you plot spec_l_px you get spec_r_px and vise versa! The reason of this bug was found in the following lines from the espace_lib/variable.f subroutine:
else if (ivar .EQ. 98 ) then if ( ispectro .EQ. 1 ) then dvar = pe else if ( ispectro .EQ. 2 ) then dvar = px else dvar = rbig endif else if (ivar .EQ. 99 ) then if ( ispectro .EQ. 1 ) then dvar = pe_loss else if ( ispectro .EQ. 2 ) then dvar = px_loss else dvar = rbig endif
The value of pe is ALWAYS the corrected lepton momentum for energy loss, but here it is associated wrongly with spectrometer # 1 (right arm) instead of associating it with the lepton arm. Similar discussion for px and the hadron momentum. This bug was fixed by modifying these lines as:
else if (ivar .EQ. 98 ) then if ( ispectro .EQ. ilepton ) then dvar = pe else if ( ispectro .EQ. ihadron ) then dvar = px else dvar = rbig endif else if (ivar .EQ. 99 ) then if ( ispectro .EQ. ilepton ) then dvar = pe_loss else if ( ispectro .EQ. ihadron ) then dvar = px_loss else dvar = rbig endif
Here, ilepton = 2 and ihadron = 1, are the standard internal espace variables for experiment E01-020 (electron is left and proton is right). After this update, the relations between these espace external and internal variables are fixed:
spec_l_px -> pe spec_r_px -> px spec_l_px_loss -> pe_loss spec_r_px_loss -> px_loss
To install this update, copy the px_update.tar.gz file to the top source directory (espace/src/r*) and execute there the following command before you make espace:
tar -xvzf px_update.tar.gz
This espace file is the most recent espace executable for linux.