CHANGES SINCE 12/08/99 RELEASE (Incomplete list) ------------------------------------------------ Various final states for pion/kaon electroproduction (For 3He, final states of 3N, D+N, 3H for pion, same but one hyperon for kaon). Multiply cross section for electroproduction by Z (for pi+ or neutral hyperon) or N (for pi- or Sigma-), since model is cross section per nucleon, but SIMC gives cross section per nucleus. CHANGES PUT INTO 12/08/99 RELEASE. ---------------------------------- The following are general changes, since many updates were made and I wasn't keeping track of them individually as I was rushing to implement (e,e'K). The input file has new flags for kaon electroproduction. I also changed the name of targ.Arec to targ.mrec_amu, because it has always wanted the MASS of the recoil system, not the atomic number for the recoil system (A-1 mass for (e,e'p), A-2 mass for (e,e'pi/K)). Finally, I removed Egamma_res_limit, which was nominally there to save a little CPU time, but which was not really doing so. Add(restore) Kaon electroproduction code, including first attempts at bound hypernuclear states and Lambda-(A-1) and Sigma-(A-1) production. Note that the Kaon code uses a modified spectator model in complete_ev (part of event.f). Instead of the struck nucleon's momentum being balanced by one nucleon, they share momentum. For the moment, giving 50 MeV to the (A-2) system. Fix problems with D(e,e'p) generation. The original version had some incompatabilities between the phase space used for generation and weighting and the form of the cross section used. A(e,e'p) was also cleaned up. It may have had some problems with the units (factors of 10**n). Fix 'retry' option in radc.f. If the radiation on the incoming arm caused an event to be non-physical (given the generated values for the outgoing particles), SIMC would keep generating different photons until the event could be completed. It should have been throwing the event out, or else applying a correction to the weight based on the limited egamma range that was being allowed. The fix was to give up on the event. Change structure names in subroutines. Most subroutines used to have internal event structures called 'ev', into which the calling routine would pass the vertex, recon, or other structure. This made it difficult to track down where variables are changed in the code (i.e. searching for where vertex.p.E is calculated only gives you one line, which is only for A(e,e'p), because in all other cases, 'vertex' is passed to complete_ev as 'ev', and only ev.p.E is ever calculated). Because the routines were almost always being called with the same structure, I made the local names for the event structures match the structure that was being passed. The following are the 'exceptions to the rule': 1) The routine calculate_central in simc.f uses the 'vertex0' and 'recon0' structures to represent vertex and reconstructed values for central events (with perfect reconstruction). These are passed to complete_recon_ev and complete_main in place of vertex and recon. Note that we pass vertex0 to complete_recon_ev, even though we usually pass the recon structure. 2) The function "deForest" was left with the internal structure "ev". This is because the routine is called for both the vertex and recon structures. It does not modify any of the variables in the structure, so it won't matter if you're searching for places where some variable (i.e. vertex.e.E) is modified, only if you're looking for everywhere it's used. Lots and lots of undocumented fixes and improvements (e.g. fixed up the HMS colimator vertical offset for the HMS-100 tune, added more information to the output (*.hist) file, etc...). CHANGES SINCE 06/07/99 RELEASE. ------------------------------- event.f: Fix calculation of ev.p.phi for hyd_elast (acos(y/r) --> acos(x/r)) Fix calc. of ev.p.yptar for hyd_elast (generate the sign). event.f: main.targ.rastery = +t6 (not -t6). Fix sign when convert to specx. dbase.f: (status messages w.r.t. target angle). event.f: Add SF weighting to deuterium. simc.f: Remove main from call to complete_recon_ev event.f: Change calculations in complete_recon_ev Ntuple_init.f: proton/pion ntuples. results_write.f: proton/pion ntuples. DONE PRIOR TO 06/07/99 RELEASE. ------------------------------- INIT.F: kill write statements. Fix deuterium. EVENT.F: check atan overflow in physics_angles. Fix deuterium. DBASE.F: remove doing_deuterium stuff from stuff that reads momentum dist. SOS: MEs, transp.f, mc_sos.f, mc_sos_recon.f HMS: mc_hms.f mc_hms_recon.f radc.f,results_write.f: test of egamma_gen_lim radc,dbase,init,radc.inc: implement HARDWIRED egamma max. physics.f: fix coord. system for pion structures_*.inc,simc.f,event.f: correct for raster contrib. only