** 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_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.