Analysis DParticleCombo

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

Jump to: navigation, search

DParticleCombo

  • Located in sim-recon/src/libraries/ANALYSIS/

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.
  • The order of the particles and steps are the same as specified by the DReaction and DReactionStep objects.
  • Both the measured data and the kinematic fit data are accessible from these classes.
    • In DParticleCombo objects grabbed from the "PreKinFit" tag factory, the measured data is stored in the both the "default" and the "measured" members (e.g. dFinalParticles and dFinalParticles_Measured).
    • In DParticleCombo objects grabbed from the default (no tag) factory, the kinematic data is stored in the "default" members (e.g. dFinalParticles) and the measured data is stored in the "measured" members (e.g. dFinalParticles_Measured).
  • The source objects (DChargedTrack and DNeutralShower) and PIDs are accessible through the DParticleComboBlueprintStep.
  • 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;
};