22 unsigned int iProcessor,
26 std::vector<std::unique_ptr<IOMTFEmulationObserver> >& observers) {
30 boost::property_tree::ptree procDataTree;
33 DTChamberId detid(digiIt.whNum(), digiIt.stNum(), digiIt.scNum() + 1);
40 if (digiIt.bxNum() - 20 >= bxFrom && digiIt.bxNum() - 20 <= bxTo) {
43 auto& dtP2Digi = procDataTree.add_child(
"dtP2Digi", boost::property_tree::ptree());
44 dtP2Digi.add(
"<xmlattr>.whNum", digiIt.whNum());
45 dtP2Digi.add(
"<xmlattr>.scNum", digiIt.scNum());
46 dtP2Digi.add(
"<xmlattr>.stNum", digiIt.stNum());
47 dtP2Digi.add(
"<xmlattr>.slNum", digiIt.slNum());
48 dtP2Digi.add(
"<xmlattr>.quality", digiIt.quality());
49 dtP2Digi.add(
"<xmlattr>.rpcFlag", digiIt.rpcFlag());
50 dtP2Digi.add(
"<xmlattr>.phi", digiIt.phi());
51 dtP2Digi.add(
"<xmlattr>.phiBend", digiIt.phiBend());
57 if (thetaDigi.bxNum() >= bxFrom && thetaDigi.bxNum() <= bxTo) {
58 addDTetaStubs(muonStubsInLayers, thetaDigi, iProcessor, procTyp);
63 for (
auto& obs : observers)
64 obs->addProcesorData(
"linkData", procDataTree);
71 unsigned int iProcessor,
81 if (digi.
slNum() == 3)
86 if (digi.
slNum() == 3)
92 if (stub.qualityHw <
config.getMinDtPhiQuality())
95 unsigned int hwNumber =
config.getLayerNumber(detid.rawId());
96 if (
config.getHwToLogicLayer().find(hwNumber) ==
config.getHwToLogicLayer().end())
99 auto iter =
config.getHwToLogicLayer().find(hwNumber);
100 unsigned int iLayer = iter->second;
116 stub.phiBHw = digi.
phiBend() *
config.dtPhiBUnitsRad() / 2048;
121 stub.bx = digi.
bxNum() - 20;
124 stub.logicLayer = iLayer;
128 LogTrace(
"l1tOmtfEventPrint") << board.
name() <<
" L1Phase2MuDTPhDigi: detid " << detid <<
" digi " 129 <<
" whNum " << digi.
whNum() <<
" scNum " << digi.
scNum() <<
" stNum " << digi.
stNum()
130 <<
" slNum " << digi.
slNum() <<
" quality " << digi.
quality() <<
" rpcFlag " 138 unsigned int iProcessor,
145 unsigned int iProcessor,
154 std::unique_ptr<OmtfAngleConverter> angleConverter)
156 edm::LogImportant(
"OMTFReconstruction") <<
"constructing InputMakerPhase2" << std::endl;
158 if (edmParameterSet.
exists(
"usePhase2DTPrimitives") && edmParameterSet.
getParameter<
bool>(
"usePhase2DTPrimitives")) {
159 if (edmParameterSet.
getParameter<
bool>(
"dropDTPrimitives") !=
true)
161 "L1TMuonOverlapPhase2 InputMakerPhase2::InputMakerPhase2 usePhase2DTPrimitives is true, but dropDTPrimitives " 164 edm::LogImportant(
"OMTFReconstruction") <<
" using Phase2 DT trigger primitives" << std::endl;
virtual bool acceptDigi(const DTChamberId &dTChamberId, unsigned int iProcessor, l1t::tftype procType)
T getParameter(std::string const &) const
bool acceptDigi(const DTChamberId &dTChamberId, unsigned int iProcessor, l1t::tftype procType) override
void makeStubs(MuonStubPtrs2D &muonStubsInLayers, unsigned int iProcessor, l1t::tftype procTyp, int bxFrom, int bxTo, std::vector< std::unique_ptr< IOMTFEmulationObserver > > &observers) override
virtual int getGlobalEta(const DTChamberId dTChamberId, const L1MuDTChambThContainer *dtThDigis, int bxNum) const
bool exists(std::string const ¶meterName) const
checks if a parameter exists
T const * product() const
std::vector< MuonStubPtrs1D > MuonStubPtrs2D
const OmtfAngleConverter & angleConverter
The_Container const * getContainer() const
edm::Handle< L1Phase2MuDTPhContainer > dtPhDigis
edm::EDGetTokenT< L1MuDTChambThContainer > inputTokenDtTh
Log< level::Error, true > LogImportant
virtual int getProcessorPhi(int phiZero, l1t::tftype part, int dtScNum, int dtPhi) const
void addDTphiDigi(MuonStubPtrs2D &muonStubsInLayers, const L1Phase2MuDTPhDigi &digi, const L1MuDTChambThContainer *dtThDigis, unsigned int iProcessor, l1t::tftype procTyp) override
std::vector< std::unique_ptr< DigiToStubsConverterBase > > digiToStubsConverters
virtual void addDTphiDigi(MuonStubPtrs2D &muonStubsInLayers, const L1Phase2MuDTPhDigi &digi, const L1MuDTChambThContainer *dtThDigis, unsigned int iProcessor, l1t::tftype procTyp)=0
edm::Handle< L1MuDTChambThContainer > dtThDigis
void loadDigis(const edm::Event &event) override
Segment_Container const * getContainer() const
edm::EDGetTokenT< L1Phase2MuDTPhContainer > inputTokenDtPh
if(threadIdxLocalY==0 &&threadIdxLocalX==0)
void addDTetaStubs(MuonStubPtrs2D &muonStubsInLayers, const L1MuDTChambThDigi &thetaDigi, unsigned int iProcessor, l1t::tftype procTyp) override
virtual void addDTetaStubs(MuonStubPtrs2D &muonStubsInLayers, const L1MuDTChambThDigi &thetaDigi, unsigned int iProcessor, l1t::tftype procTyp)=0