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