| 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|---|
| 2 | %%% magic-tdas.tex -- template to write MAGIC-TDAS documents
|
|---|
| 3 | %%%-----------------------------------------------------------------
|
|---|
| 4 | %%% Kopyleft (K) 2000 J C Gonzalez
|
|---|
| 5 | %%% Max-Planck-Institut fuer Physik,
|
|---|
| 6 | %%% Foehringer Ring 6, 80805 Muenchen, Germany
|
|---|
| 7 | %%% E-mail: gonzalez@mppmu.mpg.de
|
|---|
| 8 | %%%-----------------------------------------------------------------
|
|---|
| 9 | %%% This program is free software; you can redistribute, copy,
|
|---|
| 10 | %%% modify, use it and its documentation for any purpose,
|
|---|
| 11 | %%% provided that the above copyright notice appear in all
|
|---|
| 12 | %%% copies and that both that copyright notice and this
|
|---|
| 13 | %%% permission notice appear in supporting documentation.
|
|---|
| 14 | %%%
|
|---|
| 15 | %%% This piece of code is distributed in the hope that it will
|
|---|
| 16 | %%% be useful, but WITHOUT ANY WARRANTY; without even the
|
|---|
| 17 | %%% implied warranty of FITNESS FOR A PARTICULAR PURPOSE.
|
|---|
| 18 | %%%
|
|---|
| 19 | %%% Although you can actually do whatever you want with this
|
|---|
| 20 | %%% file (following the copyright notice above), your are
|
|---|
| 21 | %%% strongly encouraged NOT to edit directly this file.
|
|---|
| 22 | %%% Instead, make a copy and edit the copy for your purposes.
|
|---|
| 23 | %%%
|
|---|
| 24 | %%% Modifying thie original file means that you actually have
|
|---|
| 25 | %%% the (very basic) knowledge needed to make things by your
|
|---|
| 26 | %%% own, and therefore... you will not get _any_ additional
|
|---|
| 27 | %%% support :-)
|
|---|
| 28 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|---|
| 29 | %%% Last update: Time-stamp: <Thu Mar 2 09:31:41 CET 2000>
|
|---|
| 30 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|---|
| 31 | %
|
|---|
| 32 | \documentclass[12pt]{article}
|
|---|
| 33 |
|
|---|
| 34 | \usepackage{magic-tdas}
|
|---|
| 35 | \usepackage{amssymb}
|
|---|
| 36 |
|
|---|
| 37 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|---|
| 38 | %% BEGIN DOCUMENT
|
|---|
| 39 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|---|
| 40 | \begin{document}
|
|---|
| 41 |
|
|---|
| 42 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|---|
| 43 | %% Please, for the formatting just include here the standard
|
|---|
| 44 | %% elements: title, author, date, plus TDAScode
|
|---|
| 45 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|---|
| 46 | \title{ The Reflector simulation program v.0.6 }
|
|---|
| 47 | \author{A.Moralejo\\
|
|---|
| 48 | \texttt{<moralejo@pd.infn.it>}}
|
|---|
| 49 | \date{January 20, 2003\\}
|
|---|
| 50 | \TDAScode{MAGIC-TDAS 02-11\\ 030120/AMoralejo}
|
|---|
| 51 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|---|
| 52 |
|
|---|
| 53 | %% title %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|---|
| 54 | \maketitle
|
|---|
| 55 |
|
|---|
| 56 | %% abstract %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|---|
| 57 | \begin{abstract}
|
|---|
| 58 | In this document we provide a brief description of Reflector program
|
|---|
| 59 | (version 0.6) and a guide to install and run it. Some of the
|
|---|
| 60 | information contained in this document is also present in MAGIC-TDAS
|
|---|
| 61 | 02-05 dealing with the previous version of the program, but it has also
|
|---|
| 62 | been included here for clarity. Two important bugs regarding the
|
|---|
| 63 | ray-tracing routine have been corrected in this new version.
|
|---|
| 64 | \par
|
|---|
| 65 | NOTE: In December 2002, a first release of Reflector 0.6 was made,
|
|---|
| 66 | together with a first version of the present TDAS note. Immediately
|
|---|
| 67 | after that (too short a time to justify a new version number), some
|
|---|
| 68 | other changes were implemented in the program to improve the
|
|---|
| 69 | atmospheric absorption routines, and the dependence of mirror
|
|---|
| 70 | reflectivity with wavelength was introduced. This document is the
|
|---|
| 71 | manual of the final 0.6 version of the reflector, including
|
|---|
| 72 | explanations of these last modifications.
|
|---|
| 73 |
|
|---|
| 74 | \end{abstract}
|
|---|
| 75 |
|
|---|
| 76 | \newpage
|
|---|
| 77 | %% contents %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|---|
| 78 | \thetableofcontents
|
|---|
| 79 |
|
|---|
| 80 | \newpage
|
|---|
| 81 |
|
|---|
| 82 | %% body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|---|
| 83 |
|
|---|
| 84 | %------------------------------------------------------------
|
|---|
| 85 | \section{Introduction}
|
|---|
| 86 |
|
|---|
| 87 | The Reflector program was originally written by Jose Carlos Gonz\'alez
|
|---|
| 88 | and then improved by Harald Kornmayer. The Reflector program reads in
|
|---|
| 89 | MMCS output files (cerxxxxxx files from corsika) and writes an output
|
|---|
| 90 | file with the information about all the photons which reach the
|
|---|
| 91 | telescope focal plane (taking into account atmospheric and mirror
|
|---|
| 92 | absorption) and which are within the camera radius defined in the file
|
|---|
| 93 | {\bf magic.def}. In September 2001 D. Bastieri and C. Bigongiari
|
|---|
| 94 | released a new version (v.0.4) to adapt the program to a format change
|
|---|
| 95 | in the MMCS output. In June 2002 the version 0.5 was released, with
|
|---|
| 96 | small changes in the ouput file format and some bug fixing (see TDAS
|
|---|
| 97 | 02-05).
|
|---|
| 98 | \par
|
|---|
| 99 | The aim of releasing the present version 0.6 was in principle only to
|
|---|
| 100 | add some missing information in the output. However, the ray-tracing
|
|---|
| 101 | routine was checked in detail and some inconsistencies were
|
|---|
| 102 | found. As a result of this, an important bug was detected which
|
|---|
| 103 | produced a systematic blurring of all the images. Later another bug
|
|---|
| 104 | was found in the calculation of the photon arrival time on the
|
|---|
| 105 | camera.These bugs, fixed in this version, are discussed in detail in
|
|---|
| 106 | section \ref{notes}.
|
|---|
| 107 |
|
|---|
| 108 | %------------------------------------------------------------
|
|---|
| 109 | \section{Description of simulation \label{descrip}}
|
|---|
| 110 |
|
|---|
| 111 | The main steps of the simulation are:
|
|---|
| 112 |
|
|---|
| 113 | \begin{enumerate}
|
|---|
| 114 |
|
|---|
| 115 | \item Atmospheric absorption.
|
|---|
| 116 |
|
|---|
| 117 | \item Checking if the photon hits the dish.
|
|---|
| 118 |
|
|---|
| 119 | \item Aluminum absorption.
|
|---|
| 120 |
|
|---|
| 121 | \item Determination of the mirror hitted.
|
|---|
| 122 |
|
|---|
| 123 | \item Mirror reflection.
|
|---|
| 124 |
|
|---|
| 125 | \item Checking if the photon is inside the camera borders.
|
|---|
| 126 |
|
|---|
| 127 | \item Calculation of photon arrival time on camera.
|
|---|
| 128 |
|
|---|
| 129 | \end{enumerate}
|
|---|
| 130 |
|
|---|
| 131 | The reflection of each mirror element is simulated in a realistic way
|
|---|
| 132 | by introducing a gaussian spread of the reflected photons positions on
|
|---|
| 133 | the camera plane. The sigma of this PSF is defined via the
|
|---|
| 134 | {\bf point\_spread} parameter in the telescope description file {\bf
|
|---|
| 135 | magic.def}, and has a value of 0.5 cm, which corresponds approximately
|
|---|
| 136 | to the quality of the MAGIC mirrors produced up to date. Also the
|
|---|
| 137 | possible misalignment of mirror elements is simulated (see section
|
|---|
| 138 | \ref{neededfiles}).
|
|---|
| 139 |
|
|---|
| 140 | \section{Notes on version 0.6 \label{notes}}
|
|---|
| 141 |
|
|---|
| 142 | \subsection {First bug fixed in the ray tracing}
|
|---|
| 143 |
|
|---|
| 144 | The previous versions of the reflector were extensively checked and a
|
|---|
| 145 | strange behaviour was found in them. It is a well known fact (see for
|
|---|
| 146 | instance the discussions in the MAGIC design report) that, to focus a
|
|---|
| 147 | telescope on an object placed at a finite distance, one has to shift
|
|---|
| 148 | the camera plane {\it away} from the mirror dish, with respect to the
|
|---|
| 149 | position in which an object at infinity (a star) would be
|
|---|
| 150 | focused (see fig. \ref{colimation}). For instance, with a paraboloid
|
|---|
| 151 | of focal distance f = 1697 cm, an object placed 10 km above the
|
|---|
| 152 | telescope would be focused on a plane at $\simeq 1700$ cm from the
|
|---|
| 153 | dish (a distance measured along the telescope axis).
|
|---|
| 154 | %
|
|---|
| 155 | \begin{figure}[h!]
|
|---|
| 156 | \begin{center}
|
|---|
| 157 | \epsfig{file=eps/colimation.eps,width=0.7\textwidth}
|
|---|
| 158 | \caption{To focus an object at a finite distance h, the camera
|
|---|
| 159 | plane must be moved away from the mirror a distance d, given
|
|---|
| 160 | (approximately) by the formula on the right. For MAGIC, the shift is
|
|---|
| 161 | of around 3 cm for a source located 10 km above the
|
|---|
| 162 | telescope.\label{colimation}}
|
|---|
| 163 | \end{center}
|
|---|
| 164 | \end{figure}
|
|---|
| 165 | %
|
|---|
| 166 | \par
|
|---|
| 167 | With reflector program up to version 0.5, and using the mirror
|
|---|
| 168 | parameters in the standard magic.def file, we found out just the
|
|---|
| 169 | opposite behaviour. We wrote a program to produce files with the same
|
|---|
| 170 | structure as the Corsika Cherenkov output, but containing photons from
|
|---|
| 171 | a point source. If we set the source at infinity, we found the best
|
|---|
| 172 | spot placing the camera at a distance of 1697 cm (this can be changed in
|
|---|
| 173 | the magic.def file via the {\it focal\_distance} parameter). We can
|
|---|
| 174 | see the resulting spot in fig. \ref{spot_inf_f1697}. A completely
|
|---|
| 175 | independent ray-tracing program was used to verify that this is the
|
|---|
| 176 | spot that a f/1 16.97 m $\varnothing$ tesellated paraboloid should produce.
|
|---|
| 177 | %
|
|---|
| 178 | \begin{figure}[h]
|
|---|
| 179 | \begin{center}
|
|---|
| 180 | \epsfig{file=eps/spot_inf_f1697.eps,width=0.85\textwidth}
|
|---|
| 181 | \caption{Image of a point like source placed at infinity with
|
|---|
| 182 | Reflector 0.5 (units of x and y are cm). Camera plane placed at 1697 cm
|
|---|
| 183 | from the mirror. The circle on the left indicates (small) pixel
|
|---|
| 184 | size. On the right side, projections on x and y of the
|
|---|
| 185 | spot. \label{spot_inf_f1697}}
|
|---|
| 186 | \end{center}
|
|---|
| 187 | \end{figure}
|
|---|
| 188 | %
|
|---|
| 189 | If we now
|
|---|
| 190 | place the source 10 km above the telescope, the best spot is achieved
|
|---|
| 191 | at 1694 cm from the dish, instead of the expected 1700 cm
|
|---|
| 192 | (figs. \ref{spot10kmf1700} and \ref{spot10kmf1694}). It must be
|
|---|
| 193 | noted that for these and the following checks we removed all the
|
|---|
| 194 | gaussian smearing which the program introduces to simulate the
|
|---|
| 195 | possible mirror misalignments and surface irregularities (by the way,
|
|---|
| 196 | a feature which somehow optimistically was not included in the
|
|---|
| 197 | simulations shown in the MAGIC proposal). In this way we can check
|
|---|
| 198 | just the ray tracing.
|
|---|
| 199 | %
|
|---|
| 200 | \begin{figure}[h!]
|
|---|
| 201 | \begin{center}
|
|---|
| 202 | \epsfig{file=eps/spot10kmf1700.eps,width=0.85\textwidth}
|
|---|
| 203 | \caption{Image of a point like source placed 10 km above the
|
|---|
| 204 | telescope with Reflector 0.5 (units of x and y are cm). Camera plane
|
|---|
| 205 | placed at f = 1700 cm from the mirror. The fact that the spot is so large
|
|---|
| 206 | indicates a problem in the simulation, since with this camera position
|
|---|
| 207 | the telescope should be focused at 10 km (see
|
|---|
| 208 | fig. \ref{spot_inf_f1697}) and hence produce a spot similar to the one
|
|---|
| 209 | shown in fig. \ref{spot_inf_f1697}. The hole in the middle of the spot
|
|---|
| 210 | corresponds to the hole in the mirror dish, and indicates by itself a
|
|---|
| 211 | focusing problem.
|
|---|
| 212 | \label{spot10kmf1700}}
|
|---|
| 213 | \end{center}
|
|---|
| 214 | \end{figure}
|
|---|
| 215 | %
|
|---|
| 216 | \begin{figure}[h!]
|
|---|
| 217 | \begin{center}
|
|---|
| 218 | \epsfig{file=eps/spot10kmf1694.eps,width=0.85\textwidth}
|
|---|
| 219 | \caption{Image of a point like source placed 10 km above the
|
|---|
| 220 | telescope with Reflector 0.5 (units of x and y are cm). Camera plane
|
|---|
| 221 | placed at f = 1694 cm from the mirror. Now the spot is small, but the
|
|---|
| 222 | camera plane is not at the expected position (see text).
|
|---|
| 223 | \label{spot10kmf1694}}
|
|---|
| 224 | \end{center}
|
|---|
| 225 | \end{figure}
|
|---|
| 226 | %
|
|---|
| 227 | \par
|
|---|
| 228 | In order to rule out a possible mistake in the generation of the
|
|---|
| 229 | ``false'' Cherenkov files, we repeated the check using real Corsika
|
|---|
| 230 | files, and directly looking at shower images ($\Theta = 10^\circ$
|
|---|
| 231 | incident gammas with a Crab-like spectrum). We must bear in mind that
|
|---|
| 232 | the shower maximum for gammas of 100 GeV lies around 10 km above the MAGIC
|
|---|
| 233 | level. From the result we can clearly see that the images are best
|
|---|
| 234 | focused at 1694 cm (fig. \ref{evcompare}), therefore confirming the
|
|---|
| 235 | existence of a real problem in the reflector simulation.
|
|---|
| 236 | %
|
|---|
| 237 | \begin{figure}[p]
|
|---|
| 238 | \begin{center}
|
|---|
| 239 | \epsfig{file=eps/evcompare.eps,width=0.85\textwidth}
|
|---|
| 240 | \caption{Gamma shower images obtained with Reflector 0.5 placing
|
|---|
| 241 | the camera at 1700 cm (left) and 1694 cm (right) from the mirror
|
|---|
| 242 | dish. Primary gammas at $\theta = 10^\circ$, E = 16, 46 and 232 GeV.
|
|---|
| 243 | \label{evcompare}}
|
|---|
| 244 | \end{center}
|
|---|
| 245 | \end{figure}
|
|---|
| 246 | %
|
|---|
| 247 | \paragraph {Check of the mirror parameters in the magic.def file\\}
|
|---|
| 248 | In the standard magic.def file we have been using up to now, the
|
|---|
| 249 | spherical mirrors centers were found to be distributed on the surface
|
|---|
| 250 | of a f = 1700 cm paraboloid. Their curvature radii, though discretized
|
|---|
| 251 | in 8 ``zones'' as explained in the design report, corresponded in
|
|---|
| 252 | average to the local mean curvature radius of the same parabolic
|
|---|
| 253 | surface. However, their orientations were those corresponding to a f =
|
|---|
| 254 | 1697 cm paraboloid. Personally I do not think this is something
|
|---|
| 255 | intended, and looks more like an error, but anyway we checked that this
|
|---|
| 256 | was not the reason for the problems in the ray tracing: a test
|
|---|
| 257 | magic.def file was created with {\it all} the mirror parameters
|
|---|
| 258 | (positions, orientations and radii of curvature)
|
|---|
| 259 | calculated as for a f = 1697 cm paraboloid, and no significant
|
|---|
| 260 | difference could be seen. That
|
|---|
| 261 | is: i) the individual mirror orientations are the dominant factor, and
|
|---|
| 262 | the overall dish in the old reflector behaved indeed like a f = 1697
|
|---|
| 263 | cm parabolic
|
|---|
| 264 | mirror, and ii) the bug must be somewhere else. Even though the error
|
|---|
| 265 | was not there, a new magic.def file has been produced containing the
|
|---|
| 266 | parameters for the 956 mirrors of the final MAGIC design (instead of
|
|---|
| 267 | the 920 mirrors foreseen in the beginning).
|
|---|
| 268 | %
|
|---|
| 269 | \paragraph {Solution of the problem\\}
|
|---|
| 270 | Finally, a check of the routines in {\it ph2cph.c} revealed that the
|
|---|
| 271 | reflector program was actually misinterpreting the information read
|
|---|
| 272 | from the Cherenkov file written by Corsika. In figure \ref{coorsystems}
|
|---|
| 273 | we can see the definition of Corsika's coordinate system (see also the
|
|---|
| 274 | Corsika manual). In it, the x axis points north and the z axis points
|
|---|
| 275 | up. The zenith angle $\Theta$ of a particle trajectory is measured
|
|---|
| 276 | between the particle momentum and the negative z-axis, and the
|
|---|
| 277 | azimuthal angle $\Phi$ between the positive x-axis and the x-y
|
|---|
| 278 | component of the particle momentum, counterclockwise (0 -
|
|---|
| 279 | 2$\pi$). When the direction cosines of a particle's trajectory are
|
|---|
| 280 | given, they refer also to its momentum vector (a downgoing
|
|---|
| 281 | vector)\footnote{In Corsika the third component of the momentum is
|
|---|
| 282 | measured along the negative z-axis and this is probably the origin of
|
|---|
| 283 | the confusion which resulted in the bug}. The same is true for the
|
|---|
| 284 | Cherenkov photons.
|
|---|
| 285 | %
|
|---|
| 286 | \begin{figure}[h]
|
|---|
| 287 | \begin{center}
|
|---|
| 288 | \epsfig{file=eps/coorsystems.eps,width=\textwidth}
|
|---|
| 289 | \caption{Coordinate systems of Corsika and MAGIC.\label{coorsystems}}
|
|---|
| 290 | \end{center}
|
|---|
| 291 | \end{figure}
|
|---|
| 292 | %
|
|---|
| 293 | \begin{figure}[h!]
|
|---|
| 294 | \begin{center}
|
|---|
| 295 | \epsfig{file=eps/parabola.eps,width=0.6\textwidth}
|
|---|
| 296 | \caption{Misunderstanding of photon direction cosines from Corsika
|
|---|
| 297 | by Reflector v 0.5 and older versions.\label{parabola}}
|
|---|
| 298 | \end{center}
|
|---|
| 299 | \end{figure}
|
|---|
| 300 | %
|
|---|
| 301 | Unfortunately, in the output of Corsika, only the direction cosines
|
|---|
| 302 | (u, v) with respect to the x and y axis are given. These completely
|
|---|
| 303 | determine the particle's trajectory as long as one knows that they
|
|---|
| 304 | refer to a downgoing versor, in which case one gets the third
|
|---|
| 305 | direction cosine as $w = -\sqrt{1-u^2-v^2}$, with a minus sign. However,
|
|---|
| 306 | in {\it ph2cph.c} we found exactly the opposite (lines 116 to 118 in
|
|---|
| 307 | v.05):
|
|---|
| 308 |
|
|---|
| 309 | \begin{verbatim}
|
|---|
| 310 | r[0] = ph->u;
|
|---|
| 311 | r[1] = ph->v;
|
|---|
| 312 | r[2] = (float) sqrt(1.0 - r[0]*r[0] - r[1]*r[1]);
|
|---|
| 313 | \end{verbatim}
|
|---|
| 314 |
|
|---|
| 315 | This means that the program was interpreting u and v as the direction
|
|---|
| 316 | cosines of the {\it upgoing} versor towards which one should ``look''
|
|---|
| 317 | to see the incoming photon. The situation is depicted in figure
|
|---|
| 318 | \ref{parabola}. The two vectors at the bottom left of the plot are the
|
|---|
| 319 | two possible interpretations of the direction cosines u and v. These
|
|---|
| 320 | vectors have the same u and v, and differ only in the sign of their
|
|---|
| 321 | third components w. As the figure illustrates, the reflector
|
|---|
| 322 | simulation, by taking the wrong (positive) sign of w, was transforming
|
|---|
| 323 | the light coming from a point source 10 km away, into a convergent
|
|---|
| 324 | light beam which was then focused at a distance (1694 cm),
|
|---|
| 325 | shorter than the focal length of the paraboloid, and produced a
|
|---|
| 326 | blurred image at the theoretically optimal distance (1700 cm). Of
|
|---|
| 327 | course a paralel beam of light was focused at the right distance (1697
|
|---|
| 328 | cm) since in that case u = v = 0, and both the upgoing and downgoing
|
|---|
| 329 | versors have the same direction.
|
|---|
| 330 | \par
|
|---|
| 331 | The example in figure \ref{parabola} shows the case in which the
|
|---|
| 332 | telescope is pointing at zenith. It is easy to see that if the
|
|---|
| 333 | telescope was pointing in an arbitrary direction a few degrees away
|
|---|
| 334 | from zenith, the fact of taking the wrong sign in the third direction
|
|---|
| 335 | cosine would spoil the reflection completely, to the point that the
|
|---|
| 336 | spot would lie outside the camera limits. However, this is not what we
|
|---|
| 337 | observed: when using the older reflector versions for different zenith
|
|---|
| 338 | angles the images were still contained in the camera. The explanation
|
|---|
| 339 | is that the transformation between Corsika's coordinates system and
|
|---|
| 340 | the telescope system was also wrong, since the angles $\Phi$ and
|
|---|
| 341 | $\Theta$ which indicate the telescope orientation (see fixed\_target
|
|---|
| 342 | option in section \ref{commands}) follow the same convention taken
|
|---|
| 343 | from Corsika: for instance, for pointing the telescope towards North
|
|---|
| 344 | we should set $\Phi = 180^\circ$, because that would be the $\Phi$
|
|---|
| 345 | value for a particle or photon coming from North (see again
|
|---|
| 346 | fig. \ref{coorsystems}, left). This wrong transformation of coordinates
|
|---|
| 347 | oriented the telescope in a way that the situation was always like the
|
|---|
| 348 | one shown in fig. \ref{parabola}, and the image was formed in the
|
|---|
| 349 | camera also for $\Theta > 0$, though also defocused.
|
|---|
| 350 | \par
|
|---|
| 351 | The telescope coordinate system shown in figure \ref{coorsystems}
|
|---|
| 352 | (right) has its z-axis along the telescope axis, and the origin in the
|
|---|
| 353 | center of the mirror dish. This system is used in the ray tracing
|
|---|
| 354 | routine of the reflector simulation. When the telescope points up
|
|---|
| 355 | ($\Theta = \Phi = 0$) this system matches exactly the one in Corsika.
|
|---|
| 356 | The general transformation between both is a simple rotation,
|
|---|
| 357 | since for the sake of simplicity we assume in the simulation that the
|
|---|
| 358 | origins always coincide. As we have said, in Reflector v.05 or older the rotation
|
|---|
| 359 | matrix was wrong: it had been written assuming that ($\Phi$, $\Theta$)
|
|---|
| 360 | indicated the direction towards which the telescope pointed. Actually,
|
|---|
| 361 | for the reasons already exposed, the telescope must point to
|
|---|
| 362 | ($\Phi +\pi$, $\Theta$). The function in charge of building the rotation
|
|---|
| 363 | matrix is {\it makeOmega} (a part of {\it ph2cph.c}), which is called
|
|---|
| 364 | from {\it reflector.c}. For the present version we have simply
|
|---|
| 365 | replaced $\Phi$ by $\Phi + \pi$ in the function call. The transformation of
|
|---|
| 366 | coordinates is shown in figure \ref{telecoor}, and can be seen as a
|
|---|
| 367 | rotation of angle $\Phi +\pi$ around the z axis of Corsika plus a
|
|---|
| 368 | rotation of angle $\Theta$ around the y'' axis of the telescope (the
|
|---|
| 369 | same way in which the real MAGIC points).
|
|---|
| 370 | %
|
|---|
| 371 | \paragraph {New coordinate system of the camera \label{newcoordi}}
|
|---|
| 372 | We have introduced another change in Reflector 0.6 regarding the
|
|---|
| 373 | coordinates. In versions up to 0.5 the coordinates ($x_{camera}$,
|
|---|
| 374 | $y_{camera}$) of the photon impact point on the camera plane were
|
|---|
| 375 | given in the telescope system (x'', y'', z'') described in
|
|---|
| 376 | fig. \ref{coorsystems}. This was a bit confusing (a rotation of the
|
|---|
| 377 | telescope in the zenith axis resulted in a displacement in x'' of the
|
|---|
| 378 | images), in particular it would have been messy when working in wobble
|
|---|
| 379 | mode. We have now adopted the camera coordinate system proposed in
|
|---|
| 380 | TDAS 01-05: when the observer is looking from the center of the
|
|---|
| 381 | reflector in the direction of the telescope axis (towards the camera)
|
|---|
| 382 | the $x_{camera}$ axis points horizontally to the right, and the
|
|---|
| 383 | $y_{camera}$ axis points upwards. It is trivial from figure
|
|---|
| 384 | \ref{telecoor} to see that the transformation needed to obtain these
|
|---|
| 385 | coordinates is: $x_{camera} = -y''$, $\:y_{camera} = -x''$. This has been
|
|---|
| 386 | added at the end of {\it ph2cph.c}.
|
|---|
| 387 | %
|
|---|
| 388 | \begin{figure}[h]
|
|---|
| 389 | \begin{center}
|
|---|
| 390 | \epsfig{file=eps/telecoor.eps,width=\textwidth}
|
|---|
| 391 | \caption{Transformation of coordinates between the Corsika and
|
|---|
| 392 | MAGIC coordinate systems.\label{telecoor}}
|
|---|
| 393 | \end{center}
|
|---|
| 394 | \end{figure}
|
|---|
| 395 | %
|
|---|
| 396 | \paragraph {How old was the ray-tracing bug?\\}
|
|---|
| 397 | %
|
|---|
| 398 | The bug was certainly present in versions 0.4 and 0.5, but may be even
|
|---|
| 399 | older. Nevertheless, there is no doubt that the reflector program used
|
|---|
| 400 | for the simulation shown in the MAGIC design report was working
|
|---|
| 401 | fine. Extensive proof
|
|---|
| 402 | of this is provided in an appendix of the design report. A plausible
|
|---|
| 403 | explanation could be that, up to some date, the data being read in by
|
|---|
| 404 | the reflector program (the Corsika output) contained direction cosines
|
|---|
| 405 | which really referred to the upgoing versors of the photon directions,
|
|---|
| 406 | and until then the program worked well. Then may be the output of
|
|---|
| 407 | Corsika was changed to its present form, and the change went unnoticed.
|
|---|
| 408 | The Corsika version used then was 4.52, whereas all further work has
|
|---|
| 409 | been done with Corsika 5.20 or later versions. The Corsika history
|
|---|
| 410 | file shows no record of any change in this respect, but given that we
|
|---|
| 411 | have always used a slightly modified Corsika, it would not be
|
|---|
| 412 | surprising if the Cherenkov output was modified at some point in the
|
|---|
| 413 | MAGIC version of Corsika (MMCS). There is no documentation on this, so
|
|---|
| 414 | if anyone has any relevant information, please make it public.
|
|---|
| 415 | %
|
|---|
| 416 | \paragraph {Influence of the bug on image analysis\\}
|
|---|
| 417 | The fixing of the bug (resulting in sharper images) will for sure
|
|---|
| 418 | improve the results of the image analysis, in particular with regard
|
|---|
| 419 | to gamma / hadron separation. This could in part explain the
|
|---|
| 420 | differences we have been observing in the expected performance of
|
|---|
| 421 | MAGIC with respect to what was foreseen in the design report. However,
|
|---|
| 422 | we note here again that in the simulation used there, not only was the
|
|---|
| 423 | reflector working well, but also no noise was introduced in the
|
|---|
| 424 | reflecting process. This was surely too optimistic, and it implies
|
|---|
| 425 | that it will be hard to reproduce those results using a more realistic
|
|---|
| 426 | approach which accounts for mirror imperfections. However, the
|
|---|
| 427 | introduction of the noise (fig. \ref{refl06images}) has a less
|
|---|
| 428 | dramatic effect than the defocusing which the bug was producing.
|
|---|
| 429 | %
|
|---|
| 430 | \subsection {Performance of ray-tracing in the new version}
|
|---|
| 431 | In figure \ref{coma} we show the images of a point-like source at 10
|
|---|
| 432 | km from the telescope, produced with the Reflector version 0.6,
|
|---|
| 433 | and using the new version of the magic.def file (see see next
|
|---|
| 434 | section). No noise has been introduced in the reflection, the observed
|
|---|
| 435 | spots are just the result of optical aberrations. The light source has
|
|---|
| 436 | been put at slightly different viewing angles
|
|---|
| 437 | from the telescope. The results are comparable to those in the design
|
|---|
| 438 | report, actually these are a bit better, the difference probably being
|
|---|
| 439 | that the focal lengths of the mirror tiles in the older magic.def file
|
|---|
| 440 | were discretized in only eight values, while now they change rather
|
|---|
| 441 | continuously. Some images of a point source at infinity (a star) can be
|
|---|
| 442 | seen in fig. \ref{coma_star}. We can see that for any incidence angle,
|
|---|
| 443 | the area within which 50$\%$ of the light is concentrated is smaller
|
|---|
| 444 | than that of a small pixel.
|
|---|
| 445 | \par
|
|---|
| 446 | In figure \ref{refl06images} the images of three gamma events ($\theta
|
|---|
| 447 | = 10^\circ$, E = 16, 46, 232 GeV), the same of fig. \ref{evcompare}
|
|---|
| 448 | are shown. They have been produced with Reflector 0.6 assuming perfect
|
|---|
| 449 | spherical mirrors (left) and realistic ones (right). The images look
|
|---|
| 450 | reasonable, much sharper than with the older versions, even when the
|
|---|
| 451 | mirror imperfections are taken into account.
|
|---|
| 452 | %
|
|---|
| 453 | \begin{figure}[h!]
|
|---|
| 454 | \begin{center}
|
|---|
| 455 | \epsfig{file=eps/timing.eps,width=\textwidth}
|
|---|
| 456 | \caption{Test of reflector isochrony. The arrival time
|
|---|
| 457 | distributions of photons in the camera are shown for (buggy) Reflector
|
|---|
| 458 | 0.5 and for Reflector 0.6. The sketch in the center shows the test for
|
|---|
| 459 | the case in which the light beam is paralel to the telescope axis
|
|---|
| 460 | (left plot). On the right, the same test has been made with light
|
|---|
| 461 | arriving 1 degree off axis.
|
|---|
| 462 | \label{timing}}
|
|---|
| 463 | \end{center}
|
|---|
| 464 | \vspace*{-1cm}
|
|---|
| 465 | \end{figure}
|
|---|
| 466 | %
|
|---|
| 467 | \subsection {Second bug: photon timing}
|
|---|
| 468 | %
|
|---|
| 469 | After a first release of Reflector 0.6 had been made public, another
|
|---|
| 470 | important bug was found. We tried to check whether the simulated
|
|---|
| 471 | reflecting dish was really ``isochronous''. A paralel beam of photons,
|
|---|
| 472 | all sharing the same arrival time on the ground, were processed by the
|
|---|
| 473 | simulation program and their arrival times on the camera plane were
|
|---|
| 474 | histogrammed. The result can be seen in fig. \ref{timing} (dashed
|
|---|
| 475 | histograms). This time the bug was quite evident: since Corsika gives
|
|---|
| 476 | us the arrival time of photons on ground, the path from the point
|
|---|
| 477 | where the photon hits the dish to the ground has to be subtracted (or
|
|---|
| 478 | added, because since the center of the dish in the MC is at $z = 0$,
|
|---|
| 479 | the mirror reflecting the photon may have $z < 0$ when the dish is
|
|---|
| 480 | inclined). The sign in this subtraction (in {\it ph2cph.c}) was
|
|---|
| 481 | wrong. This bug was present in both versions 0.5 and 0.4, and might
|
|---|
| 482 | be related to the other one (a change of orientation of the z axis
|
|---|
| 483 | at some point may have produced it). Since in the simulation made for
|
|---|
| 484 | the design report the timing played little or no role (the camera
|
|---|
| 485 | simulation did not consider the arrival times of photons) it is not
|
|---|
| 486 | possible to know whether the bug was already in the code by then.
|
|---|
| 487 | \par
|
|---|
| 488 | This bug means that all the studies made up to now regarding photon
|
|---|
| 489 | arrival times on the camera are completely useless (for instance, the
|
|---|
| 490 | optimization of the time parameters in the L1 trigger has to be redone
|
|---|
| 491 | from scratch!).
|
|---|
| 492 | %
|
|---|
| 493 | \subsection{The new magic.def file}
|
|---|
| 494 | A new magic.def file (see sect. \ref{neededfiles}) has been created
|
|---|
| 495 | and included in the Reflector 0.6 package. Now the number of
|
|---|
| 496 | individual mirror tiles is 956, matching
|
|---|
| 497 | the number and distribution of the final MAGIC design. The mirror
|
|---|
| 498 | centers and orientations are those corresponding to a paraboloid of
|
|---|
| 499 | 1697 cm focal (hence the camera plane is placed at 1700 cm from the
|
|---|
| 500 | dish). The focal lengths have been calculated by R. Mirzoyan taking
|
|---|
| 501 | into account the so called ``shortening effect'' (see design report).
|
|---|
| 502 | A new axisdev.dat file (se again \ref{neededfiles}) with data for the
|
|---|
| 503 | 956 mirrors is also included.
|
|---|
| 504 | %
|
|---|
| 505 | \subsection{The new reflectivity.dat file}
|
|---|
| 506 | Up to version 0.5 of the program, the reflectivity of the mirrors
|
|---|
| 507 | (which the program reads in from the file reflectivity.dat) was
|
|---|
| 508 | considered to be equal to $90\%$ for all wavelengths. Following
|
|---|
| 509 | measurements performed in Padua of a mirror sample, the reflectivity
|
|---|
| 510 | has been found to be between 80 and 90$\%$ in the range from 280 to 650 nm,
|
|---|
| 511 | with a dependence on wavelength which is shown in figure \ref{reflec}.
|
|---|
| 512 | %
|
|---|
| 513 | \begin{figure}[h!]
|
|---|
| 514 | \begin{center}
|
|---|
| 515 | \epsfig{file=eps/reflec.eps,width=0.7\textwidth,height=0.4\textwidth}
|
|---|
| 516 | \caption{Reflectivity of the MAGIC telescope mirrors as a
|
|---|
| 517 | function of the wavelength of the incident light. The dip around 350
|
|---|
| 518 | nm is due to destructive interference of the light reflected on the
|
|---|
| 519 | aluminum plate with that reflected on the protective coating of the
|
|---|
| 520 | mirror. \label{reflec}}
|
|---|
| 521 | \end{center}
|
|---|
| 522 | \end{figure}
|
|---|
| 523 | %
|
|---|
| 524 | \begin{figure}[p]
|
|---|
| 525 | \begin{center}
|
|---|
| 526 | \epsfig{file=eps/coma.eps,width=0.85\textwidth}
|
|---|
| 527 | \caption{Reflector 0.6. Images of a point-like source at
|
|---|
| 528 | 10 km from the telescope for different incident angles (from on-axis
|
|---|
| 529 | to 2 degrees off-axis). The quantity d50 indicates the diameter of a
|
|---|
| 530 | circle (plotted) containing 50$\%$ of the reflected light. Note that
|
|---|
| 531 | the z-axis scale is logarithmic, and the same in the first five
|
|---|
| 532 | plots. The last plot shows the x-axis projections in linear scale.
|
|---|
| 533 | \label{coma}}
|
|---|
| 534 | \end{center}
|
|---|
| 535 | \vspace*{-1cm}
|
|---|
| 536 | \end{figure}
|
|---|
| 537 | %
|
|---|
| 538 | \begin{figure}[p]
|
|---|
| 539 | \begin{center}
|
|---|
| 540 | \epsfig{file=eps/refl06images.eps,width=0.85\textwidth}
|
|---|
| 541 | \caption{Reflector 0.6. Images of the three gamma showers shown in
|
|---|
| 542 | fig. \ref{evcompare}, without noise added in the reflection (left) and
|
|---|
| 543 | with the standard noise (right) as described in section
|
|---|
| 544 | \ref{descrip}. Note that the orientation of the images has changed as a
|
|---|
| 545 | result of the introduction of a new camera coordinate system (see page
|
|---|
| 546 | \pageref{newcoordi}).
|
|---|
| 547 | \label{refl06images}}
|
|---|
| 548 | \end{center}
|
|---|
| 549 | \vspace*{-1cm}
|
|---|
| 550 | \end{figure}
|
|---|
| 551 | %
|
|---|
| 552 | \begin{figure}[p]
|
|---|
| 553 | \begin{center}
|
|---|
| 554 | \epsfig{file=eps/coma_star.eps,width=0.85\textwidth}
|
|---|
| 555 | \caption{Reflector 0.6. Images of a star. The quantity d50
|
|---|
| 556 | indicates the diameter of a circle (plotted) containing 50$\%$ of the
|
|---|
| 557 | reflected light.
|
|---|
| 558 | \label{coma_star}}
|
|---|
| 559 | \end{center}
|
|---|
| 560 | \vspace*{-1cm}
|
|---|
| 561 | \end{figure}
|
|---|
| 562 | %
|
|---|
| 563 | \subsection{The {\itshape cermaker} program}
|
|---|
| 564 | A test program to produce cer files (input for the reflector)
|
|---|
| 565 | containing photons from a point-light source of light placed in any
|
|---|
| 566 | position has been added to the Reflector package {\it
|
|---|
| 567 | (tester/cermaker.c)}. This is the same program used to produce the
|
|---|
| 568 | plots shown in this report. The usage is as follows:
|
|---|
| 569 | \begin{verbatim}
|
|---|
| 570 | cermaker source_x(cm) source_y(cm) source_z(cm) [events]
|
|---|
| 571 | \end{verbatim}
|
|---|
| 572 | The source position is given with respect to the telescope. The output
|
|---|
| 573 | file is called {\it cer000001}, and can be read by the reflector program.
|
|---|
| 574 | %
|
|---|
| 575 | \subsection{Changes in the atmospheric absorption routines}
|
|---|
| 576 | %
|
|---|
| 577 | In the present version of the program, the simulation of atmospheric
|
|---|
| 578 | absorption has undergone major changes with respect to the original
|
|---|
| 579 | implementation by J.C. Gonz\'alez and Aitor Ibarra. Three options are
|
|---|
| 580 | available in the simulation: ATM\_NOATMOSPHERE, ATM\_90PERCENT and
|
|---|
| 581 | ATM\_CORSIKA (see section \ref{commands}). In the
|
|---|
| 582 | first two, 100$\%$ and 90$\%$ of the emitted light respectively
|
|---|
| 583 | reaches the telescope mirror, regardless of the emission height. The
|
|---|
| 584 | changes in the present version affect only the third option, which is
|
|---|
| 585 | the recommended one for running reflector in the standard MAGIC MC
|
|---|
| 586 | production. In this case, a detailed estimate of the atmospheric
|
|---|
| 587 | transmission is done.
|
|---|
| 588 | \par
|
|---|
| 589 | Three contributions to the atmospheric opacity
|
|---|
| 590 | are considered: Rayleigh scattering, Mie scattering by aerosols, and
|
|---|
| 591 | absorption by ozone. Details on how the effect of these three
|
|---|
| 592 | components is calculated are given in appendix A. In reflector
|
|---|
| 593 | versions older than 0.6,
|
|---|
| 594 | due to a bug, the contribution of Mie scattering and Ozone absorption
|
|---|
| 595 | was slightly overestimated because the vertical height of the emission
|
|---|
| 596 | point above sea level was interpreted as height above the
|
|---|
| 597 | telescope. The difference is small, since the density of the aerosols
|
|---|
| 598 | responsible for Mie scattering decreases very fast with height and
|
|---|
| 599 | therefore the absorption is hardly increased by going up 2.2 km in the
|
|---|
| 600 | region were most of the Cherenkov light is produced. In the case of
|
|---|
| 601 | ozone, its contribution is only important in the very low end of the
|
|---|
| 602 | Cherenkov light spectrum, and so the effect of the bug in the total
|
|---|
| 603 | amount of light reaching the telescope is negligible. Another change
|
|---|
| 604 | is that now the observation level is read in from the cer file, instead
|
|---|
| 605 | of being a fixed parameter in the routines. In this way the reflector
|
|---|
| 606 | program has become more flexible, and can now be used to process cer
|
|---|
| 607 | files produced for a detector at a different observation level.
|
|---|
| 608 | \par
|
|---|
| 609 | Another problem in the old implementation of absorption was that the
|
|---|
| 610 | variation of the optical depth of the atmosphere with the zenith angle
|
|---|
| 611 | $\theta$ was assumed to be the same for Mie scattering, ozone
|
|---|
| 612 | absorption and Rayleigh scattering: the so called {\it air
|
|---|
| 613 | mass} (see appendix A for details) was therefore calculated only once,
|
|---|
| 614 | using the overall density profile of air molecules (which does not
|
|---|
| 615 | match that of aerosols or ozone), and used to account for the
|
|---|
| 616 | variation of all three effects with $\theta$, while rigorously
|
|---|
| 617 | speaking it is only valid for Rayleigh scattering. Now, the simulation
|
|---|
| 618 | of Mie scattering and ozone absorption has been moved from {\it
|
|---|
| 619 | attenu.f} to {\it atm.c} and is done in a more accurate way which
|
|---|
| 620 | takes into account the vertical profile of aerosols and ozone (see
|
|---|
| 621 | appendix A for details).
|
|---|
| 622 | %
|
|---|
| 623 | \subsection{Other changes in Reflector 0.6}
|
|---|
| 624 |
|
|---|
| 625 | Some other minor improvements have been introduced in Reflector 0.6:
|
|---|
| 626 |
|
|---|
| 627 | \begin{enumerate}
|
|---|
| 628 |
|
|---|
| 629 | \item reflector.c: Introduced NaN (Not a Number) check in the photon
|
|---|
| 630 | loop. If NaNs are found in a photon data block (there are some in the
|
|---|
| 631 | Corsika output from time to time, for unkown reason), it is not processed.
|
|---|
| 632 |
|
|---|
| 633 | \item ph2cph.c: Introduced "check of positiveness" before taking a
|
|---|
| 634 | square root in the calculation of the photon trajectory intersection
|
|---|
| 635 | with the paraboloid (resulted sometimes in NaNs when the photon did
|
|---|
| 636 | not intersect the paraboloid).
|
|---|
| 637 |
|
|---|
| 638 | \item Added an option for the wobble mode in the input card (see
|
|---|
| 639 | section \ref{opt}).
|
|---|
| 640 |
|
|---|
| 641 | \item New output format (see sect. \ref{out}): we have removed a null
|
|---|
| 642 | byte that was written immediately after the ascii label containing the
|
|---|
| 643 | reflector program version number at the begining of the file. This
|
|---|
| 644 | byte was there for historical reasons and had no function
|
|---|
| 645 | whatsoever. Then we have added a Run header, which is like that of
|
|---|
| 646 | Corsika, plus a couple of variables concerning the reflector
|
|---|
| 647 | parameters: the wobble mode and the atmospheric model
|
|---|
| 648 | used for the simulation. The event header has also been changed to
|
|---|
| 649 | include all the information present in the Corsika event
|
|---|
| 650 | header. We also added in the event header three new variables which
|
|---|
| 651 | tell us for each event what fraction of the Cherenkov photons on the
|
|---|
| 652 | camera plane has been produced by electrons, muons, or other
|
|---|
| 653 | particles.
|
|---|
| 654 | \par
|
|---|
| 655 | Finally, the ascii files {\it magic.def}, {\it
|
|---|
| 656 | axisdev.dat} and {\it reflectivity.dat} which the program has used as
|
|---|
| 657 | input are now attached at the end of the output file, so that each
|
|---|
| 658 | output file contains all the relevant information on how it was
|
|---|
| 659 | produced.
|
|---|
| 660 |
|
|---|
| 661 | \end{enumerate}
|
|---|
| 662 |
|
|---|
| 663 | %------------------------------------------------------------
|
|---|
| 664 | \section{How to Install Reflector Program \label{installation}}
|
|---|
| 665 |
|
|---|
| 666 | You can get the current version of the Reflector Program from the
|
|---|
| 667 | MAGIC web page: \\
|
|---|
| 668 | {\bf http://hegra1.mppmu.mpg.de/MAGICWeb/ }\\
|
|---|
| 669 | You can find
|
|---|
| 670 | the latest public version of this program as tarred gzipped file in
|
|---|
| 671 | the Monte Carlo Download area (you need the usual password). You have to
|
|---|
| 672 | download the file reflector\_0.6.tar.gz and then follow the
|
|---|
| 673 | instructions below:
|
|---|
| 674 |
|
|---|
| 675 | \begin{description}
|
|---|
| 676 | \item[Decompress the file using:]
|
|---|
| 677 | gunzip reflector*.tar.gz
|
|---|
| 678 | \item[Unpack the tar file with:]
|
|---|
| 679 | tar xvf reflector*.tar
|
|---|
| 680 | \item[Go to the directory where the source files are:]
|
|---|
| 681 | cd MagicProgs/Simulation/Detector/Reflector\_0.6/
|
|---|
| 682 | \item[Make symbolic links running the script:]
|
|---|
| 683 | refl-install
|
|---|
| 684 | \item[Check if all dependencies are fulfilled:]
|
|---|
| 685 | make depend
|
|---|
| 686 | \item[Compile the program:]
|
|---|
| 687 | make
|
|---|
| 688 | \end{description}
|
|---|
| 689 |
|
|---|
| 690 | If everything goes right you should have an executable file called
|
|---|
| 691 | {\bf reflector}.
|
|---|
| 692 |
|
|---|
| 693 | %------------------------------------------------------------
|
|---|
| 694 | \section{How to Run Reflector Program \label{running}}
|
|---|
| 695 |
|
|---|
| 696 | You need a steering card to run the Reflector program. You can find an
|
|---|
| 697 | example in the {\bf MagicProgs/Simulation/Detector/Reflector\_0.6/input.card}
|
|---|
| 698 | file. You have to modify this file according to your needs (see below
|
|---|
| 699 | for instructions about steering card) and then run the program with the
|
|---|
| 700 | following statement:\\
|
|---|
| 701 |
|
|---|
| 702 | \hspace{1cm}{\bf reflector $<$ input.card}
|
|---|
| 703 |
|
|---|
| 704 | %------------------------------------------------------------
|
|---|
| 705 | \section{Needed Files \label{neededfiles}}
|
|---|
| 706 |
|
|---|
| 707 | The Reflector program needs some other files to run. These files are
|
|---|
| 708 | the following:
|
|---|
| 709 | \begin{itemize}
|
|---|
| 710 | \item {\bf magic.def}: contains the description of MAGIC telescope
|
|---|
| 711 | geometry, together with some other parameters needed by the Reflector
|
|---|
| 712 | program.
|
|---|
| 713 | \item {\bf axisdev.dat}: contains data to simulate the possible
|
|---|
| 714 | deviation of the spot of each single mirror on the camera plane due
|
|---|
| 715 | to its non perfect alignment. The values are x, y coordinates
|
|---|
| 716 | distributed at random (according to a gaussian with $\sigma =
|
|---|
| 717 | 0.5$ cm).
|
|---|
| 718 | \item {\bf reflectivity.dat}: contains the mirror reflectivity index as
|
|---|
| 719 | a function of the wavelength.
|
|---|
| 720 | \end{itemize}
|
|---|
| 721 |
|
|---|
| 722 | All these files (included in the reflector package) are usually kept
|
|---|
| 723 | in the {\bf MagicProgs/Simulation/Detector/Data/} directory and {\it
|
|---|
| 724 | in principle} you should {\bf not} make any change in them to run the
|
|---|
| 725 | program.
|
|---|
| 726 |
|
|---|
| 727 | %------------------------------------------------------------
|
|---|
| 728 | \section{Steering Card}
|
|---|
| 729 |
|
|---|
| 730 | The steering card sets all the parameters and options
|
|---|
| 731 | to steer the reflection simulation. Each line of the steering card is
|
|---|
| 732 | a statement with its parameters, if it is the case. Lines beginning
|
|---|
| 733 | with \# are considered comments. The Reflector program parses all the
|
|---|
| 734 | lines sequentially. Then if you repeat a statement with different
|
|---|
| 735 | options only the last one will be considered.
|
|---|
| 736 |
|
|---|
| 737 | \subsection{Mandatory Commands \label{commands}}
|
|---|
| 738 |
|
|---|
| 739 | \begin{description}
|
|---|
| 740 |
|
|---|
| 741 | \item[reflector 0.6]
|
|---|
| 742 |
|
|---|
| 743 | This statement must be the first line of the steering card
|
|---|
| 744 | file. The Reflector program checks it to verify if it is reading
|
|---|
| 745 | a steering card.
|
|---|
| 746 |
|
|---|
| 747 | \item[output\_file /disk99/reflex/Gamma\_0\_7\_1001to1010\_w0.rfl]
|
|---|
| 748 |
|
|---|
| 749 | The output\_file command specifies the name and the
|
|---|
| 750 | path of the output file. The path can be absolute, like in the
|
|---|
| 751 | example above, or relative. Although any name can be used,
|
|---|
| 752 | conventionally the Reflector program
|
|---|
| 753 | output file name has the .rfl extension, and starts with
|
|---|
| 754 | the primary particle name. The first number indicates the
|
|---|
| 755 | zenith angle of the incident primaries, the second one
|
|---|
| 756 | indicates the production site (7 is for Padua) and is related
|
|---|
| 757 | to the random number generator seed used by CORSIKA. Then the run
|
|---|
| 758 | number range is shown (10 runs in this case, from 1001 to
|
|---|
| 759 | 1010). Each run corresponds to 10000 showers. Finally, the
|
|---|
| 760 | label "w0" means no wobble mode was used (telescope pointing
|
|---|
| 761 | at the source). Alternatively, the "w+" or "w-" labels (only
|
|---|
| 762 | in gamma files) refer to the two pointings in the
|
|---|
| 763 | Wobble-observation mode (see TDAS 01-05 by W. Wittek).
|
|---|
| 764 |
|
|---|
| 765 | \item[ct\_file /path/magic.def]
|
|---|
| 766 |
|
|---|
| 767 | The ct\_file statement defines where the program can find the
|
|---|
| 768 | telescope characteristics. Usually, the magic.def file is kept in
|
|---|
| 769 | MagicProgs/Simulation/Detector/Data
|
|---|
| 770 |
|
|---|
| 771 | \item[atm\_model ATM\_CORSIKA]
|
|---|
| 772 |
|
|---|
| 773 | The atm\_model statement tells the program what kind of
|
|---|
| 774 | atmospheric absorption model to use. Possible choices are:
|
|---|
| 775 | ATM\_NOATMOSPHERE,\\ ATM\_90PERCENT and ATM\_CORSIKA,
|
|---|
| 776 | corresponding respectively to no absorption, a 10$\%$
|
|---|
| 777 | absorption and a model using the US Standard atmosphere (see
|
|---|
| 778 | Corsika manual, appendix C) for the Rayleigh scattering and a
|
|---|
| 779 | model by L. Elterman \cite{elterman64,elterman65} for the Mie
|
|---|
| 780 | scattering and ozone absorption (see appendix A). The third
|
|---|
| 781 | model should be chosen for the standard MC MAGIC production.
|
|---|
| 782 |
|
|---|
| 783 | \item[cer\_files]
|
|---|
| 784 |
|
|---|
| 785 | All the lines following this statement are considered files to
|
|---|
| 786 | be processed by the Reflector program, one for each line,
|
|---|
| 787 | eventually with their paths (see the example below). Therefore this
|
|---|
| 788 | command must be the last one.\\
|
|---|
| 789 | \\
|
|---|
| 790 | cer\_files\\
|
|---|
| 791 | /disk99/cer001001\\
|
|---|
| 792 | /disk99/cer001002\\
|
|---|
| 793 | /disk99/cer001003\\
|
|---|
| 794 | ........ \\
|
|---|
| 795 | /disk99/cer001009\\
|
|---|
| 796 | /disk99/cer001010\\
|
|---|
| 797 | \\
|
|---|
| 798 | The cer file name can be followed by two numbers, for example:
|
|---|
| 799 | \\
|
|---|
| 800 | /disk99/cer001001 376 5723\\
|
|---|
| 801 | \\
|
|---|
| 802 | In this case the program processes only the events between and
|
|---|
| 803 | including the numbers given.
|
|---|
| 804 |
|
|---|
| 805 | \end{description}
|
|---|
| 806 |
|
|---|
| 807 | \subsection{Optional Commands \label{opt}}
|
|---|
| 808 |
|
|---|
| 809 | \begin{description}
|
|---|
| 810 |
|
|---|
| 811 | \item[verbose\_level 1]
|
|---|
| 812 |
|
|---|
| 813 | Sets the quantity of information printed out by Reflector
|
|---|
| 814 | when running. Possible values are 0 to 4
|
|---|
| 815 |
|
|---|
| 816 | \item[max\_events 50000]
|
|---|
| 817 |
|
|---|
| 818 | Fixes the maximum number of events to process.
|
|---|
| 819 |
|
|---|
| 820 | \item[energy\_cuts 100 1000]
|
|---|
| 821 |
|
|---|
| 822 | This statement forces the Reflector to process only showers
|
|---|
| 823 | with primary energy between the given values (GeV).
|
|---|
| 824 |
|
|---|
| 825 | \item[seeds n1 n2]
|
|---|
| 826 |
|
|---|
| 827 | Seeds for the random number generators to used by the program
|
|---|
| 828 | for the simulation of the absorption (both in the atmosphere
|
|---|
| 829 | and on the mirror). Default values are 3141592 and
|
|---|
| 830 | 2718182.
|
|---|
| 831 |
|
|---|
| 832 | \item[telescope\_position x y]
|
|---|
| 833 |
|
|---|
| 834 | Option included in version 0.5 of Reflector. Usually it is
|
|---|
| 835 | not needed, since for normal MC production for MAGIC the
|
|---|
| 836 | telescope is placed at the origin of coordinates (0,0). But,
|
|---|
| 837 | if for some reason, we produce cerxxxxxx files with the
|
|---|
| 838 | telescope in a different position, we must inform the
|
|---|
| 839 | Reflector program in the input card using this option
|
|---|
| 840 | (otherwise Reflector will fail to {\it find} the photons
|
|---|
| 841 | in the cer file).
|
|---|
| 842 |
|
|---|
| 843 | \item[reflectivity\_file /path/reflectivity.dat]
|
|---|
| 844 |
|
|---|
| 845 | File containing mirror reflectivity as a function of
|
|---|
| 846 | wavelength (see section \ref{neededfiles}). If this option is
|
|---|
| 847 | not supplied, the program will look for \\
|
|---|
| 848 | ``../Data/reflectivity.dat'' as previous versions of
|
|---|
| 849 | Reflector did.
|
|---|
| 850 |
|
|---|
| 851 | \item[axisdev\_file /path/axisdev.dat]
|
|---|
| 852 |
|
|---|
| 853 | File containing single mirror spot deviation in {\bf x} and
|
|---|
| 854 | {\bf y} on the camera in cm (see section
|
|---|
| 855 | \ref{neededfiles}) for each mirror. If this option is not
|
|---|
| 856 | supplied, the program will look for ``../Data/axisdev.dat''
|
|---|
| 857 | as previous versions of Reflector did.
|
|---|
| 858 |
|
|---|
| 859 | \item[fixed\_target $\Theta$ $\Phi$]
|
|---|
| 860 |
|
|---|
| 861 | This statement fixes the telescope axis position. The first
|
|---|
| 862 | number is the zenith angle $\Theta$ (deg) while the second is
|
|---|
| 863 | the azimuthal angle $\Phi$ (deg). This corresponds to {\it
|
|---|
| 864 | CORSIKA}'s definition of primary particle incident direction
|
|---|
| 865 | (see fig. \ref{coorsystems}, left). For instance, $\phi = 90^\circ$
|
|---|
| 866 | means that the telescope is pointing towards East. If this
|
|---|
| 867 | option is omitted the telescope will always point in the
|
|---|
| 868 | direction of the Corsika primary (whatever it is), or a
|
|---|
| 869 | slightly modified direction if the wobble\_mode option is used
|
|---|
| 870 | (see next point). When running the reflector over gamma data
|
|---|
| 871 | generated in a range of zenith angles, one should therefore
|
|---|
| 872 | ommit the fixed\_target option.
|
|---|
| 873 |
|
|---|
| 874 | \item[wobble\_mode w]
|
|---|
| 875 |
|
|---|
| 876 | Indicates whether the reflection should be done in the wobble
|
|---|
| 877 | mode, that is, with shifted pointing with respect to the
|
|---|
| 878 | nominal telescope orientation (given by fixed\_target or
|
|---|
| 879 | otherwise, see above). The wobble mode is described in TDAS
|
|---|
| 880 | 01-05. Possible values for w are 0 (no wobble mode), 1, -1
|
|---|
| 881 | (image shift along $x_{camera}$ axis) and 3 (image shift along
|
|---|
| 882 | $y_{camera}$ axis).
|
|---|
| 883 |
|
|---|
| 884 | \end{description}
|
|---|
| 885 |
|
|---|
| 886 | %------------------------------------------------------------
|
|---|
| 887 |
|
|---|
| 888 | \section{Output file \label{out}}
|
|---|
| 889 | The reflector output file begins with two ascii lines, the first of
|
|---|
| 890 | which informs us of the program version with which it has been
|
|---|
| 891 | produced (NOTE: in the following, the dollar symbol \verb"$" stands
|
|---|
| 892 | for a carriage return):\\
|
|---|
| 893 | \\
|
|---|
| 894 | \verb"reflector 0.6$START---RUN$" \\
|
|---|
| 895 | \\
|
|---|
| 896 | Then there is run header which is basically the one from Corsika with
|
|---|
| 897 | two added variables, {\it wobble\_mode} and {\it
|
|---|
| 898 | atmospheric\_model}. Check the Corsika manual for the meaning and
|
|---|
| 899 | units of the rest of them. All of the variables are 4-byte real numbers
|
|---|
| 900 | except the first, which is a 4 character string containing the run
|
|---|
| 901 | header ascii label from Corsika:
|
|---|
| 902 | \vspace*{0.5cm}
|
|---|
| 903 | \\
|
|---|
| 904 | %
|
|---|
| 905 | \begin{tabular}{lll}
|
|---|
| 906 | \multicolumn{2}{c}{Variable} & Description \\
|
|---|
| 907 | \hline
|
|---|
| 908 | && \\
|
|---|
| 909 | 1 & ASCII Label & 'RUNH' \\
|
|---|
| 910 | 2 & RunNumber & \\
|
|---|
| 911 | 3 & date & \\
|
|---|
| 912 | 4 & Corsika\_version & \\
|
|---|
| 913 | 5 & NumObsLev & \\
|
|---|
| 914 | 6 to 15 & HeightLev[10] & \\
|
|---|
| 915 | 16 & SlopeSpec & \\
|
|---|
| 916 | 17 & ELowLim & \\
|
|---|
| 917 | 18 & EUppLim & \\
|
|---|
| 918 | 19 & EGS4\_flag & \\
|
|---|
| 919 | 20 & NKG\_flag & \\
|
|---|
| 920 | 21 & Ecutoffh & \\
|
|---|
| 921 | 22 & Ecutoffm & \\
|
|---|
| 922 | 23 & Ecutoffe & \\
|
|---|
| 923 | 24 & Ecutoffg & \\
|
|---|
| 924 | 25 to 74 & C[50] & \\
|
|---|
| 925 | 75 & wobble\_mode & Wobble mode with which the reflector was run (TDAS
|
|---|
| 926 | 01-05) \\
|
|---|
| 927 | 76 & atmospheric\_model & Atmospheric model used for the absorption
|
|---|
| 928 | simulation \\
|
|---|
| 929 | && 0 = no atmosphere; 1 = atm\_90percent; \\
|
|---|
| 930 | && 2 = atm\_corsika. \\
|
|---|
| 931 | 77 to 94 & dummy1[18] & not used \\
|
|---|
| 932 | 95 to 134 & CKA[40] & \\
|
|---|
| 933 | 135 to 139 & CETA[5] & \\
|
|---|
| 934 | &\\
|
|---|
| 935 | \hline
|
|---|
| 936 | \end{tabular}
|
|---|
| 937 |
|
|---|
| 938 | \newpage
|
|---|
| 939 |
|
|---|
| 940 | \begin{tabular}{lll}
|
|---|
| 941 | \multicolumn{2}{c}{Variable} & \parbox{11cm}{Description} \\
|
|---|
| 942 | \hline
|
|---|
| 943 | && \\
|
|---|
| 944 | 140 to 140 & CSTRBA[11] & \\
|
|---|
| 945 | 151 to 254 & dummy2[104] & not used \\
|
|---|
| 946 | 255 to 259 & AATM[5] & \\
|
|---|
| 947 | 260 to 264 & BATM[5] & \\
|
|---|
| 948 | 265 to 269 & CATM[5] & \\
|
|---|
| 949 | 270 to 273 & NFL[4] & \\
|
|---|
| 950 | &\\
|
|---|
| 951 | \hline
|
|---|
| 952 | \end{tabular}
|
|---|
| 953 | \vspace*{0.5cm}
|
|---|
| 954 | \\
|
|---|
| 955 | %
|
|---|
| 956 | Then there comes a carriage return followed by the ascii flag which
|
|---|
| 957 | indicates the start of an event, and again a carriage return:\\
|
|---|
| 958 | \\
|
|---|
| 959 | \verb"$START-EVENT$"\\
|
|---|
| 960 | \\
|
|---|
| 961 | and then the binary event header. Each variable is a 4-byte
|
|---|
| 962 | float number except for the first one which is the event header label
|
|---|
| 963 | from Corsika (a string of 4 characters). Some of of the variables from
|
|---|
| 964 | Corsika are not explained here (see Corsika manual instead).
|
|---|
| 965 | \vspace*{0.5cm}
|
|---|
| 966 | \\
|
|---|
| 967 | \begin{tabular}{lll}
|
|---|
| 968 | \multicolumn{2}{c}{Variable} & Description \\
|
|---|
| 969 | \hline
|
|---|
| 970 | && \\
|
|---|
| 971 | 1 & ASCII label & 'EVTH' \\
|
|---|
| 972 | 2 & EvtNumber & Event Number \\
|
|---|
| 973 | 3 & PrimaryID & Primary particle identification code \\
|
|---|
| 974 | 4 & Etotal & Primary particle total energy (GeV) \\
|
|---|
| 975 | 5 & Thick0 & CORSIKA's starting altitude in g/cm2 \\
|
|---|
| 976 | 6 & FirstTarget & CORSIKA's number of first target if fixed \\
|
|---|
| 977 | 7 & zFirstInt & Height of first interaction in cm \\
|
|---|
| 978 | 8 to 10 & p[3] & Primary particle momentum in x,y,-z directions (GeV) \\
|
|---|
| 979 | 11 & Theta & Primary particle zenith angle (rad) \\
|
|---|
| 980 | 12 & Phi & Primary particle azimuth angle (rad) \\
|
|---|
| 981 |
|
|---|
| 982 | 13 & NumRndSeq & Number of different CORSIKA random sequences (max. 10) \\
|
|---|
| 983 | 14 to 43 & RndData[10][3] & RndData[i][0]: integer seed of sequence i \\
|
|---|
| 984 | & & RndData[i][1]: number of offset random calls (mod $10^6$) of sequence i. \\
|
|---|
| 985 | & & RndData[i][2]: number of offset random calls ($/10^6$) of sequence i. \\
|
|---|
| 986 |
|
|---|
| 987 | 44 & RunNumber & Run number \\
|
|---|
| 988 | 45 & DateRun & Date of run yymmdd \\
|
|---|
| 989 | 46 & Corsika\_version & Version of {\it CORSIKA} \\
|
|---|
| 990 |
|
|---|
| 991 | 47 & NumObsLev & Number of observation levels (should be always 1 for
|
|---|
| 992 | us) \\
|
|---|
| 993 | 48 to 57 & HeightLev[10] & Height of observation levels in cm \\
|
|---|
| 994 |
|
|---|
| 995 | 58 & SlopeSpec & Energy spectrum slope \\
|
|---|
| 996 | 59 & ELowLim & Energy lower limit (GeV) \\
|
|---|
| 997 | 60 & EUppLim & Energy upper limit (GeV) \\
|
|---|
| 998 | 61 & Ecutoffh & \\
|
|---|
| 999 | 62 & Ecutoffm & \\
|
|---|
| 1000 | 63 & Ecutoffe & \\
|
|---|
| 1001 | & \\
|
|---|
| 1002 | \hline
|
|---|
| 1003 | \end{tabular}
|
|---|
| 1004 | %
|
|---|
| 1005 | \newpage
|
|---|
| 1006 | %
|
|---|
| 1007 |
|
|---|
| 1008 | \begin{tabular}{lll}
|
|---|
| 1009 |
|
|---|
| 1010 | \multicolumn{2}{c}{Variable} & \parbox{11cm}{Description} \\
|
|---|
| 1011 | \hline
|
|---|
| 1012 | && \\
|
|---|
| 1013 | 64 & Ecutoffg & \\
|
|---|
| 1014 | 65 & NFLAIN & \\
|
|---|
| 1015 | 66 & NFLDIF & \\
|
|---|
| 1016 | 67 & NFLPI0 & \\
|
|---|
| 1017 | 68 & NFLPIF & \\
|
|---|
| 1018 | 69 & NFLCHE & \\
|
|---|
| 1019 | 70 & NFRAGM & \\
|
|---|
| 1020 | 71 & Bx & \\
|
|---|
| 1021 | 72 & By & \\
|
|---|
| 1022 | 73 & EGS4yn & \\
|
|---|
| 1023 | 74 & NKGyn & \\
|
|---|
| 1024 | 75 & GHEISHAyn & \\
|
|---|
| 1025 | 76 & VENUSyn & \\
|
|---|
| 1026 | 77 & CERENKOVyn & \\
|
|---|
| 1027 | 78 & NEUTRINOyn & \\
|
|---|
| 1028 | 79 & HORIZONTyn & \\
|
|---|
| 1029 | 80 & COMPUTER & \\
|
|---|
| 1030 | 81 & ThetaMin & Minimum Theta of primaries (deg) \\
|
|---|
| 1031 | 82 & ThetaMax & Maximum Theta of primaries (deg) \\
|
|---|
| 1032 | 83 & PhiMin & Minimum Phi of primaries (deg) \\
|
|---|
| 1033 | 84 & PhiMax & Maximum Phi of primaries (deg) \\
|
|---|
| 1034 | 85 & CBunchSize & \\
|
|---|
| 1035 | 86 & CDetInX & \\
|
|---|
| 1036 | 87 & CDetInY & \\
|
|---|
| 1037 | 88 & CSpacInX & \\
|
|---|
| 1038 | 89 & CSpacInY & \\
|
|---|
| 1039 | 90 & CLenInX & \\
|
|---|
| 1040 | 91 & CLenInY & \\
|
|---|
| 1041 | 92 & COutput & \\
|
|---|
| 1042 | 93 & AngleNorthX& \\
|
|---|
| 1043 | 94 & MuonInfo & \\
|
|---|
| 1044 | 95 & StepLength & \\
|
|---|
| 1045 | 96 & CWaveLower & Wavelength lower limit (nm) \\
|
|---|
| 1046 | 97 & CWaveUpper & Wavelength upper limit (nm) \\
|
|---|
| 1047 | 98 & Multipl & \\
|
|---|
| 1048 | 99 to 138 & CorePos[2][20] & Core positions of randomized shower \\
|
|---|
| 1049 | 139 to 140 & SIBYLL[2] & \\
|
|---|
| 1050 | 141 to 142 & QGSJET[2] & \\
|
|---|
| 1051 | 143 to 144 & DPMJET[2] & \\
|
|---|
| 1052 | 145 & VENUS\_cross & \\
|
|---|
| 1053 | 146 & mu\_mult\_scat & \\
|
|---|
| 1054 | 147 & NKG\_range & \\
|
|---|
| 1055 | 148 to 149 & EFRCTHN[2] & \\
|
|---|
| 1056 | 150 to 151 & WMAX[2] & \\
|
|---|
| 1057 | & \\
|
|---|
| 1058 | \hline
|
|---|
| 1059 | \end{tabular}
|
|---|
| 1060 |
|
|---|
| 1061 | \newpage
|
|---|
| 1062 |
|
|---|
| 1063 | \begin{tabular}{lll}
|
|---|
| 1064 | \multicolumn{2}{c}{Variable} & \parbox{11cm}{Description} \\
|
|---|
| 1065 | \hline
|
|---|
| 1066 | && \\
|
|---|
| 1067 | 152 & rthin\_rmax & \\
|
|---|
| 1068 | 153 to 154 & viewcone\_angles[2] & Inner and outer angles of Corsika's VIEWCONE
|
|---|
| 1069 | option. \\
|
|---|
| 1070 | 155 & telescopePhi & Telescope azimuth (rad). Measured from South, counter-clockwise \\
|
|---|
| 1071 | 156 & telescopeTheta & Telescope zenith angle (rad) \\
|
|---|
| 1072 | 157 & TimeFirst & Arrival time on camera of first photon (ns) \\
|
|---|
| 1073 | 158 & TimeLast & Arrival time on camera of last photon (ns) \\
|
|---|
| 1074 |
|
|---|
| 1075 | && 6 next variables: CORSIKA longitudinal particle fit parameters \\
|
|---|
| 1076 | && \hspace{0.5cm} (see CORSIKA manual for precise meaning and units)\\
|
|---|
| 1077 | 159 & longi\_Nmax & Numer of charged particles at maximum \\
|
|---|
| 1078 | 160 & longi\_t0 & Atmospheric depth of shower starting point (N=0) \\
|
|---|
| 1079 | 161 & longi\_tmax & Atmospheric depth of shower maximum (g/cm$^2$) \\
|
|---|
| 1080 | 162 & longi\_a & \\
|
|---|
| 1081 | 163 & longi\_b & For {\bf longi\_a}, {\bf longi\_b}, {\bf longi\_c}, see CORSIKA manual \\
|
|---|
| 1082 | 164 & longi\_c & \\
|
|---|
| 1083 | 165 & longi\_chi2 & $\chi^2/dof$ of the fit\\
|
|---|
| 1084 | 166 & CORSIKAPhs & Original photons written by {\it CORSIKA} \\
|
|---|
| 1085 | 167 & AtmAbsPhs & Photons absorbed by the atmosphere \\
|
|---|
| 1086 | 168 & MirrAbsPhs & Photons absorbed by the mirror \\
|
|---|
| 1087 | 169 & OutOfMirrPhs & Photons outside the mirror \\
|
|---|
| 1088 | 170 & BlackSpotPhs & Photons lost in the "black spot" \\
|
|---|
| 1089 | 171 & OutOfChamPhs & Photons outside the camera \\
|
|---|
| 1090 | 172 & CPhotons & Photons reaching the camera \\
|
|---|
| 1091 |
|
|---|
| 1092 | 173 & elec\_cph\_fraction & Fraction of C-photons produced by electrons \\
|
|---|
| 1093 | 174 & muon\_cph\_fraction & Fraction of C-photons produced by muons \\
|
|---|
| 1094 | 175 & other\_cph\_fraction & Fraction of C-photons produced by electrons \\
|
|---|
| 1095 | 176 to 182 & dummy[7] & not used \\
|
|---|
| 1096 | & \\
|
|---|
| 1097 | \hline
|
|---|
| 1098 | \end{tabular}
|
|---|
| 1099 | %
|
|---|
| 1100 | \vspace*{0.5cm}
|
|---|
| 1101 | \\
|
|---|
| 1102 | The event header is followed by 8-word blocks, one for each Cherenkov
|
|---|
| 1103 | photon that reaches the camera. A photon block contains the following
|
|---|
| 1104 | variables (as 4-byte float numbers):
|
|---|
| 1105 | \vspace*{0.5cm}
|
|---|
| 1106 | \\
|
|---|
| 1107 | \begin{tabular}{ll}
|
|---|
| 1108 | Variable & Description \\
|
|---|
| 1109 | \hline
|
|---|
| 1110 | & \\
|
|---|
| 1111 | w & 100000 $\times$ Particle\_type + 1000 $\times$ n + Wavelength (nm) \\
|
|---|
| 1112 | & Particle\_type indicates what particle produced the C-photon. Its value is 2 for electrons \\
|
|---|
| 1113 | & and positrons, and the standard codes of Corsika for the rest. \\
|
|---|
| 1114 | & n is the index from 1 to ICERML (see Corsika manual) for the case in which each Corsika \\
|
|---|
| 1115 | & shower is used more than once (normally, in MMCS will be just 1). \\
|
|---|
| 1116 | x, y & Impact point in camera coordinates (cm) \\
|
|---|
| 1117 | u, v & Director cosines of down-going versor indicating the photon direction \\
|
|---|
| 1118 | t & Arrival time on camera (ns), measured from the time of first
|
|---|
| 1119 | interaction of the primary \\
|
|---|
| 1120 | h & Production height (cm), measured above sea level on the
|
|---|
| 1121 | vertical of the telescope location \\
|
|---|
| 1122 | & (it is not the {\it true} height which would be measured on
|
|---|
| 1123 | the vertical of the emitting particle!) \\
|
|---|
| 1124 | phi & Incidence angle with respect to camera plane (rad) \\
|
|---|
| 1125 | & \\
|
|---|
| 1126 | \hline
|
|---|
| 1127 | \end{tabular}
|
|---|
| 1128 | \vspace*{0.5cm}
|
|---|
| 1129 | \\
|
|---|
| 1130 | After the last photon block of an event there is a carriage return
|
|---|
| 1131 | followed by the ascii flag indicating the event end, and then two more
|
|---|
| 1132 | carriage returns before the ascii flag of the beginning of the next
|
|---|
| 1133 | event, and so on:\\
|
|---|
| 1134 | \\
|
|---|
| 1135 | \verb"$END---EVENT$$START-EVENT$Event_header....$END---EVENT$$END-----RUN$$START---RUN$..."\\
|
|---|
| 1136 | \\
|
|---|
| 1137 | The flag ``\verb$END-----RUN$'' appears after the last event in a run
|
|---|
| 1138 | (that is, the last event processed of each of the input cer
|
|---|
| 1139 | files). After the last processed run, an end of file flag is
|
|---|
| 1140 | written:\\
|
|---|
| 1141 | \\
|
|---|
| 1142 | \verb"...$END---EVENT$$END-----RUN$$END----FILE$"\\
|
|---|
| 1143 | \\
|
|---|
| 1144 | Finally, after this flag an ``ascii tail'' has been attached to the file:
|
|---|
| 1145 | it consists of the ascii files {\it magic.def}, {\it axisdev.dat} and
|
|---|
| 1146 | {\it reflectivity.dat} one after the other, separated by carriage returns:
|
|---|
| 1147 | \\
|
|---|
| 1148 | \\
|
|---|
| 1149 | \verb"$magic.def$axisdev.dat$reflectivity.dat"\\
|
|---|
| 1150 | \\
|
|---|
| 1151 | In this way all the relevant parameters used to produce the output are
|
|---|
| 1152 | kept together with the reflected events.
|
|---|
| 1153 | %------------------------------------------------------------
|
|---|
| 1154 | \newpage
|
|---|
| 1155 | \renewcommand{\thesubsection}{A.\arabic{subsection}}
|
|---|
| 1156 | \section*{Appendix A : atmospheric absorption}
|
|---|
| 1157 | \addcontentsline{toc}{section}{Appendix A : atmospheric absorption}
|
|---|
| 1158 | %
|
|---|
| 1159 | The simulation of the absorption of Cherenkov light in the atmosphere
|
|---|
| 1160 | has been included in the {\it Reflector} program because this feature
|
|---|
| 1161 | was not yet available in the first versions of CORSIKA used within the
|
|---|
| 1162 | MAGIC collaboration. In the latest CORSIKA versions, the atmospheric
|
|---|
| 1163 | absorption has been included as an option, but it is not
|
|---|
| 1164 | compatible with the simulation of a curved atmosphere \cite{cor02},
|
|---|
| 1165 | and hence we have kept this step as a part of our reflector
|
|---|
| 1166 | simulation. This appendix describes how the atmospheric absorption is
|
|---|
| 1167 | implemented in the program when the option ATM\_CORSIKA (see section
|
|---|
| 1168 | \ref{commands}) is chosen.
|
|---|
| 1169 | \par
|
|---|
| 1170 | The geometry of the problem is sketched in figure
|
|---|
| 1171 | \ref{fig:atmoscheme}. A Cherenkov photon is emitted in point A and
|
|---|
| 1172 | travels towards the telescope placed at B. At any moment, the height
|
|---|
| 1173 | $h$ of the photon above sea level is related to the distance $L$
|
|---|
| 1174 | between the photon and the telescope through
|
|---|
| 1175 | %
|
|---|
| 1176 | \begin{equation}
|
|---|
| 1177 | (R+h)^2 = (R+h_1)^2 + L^2 + 2 L \; (R+h_1) \; \cos \theta
|
|---|
| 1178 | \label{eq:height}
|
|---|
| 1179 | \end{equation}
|
|---|
| 1180 | %
|
|---|
| 1181 | , where $R$ is the Earth radius, $h_1$ the height (a.s.l.) of the
|
|---|
| 1182 | observation level and $\theta$ is the zenith angle of the photon
|
|---|
| 1183 | trajectory measured at the telescope site. The Cherenkov output of
|
|---|
| 1184 | CORSIKA contains for each photon the height $h_C$ of the emission
|
|---|
| 1185 | point A, measured along the vertical of the observer. The {\it true
|
|---|
| 1186 | vertical height} $h_2$ of the emission point can be obtained by
|
|---|
| 1187 | replacing $L$ by $(h_C-h_1)/\cos \theta$ in equation
|
|---|
| 1188 | (\ref{eq:height}).
|
|---|
| 1189 | %
|
|---|
| 1190 | \begin{figure}[ht]
|
|---|
| 1191 | \begin{center}
|
|---|
| 1192 | \mbox{ \epsfig{file=eps/atmoscheme.eps,width=0.8\textwidth} }
|
|---|
| 1193 | \end{center}
|
|---|
| 1194 | \caption[]
|
|---|
| 1195 | {Calculation of the true vertical height $h_2$ of the emission point
|
|---|
| 1196 | of a Cherenkov photon (point A), and the optical path traversed down to the
|
|---|
| 1197 | telescope (point B).}
|
|---|
| 1198 | \label{fig:atmoscheme}
|
|---|
| 1199 | \end{figure}
|
|---|
| 1200 | %
|
|---|
| 1201 | \par
|
|---|
| 1202 | The optical path $I(\theta, h_1, h_2)$ traversed by the photon can be
|
|---|
| 1203 | calculated integrating the air density along the trajectory
|
|---|
| 1204 | $\overline{\text{AB}}$. For the case $h/R \ll 1$, we can drop in
|
|---|
| 1205 | (\ref{eq:height}) the terms in $(h/R)^2$ and smaller, and then solve
|
|---|
| 1206 | for L. Deriving now with respect to $h$, we have:
|
|---|
| 1207 | %
|
|---|
| 1208 | \begin{equation}
|
|---|
| 1209 | \frac{dL}{dh} \simeq \sqrt{\frac{R}{2\;(h-h_1)+R\;\cos^2 \theta}}
|
|---|
| 1210 | \qquad \text{for} \qquad \frac{h}{R} \ll 1
|
|---|
| 1211 | \label{eq:dldh}
|
|---|
| 1212 | \end{equation}
|
|---|
| 1213 | %
|
|---|
| 1214 | \subsection{Rayleigh scattering}
|
|---|
| 1215 | Rayleigh scattering is the scattering of light by particles smaller
|
|---|
| 1216 | than its wavelength. These are in our case the air molecules. The
|
|---|
| 1217 | transmission coefficient due to Rayleigh scattering is a strong
|
|---|
| 1218 | function of the wavelength $\lambda$:
|
|---|
| 1219 | %
|
|---|
| 1220 | \begin{equation}
|
|---|
| 1221 | T_{\text{Rayl}} (\lambda) = \exp \Biggl[ - \frac{I(\theta, h_1, h_2)}{x_R} \; \Biggl(\frac{400 \;
|
|---|
| 1222 | \text{nm}}{\lambda}\Biggl)^4 \; \Biggl]
|
|---|
| 1223 | \label{eq:rayleigh}
|
|---|
| 1224 | \end{equation}
|
|---|
| 1225 | %
|
|---|
| 1226 | Here $I(\theta, h_1, h_2)$ is the optical path (in g/cm$^2$) traversed
|
|---|
| 1227 | between points A and B, and $x_R = 2970$ g/cm$^2$ is the mean free path of
|
|---|
| 1228 | the Rayleigh scattering at $\lambda = 400$ nm.
|
|---|
| 1229 | \par
|
|---|
| 1230 | A convenient way of expressing the optical path is the following:
|
|---|
| 1231 | %
|
|---|
| 1232 | \begin{equation}
|
|---|
| 1233 | I\;(\theta, h_1, h_2) = (x_1 - x_2) \cdot \mathcal{AM}\;(\theta, h_1, h_2)
|
|---|
| 1234 | \end{equation}
|
|---|
| 1235 | Here $x_{i=1,2}$ is the mass overburden of the atmosphere above a
|
|---|
| 1236 | height $h_i$ (in the
|
|---|
| 1237 | vertical direction) and $\mathcal{AM}$ is the so called {\it air
|
|---|
| 1238 | mass}\footnote{If we set $h_2 = \infty$, we have the usual definition
|
|---|
| 1239 | of {\it air mass} in optical astronomy.}, defined as
|
|---|
| 1240 | %
|
|---|
| 1241 | \begin{equation}
|
|---|
| 1242 | \mathcal{AM} \equiv \frac{I\;(\theta,h_1,h_2)}{I\;(0^\circ,h_1,h_2)}
|
|---|
| 1243 | \label{eq:airmass}
|
|---|
| 1244 | \end{equation}
|
|---|
| 1245 | %
|
|---|
| 1246 | , which is a function mainly of the zenith angle $\theta$ (see
|
|---|
| 1247 | fig. \ref{fig:airmass}). In our simulation, for the calculation of the
|
|---|
| 1248 | mass overburden $x_i$ we have used the U.S. standard atmosphere
|
|---|
| 1249 | parametrized by J. Linsley \cite{cor02}, the same we used in Corsika
|
|---|
| 1250 | for the shower development simulation. It consists of five layers: in
|
|---|
| 1251 | the lower four the density decreases exponentially with height, and in
|
|---|
| 1252 | the upper one the mass overburden cecreases linearly until it vanishes
|
|---|
| 1253 | at $h = 112.8$ km.
|
|---|
| 1254 | %
|
|---|
| 1255 | \begin{figure}[ht]
|
|---|
| 1256 | \begin{center}
|
|---|
| 1257 | \mbox{ \epsfig{file=eps/airmass.eps,width=0.8\textwidth} }
|
|---|
| 1258 | \end{center}
|
|---|
| 1259 | \caption[]
|
|---|
| 1260 | {Dependence with zenith angle of the air mass as defined in the
|
|---|
| 1261 | text. The air mass has been calculated for an exponential atmosphere
|
|---|
| 1262 | with scale height $H = 7.4$ km, for the observation level of MAGIC
|
|---|
| 1263 | (2.2 km a.s.l.), and for light coming from $h_2 = 10$ and at 100 km a.s.l. As
|
|---|
| 1264 | we can see the dependence with the emission height $h_2$ is very small.}
|
|---|
| 1265 | \label{fig:airmass}
|
|---|
| 1266 | \end{figure}
|
|---|
| 1267 | %
|
|---|
| 1268 | \par
|
|---|
| 1269 | For the estimate of $\mathcal{AM}$, a simpler atmospheric model has
|
|---|
| 1270 | been used, in which the vertical density profile is described by a
|
|---|
| 1271 | single exponential: $\rho = \rho_0 \; e^{-h/H}$ with scale height $H
|
|---|
| 1272 | = 7.4$ km. This simplifies the calculations, and is accurate enough
|
|---|
| 1273 | for our purposes. Using (\ref{eq:dldh}) the optical path $I(\theta,
|
|---|
| 1274 | h_1, h_2)$ can then be obtained approximately as:
|
|---|
| 1275 | %
|
|---|
| 1276 | \begin{equation}
|
|---|
| 1277 | I(\theta, h_1, h_2) = \int_A^B \rho\;(h)\; \frac{dL}{dh} \; dh \simeq
|
|---|
| 1278 | \sqrt{\frac{R}{2}} \;
|
|---|
| 1279 | \int_{h_1}^{h_2} \frac{\rho_0
|
|---|
| 1280 | \;e^{-h/H}}{\sqrt{h-h_1+\frac{1}{2}\;R\;\cos^2 \theta}} \; dh
|
|---|
| 1281 | \label{eq:optpath}
|
|---|
| 1282 | \end{equation}
|
|---|
| 1283 | %
|
|---|
| 1284 | and finally:
|
|---|
| 1285 | %
|
|---|
| 1286 | \begin{equation}
|
|---|
| 1287 | \mathcal{AM} \simeq e^{-\frac{R \sin^2 \theta}{2H}}
|
|---|
| 1288 | \cdot
|
|---|
| 1289 | \frac{
|
|---|
| 1290 | \text{erfc}\;(\sqrt{\frac{R \cos^2 \theta}{2H}})
|
|---|
| 1291 | \;-\;
|
|---|
| 1292 | \text{erfc}\;(\sqrt{\frac{2 (h_2 - h_1) + R \cos^2 \theta}{2H}})
|
|---|
| 1293 | }
|
|---|
| 1294 | {
|
|---|
| 1295 | \text{erfc}\;(\sqrt{\frac{R}{2H}})
|
|---|
| 1296 | \;-\;
|
|---|
| 1297 | \text{erfc}\;(\sqrt{\frac{2(h_2 - h_1) + R}{2 H}})
|
|---|
| 1298 | }
|
|---|
| 1299 | \label{eq:airmass2}
|
|---|
| 1300 | \end{equation}
|
|---|
| 1301 | %
|
|---|
| 1302 | where we have used the complementary error function $\text{erfc}\;(x)
|
|---|
| 1303 | = \frac{2}{\sqrt{\pi}}\int_x^\infty e^{-t^2} dt$. From
|
|---|
| 1304 | (\ref{eq:airmass2}), $\mathcal{AM}$ can be readily evaluated for any
|
|---|
| 1305 | value of $\theta$, $h_1$ and $h_2$. In fig. \ref{fig:rayleigh} the
|
|---|
| 1306 | resulting Rayleigh transmission coefficient $T_{\text{Rayl}}$ finally
|
|---|
| 1307 | obtained from (\ref{eq:rayleigh}) is plotted versus the zenith angle
|
|---|
| 1308 | for three wavelengths.
|
|---|
| 1309 | %
|
|---|
| 1310 | \begin{figure}[ht]
|
|---|
| 1311 | \begin{center}
|
|---|
| 1312 | \mbox{ \epsfig{file=eps/rayleigh.eps,width=\textwidth} }
|
|---|
| 1313 | \end{center}
|
|---|
| 1314 | \caption[]
|
|---|
| 1315 | {Rayleigh transmission coefficient as a function of zenith angle for three
|
|---|
| 1316 | different wavelengths. The solid, dashed and dotted lines correspond
|
|---|
| 1317 | respectively to light coming from 5, 10 and 20 km distance from the
|
|---|
| 1318 | telescope.}
|
|---|
| 1319 | \label{fig:rayleigh}
|
|---|
| 1320 | \end{figure}
|
|---|
| 1321 | %
|
|---|
| 1322 | \subsection{Mie scattering}
|
|---|
| 1323 | Cherenkov light also suffers Mie scattering through interaction with
|
|---|
| 1324 | small dust particles suspended in the air (aerosols), whose size is
|
|---|
| 1325 | comparable to the wavelength of the light. In our simulation of the
|
|---|
| 1326 | attenuation due to aerosols we have used the model proposed by
|
|---|
| 1327 | Elterman \cite{elterman64,elterman65}, which considers an aerosol
|
|---|
| 1328 | number density $N_p$ which (roughly) decreases exponentially up to 10
|
|---|
| 1329 | km a.s.l. with scale height $H \simeq 1.2$ km, followed by a more
|
|---|
| 1330 | tenuous layer between 10 and 30 km (see fig. \ref{fig:aerosol}a). In
|
|---|
| 1331 | this model, the aerosol size distribution is considered to be
|
|---|
| 1332 | unchanged with altitude.
|
|---|
| 1333 | %
|
|---|
| 1334 | \begin{figure}[ht]
|
|---|
| 1335 | \begin{center}
|
|---|
| 1336 | \mbox{ \epsfig{file=eps/aerosol.eps,width=0.9\textwidth} }
|
|---|
| 1337 | \end{center}
|
|---|
| 1338 | \caption[]
|
|---|
| 1339 | {Aerosol model by Elterman: in (a), number density of
|
|---|
| 1340 | aerosols as a function of height above sea level; in (b), aerosol
|
|---|
| 1341 | attenuation coefficient at sea level as a function of wavelength.}
|
|---|
| 1342 | \label{fig:aerosol}
|
|---|
| 1343 | \end{figure}
|
|---|
| 1344 | %
|
|---|
| 1345 | \par
|
|---|
| 1346 | Measured values of the aerosol attenuation coefficients at sea level
|
|---|
| 1347 | $\beta_p(0)$ for different wavelengths \cite{elterman65} are shown in
|
|---|
| 1348 | figure \ref{fig:aerosol}b. To obtain the attenuation coefficient at a
|
|---|
| 1349 | given height $h$, we simply do $\beta_p(h, \lambda) = \beta_p(0,
|
|---|
| 1350 | \lambda) \cdot N_p(h)/N_p(0)$. In the Elterman model the aerosol
|
|---|
| 1351 | transmission coefficient for the trajectory from A to B depicted in
|
|---|
| 1352 | figure \ref{fig:atmoscheme} would then be:
|
|---|
| 1353 | %
|
|---|
| 1354 | \begin{equation}
|
|---|
| 1355 | T_{\text{Mie}}(\lambda) = e^{-\tau_{mie}} \quad \text{, with}\quad
|
|---|
| 1356 | \tau_{mie}(h_1, h_2, \theta, \lambda) = \frac{\beta_p(0, \lambda)}{N_p(0)} \;
|
|---|
| 1357 | \int_{h_1}^{h_2}
|
|---|
| 1358 | \; N_p(h) \;\; \frac{dL}{dh}\; dh
|
|---|
| 1359 | \label{eq:aerosoltau}
|
|---|
| 1360 | \end{equation}
|
|---|
| 1361 | %
|
|---|
| 1362 | Here $\tau_{mie}$ is the aerosol optical depth of the path from A to
|
|---|
| 1363 | B. Given that the aerosol density distribution is not a simple
|
|---|
| 1364 | exponential, we have to do the integral in (\ref{eq:aerosoltau})
|
|---|
| 1365 | numerically. The integral depends on $h_2$ and on $\theta$, through
|
|---|
| 1366 | $dL/dh$ (it also
|
|---|
| 1367 | depends on $h_1$, but this is the observation level and therefore
|
|---|
| 1368 | fixed). In this case we use the exact expression for $\;dL/dh\;$ which can be
|
|---|
| 1369 | obtained from (\ref{eq:height}). At the beginning of each simulation
|
|---|
| 1370 | run we calculate and store the results of the integral for values of
|
|---|
| 1371 | $\theta$ between 0 and 90$^\circ$ (in steps of $1^\circ$), and of
|
|---|
| 1372 | $h_2$ from $h_1$ up to 30 km (in steps of 100 m). To do the integral a
|
|---|
| 1373 | linear interpolation has been used to obtain the value of $N_p$ for
|
|---|
| 1374 | any height. During the simulation of each Cherenkov photon, we get the
|
|---|
| 1375 | corresponding precalculated value of the integral and deduce
|
|---|
| 1376 | $T_{\text{Mie}}$ from expression (\ref{eq:aerosoltau}).
|
|---|
| 1377 | %
|
|---|
| 1378 | \begin{figure}[ht]
|
|---|
| 1379 | \begin{center}
|
|---|
| 1380 | \mbox{ \epsfig{file=eps/mie.eps,width=\textwidth} }
|
|---|
| 1381 | \end{center}
|
|---|
| 1382 | \caption[]
|
|---|
| 1383 | {Aerosol transmission coefficient for three different wavelengths as a
|
|---|
| 1384 | function of the distance between the photon emission point and the
|
|---|
| 1385 | telescope. Plots for four different zenith angles between 0 and 80
|
|---|
| 1386 | degrees are shown.}
|
|---|
| 1387 | \label{fig:mie}
|
|---|
| 1388 | \end{figure}
|
|---|
| 1389 | %
|
|---|
| 1390 | \par
|
|---|
| 1391 | Since in this model the aerosols are concentrated mainly at very low
|
|---|
| 1392 | altitude, the transmission coefficient is more or less constant above
|
|---|
| 1393 | a certain height (which depends on $\theta$), as can be seen in
|
|---|
| 1394 | fig. \ref{fig:mie}. For instance, for vertically incident 300 nm light
|
|---|
| 1395 | emitted higher than 4 km above the telescope, the Mie transmission is
|
|---|
| 1396 | about 0.95.
|
|---|
| 1397 | %
|
|---|
| 1398 | \subsection{Absorption by Ozone}
|
|---|
| 1399 | %
|
|---|
| 1400 | The absorption of Cherenkov light by Ozone has been implemented
|
|---|
| 1401 | following also the Elterman standard atmosphere \cite{elterman65}. The
|
|---|
| 1402 | coefficient for ozone absorption is given by
|
|---|
| 1403 | %
|
|---|
| 1404 | \begin{equation}
|
|---|
| 1405 | \beta_3(h,\lambda) = A_v(\lambda) \cdot D_3(h)
|
|---|
| 1406 | \end{equation}
|
|---|
| 1407 | %
|
|---|
| 1408 | , where $A_v(\lambda)$ is the Vigroux \cite{vigroux53} ozone
|
|---|
| 1409 | absorption coefficient (cm$^{-1}$) and $D_3(h)$ is the ozone
|
|---|
| 1410 | concentration (cm km$^{-1}$) according to Elterman. The transmission
|
|---|
| 1411 | coefficient of Ozone in the path $\overline{\text{AB}}$ is then:
|
|---|
| 1412 | %
|
|---|
| 1413 | \begin{equation}
|
|---|
| 1414 | T_{\text{Ozone}}(\lambda) = e^{-\tau_{oz}} \quad \text{, with}\quad
|
|---|
| 1415 | \tau_{oz}(h_1, h_2, \theta, \lambda) = A_v(\lambda) \; \int_{h_1}^{h_2}
|
|---|
| 1416 | \; D_3(h) \;\; \frac{dL}{dh}\; dh
|
|---|
| 1417 | \label{eq:ozonetau}
|
|---|
| 1418 | \end{equation}
|
|---|
| 1419 | %
|
|---|
| 1420 | \begin{figure}[ht]
|
|---|
| 1421 | \begin{center}
|
|---|
| 1422 | \mbox{ \epsfig{file=eps/ozone.eps,width=\textwidth} }
|
|---|
| 1423 | \end{center}
|
|---|
| 1424 | \caption[]
|
|---|
| 1425 | {Ozone concentration vertical profile (a) and Vigroux coefficients for
|
|---|
| 1426 | Ozone absorption (b). The Vigroux coefficients for $\lambda =$ 380 and
|
|---|
| 1427 | 400 nm are zero.}
|
|---|
| 1428 | \label{fig:ozone}
|
|---|
| 1429 | \end{figure}
|
|---|
| 1430 | %
|
|---|
| 1431 | \par
|
|---|
| 1432 | Once again, like in the case of Mie scattering, the optical depth
|
|---|
| 1433 | $\tau_{oz}$ is the product of a factor which depends on $\lambda$ and
|
|---|
| 1434 | an integral which depends on $h_1$, $h_2$ and $\theta$. We proceed in
|
|---|
| 1435 | the same way as before, precalculating the values of the integral in
|
|---|
| 1436 | steps of $\Delta\theta = 1^\circ$ and $\Delta h = 100$ m, up to a
|
|---|
| 1437 | height of 50 km a.s.l. (where the ozone concentration becomes
|
|---|
| 1438 | negligible), and then reading the appropriate values for every
|
|---|
| 1439 | simulated photon.
|
|---|
| 1440 | \par
|
|---|
| 1441 | Finally, the overall atmospheric transmission coefficient is
|
|---|
| 1442 | calculated as
|
|---|
| 1443 | %
|
|---|
| 1444 | \begin{equation}
|
|---|
| 1445 | T_{total} = T_{Ray} \cdot T_{Mie} \cdot T_{Ozone}
|
|---|
| 1446 | \end{equation}
|
|---|
| 1447 | %
|
|---|
| 1448 | In figure \ref{fig:absorplot} the atmospheric transmission as a
|
|---|
| 1449 | function of the distance to the telescope for $\theta = 0^\circ$ is
|
|---|
| 1450 | shown. Ozone absorption turns out to be dominant below 320 nm, while
|
|---|
| 1451 | Rayleigh scattering is the main cause of the loss of photons at longer
|
|---|
| 1452 | wavelengths.
|
|---|
| 1453 | %
|
|---|
| 1454 | \begin{figure}[ht]
|
|---|
| 1455 | \begin{center}
|
|---|
| 1456 | \mbox{ \epsfig{file=eps/absorplot.eps,width=\textwidth} }
|
|---|
| 1457 | \end{center}
|
|---|
| 1458 | \caption[]
|
|---|
| 1459 | {Total transmission coefficient for vertically incident light as a
|
|---|
| 1460 | function of the distance between the emission point and the
|
|---|
| 1461 | telescope. The contributions of absorption by ozone and of Rayleigh
|
|---|
| 1462 | and Mie scattering are also shown for comparison.}
|
|---|
| 1463 | \label{fig:absorplot}
|
|---|
| 1464 | \end{figure}
|
|---|
| 1465 | %
|
|---|
| 1466 | \newpage
|
|---|
| 1467 | \section*{Appendix B : files in the reflector package}
|
|---|
| 1468 | \addcontentsline{toc}{section}{Appendix B : files in the reflector package}
|
|---|
| 1469 |
|
|---|
| 1470 | The list of all Reflector files follows.
|
|---|
| 1471 | \begin{verbatim}
|
|---|
| 1472 |
|
|---|
| 1473 | MagicProgs/Simulation/Detector/Reflector_0.6/Changelog
|
|---|
| 1474 | MagicProgs/Simulation/Detector/Reflector_0.6/Makefile
|
|---|
| 1475 | MagicProgs/Simulation/Detector/Reflector_0.6/atm.c
|
|---|
| 1476 | MagicProgs/Simulation/Detector/Reflector_0.6/atm.h
|
|---|
| 1477 | MagicProgs/Simulation/Detector/Reflector_0.6/attach.c
|
|---|
| 1478 | MagicProgs/Simulation/Detector/Reflector_0.6/attenu.f
|
|---|
| 1479 | MagicProgs/Simulation/Detector/Reflector_0.6/config.mk.linux
|
|---|
| 1480 | MagicProgs/Simulation/Detector/Reflector_0.6/config.mk.linux-gnu
|
|---|
| 1481 | MagicProgs/Simulation/Detector/Reflector_0.6/config.mk.osf1
|
|---|
| 1482 | MagicProgs/Simulation/Detector/Reflector_0.6/diag.c
|
|---|
| 1483 | MagicProgs/Simulation/Detector/Reflector_0.6/diag.h
|
|---|
| 1484 | MagicProgs/Simulation/Detector/Reflector_0.6/geometry.c
|
|---|
| 1485 | MagicProgs/Simulation/Detector/Reflector_0.6/geometry.h
|
|---|
| 1486 | MagicProgs/Simulation/Detector/Reflector_0.6/header.c
|
|---|
| 1487 | MagicProgs/Simulation/Detector/Reflector_0.6/header.h
|
|---|
| 1488 | MagicProgs/Simulation/Detector/Reflector_0.6/init.c
|
|---|
| 1489 | MagicProgs/Simulation/Detector/Reflector_0.6/init.h
|
|---|
| 1490 | MagicProgs/Simulation/Detector/Reflector_0.6/input.card
|
|---|
| 1491 | MagicProgs/Simulation/Detector/Reflector_0.6/lagrange.h
|
|---|
| 1492 | MagicProgs/Simulation/Detector/Reflector_0.6/parms.c
|
|---|
| 1493 | MagicProgs/Simulation/Detector/Reflector_0.6/parms.h
|
|---|
| 1494 | MagicProgs/Simulation/Detector/Reflector_0.6/ph2cph.c
|
|---|
| 1495 | MagicProgs/Simulation/Detector/Reflector_0.6/refl-install
|
|---|
| 1496 | MagicProgs/Simulation/Detector/Reflector_0.6/reflector.c
|
|---|
| 1497 | MagicProgs/Simulation/Detector/Reflector_0.6/version.h
|
|---|
| 1498 |
|
|---|
| 1499 | MagicProgs/Simulation/Detector/Reflector_0.6/doc/Tdas0211.ps
|
|---|
| 1500 | MagicProgs/Simulation/Detector/Reflector_0.6/doc/Tdas0211.tex
|
|---|
| 1501 | MagicProgs/Simulation/Detector/Reflector_0.6/doc/magic-tdas.sty
|
|---|
| 1502 | MagicProgs/Simulation/Detector/Reflector_0.6/doc/magiclogo.eps
|
|---|
| 1503 | MagicProgs/Simulation/Detector/Reflector_0.6/doc/eps/absorplot.eps
|
|---|
| 1504 | MagicProgs/Simulation/Detector/Reflector_0.6/doc/eps/aerosol.eps
|
|---|
| 1505 | MagicProgs/Simulation/Detector/Reflector_0.6/doc/eps/airmass.eps
|
|---|
| 1506 | MagicProgs/Simulation/Detector/Reflector_0.6/doc/eps/atmoscheme.eps
|
|---|
| 1507 | MagicProgs/Simulation/Detector/Reflector_0.6/doc/eps/colimation.eps
|
|---|
| 1508 | MagicProgs/Simulation/Detector/Reflector_0.6/doc/eps/coma.eps
|
|---|
| 1509 | MagicProgs/Simulation/Detector/Reflector_0.6/doc/eps/coma_star.eps
|
|---|
| 1510 | MagicProgs/Simulation/Detector/Reflector_0.6/doc/eps/coorsystems.eps
|
|---|
| 1511 | MagicProgs/Simulation/Detector/Reflector_0.6/doc/eps/evcompare.eps
|
|---|
| 1512 | MagicProgs/Simulation/Detector/Reflector_0.6/doc/eps/mie.eps
|
|---|
| 1513 | MagicProgs/Simulation/Detector/Reflector_0.6/doc/eps/ozone.eps
|
|---|
| 1514 | MagicProgs/Simulation/Detector/Reflector_0.6/doc/eps/parabola.eps
|
|---|
| 1515 | MagicProgs/Simulation/Detector/Reflector_0.6/doc/eps/rayleigh.eps
|
|---|
| 1516 | MagicProgs/Simulation/Detector/Reflector_0.6/doc/eps/refl06images.eps
|
|---|
| 1517 | MagicProgs/Simulation/Detector/Reflector_0.6/doc/eps/reflec.eps
|
|---|
| 1518 | MagicProgs/Simulation/Detector/Reflector_0.6/doc/eps/spot10kmf1694.eps
|
|---|
| 1519 | MagicProgs/Simulation/Detector/Reflector_0.6/doc/eps/spot10kmf1700.eps
|
|---|
| 1520 | MagicProgs/Simulation/Detector/Reflector_0.6/doc/eps/spot_inf_f1697.eps
|
|---|
| 1521 | MagicProgs/Simulation/Detector/Reflector_0.6/doc/eps/telecoor.eps
|
|---|
| 1522 | MagicProgs/Simulation/Detector/Reflector_0.6/doc/eps/timing.eps
|
|---|
| 1523 |
|
|---|
| 1524 | MagicProgs/Simulation/Detector/Reflector_0.6/tester/Makefile
|
|---|
| 1525 | MagicProgs/Simulation/Detector/Reflector_0.6/tester/cermaker.c
|
|---|
| 1526 |
|
|---|
| 1527 | MagicProgs/Simulation/Detector/Data/axisdev.dat
|
|---|
| 1528 | MagicProgs/Simulation/Detector/Data/magic.def
|
|---|
| 1529 | MagicProgs/Simulation/Detector/Data/reflectivity.dat
|
|---|
| 1530 |
|
|---|
| 1531 | MagicProgs/Simulation/Detector/lib/libranlib.a.osf1
|
|---|
| 1532 | MagicProgs/Simulation/Detector/lib/libranlib.a.linux
|
|---|
| 1533 |
|
|---|
| 1534 | \end{verbatim}
|
|---|
| 1535 |
|
|---|
| 1536 | %%% BIBLIOGRAPHY %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|---|
| 1537 |
|
|---|
| 1538 | %%>>>> Use the following if you are using BibTeX for bibliography
|
|---|
| 1539 | %\theBibliography
|
|---|
| 1540 |
|
|---|
| 1541 | %%>>>> Or the following if you include here by hand your
|
|---|
| 1542 | %%>>>> bibliographic entries
|
|---|
| 1543 |
|
|---|
| 1544 | \begin{thebibliography}{00}
|
|---|
| 1545 |
|
|---|
| 1546 | \bibitem{elterman64}
|
|---|
| 1547 | L. Elterman, Applied Optics Vol. 3, No. 6 (1964) 745.
|
|---|
| 1548 |
|
|---|
| 1549 | \bibitem{elterman65}
|
|---|
| 1550 | L. Elterman, R.B. Toolin, S.L. Valley (editor), Handbook of
|
|---|
| 1551 | geophysics and space environments, McGraw-Hill, N.Y. (1965).
|
|---|
| 1552 |
|
|---|
| 1553 | \bibitem{cor02}D. Heck and J. Knapp, EAS Simulation with CORSIKA: A User's
|
|---|
| 1554 | Manual, 2002.
|
|---|
| 1555 |
|
|---|
| 1556 | \bibitem{vigroux53}
|
|---|
| 1557 | E. Vigroux, Contributions \`a l'étude expérimentale de l'absorption
|
|---|
| 1558 | de l'ozone, Annales de Physique, v. 8 (1953) 709.
|
|---|
| 1559 |
|
|---|
| 1560 | \end{thebibliography}
|
|---|
| 1561 |
|
|---|
| 1562 | \end{document}
|
|---|
| 1563 | %
|
|---|
| 1564 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|---|
| 1565 | %%% Upper-case A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
|
|---|
| 1566 | %%% Lower-case a b c d e f g h i j k l m n o p q r s t u v w x y z
|
|---|
| 1567 | %%% Digits 0 1 2 3 4 5 6 7 8 9
|
|---|
| 1568 | %%% Exclamation ! Double quote " Hash (number) #
|
|---|
| 1569 | %%% Dollar $ Percent % Ampersand &
|
|---|
| 1570 | %%% Acute accent ' Left paren ( Right paren )
|
|---|
| 1571 | %%% Asterisk * Plus + Comma ,
|
|---|
| 1572 | %%% Minus - Point . Solidus /
|
|---|
| 1573 | %%% Colon : Semicolon ; Less than <
|
|---|
| 1574 | %%% Equals = Greater than > Question mark ?
|
|---|
| 1575 | %%% At @ Left bracket [ Backslash \
|
|---|
| 1576 | %%% Right bracket ] Circumflex ^ Underscore _
|
|---|
| 1577 | %%% Grave accent ` Left brace { Vertical bar |
|
|---|
| 1578 | %%% Right brace } Tilde ~
|
|---|
| 1579 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|---|
| 1580 | %% Local Variables:
|
|---|
| 1581 | %% mode:latex
|
|---|
| 1582 | %% mode:font-lock
|
|---|
| 1583 | %% mode:auto-fill
|
|---|
| 1584 | %% time-stamp-line-limit:100
|
|---|
| 1585 | %% End:
|
|---|
| 1586 | %% EOF
|
|---|