** Add changes at the beginning! **

21/11/2004 A. Moralejo

Added subdirectory writemagicdef under ReflectorII/. It contains the 
program to generate the positions and orientations of the mirrors. 
Directory contains Makefile and writemagicdef.c

Moved back the default magic.def to be the one with no chessboarding,
but with the final number of mirrors (964). It is more versatile to 
simulate the chessboarding at the camera level. For possible tests, a
definitions file magic_chessboard.def has been created, but it is NOT
recommended to use it.

Removed file axisdev_no_chessboard.def, no longer necessary because now 
both the magic,def and the magic_chessboard.def files cobtain 964 
mirrors.

geometry.[c,h]: added reading of token chessboarded_panels from magic 
definitions file. Nothing special is done with the token. It will simply
be written to the ascii tail of the reflector simulation output, which
will in turn be read by the camera simulation.

03/11/2004 A. Moralejo

reflector.c, header.c: Fixed problem: the correct telescope theta and 
phi were not written to the output of reflector, because the variables 
were filled before they were changed in the case of wobble mode. This has 
been corrected.

27/09/2004 A. Moralejo

A bit of cleaning in Makefile (remove useless CERNLIB)


28/08/2004 A. Moralejo

Changes in configuration files. Renamed Data/magic.def and Data/axisdev.dat
to magic_no_chessboard.def and axisdev_no_chessboard.def. Now default
axisdev.dat and magic.def contain 964 mirrors as in the present MAGIC 
configuration, and the panels are in a chessboard pattern

30/04/2003 A. Moralejo

ph2cph.c: Found out that the fix from yesterday, although it "patched" the 
loss of photons, did not remove the real cause for it. Actually in the 
determination of the intersection of the photon with the paraboloid there
was an overflow which resulted in nonsense coordinates beyond 10 m from 
the mirror dish center. It has been fixed fixed by changing the following 
cut:

  if ( fabs(a) < 1.e-3 ) {
    xcut[2] = -c / b
  }

which was formerly < 1.e-6.

I also noticed that the problem from yesterday was not so serious: it only 
removed a significant amount of the photons nearly paralel to the telescope
axis, but globally, over a cer file there is no big difference.

29/04/2003 A. Moralejo

ph2cph.c:
Changed determination of which mirror element is hit. Before there was a 
problem when going to very large distances from the mirror center, sometimes
a wrong mirror was chosen, which was actually further away from the impact 
point than the mirror size, and therefore the photon was discarded later as
"not hitting any mirror" (about 20% loss for eco1000) Now we measure the 
distance on the paraboloid. The new code is:

  /*  calculate the mirror to be used */ 

  distmirr = 1000000.0f;
        
  for (i=0; i<ct_NMirrors && distmirr>=ct_RMirror; ++i) {
    distmirr2 = (float) sqrt(SQR(ct_data[i].sx - sx) +
			     SQR(ct_data[i].sy - sy));

    if (distmirr2 < distmirr) {
      i_mirror = i;
      distmirr  = distmirr2;
    }
  }

Now the "distance" we calculate on the paraboloid is not a real distance, 
because sx,sy are measured along the cut between the paraboloid and planes 
containing the paraboloid axis and the x or y axis... but this should not 
matter much with such "flat" paraboloids. What cannot be done, as was before,
is check the distance in the x,y,z space and then check whether the photon 
is inside the mirror in the sx,sy space, because then we lose photons for 
which a nearest mirror is chosen which in sx,sy is not close enough to 
contain the photon.

geometry.c:
Small change in calculation of ct_nax_radius (introduced fabs, but nothing 
changes)

16/04/2003 A. Moralejo

MagicSoft/Simulation/Detector/Data/ :
Added eco1000.def and axisdev1000.dat for eco-1000 studies

4/04/2003 A. Moralejo

init.h, geometry.c, ph2cph.c: 
introduced variable ct_max_radius, the maximum distance in x or y from the 
center to the edge of the telescope, measured on the parabolic dish. This
is used in a fast check of whether the photon hits the disk in ph2cph.c

ph2cph.c: 
in function Lin2Curv(float x), changed the calculation of the curvilinear 
coordinates (which before was only valid for ~17 m focus paraboloids).

22/01/2003 A. Moralejo

Fixed small bug in reflector.c. The end of run flag was not written to the
output when the max_events option was used in the input card.

21/01/2003 A. Moralejo

Removed from the output a null byte written right after the ascii label
containing the program version number which is at the beginning of the rfl 
file.

19/12/2002 - 17/01/2003 A. Moralejo

Lots of changes. Moved simulation of Mie scattering and Ozone absorption from
attenu.f to atm.c, and changed the way it is done. Before it was not correct
for large zenith angle (a variation like for Rayleigh scattering was assumed 
for both Mie scattering and Ozone absorption).


13/12/2002 A. Moralejo

attenu.f: Found mistake in Mie absorption calculation (height from sea 
level was taken as height above observation level). Changed optical depths
table for Mie attenuation. Now they are no longer referred to 2 km height, 
but to sea level. Detector level is taken into account later in calculation.

10/12/2002 A. Moralejo

attenu.f: Added comments, removed old/unnecessary code, corrected small
mistake in Elterman's table for ozone optical depth.

atm.c,h : removed atmospheric model "ATM_ISOTHERMAL" which actually was 
not even implemented in the code, although it could be selected in the 
input card.

15/11/2002 A. Moralejo

ph2cph.c: Fixed BUG in timing calculation!!! The time to be subtracted 
(mirror till ground) had the wrong sign!!!

reflector.c: in the wavelength range check, changed the range limits to 
the fixed values 290 and 600 nm. The StarFieldAdder cer files could not be 
processed otherwise, because the w range is not written in their headers.

ph2cph.c: changed sign of phi angle to make it positive. This was necessary
since now the vector indicating the reflected photon trajectory has also 
changed sign! (see note below, 11/11).

14/11/2002 A. Moralejo
reflector.c, parms.c: Added wobble mode option. Added wobble flag to the
output and also an atmospheric_model flag.

13/11/2002 A. Moralejo
reflector.c, header.h: Introduced 3 counters to keep track of what proportion 
of the C-photons in each event have been produced by electrons, muons or 
other particles.

11/11/2002 A. Moralejo
ph2cph.c: BUG found! and fixed: the direction cosines in the cer files are 
those of the downgoing directions of photons, hence third component is 
negative. Before it was assumed positive. This, together with a wrong 
reflection in the individual mirrors (also changed) resulted in a subtle 
error which produced a quite de-focused reflector!

reflector.c: for the same reason as above, the sign of theta in the calls 
to makeOmega had to be changed (+pi added to the phi argument).

geometry.c, ph2cph.c, reflector.c, init.h: eliminated array ct_Focal[] 
which contained the focal lengths of individual mirrors. It was redundant
since the same information is available in ct_data[].f

Oct/2002 A. Moralejo
added attach.c to attach the files magic.def, axisdev.dat and
reflectivity.dat to the end of the reflector output.

Sept/2002 A. Moralejo
header.h, reflector.c: added run header (=Corsika's), changed event header.

3/7/2002 A. Moralejo
reflector.c: Introduced NaN check in the photon loop. 
If NAns are found in a photon data block, it is not processed.

ph2cph.c: Introduced "check of positiveness" before taking the sqrt 
in the calculation of the photon trajectory intersection with the
global paraboloid.



