C9 Technical Info for E852 Software

C9 channel assignments

The C9 Channel assignments are the same as the physical markings on the detector and agree with the Fermilab E766/E690 documentation. Looking downstream at the C9 mirrors:

C9 ADCs and TDCs

ADC: A LeCroy 1885F is used, configured for single-ended negative-going signals, 50-ohm termination, floating ground. The ADC channel is the true C9 channel minus one.

TDC: Click here to see the TDC channel assignments.

C9 data groups

The following groups are used to store H9 information:

GROUP_C9_ADCS        adc_values_t   All C9 ADC values.
GROUP_C9_TDCS        tdc_values_t   All C9 TDC values.
GROUP_C9_HITS        adc_hits_t     C9 ADCs above thresh and TDCs within time windows
GROUP_C9_COOKED_HITS adc_hits_t     The proper, processed C9 hits.
                                    hit[i].channel = channel (mirror) number
                                    hit[i].adc     = ADC value
                                    hit[i].fvalue  = no. of photoelectrons 
                                                   = adc_scale*(adc - pedestal)
GROUP_C9_MC_HITS     adc_hits_t     Monte-Carlo C9 hits.
                                    hit[i].channel = channel (mirror) number
                                    hit[i].adc     = no. of p.e. after Poisson distrib.
                                    hit[i].fvalue  = Poisson mean number of p.e.
GROUP_NOTC9H9        notc9h9_hits_t I have no idea what purpose this serves.
The relevent groups for the end user are GROUP_C9_COOKED_HITS and GROUP_C9_MC_HITS, for the real and monte-carlo data respectively. The difference between GROUP_C9_HITS and GROUP_C9_COOKED_HITS is that the latter uses a more proper definition of a hit; i.e., a channel is hit only when the TDC is within the timing window regardless of the ADC. In channels where the TDC is dead, the hit is defined by checking whether the ADC is above threshold.

Also, the ".fvalue" in GROUP_C9_COOKED_HITS corresponds to the number of photoelectrons = adc_scale*(ADC - pedestal). This resembles the ".fvalue" in GROUP_C9_MC_HITS, which is the poisson mean number of simulated photoelectrons.

Map items.

The following map items are in vetoes.Map, subsystem c9:
adc_min     int     ADC thresholds.
adc_scale   float   ADC scale factors; photoelectrons = adc_scale*(ADC-pedestal)
dead_adc    int     Boolean, for each channel, indicates which ADCs are dead.
dead_tdc    int     Boolean, for each channel, indicates which TDCs are dead.
nphotons    float   Mean number of photoelectrons for relativistic particles.
pedestal    float   ADC pedestals.
sigmas      float   Std. deviation of ADC pedestals.
tdc_max     int     Timing window cut (maximum time).
tdc_min     int     Timing window cut (minimum time).
Only one set of timing cuts is used for the entire 1997 run. The c9 timing did not change during the entire 1997 run.

Calibrating. (Filling the above map items).

ADC thresholds and pedestals are automatically computed by the online monitoring program c9mon, and are automatically loaded into the map, if the appropriate command line switches are used.

The timing (TDC) cuts should be set where the c9 signal is larger than pulses from pile-up. The appropriate timing window can be determined by examining online timing histograms.

The number of photoelectrons for relativistic particles can be determined by fitting graphs such as the following:

The function fit is the poisson probability of observing at least one photoelectron. There are two parameters being fitted: P1 is the poisson mean number of photoelectrons for highly relativistic particles, and P2 is the fraction of tracks that are pions. Below the kaon threshold (8.91 GeV/c), the function takes the form P2*(1.0 - exp(-P1*f(p))), where P1*f(p) is the poisson mean number of photoelectrons for a track with momentum p. The functional form for f(p) is in the Particle Data Book, renormalized such that f(p) approaches 1 for high momentum tracks. The Particle Data Book also has a good review of Poisson statistics. High statistics interacting beam data should be used for the calibrations to remove any effects of the RAM-C9 trigger. Such a calibration should be done independently for each of the 96 photomultiplier tubes. The c9View program is useful for this purpose. For 1997 data, D. White converted the c9View output to ntuples using makeC9ViewNtuples.perl which can be found in the c9calib_as_is subsystem.

You may find some useful perl scripts, paw macros, and paw functions stored in the c9calib_as_is subsystem. These files are provided as-is; sorry, no documentation is provided at this time.

Useful C functions.

TrackToC9       Swims a track to the C9 mirror planes or front window plane.
TrackC9         Simulated C9 response to a given track.  
cookC9hits      Produces GROUP_C9_COOKED_HITS, given GROUP_C9_HITS as input.
c9particleID    Does pion/kaon particle ID.

Useful standalone programs.

c9mon           Produces low-level histograms useful for online monitoring.
c9View          Produces a text file with some c9 hit information.
                useful for calibrating number of photoelectrons, etc.
makeC9ViewNtuples.perl (in c9calib_as_is subsystem) converts c9View 
                output to ntuples which can be read by paw.