Difference between revisions of "PID study proposal"
From GlueXWiki
m (→Apply default cuts with DSelector) |
m (→Apply default cuts with DSelector) |
||
Line 57: | Line 57: | ||
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.0, PiMinus, SYS_FCAL)) | 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)) | dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.5, PiMinus, SYS_START)) | ||
+ | |||
+ | dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 0.75, KPlus, SYS_BCAL)) | ||
+ | dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 0.3, KPlus, SYS_TOF)) | ||
+ | dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.5, KPlus, SYS_FCAL)) | ||
+ | dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.5, KPlus, SYS_START)) | ||
+ | dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 0.75, KMinus, SYS_BCAL)) | ||
+ | dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 0.3, KMinus, SYS_TOF)) | ||
+ | dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.5, KMinus, SYS_FCAL)) | ||
+ | dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.5, KMinus, SYS_START)) | ||
+ | |||
+ | dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 1.0, Proton, SYS_BCAL)) | ||
+ | dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 0.6, Proton, SYS_TOF)) | ||
+ | dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.0, Proton, SYS_FCAL)) | ||
+ | dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.5, Proton, SYS_START)) | ||
+ | dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 1.0, AntiProton, SYS_BCAL)) | ||
+ | dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 0.6, AntiProton, SYS_TOF)) | ||
+ | dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.0, AntiProton, SYS_FCAL)) | ||
+ | dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.5, AntiProton, SYS_START)) | ||
+ | |||
+ | dAnalysisActions.push_back(new DCutAction_MissingMassSquared(dComboWrapper, false, -0.1, 0.1)) |
Revision as of 12:25, 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))
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 0.75, KPlus, SYS_BCAL)) dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 0.3, KPlus, SYS_TOF)) dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.5, KPlus, SYS_FCAL)) dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.5, KPlus, SYS_START)) dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 0.75, KMinus, SYS_BCAL)) dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 0.3, KMinus, SYS_TOF)) dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.5, KMinus, SYS_FCAL)) dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.5, KMinus, SYS_START))
dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 1.0, Proton, SYS_BCAL)) dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 0.6, Proton, SYS_TOF)) dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.0, Proton, SYS_FCAL)) dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.5, Proton, SYS_START)) dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 1.0, AntiProton, SYS_BCAL)) dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 0.6, AntiProton, SYS_TOF)) dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.0, AntiProton, SYS_FCAL)) dAnalysisActions.push_back(new DCutAction_PIDDeltaT(dComboWrapper, false, 2.5, AntiProton, SYS_START))
dAnalysisActions.push_back(new DCutAction_MissingMassSquared(dComboWrapper, false, -0.1, 0.1))