23 unsigned int iProcessor,
27 std::vector<std::unique_ptr<IOMTFEmulationObserver> >& observers) {
35 if (digiIt.bxNum() >= bxFrom && digiIt.bxNum() <= bxTo)
41 if (thetaDigi.bxNum() >= bxFrom && thetaDigi.bxNum() <= bxTo) {
42 addDTetaStubs(muonStubsInLayers, thetaDigi, iProcessor, procTyp);
52 unsigned int iProcessor,
56 std::vector<std::unique_ptr<IOMTFEmulationObserver> >& observers) {
60 unsigned int rawid = (*chamber).first;
66 auto digi = (*chamber).second.first;
67 auto dend = (*chamber).second.second;
68 for (; digi != dend; ++digi) {
70 int digiBx = digi->getBX() -
config->cscLctCentralBx();
72 if (digiBx >= bxFrom && digiBx <= bxTo)
73 addCSCstubs(muonStubsInLayers, rawid, *digi, iProcessor, procTyp);
79 unsigned int iProcessor,
83 std::vector<std::unique_ptr<IOMTFEmulationObserver> >& observers) {
87 for (
auto rollDigis : rpcDigiCollection) {
110 std::vector<RPCDigi> digisCopy;
112 for (
auto pDigi = rollDigis.second.first; pDigi != rollDigis.second.second; pDigi++) {
113 if (pDigi->bx() >= bxFrom && pDigi->bx() <= bxTo) {
114 digisCopy.push_back(*pDigi);
121 addRPCstub(muonStubsInLayers,
roll, cluster, iProcessor, procTyp);
127 for (
unsigned int iLayer = 10; iLayer < muonStubsInLayers.size(); iLayer++) {
128 for (
unsigned int iInput = 0; iInput < muonStubsInLayers[iLayer].size(); iInput++) {
130 LogTrace(
"l1tOmtfEventPrint") <<
"RpcDigiToStubsConverter::makeStubs " 131 <<
" iProcessor " << iProcessor <<
" procTyp " << procTyp
132 <<
" dropping a stub iLayer " << iLayer <<
" iInput " 133 << *(muonStubsInLayers[iLayer][iInput]) << std::endl;
134 muonStubsInLayers[iLayer][iInput].reset();
150 config->getRpcMaxClusterSize(),
config->getRpcMaxClusterCnt(),
config->getRpcDropAllClustersIfMoreThanMax());
160 digiToStubsConverter->loadDigis(
event);
164 unsigned int iProcessor,
168 std::vector<std::unique_ptr<IOMTFEmulationObserver> >& observers) {
173 digiToStubsConverter->makeStubs(muonStubsInLayers, iProcessor, procTyp, bxFrom, bxTo, observers);
virtual bool acceptDigi(const CSCDetId &cscDetId, unsigned int iProcessor, l1t::tftype procType)
void buildInputForProcessor(MuonStubPtrs2D &muonStubsInLayers, unsigned int iProcessor, l1t::tftype procTyp, int bxFrom, int bxTo, std::vector< std::unique_ptr< IOMTFEmulationObserver > > &observers)
Method translating trigger digis into input matrix with global phi coordinates, fills the muonStubsIn...
virtual void addCSCstubs(MuonStubPtrs2D &muonStubsInLayers, unsigned int rawid, const CSCCorrelatedLCTDigi &digi, unsigned int iProcessor, l1t::tftype procTyp)=0
virtual ~MuonStubMakerBase()
void loadDigis(const edm::Event &event) override
void makeStubs(MuonStubPtrs2D &muonStubsInLayers, unsigned int iProcessor, l1t::tftype procTyp, int bxFrom, int bxTo, std::vector< std::unique_ptr< IOMTFEmulationObserver > > &observers) override
void makeStubs(MuonStubPtrs2D &muonStubsInLayers, unsigned int iProcessor, l1t::tftype procTyp, int bxFrom, int bxTo, std::vector< std::unique_ptr< IOMTFEmulationObserver > > &observers) override
T const * product() const
virtual bool acceptDigi(const RPCDetId &rpcDetId, unsigned int iProcessor, l1t::tftype procType)
edm::Handle< L1MuDTChambThContainer > dtThDigis
void loadAndFilterDigis(const edm::Event &event)
std::vector< MuonStubPtrs1D > MuonStubPtrs2D
MuonStubMakerBase(const ProcConfigurationBase *procConf)
The_Container const * getContainer() const
virtual void addDTphiDigi(MuonStubPtrs2D &muonStubsInLayers, const L1MuDTChambPhDigi &digi, const L1MuDTChambThContainer *dtThDigis, unsigned int iProcessor, l1t::tftype procTyp)=0
edm::EDGetTokenT< L1MuDTChambPhContainer > inputTokenDtPh
const RpcClusterization * rpcClusterization
edm::EDGetTokenT< L1MuDTChambThContainer > inputTokenDtTh
edm::Handle< RPCDigiCollection > rpcDigis
virtual void initialize(const edm::ParameterSet &edmCfg, const edm::EventSetup &es, const MuonGeometryTokens &muonGeometryTokens)
void makeStubs(MuonStubPtrs2D &muonStubsInLayers, unsigned int iProcessor, l1t::tftype procTyp, int bxFrom, int bxTo, std::vector< std::unique_ptr< IOMTFEmulationObserver > > &observers) override
virtual void addDTetaStubs(MuonStubPtrs2D &muonStubsInLayers, const L1MuDTChambThDigi &thetaDigi, unsigned int iProcessor, l1t::tftype procTyp)=0
std::vector< std::unique_ptr< DigiToStubsConverterBase > > digiToStubsConverters
Phi_Container const * getContainer() const
virtual void addRPCstub(MuonStubPtrs2D &muonStubsInLayers, const RPCDetId &roll, const RpcCluster &cluster, unsigned int iProcessor, l1t::tftype procTyp)=0
virtual std::vector< RpcCluster > getClusters(const RPCDetId &roll, std::vector< RPCDigi > &digis) const
N.B. digis are sorted inside the function.
virtual bool acceptDigi(const DTChamberId &dTChamberId, unsigned int iProcessor, l1t::tftype procType)
edm::Handle< L1MuDTChambPhContainer > dtPhDigis
RpcClusterization rpcClusterization
edm::Handle< CSCCorrelatedLCTDigiCollection > cscDigis
void configure(int maxClusterSize, int maxClusterCnt, bool dropAllClustersIfMoreThanMax)