Difference between revisions of "PID study proposal"

From GlueXWiki
Jump to: navigation, search
(Systematic Studies)
m (Apply default cuts with DSelector)
Line 39: Line 39:
 
  dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.0, Electron, SYS_FCAL))
 
  dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.0, Electron, SYS_FCAL))
 
  dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.5, Electron, SYS_START))
 
  dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.5, Electron, SYS_START))
 +
 +
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 1.0, MuonPlus, SYS_BCAL))
 +
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 0.5, MuonPlus, SYS_TOF))
 +
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.0, MuonPlus, SYS_FCAL))
 +
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.5, MuonPlus, SYS_START))
 +
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 1.0, MuonMinus, SYS_BCAL))
 +
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 0.5, MuonMinus, SYS_TOF))
 +
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.0, MuonMinus, SYS_FCAL))
 +
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.5, MuonMinus, SYS_START))
 +
 +
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 1.0, PiPlus, SYS_BCAL))
 +
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 0.5, PiPlus, SYS_TOF))
 +
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.0, PiPlus, SYS_FCAL))
 +
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.5, PiPlus, SYS_START))
 +
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 1.0, PiMinus, SYS_BCAL))
 +
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 0.5, PiMinus, SYS_TOF))
 +
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.0, PiMinus, SYS_FCAL))
 +
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.5, PiMinus, SYS_START))

Revision as of 12:15, 28 May 2020

PID Studies

For each final state

  • Determine p/theta range of each final state particle
  • Compare PID variable distributions between data and MC
    • First stage: 1D distributions integrated over all kinematics
    • Optional: !D distributions from different p/theta bins
    • Do this for each run period under investigation
  • Determine selection criteria which are 99% and 95% efficient

Systematic Studies

How to determine systematic uncertainty in efficiency due to PID cuts (assumes you have a final state with some clean peak: rho, phi, pi0, eta, eta'...):

  • make tight PID cuts on all particles except the one you are testing the efficiency of - call this particle P
  • make two sets of invariant mass distributions for whatever peak you have
    • masses for events in which P satisfies the standard PID requirements
    • masses for events in which P fails the standard PID requirements
  • Fit each mass distribution to get the yields: N(pass) and N(fail)
  • efficiency of the cut is N(pass) / [N(pass) + N(fail)]
  • compare this efficiency between data and MC to determine how well it is modeled
    • Note: need to check for the presence of peaking backgrounds, good to look at bggen MC

Note this probably only works for the timing PID right now. Will need a separate set of files to test CDC dE/dx, but for now just look at the distributions. The biggest contributor here is probably the rate of events without enough hits to properly calculate dE/dx

Apply default cuts with DSelector

In order to apply the default cuts at the DSelector stage, copy the relevant lines into the Init function:

dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 1.5, Gamma, SYS_BCAL))
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 1.5, Gamma, SYS_FCAL))
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 1.0, Positron, SYS_BCAL))
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 0.5, Positron, SYS_TOF))
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.0, Positron, SYS_FCAL))
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.5, Positron, SYS_START))
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 1.0, Electron, SYS_BCAL))
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 0.5, Electron, SYS_TOF))
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.0, Electron, SYS_FCAL))
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.5, Electron, SYS_START))
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 1.0, MuonPlus, SYS_BCAL))
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 0.5, MuonPlus, SYS_TOF))
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.0, MuonPlus, SYS_FCAL))
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.5, MuonPlus, SYS_START))
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 1.0, MuonMinus, SYS_BCAL))
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 0.5, MuonMinus, SYS_TOF))
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.0, MuonMinus, SYS_FCAL))
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.5, MuonMinus, SYS_START))
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 1.0, PiPlus, SYS_BCAL))
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 0.5, PiPlus, SYS_TOF))
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.0, PiPlus, SYS_FCAL))
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.5, PiPlus, SYS_START))
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 1.0, PiMinus, SYS_BCAL))
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 0.5, PiMinus, SYS_TOF))
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.0, PiMinus, SYS_FCAL))
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.5, PiMinus, SYS_START))