RhopiAlg Example Package#

What does this example package teach?#

The RhopiAlg is the starting point for beginners using BOSS. It teaches:

  • The usual Gaudi Algorithm structure of the initialize, execute, and finalize steps.

  • The use of logging using MsgStream.

  • Declaring and booking NTuple::Tuples (the eventual TTree) and adding items (the eventual branches) using NTuple::Tuple::addItem.

  • Accessing data of charged tracks and neutral tracks in the using data from EvtRecEvent and EvtRecTrack classes.

  • Identifying particles (PID) using the ParticleID class.

  • Making a selection of these tracks (using iterators) over which you loop again later.

  • Applying a Kalman kinematic fit with constraints and a resonance using KalmanKinematicFit.

  • Computing invariant masses using HepLorentzVector from the CLHEP library.

  • Computing the angle between a photon and a pion.

  • Reconstructed data from the detectors is accessed through the classes in the below table. This package only makes use of the MDC, EMC, and TOF detectors.

Detector

Class

Accessed through

MDC

Main Drift Chamber

RecMdcTrack

EvtRecTrack::mdcTrack

MDC

\(dE/dx\) info

RecMdcDedx

EvtRecTrack::mdcDedx

MDC

Kalman track

RecMdcKalTrack

EvtRecTrack::mdcKalTrack

TOF

Time-of-Flight

RecTofTrack

EvtRecTrack::tofTrack

EMC

EM-Calorimeter

RecEmcShower

EvtRecTrack::emcShower

MUC

Muon Chamber

RecMucTrack

EvtRecTrack::mucTrack

<>

Extension through all

RecExtTrack

EvtRecTrack::extTrack

Introduction#

One of the basic physics analysis packages that is already provided in BOSS is the RhopiAlg package. Within BESIII, almost everyone knows it, because it is used as the starting point for developing your own initial event selection packages. RhopiAlg is an illustration of a typical procedure in particle physics: reconstructing a decayed particle. For this, you will have to make apply cuts on measured parameters and this package is an illustration of this procedure.

The RhopiAlg analyzes the decay of the \(\rho(770)\) meson. As you can see in the in the PDG listing for this meson, the \(\rho(770)\) meson predominantly decays through \(\rho\rightarrow\pi\pi\) (almost \(100\%\)), whether it concerns a \(\rho^+\), \(\rho^0\), or \(\rho^-\). This means that we can reconstruct this meson purely through this 2-particle decay mode.

Additionally, when we consider the charged \(\rho^\pm\) mesons, one of the decay products is the neutral pion: \(\rho^\pm \rightarrow \pi^\pm\pi^0\). This meson is again neutral and cannot be detected, so has to be reconstructed. But here again, there is one dominant decay mode: \(\pi^0 \rightarrow \gamma\gamma\) (\(98.823 \pm 0.034 \%\), see its PDG listing). This means that we can reconstruct the \(\rho^\pm\) meson almost exclusively through its \(\rho^\pm \rightarrow \pi^\pm\pi^0 \rightarrow \pi^\pm\gamma\gamma\) decay channel.

In reconstructing \(\pi^0\) and \(\rho^0\), you will run into another common phenomenon in hadron research: the width of the decaying particle. The width of \(\rho^0\) is much wider than \(\pi^0\) and therefore results in interesting differences in the eventual invariant mass spectra. In the final event selection, you will for instance see that a fit of the invariant mass peaks results in different widths.

Where to find it?#

The original RhopiAlg package (version 0.0.23) is located here,

/cvmfs/bes3.ihep.ac.cn/bes3sw/Boss/$BOSSVERSION/Analysis/Physics/RhopiAlg/RhopiAlg-00-00-23

You can also find the RhopiAlg package in the BOSS Tutorials repository.

How to compile and run?#

See summary of Set up a BOSS package and Running jobs. An example of a analysis job option file for RhopiAlg is found under run in the TestRelease package.

The parameter EventCnvSvc.digiRootInputFile lists the input files. This is currently rhopi.dst (namely the output after running the jobOptions_rec.txt job), but you can also feed it other DST files, such as the ones reconstructed from BESIII data or MC samples.

Description of source code#

Warning

The sections below are incomplete and it is not yet decided whether it is useful to describe the source code in words.

Declaring and defining properties like cuts#

See header .h file for declarations and source .cxx code for definitions of cuts.

Determining vertex position#

Writing properties#

Looping over charged and neutral tracks#

Kalman kinematic \(n\)-constraints fit procedure#

  • fit4c refers to the 4-constraints coming from the original \(\pi^0 \rightarrow \gamma\gamma\) meson (or other mesons, depending on the collision energy), namely, the 4-momentum of the system (collision energy and sum of the 3-momenta). Note that the \(\chi^2_\text{red}\) of the fit is the same for any combination, as the for constraints are the same in each event.

  • fit5c is used when an additional constraint is applied. In the RhopiAlg package, this fifth constraint refers to the constraint reconstruction of \(\rho^\pm \rightarrow \pi^\pm\pi^0 \rightarrow \pi^\pm\gamma\gamma\), namely the mass of the pion.

Cut flow#

Output root file#

Warning

General description of how to read the output ROOT file.