Analysis DParticleCombo

From GlueXWiki
Revision as of 22:42, 17 February 2013 by Pmatt (Talk | contribs) (Particles)

Jump to: navigation, search

Summary

  • Located in sim-recon/src/libraries/ANALYSIS/
  • DParticleComboStep: Contains the particles for an interaction or decay step in a reaction.
    • DParticleComboStep nearly mirrors DReactionStep, containing particles instead of particle types, but in the same order.
  • DParticleCombo: Contains the DParticleComboStep objects for a reaction, along with a pointers to the corresponding DReaction and (optional) DKinFitResults.
    • DParticleCombo nearly mirrors DReaction, containing DParticleComboStep objects instead of DReactionStep objects, but in the same order.

Particles

  • Particle data is contained in either DChargedTrackHypothesis, DNeutralParticleHypothesis, DBeamPhoton, 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.
    • In DParticleCombo objects grabbed from the default (no tag) factory, the kinematic data is stored in the "default" members (dFinalParticles and dInitialParticle) and the measured data is stored in the "measured" members (dFinalParticles_Measured and dInitialParticle_Measured).
    • In DParticleCombo objects grabbed from the "PreKinFit" tag factory, the measured data is stored in the both the "default" and the "measured" members.
    • To access these particles, call DParticleComboStep functions such as: Get_InitialParticle(size_t), Get_InitialParticle_Measured(size_t), Get_FinalParticle(size_t), Get_FinalParticle_Measured(size_t)
  • The source objects (DChargedTrack and DNeutralShower) and PIDs 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).

Source Code

  • C++ code of class members (methods aren't shown):
class DParticleComboStep
{
  private:
    // BLUEPRINT:
    const DParticleComboBlueprintStep* dParticleComboBlueprintStep; //contains PIDs, source objects
 
    // INITIAL PARTICLES:
    const DKinematicData* dInitialParticle; //if is null: decaying or beam particle not yet set!
    const DKinematicData* dInitialParticle_Measured; //if is null: decaying or beam particle not yet set!
    const DKinematicData* dTargetParticle; //NULL for no target
 
    // FINAL PARTICLES:
    deque<const DKinematicData*> dFinalParticles; //if particle is null: missing or decaying! //these are DChargedTrackHypothesis or DNeutralParticleHypothesis objects if detected
    deque<const DKinematicData*> dFinalParticles_Measured; //if particle is null: missing or decaying! //these are DChargedTrackHypothesis or DNeutralParticleHypothesis objects if detected
};
class DParticleCombo : public JObject
{
  private:
    const DReaction* dReaction;
    const DKinFitResults* dKinFitResults;
    deque<const DParticleComboStep*> dParticleComboSteps;
};