#include <OMTFinputMaker.h>
Public Member Functions | |
OMTFinput | buildInputForProcessor (const L1MuDTChambPhContainer *dtPhDigis, const L1MuDTChambThContainer *dtThDigis, const CSCCorrelatedLCTDigiCollection *cscDigis, const RPCDigiCollection *rpcDigis, unsigned int iProcessor, l1t::tftype type=l1t::tftype::omtf_pos, int bx=0) |
Method translating trigger digis into input matrix with global phi coordinates. More... | |
int | getFlag () const |
void | initialize (const edm::EventSetup &, const OMTFConfiguration *) |
void | initialize (const edm::ParameterSet &edmCfg, const edm::EventSetup &es, const MuonGeometryTokens &muonGeometryTokens) override |
OMTFinputMaker (edm::ConsumesCollector &, bool getDuringEvent=true) | |
OMTFinputMaker (const edm::ParameterSet &edmParameterSet, MuStubsInputTokens &muStubsInputTokens, const OMTFConfiguration *config, std::unique_ptr< OmtfAngleConverter > angleConverter) | |
void | setFlag (int aFlag) |
~OMTFinputMaker () | |
~OMTFinputMaker () override | |
Public Member Functions inherited from MuonStubMakerBase | |
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 muonStubsInLayers. More... | |
void | loadAndFilterDigis (const edm::Event &event) |
MuonStubMakerBase (const ProcConfigurationBase *procConf) | |
virtual | ~MuonStubMakerBase () |
Static Public Member Functions | |
static bool | acceptDtDigi (const OMTFConfiguration *config, const DTChamberId &dTChamberId, unsigned int iProcessor, l1t::tftype procType) |
static void | addStub (const OMTFConfiguration *config, MuonStubPtrs2D &muonStubsInLayers, unsigned int iLayer, unsigned int iInput, MuonStub &stub) |
static unsigned int | getInputNumber (const OMTFConfiguration *config, unsigned int rawId, unsigned int iProcessor, l1t::tftype type) |
static int | getProcessorPhiZero (const OMTFConfiguration *config, unsigned int iProcessor) |
Protected Attributes | |
std::unique_ptr< OmtfAngleConverter > | angleConverter |
const OMTFConfiguration * | config = nullptr |
Protected Attributes inherited from MuonStubMakerBase | |
const ProcConfigurationBase * | config = nullptr |
std::vector< std::unique_ptr< DigiToStubsConverterBase > > | digiToStubsConverters |
RpcClusterization | rpcClusterization |
Private Member Functions | |
bool | acceptDigi (uint32_t rawId, unsigned int iProcessor, l1t::tftype type) |
unsigned int | getInputNumber (unsigned int rawId, unsigned int iProcessor, l1t::tftype type) |
OMTFinput | processCSC (const CSCCorrelatedLCTDigiCollection *cscDigis, unsigned int iProcessor, l1t::tftype type, int bx) |
OMTFinput | processDT (const L1MuDTChambPhContainer *dtPhDigis, const L1MuDTChambThContainer *dtThDigis, unsigned int iProcessor, l1t::tftype type, int bx) |
OMTFinput | processRPC (const RPCDigiCollection *rpcDigis, unsigned int iProcessor, l1t::tftype type, int bx) |
Private Attributes | |
int | flag |
std::unique_ptr< AngleConverter > | myAngleConverter |
const OMTFConfiguration * | myOmtfConfig |
Definition at line 19 of file OMTFinputMaker.h.
OMTFinputMaker::OMTFinputMaker | ( | edm::ConsumesCollector & | iC, |
bool | getDuringEvent = true |
||
) |
Definition at line 20 of file OMTFinputMaker.cc.
OMTFinputMaker::~OMTFinputMaker | ( | ) |
Definition at line 31 of file OMTFinputMaker.cc.
OMTFinputMaker::OMTFinputMaker | ( | const edm::ParameterSet & | edmParameterSet, |
MuStubsInputTokens & | muStubsInputTokens, | ||
const OMTFConfiguration * | config, | ||
std::unique_ptr< OmtfAngleConverter > | angleConverter | ||
) |
Definition at line 323 of file OMTFinputMaker.cc.
References MuonStubMakerBase::digiToStubsConverters, edm::ParameterSet::getParameter(), MuStubsInputTokens::inputTokenCSC, MuStubsInputTokens::inputTokenDtPh, MuStubsInputTokens::inputTokenDtTh, MuStubsInputTokens::inputTokenRPC, and MuonStubMakerBase::rpcClusterization.
|
override |
|
private |
Check if digis are within a give processor input. Simply checks sectors range.
Clean up digis. Remove unconnected detectors
Select RPC chambers connected to OMTF
RPC RE1/2 temporarily not used (aId.region()==1 && aId.station()==1 && aId.ring()<2) ||
Definition at line 34 of file OMTFinputMaker.cc.
References l1t::bmtf, MuonSubdetId::CSC, omtf::DataWord64::csc, hcalRecHitTable_cff::detId, MuonSubdetId::DT, dt, l1t::emtf_neg, l1t::emtf_pos, OMTFConfiguration::getBarrelMax(), OMTFConfiguration::getBarrelMin(), OMTFConfiguration::getEndcap10DegMax(), OMTFConfiguration::getEndcap10DegMin(), OMTFConfiguration::getEndcap20DegMax(), OMTFConfiguration::getEndcap20DegMin(), RPCDetId::layer(), DetId::Muon, myOmtfConfig, l1t::omtf_neg, l1t::omtf_pos, nano_mu_digi_cff::rawId, RPCDetId::region(), RPCDetId::ring(), RPCDetId::roll(), MuonSubdetId::RPC, RPCDetId::sector(), RPCDetId::station(), and RPCDetId::subsector().
Referenced by processCSC(), processDT(), and processRPC().
|
static |
Definition at line 297 of file OMTFinputMaker.cc.
References l1t::emtf_neg, l1t::emtf_pos, l1t::omtf_neg, l1t::omtf_pos, DTChamberId::sector(), and DTChamberId::wheel().
Referenced by DtDigiToStubsConverterOmtf::acceptDigi().
|
static |
Definition at line 453 of file OMTFinputMaker.cc.
References MuonStub::etaHw, MuonStub::input, LogTrace, MuonStub::phiBHw, and MuonStub::phiHw.
Referenced by CscDigiToStubsConverterOmtf::addCSCstubs(), DtDigiToStubsConverterOmtf::addDTphiDigi(), and RpcDigiToStubsConverterOmtf::addRPCstub().
OMTFinput OMTFinputMaker::buildInputForProcessor | ( | const L1MuDTChambPhContainer * | dtPhDigis, |
const L1MuDTChambThContainer * | dtThDigis, | ||
const CSCCorrelatedLCTDigiCollection * | cscDigis, | ||
const RPCDigiCollection * | rpcDigis, | ||
unsigned int | iProcessor, | ||
l1t::tftype | type = l1t::tftype::omtf_pos , |
||
int | bx = 0 |
||
) |
Method translating trigger digis into input matrix with global phi coordinates.
Definition at line 380 of file OMTFinputMaker.cc.
References nano_mu_digi_cff::bx, myOmtfConfig, processCSC(), processDT(), processRPC(), and mps_fire::result.
Referenced by OMTFPatternMaker::analyze(), OMTFReconstruction::getProcessorCandidates(), and OMTFProcessor< GoldenPatternType >::run().
|
inline |
Definition at line 37 of file OMTFinputMaker.h.
References flag.
Referenced by OMTFReconstruction::getProcessorCandidates().
|
private |
Give input number for givedn processor, using the chamber sector number. Result is modulo allowed number of hits per chamber
on the 0-2pi border we need to add 1 30 deg sector to get the correct index
Set roll number by hand to keep common input number shift formula for all stations
Only one roll from station 3 is connected.
At the moment do not use RPC chambers splitting into rolls for bmtf part
on the 0-2pi border we need to add 4 10 deg sectors to get the correct index
on the 0-2pi border we need to add 1 30 deg sector to get the correct index
on the 0-2pi border we need to add 4 10deg sectors to get the correct index
Endcap region covers algo 10 deg sectors on the 0-2pi border we need to add 2 20deg sectors to get the correct index
Assume 2 hits per chamber
Chambers divided into two rolls have rolls number 1 and 3
Definition at line 128 of file OMTFinputMaker.cc.
References l1t::bmtf, MuonSubdetId::CSC, omtf::DataWord64::csc, hcalRecHitTable_cff::detId, MuonSubdetId::DT, dt, l1t::emtf_neg, l1t::emtf_pos, OMTFConfiguration::getBarrelMin(), OMTFConfiguration::getEndcap10DegMin(), OMTFConfiguration::getEndcap20DegMin(), DetId::Muon, myOmtfConfig, nano_mu_digi_cff::rawId, MuonSubdetId::RPC, and omtf::DataWord64::rpc.
Referenced by RpcDigiToStubsConverterOmtf::acceptDigi(), CscDigiToStubsConverterOmtf::addCSCstubs(), DtDigiToStubsConverterOmtf::addDTphiDigi(), RpcDigiToStubsConverterOmtf::addRPCstub(), processCSC(), processDT(), and processRPC().
|
static |
Give input number for given processor, using the chamber sector number. Result is modulo allowed number of hits per chamber
on the 0-2pi border we need to add 1 30 deg sector to get the correct index
Set roll number by hand to keep common input number shift formula for all stations
Only one roll from station 3 is connected.
At the moment do not use RPC chambers splitting into rolls for bmtf part
on the 0-2pi border we need to add 4 10 deg sectors to get the correct index
on the 0-2pi border we need to add 1 30 deg sector to get the correct index
on the 0-2pi border we need to add 4 10deg sectors to get the correct index
Endcap region covers algo 10 deg sectors on the 0-2pi border we need to add 2 20deg sectors to get the correct index
Assume 2 hits per chamber
Chambers divided into two rolls have rolls number 1 and 3
Definition at line 353 of file OMTFinputMaker.cc.
References l1t::bmtf, MuonSubdetId::CSC, omtf::DataWord64::csc, hcalRecHitTable_cff::detId, MuonSubdetId::DT, dt, l1t::emtf_neg, l1t::emtf_pos, DetId::Muon, nano_mu_digi_cff::rawId, MuonSubdetId::RPC, and omtf::DataWord64::rpc.
|
static |
iProcessor - from 0 to 5 returns the global phi in hardware scale (myOmtfConfig->nPhiBins() ) at which the scale starts for give processor
Definition at line 441 of file OMTFinputMaker.cc.
References ecaldqm::binning::nPhiBins, and l1ctLayer1_cff::phiZero.
Referenced by CscDigiToStubsConverterOmtf::addCSCstubs(), DtDigiToStubsConverterOmtf::addDTphiDigi(), RpcDigiToStubsConverterOmtf::addRPCstub(), StubsSimHitsMatcher::match(), and EventCapture::observeEventEnd().
void OMTFinputMaker::initialize | ( | const edm::EventSetup & | es, |
const OMTFConfiguration * | omtfConfig | ||
) |
Definition at line 24 of file OMTFinputMaker.cc.
References myAngleConverter, myOmtfConfig, and OMTFConfiguration::nPhiBins().
Referenced by OMTFPatternMaker::analyze(), and OMTFReconstruction::beginRun().
|
overridevirtual |
Reimplemented from MuonStubMakerBase.
Definition at line 341 of file OMTFinputMaker.cc.
References angleConverter, and MuonStubMakerBase::initialize().
|
private |
Take the CSC digis, select chambers connected to given processor, convers logal angles to global scale. For CSC do NOT take the bending angle.
Check it the data fits into given processor input range
Check if LCT trigger primitive has the right BX.
Accept CSC digis only up to eta=1.26. The nominal OMTF range is up to 1.24, but cutting at 1.24 kill efficnency at the edge. 1.26 is one eta bin above nominal.
Definition at line 263 of file OMTFinputMaker.cc.
References acceptDigi(), relativeConstraints::chamber, OMTFConfiguration::getHwToLogicLayer(), getInputNumber(), OMTFConfiguration::getLayerNumber(), l1tPhase2CaloJetEmulator_cfi::iEta, CSCConstants::LCT_CENTRAL_BX, myAngleConverter, myOmtfConfig, and mps_fire::result.
Referenced by buildInputForProcessor().
|
private |
Take the DT digis, select chambers connected to given processor, convers logal angles to global scale. For DT take also the bending angle.
Check it the data fits into given processor input range
Check Trigger primitive quality Ts2Tag() == 0 - take only first track from DT Trigger Server BxCnt() == 0 - ?? code()>=3 - take only double layer hits, HH, HL and LL
Definition at line 211 of file OMTFinputMaker.cc.
References acceptDigi(), OMTFConfiguration::fwVersion(), L1MuDTChambPhContainer::getContainer(), OMTFConfiguration::getHwToLogicLayer(), getInputNumber(), OMTFConfiguration::getLayerNumber(), l1tPhase2CaloJetEmulator_cfi::iEta, myAngleConverter, myOmtfConfig, and mps_fire::result.
Referenced by buildInputForProcessor().
|
private |
Decluster nearby hits in single chamber, by taking average cluster position, expressed in half RPC strip: pos = (cluster_begin + cluster_end)
Find clusters of consecutive fired strips. Have to copy the digis in chamber to sort them (not optimal). NOTE: when copying I select only digis with bx== //FIXME: find a better place/way to filtering digi against quality/BX etc.
Definition at line 310 of file OMTFinputMaker.cc.
References funct::abs(), acceptDigi(), bsc_activity_cfg::clusters, OMTFConfiguration::getHwToLogicLayer(), getInputNumber(), OMTFConfiguration::getLayerNumber(), l1tPhase2CaloJetEmulator_cfi::iEta, myAngleConverter, myOmtfConfig, mps_fire::result, nano_mu_digi_cff::roll, rpcPrimitiveCmp(), jetUpdater_cfi::sort, and str.
Referenced by buildInputForProcessor().
|
inline |
Definition at line 36 of file OMTFinputMaker.h.
References flag.
Referenced by OMTFReconstruction::getProcessorCandidates().
|
protected |
Definition at line 138 of file OMTFinputMaker.h.
Referenced by initialize().
|
protected |
Definition at line 137 of file OMTFinputMaker.h.
|
private |
Definition at line 75 of file OMTFinputMaker.h.
|
private |
Definition at line 71 of file OMTFinputMaker.h.
Referenced by initialize(), processCSC(), processDT(), and processRPC().
|
private |
Definition at line 73 of file OMTFinputMaker.h.
Referenced by acceptDigi(), buildInputForProcessor(), getInputNumber(), initialize(), processCSC(), processDT(), and processRPC().