Code and Parameter Overview

This section describes the main parameters of the code, especially those required for input files. We have placed html links in this section to either a sample telescope configuration file or a sample detector pilot file which contain extensive comments describing the parameters. We have used the same parameter notation here as in the sample input files. 

HTML links in the following description are to the stated ID flag line in the pilot or configuration files.

A. Telescope Description and Optics

The telescope code, optics.h, traces individual photons from initial reflection on a mirror facet to the photomultiplier-tube camera. A standard random-number test in conjunction with the mirror reflectivity determines whether or not the photon reflects from the mirror or is lost.

We use three connected coordinate systems associated with the atmospheric shower, the ground, and the telescope, respectively. The shower record in the output of cherenkf.c describes the primary and associated photons in a coordinate system located at the telescope with the z-axis pointed down, the x-axis to the East, and the y-axis pointed South. Upon reading the shower record, grisudet immediately converts the shower and photon information to its standard ground coordinate system: z-axis pointed to the zenith, x-axis to the East, and y-axis pointed North. The third reference system, the reference system attached to the telescope, coincides with the standard ground coordinate system when the telescope is pointed to the zenith. For non-zenith primary showers, the telescope rotates its optical axis to point in a direction parallel to the shower line, first by a rotation about its z axis to place its y axis in the plane created by the vertical axis and the direction of the incoming primary. A following rotation about the new x axis (which is still in the horizontal plane) points the telescope z axis in the direction of the primary. The rotation point of the telescope is located on its optical axis a distance equal to the "telescope center offset" below the focal point of the telescope. The horizontal plane through the rotation point defines the ground location of the telescope.

The telescope array contains a maximum of ten telescopes each with an individual location (in x, y, z ground coordinates), focal length, aperture radius, and rotation offset. With the Davis-Cotton design, the telescope focal length is the radius of curvature of the spherical steel frame which contains the center location of the multiple facet mirrors. (TLLOC   MIROR)

Each facet mirror element is individually specified with location, external radius, curvature, and type (spherical, hexagonal, or square) with rotation angle given in the configuration file. The center of curvature for each mirror lies on a line from the facet mirror location through a point located one telescope focal length above the telescope focal point and on the telescope optical axis. ( MIREL )

The mirror reflectivity as a function of photon wavelength is specified in a labeled reflectivity table (RFCRV) in the configuration file. Each mirror facet record in the configuration file specifies the appropriate table label ( MIREL ). Multiple tables allow for multiple mirror types.

B. Offsets and Misalignments for Telescope Pointing and Optics

The location of the source in the field of view of the telescope may be offset from the direction given in the cherenkov photon file through the source location record in the detector.pilot input file. The shower is "tilted" through a small angle fixed for all input shower records. If the radius parameter of the source field of view is greater than zero, we randomly place the source location for each shower within a circle of this radius centered on the tilted location on the sky. ( SOURC )

Misplacement of the camera plane is possible through the focusing error parameter. This parameter gives the misalignment distance from the focal plane to the camera plane.

Two parameters account for mirror facet misalignment and roughness. During program initialization, the direction to the facet center of curvature is randomly placed within a cone with maximum conical angle given by the mirror misalignment parameter in degrees. To account for mirror roughness, the direction of an individual photon reflected from a mirror facet is randomly placed within a cone with maximum conical angle given by the mirror blur-radius parameter in degrees. ( MIREL )

C. Photomultiplier-Tube (pmt) Camera

The configuration file specifies the x and y coordinates (in millimeters) of each pmt in the camera plane where increasing x corresponds to moving West when the telescope is pointed South. Increasing y corresponds to increased elevation.  The file specifies the type (spherical, hexagonal, or square) with rotation angle.  The configuration file also gives each effective pmt radius and a geometrical efficiency parameter; the effective pmt radius is the radius of the pmt sensitive area which could be the radius of the light cone for that pmt. To enter a pmt, a photon must strike the camera within an effective pmt radius; otherwise, the photon is discarded. Then, the photon undergoes a standard random-number test using the geometrical efficiency parameter; the photon is accepted if a uniform random deviate is less than the geometrical efficiency. ( PMPIX )

