User Tools

This is an old revision of the document!

Available Code

The latest version of the code is available here:


The following is the general procedure to produce summary ROOT files. It is a number of steps, but each major step can usually be automated with simple scripts.

  1. Produce pedestal files:
    1. Use “ConvertToRootNoAuxDataMultiScrod <SCROD ID> <input raw data file> <output ROOT file>”
      1. For output files, I usually use the scheme of keeping the original raw data file name, dropping the extension, and naming the output <original_base_name>.scrodXX.root (where XX is the SCROD ID that you're converting over).
    2. Use “CalculatePedestals <input root file> <output pedestal file>” to create a pedestal file for all required SCRODs.
      1. For pedestal files, I usually replace .root with .ped
  2. Convert data files for runs of interest:
    1. To convert SCROD data, again use “ConvertToRootNoAuxDataMultiScrod <SCROD ID> <input raw data file> <output ROOT file> <pedestal file>”
      1. I use the same convention as before, changing the .dat to .scrodXX.root
      2. Unlike the usual case with pedestals, in this case the same raw data file has data for all SCRODs, so you may have to run over it 4 times to do a full conversion for all modules.
    2. To convert CAMAC data, use “ConvertCamacToROOT <input file> <output ”
      1. I use the convention for output file names of calling them <original_base_name>.cmc.root.
      2. Depending on the CAMAC configuration, you may need to change the crate setup in src/lib/CamacStructure.cpp (see lines 89-113)

Your next steps will depend on what you're trying to do. I suggest below some things that I often do.

Visual Waveform Checks

If you want to look over a few waveforms by eye to see if they look reasonable, do the following:

Timing Calibration Resolution Studies

The following are the best known procedures for performing timing calibration using the pulser, and performing MCP-PMT timing measurements. The parameters of these procedures have only been roughly scanned, so further improvements are almost certainly possible. If you find something that works better, let me know!

Current Best Calibration Procedure

Current Best MCP-PMT Timing Procedure

Produce Feature Extracted ROOT Trees

To do TOP analysis, the waveform is often superfluous information. You may rather just have an estimate of a hit and a pulse height for each photon candidate. The following is a way to produce such files:

  1. Use the code scripts/ConvertFullEvents.C :
    1. .x scripts/ConvertFullEvents.C+(“<input_base_file_name_up_to_first_dot>”,“<output ROOT file>”)

The output file will have just the summary data, no waveforms. It is convenient for plotting tdc:ch distributions, etc. If you want to look at multiple such files, make many of them and then chain them together using TChain.

For further analysis, here are the branch names and types (see

  • “evt/i” - event number
  • “nhits/i” -
  • “raw_row[nhits]/s” -
  • “raw_col[nhits]/s” -
  • “raw_ch[nhits]/s” -
  • “raw_mod[nhits]/s” -
  • “raw_scrod[nhits]/i” -
  • “hit_tdc[nhits]/F” -
  • “hit_tdc_fwd[nhits]/F” -
  • “hit_tdc_samp[nhits]/F” -
  • “hit_adc[nhits]/F” -
  • “hit_ch[nhits]/s” -
  • “hit_pmt[nhits]/s” -
  • “hit_pmt_ch[nhits]/s” -
  • “ftsw_phase/F” -