/
githubmirror
/
cmssw
Обзор
Документация
Войти
/
githubmirror
/
cmssw
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
L1Trigger/TrackFindingTracklet/interface/TripletEngineUnit.h
95 строк
3 KB
Christopher Jones
Initialize members of TripletEngineUnit
15 дек 2025, 17:31
15 дек 2025, 17:31
6256c22
Код
Авторство
О чём код?
#ifndef L1Trigger_TrackFindingTracklet_interface_TripletEngineUnit_h #define L1Trigger_TrackFindingTracklet_interface_TripletEngineUnit_h #include "L1Trigger/TrackFindingTracklet/interface/VMStubsTEMemory.h" #include "L1Trigger/TrackFindingTracklet/interface/CircularBuffer.h" #include "L1Trigger/TrackFindingTracklet/interface/TrackletLUT.h" #include <cassert> #include <vector> namespace trklet { class Settings; class Stub; class L1TStub; struct TrpEData { const Stub* stub_ = nullptr; int start_out_ = 0; int start_in_ = 0; int rzbinfirst_out_ = 0; int rzdiffmax_out_ = 0; std::vector<std::tuple<int, int, int> > projbin_out_; // next z/r bin; outer stub mem; nstub std::vector<std::tuple<int, int, int> > projbin_in_; // next z/r bin; inner stub mem; nstub }; class TripletEngineUnit { public: TripletEngineUnit(const Settings* const settings, unsigned int layerdisk1, unsigned int layerdisk2, unsigned int layerdisk3, unsigned int iSeed, std::vector<VMStubsTEMemory*> innervmstubs, std::vector<VMStubsTEMemory*> outervmstubs); ~TripletEngineUnit() = default; void init(const TrpEData& trpdata); bool getGoodTriplet() { return goodtriplet__; } bool empty() const { return candtriplets_.empty(); } const std::tuple<const Stub*, const Stub*, const Stub*>& read() { return candtriplets_.read(); } const std::tuple<const Stub*, const Stub*, const Stub*>& peek() const { return candtriplets_.peek(); } bool idle() const { return idle_; } void setNearFull() { nearfull_ = candtriplets_.nearfull(); } void reset(); void step(); const Stub* innerStub() const { return trpdata_.stub_; } private: std::vector<VMStubsTEMemory*> innervmstubs_; std::vector<VMStubsTEMemory*> outervmstubs_; TrpEData trpdata_; const Settings* settings_; unsigned int layerdisk1_; unsigned int layerdisk2_; unsigned int layerdisk3_; unsigned int iSeed_; bool nearfull_; //initialized at start of each processing step //unsigned int memory slot unsigned int nmem_out_ = 0; unsigned int nmem_in_ = 0; unsigned int istub_out_ = 0; unsigned int istub_in_ = 0; unsigned int next_out_ = 0; unsigned int next_in_ = 0; unsigned int nstub_out_ = 0; unsigned int nstub_in_ = 0; unsigned int outmem_ = 0; unsigned int inmem_ = 0; unsigned int nproj_out_ = 0; unsigned int nproj_in_ = 0; bool idle_ = true; std::tuple<const Stub*, const Stub*, const Stub*> candtriplet_, candtriplet__; bool goodtriplet_ = false; bool goodtriplet__ = false; //save the candidate matches CircularBuffer<std::tuple<const Stub*, const Stub*, const Stub*> > candtriplets_; }; // TripletEngineUnit }; // namespace trklet #endif