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 
45  // helper class to store configurations
46  const tt::Setup* setup_;
47  // enables emulation of truncation
49  // outer tracker detector region [0-8]
50  int region_;
51  // outer tracker dtc id in region [0-23]
52  int board_;
53  // container of modules connected to this DTC
54  std::vector<tt::SensorModule*> modules_;
55  // container of stubs on this DTC
56  std::vector<Stub> stubs_;
57  // input stubs organised in routing blocks [0..1] and channel [0..35]
59  // lost stubs organised in dtc output channel [0..1]
61  };
62 
63 } // namespace trackerDTC
64 
65 #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:56
std::vector< Stubs > Stubss
Definition: DTC.h:22
Stub * pop_front(Stubs &stubs)
Definition: DTC.cc:166
bool enableTruncation_
Definition: DTC.h:48
Class to represent an outer tracker Stub.
Definition: Stub.h:18
Stubss lost_
Definition: DTC.h:60
int region_
Definition: DTC.h:50
const tt::Setup * setup_
Definition: DTC.h:46
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:58
int board_
Definition: DTC.h:52
std::vector< tt::SensorModule * > modules_
Definition: DTC.h:54
void merge(Stubss &inputs, Stubs &output, Stubs &lost)
Definition: DTC.cc:87
std::deque< Stub * > Stubs
Definition: DTC.h:21