Difference between revisions of "Analysis DParticleCombo"
From GlueXWiki
(→Versions) |
(→Comparing Particles Between Combos (and/or Reactions)) |
||
(3 intermediate revisions by the same user not shown) | |||
Line 8: | Line 8: | ||
== Creation == | == Creation == | ||
* Any detected +/-/neutral particle can be any of the desired +/-/neutral particles in the <span style="color:#0000FF">DReaction</span>: find all possible combinations. | * Any detected +/-/neutral particle can be any of the desired +/-/neutral particles in the <span style="color:#0000FF">DReaction</span>: find all possible combinations. | ||
− | ** This is regardless of PID: PID cuts are | + | ** This is regardless of PID: Only loose PID cuts are applied by default. |
** Note: If a <span style="color:#0000FF">DChargedTrack</span> has hypotheses with different charges, tested as both + and -. | ** Note: If a <span style="color:#0000FF">DChargedTrack</span> has hypotheses with different charges, tested as both + and -. | ||
*** This can happen if the track reconstruction flips the sign of one of the hypotheses, but not the others. | *** This can happen if the track reconstruction flips the sign of one of the hypotheses, but not the others. | ||
* There can be (very, very) many <span style="color:#0000FF">DParticleCombo</span> objects for a single event: user should apply cuts to remove the (combinatoric) background combinations. | * There can be (very, very) many <span style="color:#0000FF">DParticleCombo</span> objects for a single event: user should apply cuts to remove the (combinatoric) background combinations. | ||
− | |||
== Particles == | == Particles == | ||
Line 20: | Line 19: | ||
* Both the measured data and the kinematic fit data are accessible from these classes. | * Both the measured data and the kinematic fit data are accessible from these classes. | ||
− | ** The measured data can be accessed by calling the <span style="color:#008000">Get_InitialParticle_Measured</span> and <span style="color:#008000">Get_FinalParticle_Measured</span>(<span style="color:#0000FF">size_t</span>) functions on a particle combination | + | ** The measured data can be accessed by calling the <span style="color:#008000">Get_InitialParticle_Measured</span> and <span style="color:#008000">Get_FinalParticle_Measured</span>(<span style="color:#0000FF">size_t</span>) functions on a particle combination. |
− | ** The the <span style="color:#008000">Get_InitialParticle</span> and <span style="color:#008000">Get_FinalParticle</span>(<span style="color:#0000FF">size_t</span>) functions return the Measured/Kinfit data | + | ** The the <span style="color:#008000">Get_InitialParticle</span> and <span style="color:#008000">Get_FinalParticle</span>(<span style="color:#0000FF">size_t</span>) functions return the Measured/Kinfit data. |
* The source objects (<span style="color:#0000FF">DChargedTrack</span> and <span style="color:#0000FF">DNeutralShower</span>) are accessible by calling <span style="color:#0000FF">DParticleComboStep</span>::<span style="color:#008000">Get_FinalParticle_SourceObject</span>(<span style="color:#0000FF">size_t</span>). | * The source objects (<span style="color:#0000FF">DChargedTrack</span> and <span style="color:#0000FF">DNeutralShower</span>) are accessible by calling <span style="color:#0000FF">DParticleComboStep</span>::<span style="color:#008000">Get_FinalParticle_SourceObject</span>(<span style="color:#0000FF">size_t</span>). | ||
Line 31: | Line 30: | ||
== Comparing Particles Between Combos (and/or Reactions) == | == Comparing Particles Between Combos (and/or Reactions) == | ||
* To know whether a particle in one <span style="color:#0000FF">DParticleCombo</span> is the same physical track/shower as a particle in another <span style="color:#0000FF">DParticleCombo</span>, you cannot directly compare the particle-object pointers. This is because the specific instances of these particles are likely unique to their combinations. | * To know whether a particle in one <span style="color:#0000FF">DParticleCombo</span> is the same physical track/shower as a particle in another <span style="color:#0000FF">DParticleCombo</span>, you cannot directly compare the particle-object pointers. This is because the specific instances of these particles are likely unique to their combinations. | ||
− | * Instead, you need to compare source objects (see above section) | + | * Instead, you need to compare source objects (see above section). |
− | + |
Latest revision as of 06:48, 3 November 2017
Summary
- Located in sim-recon/src/libraries/ANALYSIS/
- DParticleComboStep: Contains a possible combination of particles for an interaction or decay step in a reaction.
- DParticleComboStep nearly mirrors DReactionStep, containing particles instead of PIDs, but in the same order.
- DParticleCombo: Contains a possible combination of DParticleComboStep objects for a reaction, along with a pointer to the corresponding DKinFitResults.
- DParticleCombo nearly mirrors DReaction, containing DParticleComboStep objects instead of DReactionStep objects, but in the same order.
Creation
- Any detected +/-/neutral particle can be any of the desired +/-/neutral particles in the DReaction: find all possible combinations.
- This is regardless of PID: Only loose PID cuts are applied by default.
- Note: If a DChargedTrack has hypotheses with different charges, tested as both + and -.
- This can happen if the track reconstruction flips the sign of one of the hypotheses, but not the others.
- There can be (very, very) many DParticleCombo objects for a single event: user should apply cuts to remove the (combinatoric) background combinations.
Particles
- Particle data is contained in either DChargedTrackHypothesis, DNeutralParticleHypothesis, DBeamPhoton, DMCThrown, or DKinematicData (for reconstructed missing or decaying particles) objects.
- However, all of these objects are stored in DParticleComboStep as pointers to DKinematicData. If you want the DBeamPhoton, etc. objects, you need to cast them back that type.
- Both the measured data and the kinematic fit data are accessible from these classes.
- The measured data can be accessed by calling the Get_InitialParticle_Measured and Get_FinalParticle_Measured(size_t) functions on a particle combination.
- The the Get_InitialParticle and Get_FinalParticle(size_t) functions return the Measured/Kinfit data.
- The source objects (DChargedTrack and DNeutralShower) are accessible by calling DParticleComboStep::Get_FinalParticle_SourceObject(size_t).
- These objects are returned as type const JObject*, and may be cast to either DChargedTrack or DNeutralShower as appropriate.
- Particles that are missing or are decaying may have NULL pointers stored for the objects.
- The source and measured pointers will be NULL, and the "default" pointers will be NULL unless they are constrained by the kinematic fit (e.g. resonances are not constrained, but a Λ or a missing recoil proton will be).
Comparing Particles Between Combos (and/or Reactions)
- To know whether a particle in one DParticleCombo is the same physical track/shower as a particle in another DParticleCombo, you cannot directly compare the particle-object pointers. This is because the specific instances of these particles are likely unique to their combinations.
- Instead, you need to compare source objects (see above section).