/
githubmirror
/
cmssw
Обзор
Документация
Войти
/
githubmirror
/
cmssw
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
DataFormats/HGCalReco/interface/Common.h
87 строк
3 KB
Felice Pantaleo
RecoHGCal/TICL: dedicated muon interpretation for TICL candidates
05 июл 2026, 10:42
05 июл 2026, 10:42
be3e8d6
Код
Авторство
О чём код?
#ifndef DataFormats_HGCalReco_Common_h #define DataFormats_HGCalReco_Common_h #include <vector> #include <array> #include <cstdint> #include "DataFormats/HGCalReco/interface/Trackster.h" namespace ticl { struct TileConstants { static constexpr float minEta = 1.3f; static constexpr float maxEta = 3.4f; static constexpr int nEtaBins = 32; static constexpr int nPhiBins = 128; static constexpr int nLayers = 100; static constexpr int iterations = 4; static constexpr int nBins = nEtaBins * nPhiBins; }; struct TileConstantsHFNose { static constexpr float minEta = 3.0f; static constexpr float maxEta = 4.2f; static constexpr int nEtaBins = 24; static constexpr int nPhiBins = 126; static constexpr int nLayers = 16; // 8x2 static constexpr int iterations = 4; static constexpr int nBins = nEtaBins * nPhiBins; }; struct TileConstantsBarrel { static constexpr float minEta = -1.5f; static constexpr float maxEta = 1.5f; static constexpr int nEtaBins = 68; static constexpr int nPhiBins = 36; static constexpr int nLayers = 5; static constexpr int iterations = 1; static constexpr int nBins = nEtaBins * nPhiBins; }; } // namespace ticl namespace ticl { typedef std::vector<std::pair<unsigned int, float> > TICLClusterFilterMask; } // namespace ticl namespace ticl { //constants constexpr double mpion = 0.13957; constexpr float mpion2 = mpion * mpion; constexpr double mmuon = 0.1056583745; constexpr float mmuon2 = mmuon * mmuon; typedef math::XYZVectorF Vector; inline Trackster::ParticleType tracksterParticleTypeFromPdgId(int pdgId, int charge) { if (pdgId == 111) { return Trackster::ParticleType::neutral_pion; } else { pdgId = std::abs(pdgId); if (pdgId == 22) { return Trackster::ParticleType::photon; } else if (pdgId == 11) { return Trackster::ParticleType::electron; } else if (pdgId == 13) { return Trackster::ParticleType::muon; } else { bool isHadron = (pdgId > 100 and pdgId < 900) or (pdgId > 1000 and pdgId < 9000); if (isHadron) { if (charge != 0) { return Trackster::ParticleType::charged_hadron; } else { return Trackster::ParticleType::neutral_hadron; } } else { return Trackster::ParticleType::unknown; } } } } // verbosity levels for ticl algorithms enum VerbosityLevel { None = 0, Basic, Advanced, Expert, Guru }; } // namespace ticl #endif // DataFormats_HGCalReco_Common_h