The configuration file must contain at least one pmt quantum efficiency table. Multiple tables allow for multiple tube types; the quantum efficiency table number is specified in each pmt record in the configuration file. Each numbered table contains a wavelength and a quantum efficiency column. Linear interpolation provides the efficiency as a function of wavelength. A standard random-number test using the quantum efficiency produces photoelectrons for the tubes. Photons outside the wavelength range in the table are discarded. (QUEFF )

Following photoelectron production, the code produces a model charge pulse specified by its risetime, falltime, rctime, and ampfluc parameters. The pulse as a function of time (t in ns) is expressed as:

pe_amp * ( t * (wid - t)^alpha ) / renorm

The code chooses wid and alpha so that the pulse has a maximum at t = risetime and falls to zero at t = risetime + falltime. The renorm parameter normalizes the pulse area (from t = 0 to t = risetime + falltime) to 1.0. The pe_amp parameter adds a standard Gaussian fluctuation with

pe_amp = 1.0 + ampfluc * gasdev

where gasdev is a standard Gaussian deviate with unit variance and zero mean. For times greater than t = risetime + falltime, an AC coupling undershoot may be added by a non-zero rctime parameter producing a negative decaying exponential of unit area. The following graph shows an example pmt charge pulse. In this example, pe_amp is set to 1.0. (to be added later). ( PMPIX )

The pulse shape may also be given as a lookup table. Just make sure the table is properly normalized (area = 1.0).  (PULSE)

The pmpix line in the configuration file also contains a gain factor. Used alike for either the QADC or the FADC output, the pmt gain is divided by the gain factor. Later in analysis.c, the signal is multiplied by the same gain factor. In this way, analysis.c treats simulation output in the same way as real data.( PMPIX )

