File indexing completed on 2025-06-03 00:12:14
0001 #ifndef L1Trigger_TrackerTFP_HoughTransform_h
0002 #define L1Trigger_TrackerTFP_HoughTransform_h
0003
0004 #include "L1Trigger/TrackTrigger/interface/Setup.h"
0005 #include "L1Trigger/TrackerTFP/interface/DataFormats.h"
0006 #include "L1Trigger/TrackerTFP/interface/LayerEncoding.h"
0007 #include "DataFormats/L1TrackTrigger/interface/TTTypes.h"
0008
0009 #include <vector>
0010 #include <deque>
0011
0012 namespace trackerTFP {
0013
0014
0015 class HoughTransform {
0016 public:
0017 HoughTransform(const tt::Setup* setup,
0018 const DataFormats* dataFormats,
0019 const LayerEncoding* layerEncoding,
0020 std::vector<StubHT>& stubs);
0021 ~HoughTransform() = default;
0022
0023 void produce(const std::vector<std::vector<StubGP*>>& streamsIn, std::vector<std::deque<StubHT*>>& streamsOut);
0024
0025 private:
0026
0027 template <class T>
0028 T* pop_front(std::deque<T*>& ts) const;
0029
0030 void fillIn(int inv2R, int sector, const std::vector<StubGP*>& input, std::vector<StubHT*>& output);
0031
0032 void readOut(const std::vector<StubHT*>& input, std::deque<StubHT*>& output) const;
0033
0034 bool noTrack(const TTBV& pattern, int zT) const;
0035
0036 const tt::Setup* setup_;
0037
0038 const DataFormats* dataFormats_;
0039
0040 const LayerEncoding* layerEncoding_;
0041
0042 const DataFormat* inv2R_;
0043
0044 const DataFormat* phiT_;
0045
0046 const DataFormat* zT_;
0047
0048 const DataFormat* phi_;
0049
0050 const DataFormat* z_;
0051
0052 std::vector<StubHT>& stubs_;
0053
0054 int numChannelIn_;
0055
0056 int numChannelOut_;
0057
0058 int chan_;
0059
0060 int mux_;
0061 };
0062
0063 }
0064
0065 #endif