#ifndef OANALYSISDEFS_HXX #define OANALYSISDEFS_HXX #include #include #include namespace COMET { class IoaAnalysisUtils; }; /// Utility tools to be shared across oaAnalysis classes /// /// Mostly bookkeeping routines to ensure consistency and /// easy referencing /// /// Unlike other packages and classes, the utilities in this /// file must not depend on anything external (apart from ROOT /// and STL etc) /// also work from the ROOT CINT interpreter (or be fixable to /// do so....) /// Main IoaAnalysisUtils class class COMET::IoaAnalysisUtils : public TObject { public: enum ESubdetector { kFGD1 = 0, kFGD2, kP0D, kDsECal, kBrlECal, kP0DECal, kTPC1, kTPC2, kTPC3, kMRD, kOffAxis, /// the rest of the off-axis detector kINGRID, kCavern, kNSubdetectors }; static ESubdetector PathToSubdetector(const std::string path); static std::string DetectorName(const ESubdetector subdet); enum EParticleCategory { kChargedLepton = 0, // called "Lepton" kChargedBaryon, // called "Baryon" kChargedMeson, // called "Meson" kPhoton, // called "Photon" kOtherCharged, kOtherNeutral, kOther, // nuclei and stuff kNParticleCategories }; static EParticleCategory PDGInfoToCategory(const TParticlePDG *pdgInfo); static EParticleCategory PDGToCategory(const Int_t pdg); static void UseCustomPDGTable(); IoaAnalysisUtils(); virtual ~IoaAnalysisUtils(); private: ClassDef(IoaAnalysisUtils,1); }; #endif // OANALYSISDEFS_HXX