BCAL Calibration

From GlueXWiki
Jump to: navigation, search


CCDB Tables

base_time_offset

Full path  :  /BCAL/base_time_offset
Rows       :  1
Columns    :  2
Location   :  Used in DBCALHit_factory.cc , it is added to the hit time
Function   :  To centre the ADC and TDC times at 0 as initial calibration

ADC_timing_offsets

Full path  :  /BCAL/ADC_timing_offsets
Rows       :  1536
Columns    :  1
Location   :  Used in DBCALHit_factory 
Function   :  To remove the 4 ns timing offset.

TDC_offsets

Full path  :  /BCAL/TDC_offsets
Rows       :  1152
Columns    :  1
Location   :  Used in DBCALTDCHit_factory , it is subtracted from the hit time.
Function   :  To remove the 32 ns offset.

channel_global_offset

Full path  :  /BCAL/channel_global_offset
Rows       :  768
Columns    :  1
Location   :  Used in DBCALHit_factory and DBCALTDCHit_factory , it is subtracted from the hit time.
Function   :  Fine timing calibration

effective_velocities

Full path  :  /BCAL/effective_velocities
Rows       :  768
Columns    :  1
Location   :  used in DBCALCluster_factory::overlap() (cluster with hit)
Location   :  used in DBCALPoint_factory  to calculate z and throw away points > 60 cm from BCAL
Location   :  used in DBCALPoint to subtract the fiber-propagation-time from the time sum

z_track_parms

Full path  :  /BCAL/z_track_parms
Rows       :  768
Columns    :  3
Location   :  Used in BCALPoint to get z position from delta_t

tdiff_u_d

Full path  :  /BCAL/tdiff_u_d
Rows       :  768
Columns    :  1
Location   :  Used in DBCALHit_factory and DBCALTDCHit_factory, but we agree now that it should not be.

digi_scales

Full path  :  /BCAL/digi_scales
Rows       :  1
Columns    :  3
Location   :  ASCALE not used, but TSCALE is


Timing Calibration Order

  1. 2 numbers (ADC, TDC) for each system (BCAL, FCAL etc.) Obtained by lining up the timing peak for all hits at zero. (plugin hl_detector_timing)
  2. Per channel: 1 number to move the TDC distributions mean to coincide with the ADC distribution mean. Average these offsets and apply to base time for TDC.
  3. Timewalk
  4. Make correlated offset to each end of the BCAL to set Z=0 at the center. Add time to one and and subtract same time to other end.
  5. Make correlated offset to each end of the BCAL to set global time correct. Add same time to both ends.


Concrete Steps in Calibration

macros are located at /group/halld/Users/dalton/BCAL/monitoring/macros/

  1. Remove 4ns ADC hardware offset (pass 1)
    1. Run reconstruction with BCAL_TDC_Timing plugin to produce the BCAL_TDC_Offsets/Deltat_raw/ histogram
    2. Run analysis script over output
      • script for single run is macros/extract_ADC_Dt_Zcorr.C
      • macros/monitor.py --adc4ns can be used to run over all runs
    3. Load constants to CCDB table /BCAL/ADC_timing_offsets using python macros/commit_CCDB.py -d output/ADCendDt/correction/ --adc
  2. Remove 32ns TDC hardware offset (pass 1)
    1. Set CCDB table /BCAL/TDC_offsets to 0
    2. Run reconstruction with BCAL_online plugin to produce the /bcal/bcal_Uhit_tdiff_raw_ave histogram (pass 1)
    3. Run analysis script over output
      • script for single run is macros/extract_Uhit_tdiff.C
      • macros/monitor.py can be used to run over all runs
    4. Load constants to CCDB table /BCAL/TDC_offsets using python macros/commit_CCDB.py -d output/tdiff/TDCcorrection/runs/ --tdc -v
  3. TDC timewalk correction (pass 2)
    1. Prerequisites:
      1. Remove 4ns ADC hardware offset
      2. Remove 32ns ADC hardware offset
    2. Run reconstruction with BCAL_TDC_Timing plugin
    3. Run analysis script over output
      • script for single run is macros/fit_TDCtimewalk.C
      • macros/monitor.py --timewalk can be used to run over all runs
    4. Load constants to CCDB
  4. Position from end time-difference (pass 2)
    1. Prerequisites:
      1. Remove 4ns ADC hardware offset
    2. Run reconstruction with BCAL_TDC_Timing plugin
    3. Run analysis script over output
      • script for single run is macros/fit_ZvsDeltaT_p1.C
      • ./macros/monitor.py --position can be used to run over all runs
    4. Load constants to CCDB
  5. Calibrate the point time offset from tracking (pass 2)
    1. Prerequisites:
      1. Remove 4ns ADC hardware offset
    2. Run reconstruction with BCAL_TDC_Timing plugin
    3. Run analysis script over output
      1. Linear fit (needs ~1M events per run)
        • script for single run is macros/ExtractTimeOffsets.C
        • macros/monitor.py can be used to run over all runs
      2. Quadratic fit (needs 5 files per run)
    4. Load constants to CCDB
  6. Attenuation length and gain ratio (pass 3)
    1. Prerequisites:
      1. position calibration (pass 2)
    2. Run reconstruction with BCAL_attenlength_gainratio plugin
    3. Run analysis script over output
    4. Load constants to CCDB