Proton Calorimetry/Detector Analysis

From PBTWiki
Jump to navigation Jump to search

This page contains information on the analysis code for the QuARC detector data.

Image Analysis

Details on how to process images taken by the ISDI CMOS Sensor to recover the average light output in each scintillator sheet.

  • First, the 21 images taken by the CMOS sensor must be corrected for non-linearity effects in the photon-electron conversion. The MATLAB script linear_corr_tiff.m does this.
    • The correct full-well mode must be selected in the script, typically high full-well is chosen for its superior linearity.
    • The script loops over each pixel in the 21 images and applies a correction using cubic interpolation of the linearity data (linearity_high.txt). A corrected version of each image is saved.
  • The 21 corrected images are then averaged using averageTiffs.sh, which outputs a single image.
    • On MacOS, this may require ImageMagick, which can be installed with MacPorts: sudo port install ImageMagick
  • To apply background subtraction and corrections for non-linearity in scintillator light output, the MATLAB script edit_runs.m is run.
    • This requires a corrected/averaged background and shoot-through measurements (front and/or back).
    • Important for background and shoot-through to have the same full-well mode as the measurement. Similar spot size for the shoot-through and measurement is also desirable.
    • The script outputs a .txt file containing a column of data, representing the light output in each horizontal pixel row in arbitrary units.
  • As part of the fitting procedure, the method readCMOSData calibrates the x-axis to WET and calculates the average light output in each sheet:
    • The raw PDL is first loaded into a TH1D histogram.
    • A reference range is taken from LibdEdx using the energy of the delivered beam, subtracting the thickness of any absorber used in the measurement.
    • A relevant FLUKA curve is also loaded, if it exists.

Photodiode Data Processing

Details on how to process hexadecimal data from the DDC232 to recover the charge in each photodiode. See the linked page for instructions on how to set up CoolTerm to save data from the Zybo.

  • Data is saved in hexadecimal format where one line represents data of all photodiodes in the setup. Each photodiode measurement is represented by 5 hexadecimal characters.
  • The script plotLive.cpp contains code that can be adapted to generate values that can be used in the fitting procedure.
  • The full-scale range must be set correctly based on the configuration of switches 1-3 on the Zybo.
  • Each 5-character hex value is converted to an absolute decimal and then converted to a charge in pC. The zero-current offset is subtracted in the same step.
  • The photodiode-input-resistor maps ensure that the ordering of measurements represents the physical order of photodiodes.
  • As each photodiode is split across two inputs, the 32 total measurements become 16 measurements, where inputs of the same photodiode are summed.
    • Practically, this makes the full-scale range twice that of what is set on the Zybo.
  • The 16 charge values recovered can be used in a fit.

Bragg Fit

Background and theoretical details of the Quenched Bragg model can be found in this paper.


SOBP Fit

Ion Fit