CMS 3D CMS Logo

DTC.h
Go to the documentation of this file.
1 #ifndef L1Trigger_TrackerDTC_DTC_h
2 #define L1Trigger_TrackerDTC_DTC_h
3 
8 
9 #include <vector>
10 #include <deque>
11 
12 namespace trackerDTC {
13 
19  class DTC {
20  private:
21  typedef std::deque<Stub*> Stubs;
22  typedef std::vector<Stubs> Stubss;
23  typedef std::vector<Stubss> Stubsss;
24 
25  public:
26  DTC(const edm::ParameterSet& iConfig,
27  const tt::Setup* setup,
28  const LayerEncoding* layerEncoding,
29  int dtcId,
30  const std::vector<std::vector<TTStubRef>>& stubsDTC);
31  ~DTC() {}
32  // board level routing in two steps and products filling
33  void produce(TTDTC& accepted, TTDTC& lost);
34 
35  private:
36  // router step 1: merges stubs of all modules connected to one routing block into one stream
37  void merge(Stubss& inputs, Stubs& output, Stubs& lost);
38  // router step 2: merges stubs of all routing blocks and splits stubs into one stream per overlapping region
39  void split(Stubss& inputs, Stubss& outputs);
40  // conversion from Stubss to TTDTC
41  void produce(const Stubss& stubss, TTDTC& product);
42  // pop_front function which additionally returns copy of deleted front
43  Stub* pop_front(Stubs& stubs);
44  // helper class to store configurations
45  const tt::Setup* setup_;
46  // enables emulation of truncation
48  // outer tracker detector region [0-8]
49  int region_;
50  // outer tracker dtc id in region [0-23]
51  int board_;
52  // container of modules connected to this DTC
53  std::vector<tt::SensorModule*> modules_;
54  // container of stubs on this DTC
55  std::vector<Stub> stubs_;
56  // input stubs organised in routing blocks [0..1] and channel [0..35]
58  // lost stubs organised in dtc output channel [0..1]
60  };
61 
62 } // namespace trackerDTC
63 
64 #endif
Class to represent an outer tracker DTC board.
Definition: DTC.h:19
void produce(TTDTC &accepted, TTDTC &lost)
Definition: DTC.cc:67
Class to process and provide run-time constants used by Track Trigger emulators.
Definition: Setup.h:44
void split(Stubss &inputs, Stubss &outputs)
Definition: DTC.cc:134
DTC(const edm::ParameterSet &iConfig, const tt::Setup *setup, const LayerEncoding *layerEncoding, int dtcId, const std::vector< std::vector< TTStubRef >> &stubsDTC)
Definition: DTC.cc:14
std::vector< Stub > stubs_
Definition: DTC.h:55
std::vector< Stubs > Stubss
Definition: DTC.h:22
Stub * pop_front(Stubs &stubs)
Definition: DTC.cc:166
bool enableTruncation_
Definition: DTC.h:47
Class to represent an outer tracker Stub.
Definition: Stub.h:18
Stubss lost_
Definition: DTC.h:59
int region_
Definition: DTC.h:49
const tt::Setup * setup_
Definition: DTC.h:45
std::vector< Stubss > Stubsss
Definition: DTC.h:23
Class to store hardware like structured TTStub Collection used by Track Trigger emulators.
Definition: TTDTC.h:17
Class to encode layer ids used between DTC and TFP in Hybrid.
Definition: LayerEncoding.h:19
Definition: DTC.h:12
Stubsss input_
Definition: DTC.h:57
Definition: output.py:1
int board_
Definition: DTC.h:51
std::vector< tt::SensorModule * > modules_
Definition: DTC.h:53
void merge(Stubss &inputs, Stubs &output, Stubs &lost)
Definition: DTC.cc:87
std::deque< Stub * > Stubs
Definition: DTC.h:21