Analysis Miscellaneous

From GlueXWiki
Revision as of 16:32, 18 February 2013 by Pmatt (Talk | contribs) (Created page with "== Tricks for saving time and memory == * Change the binning and/or range of the built-in histograms after constructing the corresponding <span style="color:#0000FF">DAnalysisAct...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Tricks for saving time and memory

  • Change the binning and/or range of the built-in histograms after constructing the corresponding DAnalysisAction object.
  • Because there may be many DParticleCombo objects for an event, perform as many cuts as possible prior to kinematic fitting.
    • This includes extremely-loose cuts (well beyond the range at which your final cut will be) on all of the physical quantities of interest (e.g. mass peaks).
  • To branch an analysis, create a new (but identical) DReaction object (with the same DReactionStep pointers), then simply repeat or change any of the DAnalysisActions.
    • If the DReactionStep objects are re-used, the framework will realize that the DParticleComboBlueprintStep objects will be the same, and will simply reuse them.
      • Note that the DParticleCombo objects will not be identical since they will contain a pointer to a different DReaction.
      • If the kinematic fit type is also the same, it will skip the kinematic fit of the new DParticleCombo objects entirely and just copy the previous results since they will be identical.

RF Beam Bunch Selection & PID Details

  • Note: These routines assume high-luminosity running (i.e. too many tagger photons to distinguish the RF bunch).

How RF bunch selection works for an event (creating a single DEventRFBunch object)

  • The measured RF time and variance are assumed to be zero (until actual measured values are introduced).
  • In DEventRFBunch_factory: loop over DTrackTimeBased objects, determine the matching TOF/BCAL/ST hits, propagate the matching time to the target center and select the closest-matching RF bunch (+/- multiples of the RF bunch frequency).
    • Note: Hit-use order: use TOF hit if present, else use BCAL hit if present and track momentum > 250 MeV/c. Only use ST hit if present and no tracks have good TOF/BCAL hits to use.
      • TOF-hit resolution (80ps) is good enough to pick RF bunch regardless of momentum or if correct PID is used to propagate the time (e.g. won't reconstruct protons below 300 MeV/c anyway, etc.)
      • BCAL resolution is ~310ps at 250 MeV/c, pi/K delta-t error is ~40ps (proton too slow): 3sigma + delta-t error = ~970ps < 1.002 ns
      • ST resolution projected 350ps - 400ps: not good enough to select RF bunch (OK if enough voting tracks)
    • Note: tracks with bad vertex-z are ignored, and tracks with low track-reconstruction FOM are ignored unless there's no good tracks.
    • Note: if there are no TOF/BCAL/ST hits with good tracks, then tracks with low tracking FOM are used.
      • If still no good hits, then the track times from time-based tracking is used (first from good-tracking-FOM tracks, then all).
  • Vote: select the RF bunch that matches the most tracks (tie broken by highest average tracking FOM).

How DChargedTrackHypothesis PID FOM calculation works

  • Determine the track start time:
    • Try: match the track to its RF bunch using the method described above.
    • Else try: use the DEventRFBunch RF time if it was matched to other tracks.
    • Else try: use the measured track t0 time (ST, CDC) (will fail if t0 time = t1 time (e.g. both CDC (e.g. no ST/TOF/etc. hits of any kind)))
    • Note: each track may match to a different RF bunch: this allows the correct PID to be determined for background tracks originating from nearby beam buckets.
  • Propagate both the TOF/BCAL/etc. time and the RF time to the track vertex, and compare them to calculate FOM.

How DNeutralParticleHypothesis PID FOM calculation works

  • Propagate shower times to the target center, compare them to the DEventRFBunch time.