Difference between revisions of "BCAL Calibration"

From GlueXWiki
Jump to: navigation, search
(Steps in Calibration)
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
  
  
 +
=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====
  
=Steps in Calibration=
+
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=
 +
 
 +
# 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)
 +
# 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.
 +
# Timewalk
 +
# 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.
 +
# 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/''
 
macros are located at ''/group/halld/Users/dalton/BCAL/monitoring/macros/''
Line 15: Line 85:
 
##* ''macros/monitor.py --adc4ns'' can be used to run over all runs
 
##* ''macros/monitor.py --adc4ns'' can be used to run over all runs
 
## Load constants to CCDB table ''/BCAL/ADC_timing_offsets'' using ''python macros/commit_CCDB.py -d output/ADCendDt/correction/ --adc''
 
## Load constants to CCDB table ''/BCAL/ADC_timing_offsets'' using ''python macros/commit_CCDB.py -d output/ADCendDt/correction/ --adc''
# '''Remove 32ns ADC hardware offset''' (pass 1)
+
# '''Remove 32ns TDC hardware offset''' (pass 1)
 
## Set CCDB table ''/BCAL/TDC_offsets'' to 0
 
## Set CCDB table ''/BCAL/TDC_offsets'' to 0
 
## Run reconstruction with ''BCAL_online'' plugin to produce the ''/bcal/bcal_Uhit_tdiff_raw_ave'' histogram (pass 1)
 
## Run reconstruction with ''BCAL_online'' plugin to produce the ''/bcal/bcal_Uhit_tdiff_raw_ave'' histogram (pass 1)
Line 28: Line 98:
 
## Run reconstruction with BCAL_TDC_Timing plugin
 
## Run reconstruction with BCAL_TDC_Timing plugin
 
## Run analysis script over output  
 
## 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
 
## Load constants to CCDB  
 
## Load constants to CCDB  
 
# '''Position from end time-difference''' (pass 2)
 
# '''Position from end time-difference''' (pass 2)
Line 35: Line 106:
 
## Run reconstruction with ''BCAL_TDC_Timing'' plugin
 
## Run reconstruction with ''BCAL_TDC_Timing'' plugin
 
## Run analysis script over output
 
## 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
 
## Load constants to CCDB  
 
## Load constants to CCDB  
 
# '''Calibrate the point time offset from tracking''' (pass 2)
 
# '''Calibrate the point time offset from tracking''' (pass 2)
Line 43: Line 115:
 
## Run analysis script over output  
 
## Run analysis script over output  
 
### Linear fit (needs ~1M events per run)
 
### Linear fit (needs ~1M events per run)
###* script for single run is ''macros/fit_ZvsDeltaT_p1.C''
+
###* script for single run is ''macros/ExtractTimeOffsets.C''
 
###* ''macros/monitor.py'' can be used to run over all runs
 
###* ''macros/monitor.py'' can be used to run over all runs
 
### Quadratic fit (needs 5 files per run)
 
### Quadratic fit (needs 5 files per run)

Latest revision as of 14:12, 31 July 2018


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