|
|
(22 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
− | == 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">DAnalysisAction</span> object.
| |
− | * Because there may be many <span style="color:#0000FF">DParticleCombo</span> 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) <span style="color:#0000FF">DReaction</span> object (with the same <span style="color:#0000FF">DReactionStep</span> pointers), then simply repeat or change any of the <span style="color:#0000FF">DAnalysisActions</span>.
| |
− | ** If the <span style="color:#0000FF">DReactionStep</span> objects are re-used, the framework will realize that the <span style="color:#0000FF">DParticleComboBlueprintStep</span> objects will be the same, and will simply reuse them.
| |
− | *** Note that the <span style="color:#0000FF">DParticleCombo</span> objects will not be identical since they will contain a pointer to a different <span style="color:#0000FF">DReaction</span>.
| |
− | *** If the kinematic fit type is also the same, it will skip the kinematic fit of the new <span style="color:#0000FF">DParticleCombo</span> objects entirely and just copy the previous results since they will be identical.
| |
| | | |
− | == RF Beam Bunch Selection & PID Details ==
| |
− |
| |
− | === How RF bunch selection works for an event (creating a single DEventRFBunch object) ===
| |
− | * In <span style="color:#0000FF">DEventRFBunch_factory</span>: Use (in order of preference) (need at least one of):
| |
− |
| |
− | # Tracks with good tracking FOM: SC hits
| |
− | # Tracks with good tracking FOM: BCAL/TOF/FCAL hits
| |
− | # All Tracks: SC hits
| |
− | # All Tracks: BCAL/TOF/FCAL hits
| |
− | # All Neutral Showers (assume all PIDs = photon)
| |
− | # Use original DRFTime and set DEventRFBunch::dMatchedToTracksFlag to false
| |
− |
| |
− | * Vote: select the RF bunch that matches the most times. The RF bunch times are the DRFTime +/- multiples of 2.004 ns.
| |
− |
| |
− | === 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 <span style="color:#0000FF">DEventRFBunch</span> time.
| |