#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 *) |
OMTFinputMaker (edm::ConsumesCollector &, bool getDuringEvent=true) | |
void | setFlag (int aFlag) |
~OMTFinputMaker () | |
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.
|
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, DetId::det(), 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, RPCDetId::region(), RPCDetId::ring(), RPCDetId::roll(), MuonSubdetId::RPC, RPCDetId::sector(), RPCDetId::station(), DetId::subdetId(), and RPCDetId::subsector().
Referenced by processCSC(), processDT(), and processRPC().
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 383 of file OMTFinputMaker.cc.
References l1GtPatternGenerator_cfi::bx, myOmtfConfig, processCSC(), processDT(), processRPC(), and mps_fire::result.
Referenced by OMTFPatternMaker::analyze(), and OMTFReconstruction::getProcessorCandidates().
|
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, DetId::det(), MuonSubdetId::DT, dt, l1t::emtf_neg, l1t::emtf_pos, OMTFConfiguration::getBarrelMin(), OMTFConfiguration::getEndcap10DegMin(), OMTFConfiguration::getEndcap20DegMin(), DetId::Muon, myOmtfConfig, MuonSubdetId::RPC, omtf::DataWord64::rpc, and DetId::subdetId().
Referenced by processCSC(), processDT(), and processRPC().
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().
|
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(), L1TowerCalibrationProducer_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(), L1TowerCalibrationProducer_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(), L1TowerCalibrationProducer_cfi::iEta, myAngleConverter, myOmtfConfig, heavyionUCCDQM_cfi::nClusters, DetId::rawId(), mps_fire::result, rpcPrimitiveCmp(), and str.
Referenced by buildInputForProcessor().
|
inline |
Definition at line 36 of file OMTFinputMaker.h.
References flag.
Referenced by OMTFReconstruction::getProcessorCandidates().
|
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().