DIRC Software Tasks

From GlueXWiki
Jump to: navigation, search

The software tasks to be completed for a successful DIRC commissioning are listed below under several categories. Please contact Justin Stevens if you're able to contribute to one of these activities.


  • Implement "as-built" geometry in HDDS xml, including all support structures and material inside the bar boxes (Yunjie/Maria)
    • Implement individual bar sizes from spreadsheet provided by Matt
  • Add smearing of DIRC truth hits in mcsmear to write out DIRCPmtHit object with time and pixel ID. Include time resolution smearing (Justin)
    • Add per-pixel efficiency from analysis of PMT module tests, with values eventually coming from CCDB tables (Andrew)
    • Add realistic time resolution from PMT module tests (Bill/Justin)
    • Add cross talk from analysis of PMT module tests (low-priority)
  • Switch hdgeant4 to using "measured" times in GlueXSensitiveDetectorDIRC, instead of using "time_fixed". Requires similar modification to LUT reconstruction to include flight time of particle relative to other detectors. (Justin)
  • Add LED generator to hdgeant4/src/GlueXPrimaryGeneratorAction (similar to LUT generator) for developing timing calibration scripts. (Yunjie)


  • Create DDIRCGeometry to retrieve necessary info from XML: including GetBar(Y) function to return bar ID for extrapolated tracks (Justin)
    • Add conversion of pixel number to position space (Justin)
  • Add CustomAction to dirc_reactions plugin to split tracks into kinematic bins, and fill histograms of thetaC, likelihood, hit patterns, etc. (Justin)
    • Separate tracks by bar, x position (5 cm bins) and momentum (0.5 GeV bins)
  • Add DIRCPmtHits to REST format, so they can be used more easily in later analysis stages (Justin)
    • Studies of size increase for REST files (Justin)
  • Add DIRC hit information to analysis tree PART format (Justin)
  • Add time imaging reconstruction to libraries/DIRC (Maria)
  • Add FastDIRC reconstruction to libraries/DIRC (Cris?/Yunjie)


  • Write DDIRCTDCHit decoder in libraries/DAQ for parsing raw data (David)
    • Initial version works pull request, but and has been checked with data
  • Write DDIRCTDCDigiHit in libraries/DIRC to be used in TTAB/DTranslationTable.cc to convert hardware ID to pixel ID (Justin)
  • Write DDIRCPmtHit_factory in libraries/DIRC to read DDIRCTDCDigiHit, and write out the same object as mcsmear (Justin)
  • Write Online and Offline monitoring plugins, and add DIRC to occupancy_online plugin to be run with RootSpy (Justin)
  • Calibration plugin and scripts for timing offsets from LED data (Yunjie)
    • Test with simulation of LED signal generator in hdgeant4
    • Include reference time from LED pulser and SiPM monitor (fADC and TDC)

Event Display

  • Write class which provides 3D position for pixel from DDIRCPmtHit object which can be used in Thomas's event display (TBD)
  • Create database of expected hit patterns for (PID, bar, x position, and momentum). Goal is to superimpose expected pattern histogram behind hits for individual events to see if they match (Roman)