To calibrate the PMT gains, we use the data acquisition system (DAQ) configured to read only the Cerenkov detector information. This speeds up DAQ immensely; while normal data acquisition is limited to approximately 400Hz, Cerenkov calibration DAQ runs at event rates as high as 3500Hz.
Operation of the data acquisition system is beyond the scope of this guide; for details, ask a DAQ person...
As of this writing, the configuration for the Cerenkov calibration is called CC1, and the trigger to use is in the file /home/trigger/TriggersFeb97/beam_triggers/ZeroBField/CC123456.trg. To match the gains of the PMTs, we set the voltages so that the single photoelectron (SPE) peak for each PMT falls in ADC channel 150. The data taken for these runs consists of phototube noise ("self-triggering" data). Because the noise levels of the PMTs varies greatly, we must take several runs, between which we turn off the HV to several PMTs, to ensure that all of the PMTs get enough counts to do a meaningful fit. The runs to take are as follows:
| Run Length (events) | PMTs turned off |
|---|---|
| 1,000,000 | None |
| 1,200,000 | S1:
S2:14R S3: S4:2L,9L,13L,2R,16R S5:8L,14L S6:13L,5R,9R,18R |
| 4,500,000 | S1:
S2:3L,4L S3:18R S4:3L,4L,17L,8R,9R S5:13R,18R S6:14L,8R |
| 6,500,000 | S1:8R
S2:8L,3R,11R S3: S4:1L,18L,5R,14R S5:5L,7R,10R,14R S6:4R,16R |
| 7,500,000 | S1:5L,13L,4R,5R
S2: S3: S4:6L,10R,11R,15R S5:2L,13L,15R S6:1L,5L,9L,2R |
| 8,000,000 | S1:3L,6L,3R
S2:7L,11L,6R,8R,10R,12R,13R S3: S4:13R S5:10L,11R,16R S6: |
After taking the data, it must be converted into N-tuples using Cole Smith's CLASPAW program. Here is a sample CLASPAW session:
clon00:clasrun> cd cal/work/cc
clon00:cc> claspaw
******************************************************
* *
* W E L C O M E to P A W *
* *
* Version 2.08/14 21 January 1997 *
* *
******************************************************
Workstation type (?=HELP) <CR>=1 : (carriage return)
Version 1.23/07 of HIGZ started
Enter 1 to setup CLASPAW: (<CR>=1) (carriage return)
Enter 2 to bypass dynamic loading (<CR>=1) (carriage return)
utilGenColormap: Generating new colormap rgb with 49 levels
utilSetup: Setting up Utility Macros
[...lots of status messages...]
Type calman for calibration manager menu
CLASPAW> calman
********* CLAS ONLINE CALIBRATION MANAGER *********
Options: 1) Convert BOS/FPACK to ntuples (claspaw only!)
2) Process pedestal run
3) Plot pedestal summary
4) Update online sparcification tables
5) Update Map with pedestals
6) Find ntuple runs
7) Process ntuple
8) EC Gain Matching
q) Quit
Enter option: (<CR>=) 1
FPACK/BOS filename (path/file.ext): (<CR>=) raid/clas_cc_008510.A00
Ntuple filename (no path or .ext): (<CR>=) cc8510
Number of events (0=all): (<CR>=0) (carriage return)
Enter bank list to process (ec,sc,cc,ec1,dc,tag): (<CR>=sc) cc
Enter process option for each bank (on,filter,hist):
(<CR>=) on
Create EC ntuple from EC (1) or RC14,RC15 (2) 0
monBankStatus: Bank cc on
monBookCWN: Booking CW N-tuple in file ntup/cc8510 with ID=2000
monBookCWN: Booking bank cc into ID 2000
monPedQuery: Bank cc
Subtract pedestals? (y,n): (<CR>=) y
Map (1) or vector file (2): (<CR>=) 1
Enter run number: (<CR>=) 8510
*** get_map_float -m/usr/local/clas/clas_parms/Maps/CC_CALIB.map -spedestals -imean -l216 -t8510 > tmp.vec returned exit code 1
/tmp/ccrotate_2533.f:
ccrotate:
bosInit: Initializing BOS array IW
bosInit: Initializing BOS array JW
bosOpen: Opened raid/clas_cc_008510.A00 with handle 20721008
monEventLoop: Starting eventloop at event 1 07/02/98 16.37.04 0 0.000
monEventLoop: 2464955 events read 2000743 events processed on SOLARIS UNIX
monEventLoop: Read Events/sec (CPU)=6902.32
monEventLoop: Process Events/sec (CPU)=5602.44
monEventLoop: Read Events/sec (live)=6680.09
monEventLoop: Process Events/sec (live)=5422.07
bosClose: Closing File
monSaveNtup: Saving ntuple 2000 to ntup/cc8510.rzn
monSaveHist: Saving histograms to hist/cc8510.rzh
Options: 1) Convert BOS/FPACK to ntuples (claspaw only!)
2) Process pedestal run
3) Plot pedestal summary
4) Update online sparcification tables
5) Update Map with pedestals
6) Find ntuple runs
7) Process ntuple
8) EC Gain Matching
q) Quit
Enter option: (<CR>=1) q
After the files are converted into N-tuples, the histograms used to determine the SPE peak positions must be made. This is currently done with a macro that lives in my directory, ~pricej/CLAS/PAW/KUMAC/CALCOM/spemake.kumac. This can be run by any machine on the CUE cluster. I normally use paw++, simply because I'm lazy. It works with paw just as well. The user is prompted for the run number, and the macro loads in the N-tuple, and creates histograms for each of the 216 channels in the Cerenkov detector.Here is a sample SPEMAKE session:
jlabs3> paw Calling 97a version of paw-X11 ****************************************************** * * * W E L C O M E to P A W * * * * Version 2.08/06 27 August 1996 * * * ****************************************************** Workstation type (?=HELP)=1 : (carriage return) Version 1.23/07 of HIGZ started utilGenColormap: Generating new colormap rgb with 49 levels PAW > spemake Enter the run number: (=) 9184 Found old cut file SPEPOS/cuts8630.dat. Use it? (=y) (carriage return) making adc histograms... Saving file /work/clas/disk1/test/cal/ntup/cc/9184.hbk PAW >
Note that this macro makes mention of a cut file. This file contains a cut window for the TDC of each channel. If the TDC value falls in the window, the ADC histogram will be incremented. This cut file should be checked periodically, to make sure that the windows still make sense. There is a macro for this purpose, which I will not document at this time - not that it's not documentationworthy, but rather that I don't anticipate needing to change it in the near future, and there is other documentation that is more pressing. Suffice to say, for now, that the ADC plots are made with cuts on the TDCs to make sure that we're looking at in-time events.
When all the histogram files have been made, they must be added together. This is accomplished simply with the use of another macro, addruns. Here is a sample session: (description forthcoming; basically, it does the following)
histogram/file 1 file1 hrin 0 close 1 histogram/file 1 file2 hrin 0 ! 99999
This causes the histograms to be added together. They should then be saved to a separate file, and stored on the tape silo.
Once the histogram file is made, it's time to enter what I affectionately call "fitting hell." This is the process of determining the actual positions of the SPE peaks for all 216 channels.