CMS 3D CMS Logo

HoughTransform.h
Go to the documentation of this file.
1 #ifndef L1Trigger_TrackerTFP_HoughTransform_h
2 #define L1Trigger_TrackerTFP_HoughTransform_h
3 
7 
8 #include <vector>
9 #include <set>
10 #include <deque>
11 
12 namespace trackerTFP {
13 
14  // Class to find initial rough candidates in r-phi in a region
16  public:
17  HoughTransform(const edm::ParameterSet& iConfig, const tt::Setup* setup, const DataFormats* dataFormats, int region);
19 
20  // read in and organize input product
21  void consume(const tt::StreamsStub& streams);
22  // fill output products
23  void produce(tt::StreamsStub& accepted, tt::StreamsStub& lost);
24 
25  private:
26  // remove and return first element of deque, returns nullptr if empty
27  template <class T>
28  T* pop_front(std::deque<T*>& ts) const;
29  // associate stubs with phiT bins in this inv2R column
30  void fillIn(int inv2R,
31  std::deque<StubGP*>& inputSector,
32  std::vector<StubHT*>& acceptedSector,
33  std::vector<StubHT*>& lostSector);
34  // identify tracks
35  void readOut(const std::vector<StubHT*>& acceptedSector,
36  const std::vector<StubHT*>& lostSector,
37  std::deque<StubHT*>& acceptedAll,
38  std::deque<StubHT*>& lostAll) const;
39  // identify lost tracks
40  void analyze();
41  // store tracks
42  void put() const;
43 
44  // true if truncation is enbaled
46  // provides run-time constants
47  const tt::Setup* setup_;
48  // provides dataformats
50  // data format of inv2R
52  // data format of phiT
54  // processing region (0 - 8)
55  int region_;
56  // container of input stubs
57  std::vector<StubGP> stubsGP_;
58  // container of output stubs
59  std::vector<StubHT> stubsHT_;
60  // h/w liked organized pointer to input stubs
61  std::vector<std::vector<std::deque<StubGP*>>> input_;
62  };
63 
64 } // namespace trackerTFP
65 
66 #endif
HoughTransform(const edm::ParameterSet &iConfig, const tt::Setup *setup, const DataFormats *dataFormats, int region)
std::vector< StubGP > stubsGP_
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
void produce(tt::StreamsStub &accepted, tt::StreamsStub &lost)
const tt::Setup * setup_
std::vector< std::vector< std::deque< StubGP * > > > input_
std::vector< StubHT > stubsHT_
void consume(const tt::StreamsStub &streams)
void readOut(const std::vector< StubHT *> &acceptedSector, const std::vector< StubHT *> &lostSector, std::deque< StubHT *> &acceptedAll, std::deque< StubHT *> &lostAll) const
const DataFormats * dataFormats_
Class to calculate and provide dataformats used by Track Trigger emulator.
Definition: DataFormats.h:216
T * pop_front(std::deque< T *> &ts) const
long double T
void fillIn(int inv2R, std::deque< StubGP *> &inputSector, std::vector< StubHT *> &acceptedSector, std::vector< StubHT *> &lostSector)