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
TTDTC
Class to store hardware like structured TTStub Collection used by Track Trigger emulators.
Definition: TTDTC.h:17
convertSQLitetoXML_cfg.output
output
Definition: convertSQLitetoXML_cfg.py:72
PatBasicFWLiteJetAnalyzer_Selector_cfg.outputs
outputs
Definition: PatBasicFWLiteJetAnalyzer_Selector_cfg.py:48
trackerDTC::Stub
Definition: Stub.h:12
trackerDTC::DTC::produce
void produce(TTDTC &accepted, TTDTC &lost)
Definition: DTC.cc:65
trackerDTC::DTC::split
void split(Stubss &inputs, Stubss &outputs)
Definition: DTC.cc:132
trackerDTC::DTC::enableTruncation_
bool enableTruncation_
Definition: DTC.h:41
trackerDTC::Setup
Class to process and provide run-time constants used by Track Trigger emulators.
Definition: Setup.h:41
trackerDTC::DTC::stubs_
std::vector< Stub > stubs_
Definition: DTC.h:49
singleTopDQM_cfi.setup
setup
Definition: singleTopDQM_cfi.py:37
trackerDTC::DTC::DTC
DTC(const edm::ParameterSet &iConfig, const Setup &setup, int dtcId, const std::vector< std::vector< TTStubRef >> &stubsDTC)
Definition: DTC.cc:13
trackerDTC::DTC
Definition: DTC.h:13
trackerDTC::DTC::pop_front
Stub * pop_front(Stubs &stubs)
Definition: DTC.cc:164
trackerDTC::DTC::modules_
std::vector< SensorModule * > modules_
Definition: DTC.h:47
trackerDTC::DTC::Stubss
std::vector< Stubs > Stubss
Definition: DTC.h:16
trackerDTC::DTC::lost_
Stubss lost_
Definition: DTC.h:53
trackerDTC::DTC::Stubsss
std::vector< Stubss > Stubsss
Definition: DTC.h:17
edm::ParameterSet
Definition: ParameterSet.h:47
trackerDTC::DTC::region_
int region_
Definition: DTC.h:43
trackerDTC::DTC::~DTC
~DTC()
Definition: DTC.h:24
PixelMapPlotter.inputs
inputs
Definition: PixelMapPlotter.py:490
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
trackerDTC::DTC::input_
Stubsss input_
Definition: DTC.h:51
trackerDTC
Definition: DTC.h:10
Setup.h
Stub.h
trackerDTC::DTC::Stubs
std::deque< Stub * > Stubs
Definition: DTC.h:15
trackerDTC::DTC::setup_
const Setup * setup_
Definition: DTC.h:39
trackerDTC::DTC::board_
int board_
Definition: DTC.h:45
trackerDTC::DTC::merge
void merge(Stubss &inputs, Stubs &output, Stubs &lost)
Definition: DTC.cc:85