Available BtaCandidate Lists

BtaCandidate Lists

Contents:

Example code showing how to access and use the BtaCandidate lists can be found at the bottom of this page.


Standard Lists

Standard lists are created during online production (OPR), so they are always produced.
You should be able to get them from any analysis module.

Note!
Since TrkFixup (R22), the track list definitions have changed, and the description of some of the lists in the following table are from prior to this change.
The candidates in V0BtaTrack (R22) are removed from the GoodTracksVeryLoose and GoodTracksLoose lists.
The new lists are described at the charged particles AWG web page!

Standard Lists stored by OPR

List Name List Description
TaggingList Candidates with non-zero charge. Mass hypothesis, by design, was to be that assigned by the tagging algorithm. In practice, I am not sure how well this was implemented. I would recommend using ChargedTracks if you need just a list of all tracks.
ChargedTracks Same as Tagging List, but with pion mass hypothesis assigned
CalorNeutral BtaMicroCandidates which are single EMC bumps not matched with any track. Photon mass hypothesis assigned. All single-bump neutral clusters show up in *both* the CalorNeutral *and* CalorClusterNeutral lists
CalorClusterNeutral BtaMicroCandidates that are multi-bump neutral clusters or single bumps which are not part of a cluster which is matched with a track. These candidates may be embedded in charged candidates. In this case the operator BetaTools/BtaOpMakeNeutral.cc can be used to get a neutral candidate out of the charged one. All single-bump neutral clusters show up in *both* the CalorNeutral *and* CalorClusterNeutral lists
NeutralHad BtaMicroCandidates with charge zero and no EMC information.
(i.e. a neutral candidate with IFR info but has not been merged with a track or an EMC bump/cluster.)
SingleBumpNeutralClusters Single-Bump-Neutral-Clusters in the EMC
SplitKinkCands
pi0MergedDefault
V0BtaTrack Combines Ks, Lambda, and gamma conversions that are identified as such by the TrkV0Selector module in the TrkFixup package. The candidates in V0BtaTrack are removed from the GoodTracksVeryLoose and GoodTracksLoose lists. details

Good Track/Neutral Lists Made at Run-Time

These lists are created by code in the BetaMicro package, and can be changed with TCL.
Module ListNameSelection (for example: GoodTracksVeryLooseSelection) is created from BetaMicro/BtaGoodTrkSelector.cc (track lists) or from BetaMicro/BtaGoodNeutralSelector.cc (neutral list), and the cut parameters are set in TCL via the BetaMicro/BtaGoodTrackSequence.tcl.
List Name List Description
ChargedTracksAcc Charged Tracks with

Min Theta: 0.410
Max Theta: 2.54

GoodTracksVeryLoose Charged Tracks with

Min Transverse Momentum: 0.0 GeV
Max Momentum: 10 GeV
Min # of Dch Hits: 0
Min Fit Chi-Square Prob.: 0
Max DOCA in XY plane: 1.5 cm
Min Z Doca: -10 cm
Max Z Doca: 10 cm

GoodTracksLoose Same cuts as GoodTracksVeryLoose with

Min Transverse Momentum: 0.1 GeV
Min # of Dch Hits: 12

GoodTracksAccLoose Same cuts as GoodTracksLoose with

Min Theta: 0.410
Max Theta: 2.54

GoodTracksTight Same as GoodTracksLoose, but with these additionals cuts:

Min # of Dch Hits: 20
Max DOCA in XY plane: 1 cm
Min Z Doca: -3 cm
Max Z Doca: 3 cm

GoodPhotonLoose Candidates from CalorNeutral satisfying:

Min Raw Energy: 0.030 GeV
Min Num of Crystals: 0
Max Lateral Moment: 0.8

GoodPhotonDefault Candidates from GoodPhotonLoose with

Min Raw Energy: 0.100 GeV
Min Num of Crystals: 0
Max Lateral Moment: 0.8

GoodNeutralLooseAcc Candidates from CalorNeutral satisfying:

Min Raw Energy: 0.030 GeV
Min Num of Crystals: 0
Max Lateral Moment: 1.1
Min Theta: 0.410
Max Theta: 2.409


Run Time Lists

Unlike Standard Lists, Run Time Lists are produced at run-time --- that is, when you run your
analysis application. The following Run Time lists are created by MOST analysis jobs.

If you get an error message when you try to access one of these lists, it probably means that the list-creating Tcl script
is not sourced during your analysis job. Fixing this may be as simple as changing a few lines of
Tcl code. Search Hypernews, or ask an expert what you need to do to make your list available.


How to Get the Lists from your Module

Header files

To begin, make sure your module (.cc file) includes the following header files in the #includes section:

#include "AbsEvent/AbsEvent.hh"
#include "Beta/BtaCandidate.hh"
#include "CLHEP/Alist/AIterator.h"

Access and loop over a list

To access and loop over the ChargedTracks and CalorNeutral lists (for example), add the following code to your analysis module:

In your module's event(AbsEvent *anEvent) function:

HepAList<BtaCandidate> *trackList = Ifd< HepAList<BtaCandidate> >::get( anEvent, "ChargedTracks");
HepAList<BtaCandidate> *neutralList = Ifd< HepAList<BtaCandidate> >::get( anEvent, "CalorNeutral");

// Loop over the list of tracks, and find the maximum energy and the number of tracks.

  double emax(0.0);
  int ntrk(0);

  HepAListIterator<BtaCandidate> trkIter(*trackList);
  BtaCandidate *trk(0);

  while (trk = trkIter()) {  

      // Now the loop has started.
      // One by one, trk takes on the value of each 
      // BtaCandidate in the ChargedTracks list.

      double etrk = cand->energy();
      if (etrk > emax) etrk = emax;

      ntrk++;

  }  // end the loop

// Loop over the list of neutrals.  Find the total number of neutrals, 
// and the number of neutrals within the EMC's angular acceptance.

  int nneu(0);
  int nneuAccept(0);

  HepAListIterator<BtaCandidate> neuIter(*neutralList);
  BtaCandidate *neu(0);

  while (neu = neuIter() ) {

      // Now the loop has started.
      // One by one, neu takes on the value of each 
      // BtaCandidate in the CalorNeutral list.

      nneu++;

      double CosTheta = neu->p4().theta();
      if ((CosTheta > -0.775) && (CosTheta < 0.962)) {
         nneuAccept++;
      }
   }


Back to Event Information Page