File indexing completed on 2023-03-17 10:49:48
0001 #include "DataFormats/ForwardDetId/interface/HGCSiliconDetIdToModule.h"
0002
0003 HGCSiliconDetIdToModule::HGCSiliconDetIdToModule() {}
0004
0005 std::vector<HGCSiliconDetId> HGCSiliconDetIdToModule::getDetIds(HGCSiliconDetId const& id) const {
0006 std::vector<HGCSiliconDetId> ids;
0007 int nCells = (id.type() == 0) ? HGCSiliconDetId::HGCalFineN : HGCSiliconDetId::HGCalCoarseN;
0008 for (int u = 0; u < 2 * nCells; ++u) {
0009 for (int v = 0; v < 2 * nCells; ++v) {
0010 if (((v - u) < nCells) && (u - v) <= nCells) {
0011 HGCSiliconDetId newId(id.det(), id.zside(), id.type(), id.layer(), id.waferU(), id.waferV(), u, v);
0012 ids.emplace_back(newId);
0013 }
0014 }
0015 }
0016 return ids;
0017 }
0018
0019 std::vector<HGCalTriggerDetId> HGCSiliconDetIdToModule::getDetTriggerIds(HGCSiliconDetId const& id) const {
0020 std::vector<HGCalTriggerDetId> ids;
0021 int nCells = HGCSiliconDetId::HGCalFineN / HGCSiliconDetId::HGCalFineTrigger;
0022 int subdet = (id.det() == DetId::HGCalEE) ? HGCalEETrigger : HGCalHSiTrigger;
0023 for (int u = 0; u < 2 * nCells; ++u) {
0024 for (int v = 0; v < 2 * nCells; ++v) {
0025 if (((v - u) < nCells) && (u - v) <= nCells) {
0026 HGCalTriggerDetId newId(subdet, id.zside(), id.type(), id.layer(), id.waferU(), id.waferV(), u, v);
0027 ids.emplace_back(newId);
0028 }
0029 }
0030 }
0031 return ids;
0032 }