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);
239 if (digiIt.bxNum()!= 0)
continue;
240 if (digiIt.code() != 4 && digiIt.code() != 5 && digiIt.code() != 6)
continue;
246 unsigned int iLayer = iter->second;
251 result.
addLayerHit(iLayer+1,iInput,digiIt.phiB(),iEta);
260 unsigned int iProcessor,
264 if(!cscDigis)
return result;
266 auto chamber = cscDigis->begin();
267 auto chend = cscDigis->end();
268 for( ; chamber != chend; ++chamber ) {
270 unsigned int rawid = (*chamber).first;
272 if(!
acceptDigi(rawid, iProcessor, type))
continue;
273 auto digi = (*chamber).second.first;
274 auto dend = (*chamber).second.second;
275 for( ; digi != dend; ++digi ) {
279 if (
abs(digi->getBX()- 6)>0)
continue;
305 unsigned int iProcessor,
309 if(!rpcDigis)
return result;
310 std::stringstream str;
315 for (
auto rollDigis : rpcDigiCollection) {
317 unsigned int rawid = roll.
rawId();
319 if(!
acceptDigi(rawid, iProcessor, type))
continue;
324 std::vector<RPCDigi> digisCopy;
325 std::copy_if(rollDigis.second.first, rollDigis.second.second, std::back_inserter(digisCopy), [](
const RPCDigi & aDigi){
return (aDigi.
bx()==0);});
327 typedef std::pair<unsigned int, unsigned int> Cluster;
329 for(
auto & digi: digisCopy) {
330 if(clusters.empty()) clusters.push_back(Cluster(digi.strip(),digi.strip()));
331 else if (digi.strip() - clusters.back().second == 1) clusters.back().second = digi.strip();
332 else if (digi.strip() - clusters.back().second > 1) clusters.push_back(Cluster(digi.strip(),digi.strip()));
335 for (
auto & cluster: clusters) {
339 int cSize =
abs(
int(cluster.first)-
int(cluster.second))+1;
341 if (cSize>3)
continue;
347 if (iLayer==17 && (iInput==0 || iInput==1))
continue;
354 str <<
" RPC halfDigi "
355 <<
" begin: "<<cluster.first<<
" end: "<<cluster.second
358 <<
" hwNumber: "<<hwNumber
359 <<
" iInput: "<<iInput
360 <<
" iLayer: "<<iLayer
376 unsigned int iProcessor,
379 result +=
processDT(dtPhDigis, dtThDigis, iProcessor, type);
380 result +=
processCSC(cscDigis, iProcessor, type);
381 result +=
processRPC(rpcDigis, iProcessor, type);
const std::vector< unsigned int > & getBarrelMax() const
const std::map< int, int > & getHwToLogicLayer() const
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
uint32_t rawId() const
get the raw id
int getProcessorPhi(unsigned int iProcessor, l1t::tftype part, const L1MuDTChambPhDigi &digi) const
const std::vector< unsigned int > & getEndcap20DegMax() const
Abs< T >::type abs(const T &t)
const std::vector< unsigned int > & getEndcap10DegMax() const
int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
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)
return(e1-e2)*(e1-e2)+dp *dp
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
Detector det() const
get the detector field from this detid
int wheel() const
Return the wheel number.
int region() const
Region id: 0 for Barrel, +/-1 For +/- Endcap.