CMS 3D CMS Logo

ZHoughTransform.h
Go to the documentation of this file.
1 #ifndef L1Trigger_TrackerTFP_ZHoughTransform_h
2 #define L1Trigger_TrackerTFP_ZHoughTransform_h
3 
7 
8 #include <vector>
9 #include <deque>
10 
11 namespace trackerTFP {
12 
13  // Class to refine MHT track candidates in r-z
15  public:
16  ZHoughTransform(const edm::ParameterSet& iConfig,
17  const tt::Setup* setup,
18  const DataFormats* dataFormats,
19  int region);
21 
22  // read in and organize input product (fill vector input_)
23  void consume(const tt::StreamsStub& streams);
24  // fill output products
25  void produce(tt::StreamsStub& accepted, tt::StreamsStub& lost);
26 
27  private:
28  // remove and return first element of deque, returns nullptr if empty
29  template <class T>
30  T* pop_front(std::deque<T*>& ts) const;
31  // perform finer pattern recognition per track
32  void fill(int channel, const std::deque<StubZHT*>& input, std::vector<std::deque<StubZHT*>>& output);
33  // Static load balancing of inputs: mux 4 streams to 1 stream
34  void slb(std::vector<std::deque<StubZHT*>>& inputs, std::deque<StubZHT*>& accepted, tt::StreamStub& lost) const;
35  //
36  void merge(std::deque<StubZHT*>& stubs, tt::StreamStub& stream) const;
37 
38  // true if truncation is enbaled
40  // provides run-time constants
41  const tt::Setup* setup_;
42  // provides dataformats
44  // processing region (0 - 8)
45  int region_;
46  // container of in- and output stubs
47  std::vector<StubZHT> stubsZHT_;
48  // h/w liked organized pointer to input stubs
49  std::vector<std::vector<StubZHT*>> input_;
50  //
51  int stage_;
52  };
53 
54 } // namespace trackerTFP
55 
56 #endif
void merge(std::deque< StubZHT *> &stubs, tt::StreamStub &stream) const
void slb(std::vector< std::deque< StubZHT *>> &inputs, std::deque< StubZHT *> &accepted, tt::StreamStub &lost) const
Class to process and provide run-time constants used by Track Trigger emulators.
Definition: Setup.h:44
std::vector< StreamStub > StreamsStub
Definition: TTTypes.h:66
std::vector< FrameStub > StreamStub
Definition: TTTypes.h:63
void consume(const tt::StreamsStub &streams)
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type cudaStream_t stream
static std::string const input
Definition: EdmProvDump.cc:50
void produce(tt::StreamsStub &accepted, tt::StreamsStub &lost)
void fill(int channel, const std::deque< StubZHT *> &input, std::vector< std::deque< StubZHT *>> &output)
std::vector< StubZHT > stubsZHT_
std::vector< std::vector< StubZHT * > > input_
T * pop_front(std::deque< T *> &ts) const
const DataFormats * dataFormats_
Class to calculate and provide dataformats used by Track Trigger emulator.
Definition: DataFormats.h:216
ZHoughTransform(const edm::ParameterSet &iConfig, const tt::Setup *setup, const DataFormats *dataFormats, int region)
long double T