Skip to content
Hao Li edited this page Aug 5, 2024 · 1 revision

DSelector Data Classes

All the quantities in the ROOT file are accessed through some wrapper objects defined in your DSelector. The variable names used in the ROOT trees and the generated DSelector code have distinct qualifiers to help to indicate their meaning and are explained here in more detail.

Variable names prefixes and suffixes

  • Beam_ Beam photon related quantity/ies for a given event before Kinematic Fit.
  • NeutralHypo_ Neutral Particle related quantity/ies for a given event before Kinematic Fit.
  • ChargedHypo_ Charged Particle related quantity/ies for a given event before Kinematic Fit.
  • _Measured A measured quantity as determined by the reconstruction software.
  • _KinFit A measured quantity that has been altered by the Kinematic Fitter.
  • _X4 4-vector containing position and time (TLorentzVector).
  • _P4 4-vector containing momentum and energy (TLorentzVector).
  • BeamCombo_ Initial state beam photon for a given combo.
  • Proton_ Final state proton for a given combo.
  • PiPlus_ Final state π+ for a given combo.
  • PiMinus_ Final state π- for a given combo.
  • Photon1_ First final state photon for a given combo. Subsequent photons are labeled Photon2_, Photon3_, ...
  • PiZero_ Final state π0 for a given combo if the mass was constrained by the kinematic fitter. Other particles, such as Eta, Kshort, and Lambda can also be specified.

Note, in the above example the $\pi^{0}$ is not a final state particle, as it does decay into photons and only those are detected directly. Therefore, such a particle is only listed explicitly as a separate particle in the ROOT tree if its mass was constrained by the kinematic fit to a fixed value, usually the PDG value.

In order to access the variables in the tree, one must use the above-mentioned wrappers and their methods. The detailed functionality and implementations of all these wrapper methods can be found in DBeamParticle.h, DChargedTrackHypothesis.h, DNeutralParticleHypothesis.h, and DParticleCombo.h located in gluex_root_analysis library. These methods are discussed in more detail below.

DBeamParticle.h

Most of the methods needed by the incoming photon are inherited from DKinematicData.h:

  • PID & KINEMATIC DATA
    • Get_PID() Returns type Particle_t defined in halld_recon/src/libraries/include/particleType.h.
    • Get_P4() Get the 4-momentum of this particle.
    • Get_X4() Get the 4-vector position (time and position) of this particle at the production vertex from the kinematic fit.
    • Get_P4_Measured() Same as above.
    • Get_X4_Measured() Same as above but with the measured quantities, see example code above using the wrapper dComboBeamWrapper to get the vertex 4-vector.

Note that since the kinematic fitter does not change the 4-momentum of the beam photon _P4() and _P4_Measured() are the same in for the incident beam particle! The vertex position still can change though.

DChargedTrackHypothesis.h

