HyperonProduction Reference

This page is a standalone reference for playonverbs/HyperonProduction,
a module for the LArSoft framework written in C++.

https://github.com/playonverbs/HyperonProduction

The additional symbols referenced here that are not a part of the C++ standard library or the ROOT framework are described in the LArSoft documentation.

HyperonProduction_module.cc
struct hyperon::Config

Contains fields that correspond to FHiCL configuration parameters.

See this for an informal FHiCL reference.

Atom<std::string> fPandoraRecoLabel

Label for pandoraPatRec reconstruction products.

Atom<std::string> fFlashMatchRecoLabel

Label for pandora reconstruction products.

Atom<std::string> fTrackLabel

Label for recob::Track.

Atom<std::string> fShowerLabel

Label for recob::Shower

Atom<std::string> fCaloLabel

Label for anab::Calorimetry

Atom<std::string> fGeneratorLabel

Label for simb::MCTruth

Atom<std::string> fG4Label

Label for simb::MCParticle

Atom<std::string> fPIDLabel

Label for anab::ParticleID

Atom<std::string> fHitLabel

Label for recob::Hit

Atom<std::string> fTrackHitAssnsLabel

Label for associations between recob::Track and recob::Hit

Atom<std::string> fHitTruthAssnsLabel

Label for associations between simb::MCParticle, recob::Hit and anab::BackTrackerHitMatchingData.

Atom<std::string> fPOTSummaryLabel

Label for POT Summary data.

Atom<bool> fIsData

Flag to indicate if the input is Data.

Atom<bool> fDebug = false

Flag to enable debug messages.

class hyperon::HyperonProduction : art::EDAnalyzer
void analyze(art::Event const &evt) override
void beginJob() override
void endJob() override
void beginSubRun(const art::SubRun &sr)
void endSubRun(const art::SubRun &sr)
util.h
enum struct hyperon::util::GenEventType : int

Represents the neutrino interaction type as recorded by the event generator.

enumerator QEL = 0
enumerator RES = 1
enumerator DIS = 2
enumerator COH = 3
enumerator ElectronScatter = 5
enumerator MEC = 10
enumerator Diffractive = 11
enumerator HYP = 1095
enumerator Other
std::string hyperon::util::GetCCNC(int ccnc)

Returns the string representation of the charged/neutral current interaction output by the generator.

Return values:
  • “CC” – For a charged-current interaction

  • “NC” – For a neutral-current interaction

  • “None” – For neither.

std::string hyperon::util::GetEventType(int mode)

Returns the string representation of the event interaction type given by the generator.


template<typename T>
std::vector<art::Ptr<T>> hyperon::util::GetProductVector(const art::Event &e, const std::string &label)
Template Parameters:

T – A type that can be stored within an artroot event file.

Returns all data products of type T associated with the event that have a module label label.

template<typename T, typename U>
std::vector<art::Ptr<T>> hyperon::util::GetAssocProductVector(const art::Ptr<U> &pProd, const art::Event &e, const std::string &label, const std::string &assocLabel)
Template Parameters:
  • T – A type that can be stored within an artroot event file, the final type of the object retrieved.

  • U – A type that can be stored within an artroot event file, the type that T is associated with.

Returns all data products of type T associated with the data product specified by type U.

template<typename T, typename U>
art::Ptr<T> hyperon::util::GetAssocProduct(const art::Ptr<U> &pProd, const art::Event &e, const std::string &label, const std::string &assocLabel)
art::Ptr<simb::MCParticle> hyperon::util::getAssocMCParticle(art::FindManyP<simb::MCParticle, anab::BackTrackerHitMatchingData> &hittruth, const std::vector<art::Ptr<recob::Hit>> &hits, float &purity)

This function back-tracks hits to simulated particles when given an art::FindManyP, a list of recob::Hit and an associated ana::BackTrackerHitMatchingData.

This function checks for which simb::MCParticle deposited the highest energy that corresponds with a particular recob::Hit.

bool hyperon::util::posMatch(TVector3 p1, TVector3 p2, const double _epsilon = 0.0001)

Checks if two vectors are close. _epsilon catches floating-point comparison issues.


constexpr int hyperon::pdg::Lambda = 3122
constexpr int hyperon::pdg::NeutralKaon = 311
constexpr int hyperon::pdg::SignaZero = 3212
inline bool hyperon::pdg::isHyperon(const int pdgCode)
inline bool hyperon::pdg::isHyperon(const art::Ptr<simb::MCParticle> p)
inline bool hyperon::pdg::isPion(const int pdgCode)
inline bool hyperon::pdg::isPion(const art::Ptr<simb::MCParticle> p)
inline bool hyperon::pdg::isNucleon(const int pdgCode)
inline bool hyperon::pdg::isNucleon(const art::Ptr<simb::MCParticle> p)
inline bool hyperon::pdg::isLepton(const int pdgCode)
inline bool hyperon::pdg::isLepton(const art::Ptr<simb::MCParticle> p)
inline bool hyperon::pdg::isNeutrino(const int pdgCode)
inline bool hyperon::pdg::isNeutrino(const art::Ptr<simb::MCParticle> p)
inline bool hyperon::pdg::isKaon(const int pdgCode)
inline bool hyperon::pdg::isKaon(const art::Ptr<simb::MCParticle> p)