#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) |
Method translating trigger digis into input matrix with global phi coordinates. More... | |
void | initialize (const edm::EventSetup &es) |
OMTFinputMaker () | |
~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) |
OMTFinput | processDT (const L1MuDTChambPhContainer *dtPhDigis, const L1MuDTChambThContainer *dtThDigis, unsigned int iProcessor, l1t::tftype type) |
OMTFinput | processRPC (const RPCDigiCollection *rpcDigis, unsigned int iProcessor, l1t::tftype type) |
Private Attributes | |
AngleConverter | myAngleConverter |
Definition at line 20 of file OMTFinputMaker.h.
OMTFinputMaker::OMTFinputMaker | ( | ) |
Definition at line 21 of file OMTFinputMaker.cc.
OMTFinputMaker::~OMTFinputMaker | ( | ) |
Definition at line 30 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 33 of file OMTFinputMaker.cc.
References OMTFConfiguration::barrelMax, OMTFConfiguration::barrelMin, l1t::bmtf, CSCDetId::chamber(), MuonSubdetId::CSC, DetId::det(), MuonSubdetId::DT, dt, l1t::emtf_neg, l1t::emtf_pos, CSCDetId::endcap(), OMTFConfiguration::endcap10DegMax, OMTFConfiguration::endcap10DegMin, OMTFConfiguration::endcap20DegMax, OMTFConfiguration::endcap20DegMin, OMTFConfiguration::instance(), RPCDetId::layer(), DetId::Muon, l1t::omtf_neg, l1t::omtf_pos, RPCDetId::region(), RPCDetId::ring(), CSCDetId::ring(), RPCDetId::roll(), MuonSubdetId::RPC, DTChamberId::sector(), RPCDetId::sector(), CSCDetId::station(), RPCDetId::station(), DetId::subdetId(), RPCDetId::subsector(), and DTChamberId::wheel().
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 |
||
) |
Method translating trigger digis into input matrix with global phi coordinates.
Definition at line 360 of file OMTFinputMaker.cc.
References processCSC(), processDT(), processRPC(), and mps_fire::result.
Referenced by OMTFPatternMaker::analyze(), and 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 136 of file OMTFinputMaker.cc.
References OMTFConfiguration::barrelMin, l1t::bmtf, CSCDetId::chamber(), MuonSubdetId::CSC, DetId::det(), MuonSubdetId::DT, dt, l1t::emtf_neg, l1t::emtf_pos, OMTFConfiguration::endcap10DegMin, OMTFConfiguration::endcap20DegMin, OMTFConfiguration::instance(), RPCDetId::layer(), DetId::Muon, RPCDetId::region(), CSCDetId::ring(), RPCDetId::roll(), MuonSubdetId::RPC, DTChamberId::sector(), RPCDetId::sector(), CSCDetId::station(), RPCDetId::station(), DetId::subdetId(), and RPCDetId::subsector().
Referenced by processCSC(), processDT(), and processRPC().
void OMTFinputMaker::initialize | ( | const edm::EventSetup & | es | ) |
Definition at line 24 of file OMTFinputMaker.cc.
References AngleConverter::checkAndUpdateGeometry(), and myAngleConverter.
Referenced by OMTFPatternMaker::analyze(), and OMTFReconstruction::reconstruct().
|
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 Trigger primitive quality. CSC central BX is 6 for some reason.
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 257 of file OMTFinputMaker.cc.
References funct::abs(), acceptDigi(), OMTFinput::addLayerHit(), CSCDetId, AngleConverter::getGlobalEta(), getInputNumber(), OMTFConfiguration::getLayerNumber(), AngleConverter::getProcessorPhi(), OMTFConfiguration::hwToLogicLayer, OMTFConfiguration::instance(), myAngleConverter, 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 215 of file OMTFinputMaker.cc.
References acceptDigi(), OMTFinput::addLayerHit(), L1MuDTChambPhContainer::getContainer(), AngleConverter::getGlobalEta(), getInputNumber(), OMTFConfiguration::getLayerNumber(), AngleConverter::getProcessorPhi(), OMTFConfiguration::hwToLogicLayer, OMTFConfiguration::instance(), myAngleConverter, 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==0 //FIXME: find a better place/way to filtering digi against quality/BX etc.
Definition at line 304 of file OMTFinputMaker.cc.
References acceptDigi(), OMTFinput::addLayerHit(), RPCDigi::bx(), HLT_FULL_cff::clusters, AngleConverter::getGlobalEta(), getInputNumber(), OMTFConfiguration::getLayerNumber(), AngleConverter::getProcessorPhi(), OMTFConfiguration::hwToLogicLayer, OMTFConfiguration::instance(), myAngleConverter, DetId::rawId(), mps_fire::result, reco::return(), and rpcPrimitiveCmp().
Referenced by buildInputForProcessor().
|
private |
Definition at line 76 of file OMTFinputMaker.h.
Referenced by initialize(), processCSC(), processDT(), and processRPC().