#include <OMTFinputMaker.h>
Public Member Functions | |
const 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) |
void | processCSC (const CSCCorrelatedLCTDigiCollection *cscDigis, unsigned int iProcessor, l1t::tftype type) |
void | processDT (const L1MuDTChambPhContainer *dtPhDigis, const L1MuDTChambThContainer *dtThDigis, unsigned int iProcessor, l1t::tftype type) |
void | processRPC (const RPCDigiCollection *rpcDigis, unsigned int iProcessor, l1t::tftype type) |
Private Attributes | |
std::unique_ptr< AngleConverter > | katownik |
OMTFinput * | myInput |
Output object. More... | |
Definition at line 20 of file OMTFinputMaker.h.
OMTFinputMaker::OMTFinputMaker | ( | ) |
Definition at line 21 of file OMTFinputMaker.cc.
References katownik, and myInput.
OMTFinputMaker::~OMTFinputMaker | ( | ) |
|
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 42 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, 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().
const 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 366 of file OMTFinputMaker.cc.
References OMTFinput::clear(), myInput, processCSC(), processDT(), and processRPC().
Referenced by L1TMuonOverlapTrackProducer::produce().
|
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
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 alsgo 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 145 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, 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 29 of file OMTFinputMaker.cc.
References katownik.
Referenced by L1TMuonOverlapTrackProducer::produce().
|
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 256 of file OMTFinputMaker.cc.
References funct::abs(), acceptDigi(), OMTFinput::addLayerHit(), end, spr::find(), getInputNumber(), OMTFConfiguration::getLayerNumber(), OMTFConfiguration::hwToLogicLayer, katownik, and myInput.
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 222 of file OMTFinputMaker.cc.
References acceptDigi(), OMTFinput::addLayerHit(), spr::find(), L1MuDTChambPhContainer::getContainer(), getInputNumber(), OMTFConfiguration::getLayerNumber(), OMTFConfiguration::hwToLogicLayer, katownik, and myInput.
Referenced by buildInputForProcessor().
|
private |
Take the CSC digis, select chambers connected to given processor, convers logal angles to global scale. Decluster nearby hits in single chamber, by taking average clister position, expressed in half RPC strip: pos = cluster_begin + cluster_end)/2
Check it the data fits into given processor input range
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
If phi1 is close to Pi, and phi2 close to -Pi the results phi is 0 instead -pi
Definition at line 299 of file OMTFinputMaker.cc.
References acceptDigi(), OMTFinput::addLayerHit(), RPCDigi::bx(), getInputNumber(), OMTFConfiguration::getLayerNumber(), OMTFConfiguration::hwToLogicLayer, katownik, M_PI, myInput, OMTFConfiguration::nPhiBins, phi, query::result, reco::return(), and rpcPrimitiveCmp().
Referenced by buildInputForProcessor().
|
private |
Definition at line 81 of file OMTFinputMaker.h.
Referenced by initialize(), OMTFinputMaker(), processCSC(), processDT(), and processRPC().
|
private |
Output object.
Definition at line 79 of file OMTFinputMaker.h.
Referenced by buildInputForProcessor(), OMTFinputMaker(), processCSC(), processDT(), processRPC(), and ~OMTFinputMaker().