Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-07-07 03:09:37

0001 #include "DataFormats/ForwardDetId/interface/MTDDetId.h"
0002 #include "DataFormats/ForwardDetId/interface/BTLDetId.h"
0003 #include "DataFormats/ForwardDetId/interface/ETLDetId.h"
0004 #include "DataFormats/DetId/interface/DetId.h"
0005 
0006 #include <iostream>
0007 #include <iomanip>
0008 #include <bitset>
0009 
0010 int main() {
0011   DetId id;
0012   BTLDetId btlid;
0013   ETLDetId etlid;
0014 
0015   auto printBits = [&](const uint32_t& id) {
0016     std::stringstream ss;
0017     ss << std::bitset<4>((id >> 28) & 0xF).to_string() << " " << std::bitset<4>((id >> 24) & 0xF).to_string() << " "
0018        << std::bitset<4>((id >> 20) & 0xF).to_string() << " " << std::bitset<4>((id >> 16) & 0xF).to_string() << " "
0019        << std::bitset<4>((id >> 12) & 0xF).to_string() << " " << std::bitset<4>((id >> 8) & 0xF).to_string() << " "
0020        << std::bitset<4>((id >> 4) & 0xF).to_string() << " " << std::bitset<4>(id & 0xF).to_string();
0021     return ss.str();
0022   };
0023 
0024   std::cout << "DetId    " << std::setw(20) << id.rawId() << std::setw(40) << printBits(id.rawId()) << " mask "
0025             << std::setw(40) << printBits(MTDDetId::kMTDMask) << " isMTD " << MTDDetId::testForMTD(id) << " isBTL "
0026             << MTDDetId::testForBTL(id) << " isETL " << MTDDetId::testForETL(id) << std::endl;
0027   std::cout << "BTLDetId " << std::setw(20) << btlid.rawId() << std::setw(40) << printBits(btlid.rawId()) << " mask "
0028             << std::setw(40) << printBits(MTDDetId::kBTLMask) << " isMTD " << MTDDetId::testForMTD(btlid) << " isBTL "
0029             << MTDDetId::testForBTL(btlid) << " isETL " << MTDDetId::testForETL(btlid) << std::endl;
0030   std::cout << "ETLDetId " << std::setw(20) << etlid.rawId() << std::setw(40) << printBits(etlid.rawId()) << " mask "
0031             << std::setw(40) << printBits(MTDDetId::kETLMask) << " isMTD " << MTDDetId::testForMTD(etlid) << " isBTL "
0032             << MTDDetId::testForBTL(etlid) << " isETL " << MTDDetId::testForETL(etlid) << std::endl;
0033 
0034   return 0;
0035 }