37 unsigned int iProcessor,
42 unsigned int aSector = 99;
47 edm::LogError(
"Critical OMTFinputMaker") <<
"PROBLEM: hit in unknown Det, detID: "<<detId.
det()<<std::endl;
131 if(aMax>aMin && aSector>=aMin && aSector<=aMax)
return true;
132 if(aMax<aMin && (aSector>=aMin || aSector<=aMax))
return true;
139 unsigned int iProcessor,
142 unsigned int iInput = 99;
143 unsigned int aSector = 99;
146 int nInputsPerSector = 2;
154 nInputsPerSector = 4;
158 if(iProcessor==5 && aSector<3) aMin = -1;
167 nInputsPerSector = 2;
177 if(iProcessor==5 && aSector<5) aMin = -4;
186 if(iProcessor==5 && aSector<3) aMin = -1;
195 if(iProcessor==5 && aSector<5) aMin = -4;
202 if(iProcessor==5 && aSector<3) aMin = -2;
209 iInput = (aSector - aMin)*nInputsPerSector;
219 unsigned int iProcessor,
224 if(!dtPhDigis)
return result;
228 DTChamberId detid(digiIt.whNum(),digiIt.stNum(),digiIt.scNum()+1);
240 if (digiIt.bxNum()!= bxTrg)
continue;
243 if (digiIt.code() != 4 && digiIt.code() != 5 && digiIt.code() != 6)
continue;
245 if (digiIt.code() != 2 && digiIt.code() != 3 && digiIt.code() != 4 && digiIt.code() != 5 && digiIt.code() != 6)
continue;
252 unsigned int iLayer = iter->second;
256 bool allowOverwrite =
false;
257 result.
addLayerHit(iLayer,iInput,iPhi,iEta, allowOverwrite);
258 result.
addLayerHit(iLayer+1,iInput,digiIt.phiB(),iEta, allowOverwrite);
267 unsigned int iProcessor,
271 if(!cscDigis)
return result;
273 auto chamber = cscDigis->begin();
274 auto chend = cscDigis->end();
277 unsigned int rawid = (*chamber).first;
279 if(!
acceptDigi(rawid, iProcessor, type))
continue;
280 auto digi = (*chamber).second.first;
281 auto dend = (*chamber).second.second;
282 for( ; digi != dend; ++digi ) {
300 bool allowOverwrite =
false;
301 result.
addLayerHit(iLayer,iInput,iPhi,iEta,allowOverwrite);
312 unsigned int iProcessor,
316 if(!rpcDigis)
return result;
317 std::stringstream
str;
322 for (
auto rollDigis : rpcDigiCollection) {
324 unsigned int rawid = roll.
rawId();
326 if(!
acceptDigi(rawid, iProcessor, type))
continue;
331 std::vector<RPCDigi> digisCopy;
333 for (
auto pDigi=rollDigis.second.first; pDigi != rollDigis.second.second; pDigi++) {
if (pDigi->bx()==bxTrg) digisCopy.push_back( *pDigi); }
335 typedef std::pair<unsigned int, unsigned int> Cluster;
337 for(
auto & digi: digisCopy) {
338 if(clusters.empty()) clusters.push_back(Cluster(digi.strip(),digi.strip()));
339 else if (digi.strip() - clusters.back().second == 1) clusters.back().second = digi.strip();
340 else if (digi.strip() - clusters.back().second > 1) clusters.push_back(Cluster(digi.strip(),digi.strip()));
343 for (
auto & cluster: clusters) {
347 int cSize =
abs(
int(cluster.first)-
int(cluster.second))+1;
349 if (cSize>3)
continue;
355 if (iLayer==17 && (iInput==0 || iInput==1))
continue;
362 str <<
" RPC halfDigi " 363 <<
" begin: "<<cluster.first<<
" end: "<<cluster.second
366 <<
" hwNumber: "<<hwNumber
367 <<
" iInput: "<<iInput
368 <<
" iLayer: "<<iLayer
384 unsigned int iProcessor,
388 result +=
processDT(dtPhDigis, dtThDigis, iProcessor, type, bx);
389 result +=
processCSC(cscDigis, iProcessor, type, bx);
390 result +=
processRPC(rpcDigis, iProcessor, type, bx);
const std::vector< unsigned int > & getBarrelMax() const
const std::map< int, int > & getHwToLogicLayer() const
unsigned int fwVersion() const
constexpr uint32_t rawId() const
get the raw id
int getGlobalEta(unsigned int rawid, const L1MuDTChambPhDigi &aDigi, const L1MuDTChambThContainer *dtThDigis)
Convert local eta coordinate to global digital microGMT scale.
const std::vector< unsigned int > & getEndcap10DegMin() const
unsigned int nPhiBins() const
int getProcessorPhi(unsigned int iProcessor, l1t::tftype part, const L1MuDTChambPhDigi &digi) const
const std::vector< unsigned int > & getEndcap20DegMax() const
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
Abs< T >::type abs(const T &t)
const std::vector< unsigned int > & getEndcap10DegMax() const
uint32_t getLayerNumber(uint32_t rawId) const
const std::vector< unsigned int > & getBarrelMin() const
Phi_Container const * getContainer() const
int sector() const
Sector id: the group of chambers at same phi (and increasing r)
int subsector() const
SubSector id : some sectors are divided along the phi direction in subsectors (from 1 to 4 in Barrel...
void checkAndUpdateGeometry(const edm::EventSetup &, unsigned int)
Update the Geometry with current Event Setup.
const std::vector< unsigned int > & getEndcap20DegMin() const
int wheel() const
Return the wheel number.
constexpr Detector det() const
get the detector field from this detid
int region() const
Region id: 0 for Barrel, +/-1 For +/- Endcap.