Note that this class does inherit from DKinematicData.h and as such has the above listed methods as well as the following ones:

  • IDENTIFIERS

    • Get_TrackID() Each physical particle has its own identifier but is fit by multiple mass hypotheses, refers back to the parent particle, returns int.
    • Get_ThrownIndex() Array index of thrown particle if match found, returns int (-1 otherwise). MC data only.
    • Get_ID() Same as Get_TrackID().
  • TRACKING INFO

    • Get_ChiSq_Tracking() The χ² from the charged particle fit (Kalman filter), returns float.
    • Get_NDF_Tracking() The number of degrees of freedom in the fit, equal to the number of hits - 5, returns uint.
    • Get_ChiSq_DCdEdx() The χ² between the measured energy loss in the drift chamber and the value expected for the given mass hypotheses, where the most appropriate value between the CDC and FDC dE/dx's is used, returns float.
    • Get_NDF_DCdEdx() The number of degrees of freedom in the fit, returns uint.
    • Get_dEdx_CDC() The calculated energy loss in the CDC, returns float.
    • Get_dEdx_FDC() The calculated energy loss in the FDC, returns float.
  • TIMING INFO

    • Get_HitTime() The time of the hit in whatever timing detector the charged particle is matched to, returns float.
    • Get_RFDeltaTVar() The variance of the ΔtRF variable using the above hit time, returns float.
    • Get_Beta_Timing() The calculated β from the above hit time, returns float.
    • Get_ChiSq_Timing() The corresponding χ² from the above hit time for the given mass hypothesis, returns float.
    • Get_NDF_Timing() The number of degrees of freedom used in this χ², returns uint.
    • Get_ConfidenceLevel_Timing() The corresponding confidence level, returns float.
    • Get_Beta_Timing_Measured() The same as above, but using the measured momentum, returns float.
    • Get_ChiSq_Timing_Measured() The same as above, but using the measured momentum, returns float.
    • Get_ConfidenceLevel_Timing_Measured() The same as above, but using the measured momentum, returns float.
    • Get_Detector_System_Timing() The detector in which the matched timing hit was measured (BCAL/FCAL/SC/TOF), returns DetectorSystem_t.
  • HIT ENERGY

    • Get_dEdx_TOF() Measured energy loss in the TOF paddles, returns float.
    • Get_dEdx_ST() Measured energy loss in the Start Counter paddles, returns float.
    • Get_Energy_BCAL() Energy of a matched BCAL shower, returns float.
    • Get_Energy_BCALPreshower() Energy deposited in the first layer of a matched BCAL shower, returns float.
    • Get_Energy_BCALLayer2() Energy deposited in the second layer of a matched BCAL shower, returns float.
    • Get_Energy_BCALLayer3() Energy deposited in the third layer of a matched BCAL shower, returns float.
    • Get_Energy_BCALLayer4() Energy deposited in the fourth layer of a matched BCAL shower, returns float.
    • Get_SigLong_BCAL() The r.m.s. deviation (?) of the BCAL shower energy in the longitudinal direction, returns float.
    • Get_SigTheta_BCAL() The r.m.s. deviation (?) of the BCAL shower energy in the polar angle, returns float.
    • Get_SigTrans_BCAL() The r.m.s. deviation (?) of the BCAL shower energy in the transverse direction, returns float.
    • Get_RMSTime_BCAL() The r.m.s. deviation (?) of the BCAL shower time, returns float.
    • Get_Energy_FCAL() Energy of a matched FCAL shower, returns float.
    • Get_E1E9_FCAL() The E1/E9 ratio for the matched FCAL shower, returns float.
    • Get_E9E25_FCAL() The E9/E25 ratio for the matched FCAL shower, returns float.
    • Get_SumU_FCAL() The SumU value for the matched FCAL shower, returns float.
    • Get_SumV_FCAL() The SumV value for the matched FCAL shower, returns float.
  • SHOWER MATCH

    • Get_TrackBCAL_DeltaPhi() Difference in azimuthal positions of the shower and matched track along the face of the BCAL, returns float, 999.0 if not matched, units are radians.
    • Get_TrackBCAL_DeltaZ() Difference in z positions of the shower and matched track along the face of the BCAL, returns float, 999.0 if not matched.
    • Get_TrackFCAL_DOCA() Difference in positions of the shower and matched track along the face of the FCAL, returns float, 999.0 if not matched.
  • DIRC INFO

    • Get_Track_NumPhotons_DIRC() Number of DIRC photons associated with the track, returns float, 999.0 if no DIRC info.
    • Get_Track_ThetaC_DIRC() Measured Cherenkov angle, returns float, 999.0 if no DIRC info.
    • Get_Track_Lele_DIRC() Measured Likelihood for the electron hypothesis, returns float, 999.0 if no info.
    • Get_Track_Lpi_DIRC() Measured Likelihood for the pion hypothesis, returns float, 999.0 if no info.
    • Get_Track_Lk_DIRC() Measured Likelihood for the kaon hypothesis, returns float, 999.0 if no info.
    • Get_Track_Lp_DIRC() Measured Likelihood for the proton hypothesis, returns float, 999.0 if no info.

DNeutralParticleHypothesis.h