Similarly, each pmpix line contains a time offset to account for time delays arising in each channel in the real data. Since analysis.c adds this time delay for real data, grisudet.c subracts this time delay. (Note that the time delay actually subracted has its time origin determined by the minimum value among those pixels used in the analysis.c analysis. Thus, there is also a pmpix field specifying whether or not the pixel is to be used in this analysis. (PMPIX )

Finally, each pmpix line contains a logical field specifying whether or not the local trigger code in grisudet.c should include this pixel. ( PMPIX )

D. Signal Accumulation and Timing

The large photomultiplier-signal array, pms[tel][pix][i], associated with each pmt of telescope tel and each pixel pix accumulates the photoelectron pulses as a function of time. The maximum number of samples and the sample time (time width of each bin) is set in the configuration file. The time origin, i=0, of each pms array is the arrival time in nanoseconds of the first photon associated with the shower on that particular telescope. Photon pulse shapes are then accumulated after a time delay fixed for all pixels of all telescopes of sim_trig_adv. Thus, there are no shower photons between the first bin and the bin associated with sim_trig_adv nanoseconds. ( FADCS)

E. Sky Noise

The pilot file contains the sky noise parameters; only the diffuse noise component expressed in photoelectrons per nanosecond per square meter per steradian is currently used in the code. We expect to add a star field component soon. ( NOISE )

Each pixel has an associated circular-loop, noise-signal array named bgsign[tel][pix][i]. The length of the array is set in the configuration file. In the grisudet initialization procedure, the code calculates the average noise pe rate from the diffuse photon rate from the sky after including the facet mirror area and reflectivity, and pixel light-collection efficiency. Using the average noise pe rate and the pe pulse shape, photoelectron pulses are distributed across the bgsign array. The array is a looped circular array so pulse heights for a given photon extend from the end of the array back to the beginning of the array. Since the length of this background array is normally greater than the length of the pms[tel][pix][i] signal array, we can add sky-noise to the signal array for each shower by selecting randomly a starting point for the noise in the noise array and copying subsequent noise pulse heights to the pms[tel][pix][i] array. With a circular noise array, reaching the end of the noise array moves the array pointer to the beginning of the the noise array. This design eliminates the time required to generate independent noise pulses for each shower, which would lead to unacceptable program efficiency. ( NOISE )

F. Signal Processing and Local Trigger

Following the addition of sky noise, the samples in the pms[tel][pix][i] array are converted from photoelectrons per bin to millivolt-seconds for that bin by multiplying by the electronic charge in pC, by the photomultiplier current gain, and by the equivalent system impedance. These parameters are set in the analog electronics record in the configuration file. The electronics voltage noise standard deviation in mV, also in this record, is used with a standard Gaussian deviate to determine the electronics noise component for each pms[tel][pix][i] bin.

In addition to the pms[tel][pix][i] signal array, each tube has an associated discrisgn[tel][pix][i] array. This discriminator array contains the output of the discriminator used for each tube. Currently, we use a simple level discriminator; when the signal (in the pms array) exceeds a fixed threshold of pmt_thresh mV, the corresponding bin of the discrisgn[tel][pix][i] array and a fixed number of following bins corresponding to the coinc_pix_window pixel coincidence time window become set to 1. Since subsequent bins may also trigger the discriminator, the coinc_pix_window time is the minimum time width of the discriminator output. ( TRIGG )

The sum of these pixel discriminators determines the local trigger of each telescope. The local_trigger_time is set when the discriminator sum exceeds the number of pixels given by the n_fold parameter in the configuration file.

If the pattern trigger is turned on (PSTON), then a local trigger occurs if a given number of adjacent pixels trigger. This trigger logic eliminates triggering by sky noise. The pattern trigger uses a set of pixel patches (PATCH) specified in the configuration file

G. Array Trigger

The array-trigger procedures are included in this version of grisudet. However, due to as yet unresolved timing issues associated with the pms[tel][pix][i] and the array trigger time, the array trigger is not included in the program flow for this version. Instead, each shower produces an array trigger and the read-out timing for each telescope is determined by the local_trigger_time for that telescope.

The two configuration-file parameters assocated with the array trigger are the minimum number of telescopes required for an array trigger and the width of the associated coincidence time window. The configuration file must include these parameters, but they are as yet not used. ( TRIGG )

H. Readout

The FADC parameters, output voltage (mV) per digital count, pedestal (digital counts), number of samples, dynamic range (in digital counts), number of samples for the output record, number of samples between the trigger and the start of the FADC record (fadc_trigger_advance), and the number of samples in pedestal event records are given in the configuration file. (FADCS)

For the Fadc option, the pmt current for a single photoelectron is the product of (the electronic charge) * (PMT current gain)* (single pe pulse shape as a function of time). The signal from the analog electronics in mV follows by multiplying the pmt current by the equivalent system impedance; dividing this signal by the number of milliVolts per digital count for a single fadc time bin gives the final output signal in each time bin. Note that the amplitude of the pulse is gaussian fluctuated so that only the average value of the integral of the pulse shape over time is one. 

The number of digital counts, summed over all time bins, per photo electron = (the electronic charge) * (PMT current gain)*(equivalent system impedance) / ( time width of a single fadc time bin * number of milliVolts per digital count for a single fadc time bin)

The QADC parameters, gate width (ns), time interval (ns) between the trigger and the opening time of the QADC gate, the QADC conversion factor (pC/digital count), pedestal (digital counts), and the QADC dynamic range (digital counts) are given in the configuration file. The pms[tel][pix][i] signal integration occurs while the QADC gate is open. The sum is converted first to pC and then to digital counts for output. ( QADCS)

That is, the number of digital counts per photoelectron for the Qadc output is given by:
dc's/pe = (electronic charge in pC)*(pmt gain)*(equivalent system impedance) /
( (Qadc imput impedance)*(Qadc conversion factor in pe/dc, given on the Qadc configuration file record)

I. Output Records

The detector.pilot input file specifies the number of output pedestal records for the output stream. After these records, FADC output occurs for each telescope in succession but only for those pixels whose discriminators indicated signals above threshold. The QADC output includes all pixels. ( NBRPR )

Additional output options specified in detector.pilot are:

  1. OPTIC option: the number of photoelectrons in each pixel is written to a file. The telescope electronics is not simulated.
  2. PEOUT option: there is an output record for each photoelectron. Each record contains the pixel number and the photon camera arrival time. The telescope electronics is not simulated.
  3. ENOUT option: a list of thrown energies (in TeV) is sent to a file, one energy per record.

For more details about these and other options, visit grisudet Pilot Input File