Difference between revisions of "DIRC Software Overview"

From GlueXWiki
Jump to: navigation, search
(Command line options)
Line 18: Line 18:
 
=== DIRC classes ===
 
=== DIRC classes ===
  
* DDIRCGeometry
+
* '''DDIRCGeometry''': Load bar position from HDDS, and provide tools for converting pixel # to PMT/pixel row and column for hit patterns
* DDIRCLut
+
* '''DDIRCLut''': LUT algorithm comparing hit pixel channel/time with expectations, and calculate PID likelihood
* DDIRCLutReader
+
* '''DDIRCLutReader''': Utility class to load ROOT TTree containing LUT from CCDB or command line argument for local files
* DDIRCPmtHit
+
* '''DDIRCPmtHit''': Calibrated hit for PMT pixels consisting of hit channel, time, and time-over-threshold
* DDIRCTDCDigiHit
+
* '''DDIRCTDCDigiHit''': Uncalibrated hit for both leading and trailing edge of pulses
* DDIRCTruthBarHit
+
* '''DDIRCTruthBarHit''': Truth information for tracks incident on fused silica bars
* DDIRCTruthPmtHit
+
* '''DDIRCTruthPmtHit''': Unsmeared hit for PMT pixels
  
 
=== HDDM additions ===
 
=== HDDM additions ===
  
* DEventWriter/SourceHDDM:
+
* DEventWriter/SourceHDDM/event.xml:
* event.xml
+
** Add DDIRCTruthBarHit, DDIRCTruthPmtHit and DDIRCPmtHit to event record for hdgeant and mcsmear output.
* DEventWriter/SourceREST:
+
* DEventWriter/SourceREST/rest.xml:
* rest.xml
+
** Add DDIRCPmtHit and DDIRCMatchParams to REST output format
  
 
=== PID additions ===
 
=== PID additions ===
Line 38: Line 38:
 
* DDetectorMatches
 
* DDetectorMatches
  
=== Command line options ===
+
== 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:WRITE_DIRC_HITS''' - Use with danarest plugin to save DIRCPmtHits to the REST file for later analysis

Revision as of 23:00, 5 January 2019

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:

  • LUTs: /group/halld/Users/jrsteven/2018-dirc/dircsim-2018_08-ver08/
  • Event samples: /volatile/halld/home/jrsteven/2018-dirc/dircsim-2018_08-ver08/

halld_recon/src/libraries

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
  • DDetectorMatches

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

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


LUT algorithm documentation

  • Writeup from Maria

Studies

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