#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... | |
int | getFlag () const |
void | initialize (const edm::EventSetup &es, const OMTFConfiguration *) |
OMTFinputMaker () | |
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) |
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 | |
int | flag |
AngleConverter | myAngleConverter |
const OMTFConfiguration * | myOmtfConfig |
Definition at line 22 of file OMTFinputMaker.h.
OMTFinputMaker::OMTFinputMaker | ( | ) |
Definition at line 21 of file OMTFinputMaker.cc.
OMTFinputMaker::~OMTFinputMaker | ( | ) |
Definition at line 33 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 36 of file OMTFinputMaker.cc.
References l1t::bmtf, CSCDetId::chamber(), MuonSubdetId::CSC, omtf::DataWord64::csc, DetId::det(), MuonSubdetId::DT, dt, l1t::emtf_neg, l1t::emtf_pos, CSCDetId::endcap(), 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(), 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 371 of file OMTFinputMaker.cc.
References myOmtfConfig, processCSC(), processDT(), processRPC(), and mps_fire::result.
Referenced by OMTFPatternMaker::analyze(), and OMTFReconstruction::getProcessorCandidates().
|
inline |
Definition at line 42 of file OMTFinputMaker.h.
References RemoveAddSevLevel::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 138 of file OMTFinputMaker.cc.
References l1t::bmtf, CSCDetId::chamber(), MuonSubdetId::CSC, omtf::DataWord64::csc, DetId::det(), MuonSubdetId::DT, dt, l1t::emtf_neg, l1t::emtf_pos, OMTFConfiguration::getBarrelMin(), OMTFConfiguration::getEndcap10DegMin(), OMTFConfiguration::getEndcap20DegMin(), RPCDetId::layer(), DetId::Muon, myOmtfConfig, RPCDetId::region(), CSCDetId::ring(), RPCDetId::roll(), MuonSubdetId::RPC, omtf::DataWord64::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, |
const OMTFConfiguration * | omtfConfig | ||
) |
Definition at line 24 of file OMTFinputMaker.cc.
References AngleConverter::checkAndUpdateGeometry(), 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 259 of file OMTFinputMaker.cc.
References funct::abs(), acceptDigi(), OMTFinput::addLayerHit(), relativeConstraints::chamber, AngleConverter::getGlobalEta(), OMTFConfiguration::getHwToLogicLayer(), getInputNumber(), OMTFConfiguration::getLayerNumber(), AngleConverter::getProcessorPhi(), 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 217 of file OMTFinputMaker.cc.
References acceptDigi(), OMTFinput::addLayerHit(), L1MuDTChambPhContainer::getContainer(), AngleConverter::getGlobalEta(), OMTFConfiguration::getHwToLogicLayer(), getInputNumber(), OMTFConfiguration::getLayerNumber(), AngleConverter::getProcessorPhi(), 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==0 //FIXME: find a better place/way to filtering digi against quality/BX etc.
Definition at line 303 of file OMTFinputMaker.cc.
References funct::abs(), acceptDigi(), OMTFinput::addLayerHit(), fastPrimaryVertexProducer_cfi::clusters, AngleConverter::getGlobalEta(), OMTFConfiguration::getHwToLogicLayer(), getInputNumber(), OMTFConfiguration::getLayerNumber(), AngleConverter::getProcessorPhi(), myAngleConverter, myOmtfConfig, DetId::rawId(), mps_fire::result, rpcPrimitiveCmp(), and str.
Referenced by buildInputForProcessor().
|
inline |
Definition at line 41 of file OMTFinputMaker.h.
References RemoveAddSevLevel::flag.
Referenced by OMTFReconstruction::getProcessorCandidates().
|
private |
Definition at line 85 of file OMTFinputMaker.h.
|
private |
Definition at line 81 of file OMTFinputMaker.h.
Referenced by initialize(), processCSC(), processDT(), and processRPC().
|
private |
Definition at line 83 of file OMTFinputMaker.h.
Referenced by acceptDigi(), buildInputForProcessor(), getInputNumber(), initialize(), processCSC(), processDT(), and processRPC().