DIRC Software Overview

From GlueXWiki
Jump to: navigation, search

Software Packages and Setup

The software packages required to run DIRC simulation and reconstruction are a part of standard GlueX software deployment.

  • Packages: hdds, halld_recon, halld_sim, hdgeant4, and gluex_root_analysis
    • For the 2018 commissioning period we are using a branch of these repositories: dirc_commissioning_2018
  • Installation instructions and a list of steps to start generating simulation can be found in this README file

The latest version of MC samples which can be studied with this branch are located at:

  • Event samples: /volatile/halld/home/jrsteven/2018-dirc/dircsim-2018_08-ver10/


DIRC classes

  • DDIRCGeometry: Load bar position from HDDS, and provide tools for converting pixel # to PMT/pixel row and column for hit patterns
  • DDIRCLut: LUT algorithm comparing hit pixel channel/time with expectations, and calculate PID likelihood
  • DDIRCLutReader: Utility class to load ROOT TTree containing LUT from CCDB or command line argument for local files
  • DDIRCPmtHit: Calibrated hit for PMT pixels consisting of hit channel, time, and time-over-threshold
  • DDIRCTDCDigiHit: Uncalibrated hit for both leading and trailing edge of pulses
  • DDIRCTruthBarHit: Truth information for tracks incident on fused silica bars
  • DDIRCTruthPmtHit: Unsmeared hit for PMT pixels

HDDM additions

  • DEventWriter/SourceHDDM/event.xml:
    • Add DDIRCTruthBarHit, DDIRCTruthPmtHit and DDIRCPmtHit to event record for hdgeant and mcsmear output.
  • DEventWriter/SourceREST/rest.xml:
    • Add DDIRCPmtHit and DDIRCMatchParams to REST output format

PID additions

  • DParticleID
    • Initialize DIRCLut class and call CalcLut for tracks with relevant input from track
  • DDetectorMatches
    • Added DDIRCMatchParams to contain DIRC information associated with tracks
    • Functions match tracks to DIRC hits and run LUT algorithm

Plugin additions

  • DIRC_online: online monitoring plugin for both DIRCTDCDigiHits and DIRCPmtHits
  • dirc_hists: diagnostic histograms for LUT algorithm for with inclusive sample of tracks
  • dirc_reactions: diagnostic histograms for LUT algorithm for gp -> 2pi p and gp -> 2k p reactions ("identified" pi/K samples)
  • monitoring_hists: add DIRC PID histograms to standard plugin for reconstruction diagnostics (see ANALYSIS library)
  • truth_dirc: plots of hit patterns for DIRC truth hit objects
  • lut_dirc: utility for creating ROOT TTrees to make LUT for reconstruction
  • pid_dirc: utility to create ROOT TTrees for standalone LUT macros

Command line options

  • REST:WRITE_DIRC_HITS - Use with danarest plugin to save DIRCPmtHits to the REST file for later analysis
  • REST:DIRC_CALC_LUT - Use when analyzing REST files containing DIRCPmtHits to re-calculate the LUT algorithm
  • DIRC:DEBUG_HISTS - Fill debugging histograms on in DIRCLut class inside algorithm (significant slowdown due to thread locking)
  • DIRC:TRUTH_BARHIT - Use DIRCTruthBarHit information for track position and momentum vector (not available when analyzing REST data)
  • DIRC:TRUTH_PIXELTIME - Use DIRCTruthPmtHit (un-smeared) for pixel time in LUT algorithm (not available when analyzing REST data)
  • DIRC:CUT_TDIFFD - Timing cut (+/- in ns) for direct photons
  • DIRC:CUT_TDIFFR - Timing cut (+/- in ns) for reflected photons
  • DIRC:SIGMA_THETAC - Single photon Cherenkov angle resolution for likelihood calculation
  • DIRC_LUT - Specify full path to local file containing alternate LUT ROOT TTree (default is to pull from CCDB)

Analysis Scripts

  • Analysis and calibration scripts should be located in dirc/ directory of hd_utilities

Translation table

  • Initial decoder work ongoing by David

Simulation samples

Generator Number of events (106) Settings Planned usage
bggen 50 General inclusive sample for many studies
gen_2pi_amp 10 ρ → π+π- Pure sample of pions with relevant kinematics
gen_2k 2.5 φ → K+K- Pure sample of kaons with relevant kinematics
k/pi p/m_p4_theata4 0.01 π+/- K+/- particle gun at p=4 GeV, theta=4 degrees, phi = -90 degrees Single particle tests

Geometry Implementation

DIRC geometry is implemented in HDDS like all the other sub-detectors. For the Spring 2019 commissioning run geometry, we currently have South/Lower optical box mirror surface survey results and preliminary results for the final "in beam" position for the lower two bar boxes (BB10 and BB11) and the south/lower optical box. The details about the implementation from the survey results to HDDS are collected in this DocDB document (docid: 3876):

The several different DIRC_HDDS.xml versions that are currently on HDDS are as follows:

  • DIRC_HDDS.xml_fromPrototype: the original version. In this version, the bars and optical boxes are idealized and the sizes are taken as their nominal numbers. They are created from some model and then copied and placed/rotated to the appropriate locations; this version is kept for legacy reasons, it won't work with the latest HDGeant4 (due to sensitive volume handling).
  • DIRC_HDDS_v3.1.xml: pre-survey nominal version. This version includes the implementation of individual bar sizes, the internal structure of the bar boxes (aluminum cross bars, aluminum skins etc.), and the aluminum support structure of the bar boxes (all structures in the active area in particular)
  • DIRC_HDDS_v4.1.xml: includes Spring 2019 commissioning survey results, but upper two bar boxes and the north/upper optical box is also present
  • DIRC_HDDS_v4.2.xml: updated nominal configuration, updated according to the latest engineering drawing.
  • DIRC_HDDS_v4.3.xml: current default. Spring 2019 commissioning configuration with only the lower two bar boxes and the south/lower optical box being sensitive;

Choose the version and cp to overwrite DIRC_HDDS.xml, which is the file actually being read.

LUT algorithm documentation

  • Writeup from Maria


A list of DIRC Software Tasks is maintained, which are the required tools necessary for analysis of the commissioning data. Below are some planned/ongoing studies to evaluate the commissioning data.

Mis-alignment effects

  • Goal: Study qualitatively how mis-alignments may impact hit patterns and LUT reconstruction
  • Identify likely mis-alignments and implement in alternative geometries as examples of what we may observe in the data
    • Example mis-alignments: angles of bar box plane, angle between bar box and optical box (at rubber gasket), translation of mirror box in optical box, etc.
  • Develop script which parses text from DIRC_HDDS.xml (applies rotations and translations) and writes new XML file with mis-alignment (Yunjie)
    • Also needs to implement survey results for finalizing geometry at start of run period
  • Generate another sample of MC with modified geometry and use LUT from "as-built" geometry to see how the mis-alignments affect the commissioning observables

Final Alignment

  • Goal: Optimize alignment parameters for positions and angles of all optical components using identified track samples
  • Plan to use Bayesian optimization technique with FastDIRC algorithm (Cris/Yunjie)
    • Closure test with MC by the end of the year?
  • Possible tests using sub-samples for alignment procedure and validation
    • Align optical box components using tracks from single bar, then test alignment with tracks from other bars
    • Align all components using identified pion sample, then test alignment with identified kaon sample

Time imaging map

  • Goal: Study performance of time imaging algorithm as a function of theta, phi (Maria)

Particle ID efficiency

  • Goal: Using well determined reactions determine efficiency vs background rejection for different algorithms