Note that this class does inherit from DKinematicData.h and as such has those methods as well as the following ones:

  • IDENTIFIERS

    • Get_NeutralID() Each physical particle has its own number, returns int.
    • Get_ThrownIndex() Array index of thrown particle if match found, returns int (-1 otherwise). MC data only.
    • Get_ID() Same as Get_NeutralID()
  • TIMING

    • Get_HitTime() The reconstructed shower time, returns float.
    • Get_RFDeltaTVar() The variance of the ΔtRF variable using the above shower time, returns float.
    • Get_Beta_Timing() The calculated β from the above hit time, returns float.
    • Get_ChiSq_Timing() The corresponding χ² from the above hit time for the given mass hypothesis, returns float.
    • Get_NDF_Timing() The number of degrees of freedom used in this χ², returns uint.
    • Get_ConfidenceLevel_Timing() The corresponding confidence level, returns float.
    • Get_Beta_Timing_Measured() The same as above, but using the measured momentum, returns float.
    • Get_ChiSq_Timing_Measured() The same as above, but using the measured momentum, returns float.
    • Get_ConfidenceLevel_Timing_Measured() The same as above, but using the measured momentum, returns float.
    • Get_Detector_System_Timing() The detector in which the matched timing hit was measured (BCAL/FCAL/SC/TOF), returns DetectorSystem_t.
  • SHOWER INFO

    • Get_Energy_BCAL() Energy of the BCAL shower, returns float.
    • Get_Energy_BCALPreshower() Energy deposited in the first layer of the BCAL shower, returns float.
    • Get_Energy_BCALLayer2() Energy deposited in the second layer of the BCAL shower, returns float.
    • Get_Energy_BCALLayer3() Energy deposited in the third layer of the BCAL shower, returns float.
    • Get_Energy_BCALLayer4() Energy deposited in the fourth layer of the BCAL shower, returns float.
    • Get_SigLong_BCAL() The r.m.s. deviation (?) of the BCAL shower energy in the longitudinal direction, returns float.
    • Get_SigTheta_BCAL() The r.m.s. deviation (?) of the BCAL shower energy in the polar angle, returns float.
    • Get_SigTrans_BCAL() The r.m.s. deviation (?) of the BCAL shower energy in the transverse direction, returns float.
    • Get_RMSTime_BCAL() The r.m.s. deviation (?) of the BCAL shower time, returns float.
    • Get_Energy_FCAL() Energy of an FCAL shower, returns float.
    • Get_E1E9_FCAL() The E1/E9 ratio for the FCAL shower, returns float.
    • Get_E9E25_FCAL() The E9/E25 ratio for the FCAL shower, returns float.
    • Get_SumU_FCAL() The SumU value for the FCAL shower, returns float.
    • Get_SumV_FCAL() The SumV value for the FCAL shower, returns float.
  • SHOWER MATCH

    • Get_TrackBCAL_DeltaPhi() Difference in azimuthal positions of the shower and matched track along the face of the BCAL, returns float, 999.0 if not matched, units are radians.
    • Get_TrackBCAL_DeltaZ() Difference in z positions of the shower and matched track along the face of the BCAL, returns float, 999.0 if not matched.
    • Get_TrackFCAL_DOCA() Difference in positions of the shower and matched track along the face of the FCAL, returns float, 999.0 if not matched.

As an important reminder note that in order to make the Energy_BCALLayerX data available in the root tree the reaction filter requires to be run with the following command line parameter: -PANALYSIS:BCAL_VERBOSE_ROOT_OUTPUT=1 and similarly for FCAL if the E1E9, E9E25, SumU and SumV data should be in the root tree the following command line parameter is required on the command line when running the reaction filter: -PANALYSIS:FCAL_VERBOSE_ROOT_OUTPUT=1

DParticleCombo.h

  • SHOWER MATCH

    • Get_RFTime_Measured() RF bucket time for the given combination, measured at the center of the target, returns float.
    • Get_RFTime() Same as above, returns float.
  • TARGET

    • Get_TargetPID() Particle type of target, returns Particle_t.
    • Get_TargetCenter() Position of target center, returns TVector3.
  • KINFIT

    • Get_ChiSq_KinFit() χ² of kinematic fit of this combo to the assumed reaction, returns float.
    • Get_NDF_KinFit() Number of degrees of freedom for the above kinematic fit, returns float.
    • Get_ConfidenceLevel_KinFit() Confidence level determined from χ² and number of degrees of freedom, returns float.
  • UNUSED ENERGY

    • Get_Energy_UnusedShowers() Total energy of unmatched showers that are in time with the combo but are not part of the combo, returns float.
  • UNUSED TRACKS

    • Get_NumUnusedTracks() Number of charged particle tracks in the event and not used in the combo, returns UChar_t.
    • Get_NumUnusedShowers() Number of unmatched showers in the event and not used in the combo, returns UChar_t.
  • EVENT INFO

    • Get_RunNumber() Run number of the event, returns UInt_t.
    • Get_EventNumber() Event number of the event, returns ULong64_t.
    • Get_L1TriggerBits() Trigger bit information, returns UInt_t.
    • Get_MCWeight() Optional event weight factor for MC events, returns float.

DParticleComboStep.h

  • Vertex position and time for this step of the reaction, returns TLorentzVector.