Difference between revisions of "PID study proposal"
From GlueXWiki
(→Systematic Studies) |
(→Systematic Studies) |
||
Line 23: | Line 23: | ||
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 | 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)) |
Revision as of 12:11, 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))