17 std::vector<HcalTrigTowerDetId>
results;
35 int iphi = (((cellId.
iphi() + 1) / 4) * 4 + 1) % 72;
61 int iphi1 = cellId.
iphi();
86 std::vector<HcalTrigTowerDetId>
results;
90 int channelId = cellId.
channel();
91 if (cellId.
depth() != 1)
102 std::vector<HcalDetId>
results;
104 int tower_ieta = hcalTrigTowerDetId.
ieta();
105 int tower_iphi = hcalTrigTowerDetId.
iphi();
107 int cell_ieta = tower_ieta;
108 int cell_iphi = tower_iphi;
110 int min_depth, n_depths;
116 HcalBarrel,
abs(tower_ieta), tower_iphi, hcalTrigTowerDetId.
zside(), n_depths, min_depth);
117 for (
int cell_depth = min_depth; cell_depth <= min_depth + n_depths - 1; cell_depth++)
125 HcalOuter,
abs(tower_ieta), tower_iphi, hcalTrigTowerDetId.
zside(), n_depths, min_depth);
126 for (
int ho_depth = min_depth; ho_depth <= min_depth + n_depths - 1; ho_depth++)
134 HcalEndcap,
abs(tower_ieta), tower_iphi, hcalTrigTowerDetId.
zside(), n_depths, min_depth);
138 if (tower_iphi % 2 == 0)
139 cell_iphi = tower_iphi - 1;
142 if (
abs(tower_ieta) == 26)
144 if (tower_ieta == 27)
146 if (tower_ieta == -27)
150 for (
int cell_depth = min_depth; cell_depth <= min_depth + n_depths - 1; cell_depth++)
154 if (
abs(tower_ieta) == 28) {
156 HcalEndcap,
abs(tower_ieta) + 1, tower_iphi, hcalTrigTowerDetId.
zside(), n_depths, min_depth);
157 for (
int cell_depth = min_depth; cell_depth <= min_depth + n_depths - 1; cell_depth++) {
169 if (hcalTrigTowerDetId.
version() == 0) {
170 int HfTowerPhiSize = 72 /
nPhiBins(tower_ieta, 0);
175 for (
int iHFTowerPhiSegment = 0; iHFTowerPhiSegment < HfTowerPhiSize; iHFTowerPhiSegment++) {
176 cell_iphi = (tower_iphi / HfTowerPhiSize) * HfTowerPhiSize;
178 cell_iphi += iHFTowerPhiSegment;
180 cell_iphi = cell_iphi % 72;
183 if (cell_iphi % 2 == 0)
186 for (
int iHFTowerEtaSegment = 0; iHFTowerEtaSegment < HfTowerEtaSize; iHFTowerEtaSegment++) {
187 cell_ieta = FirstHFRingInTower + iHFTowerEtaSegment;
189 if (cell_ieta >= 40 && cell_iphi % 4 == 1)
193 HcalForward, cell_ieta, tower_iphi, hcalTrigTowerDetId.
zside(), n_depths, min_depth);
202 for (
int cell_depth = min_depth; cell_depth <= min_depth + n_depths - 1; cell_depth++)
205 if (
zside * cell_ieta == 30) {
208 for (
int cell_depth = min_depth; cell_depth <= min_depth + n_depths - 1; cell_depth++)
213 }
else if (hcalTrigTowerDetId.
version() == 1) {
215 HcalForward, tower_ieta, tower_iphi, hcalTrigTowerDetId.
zside(), n_depths, min_depth);
216 for (
int cell_depth = min_depth; cell_depth <= min_depth + n_depths - 1; cell_depth++)
218 if (
abs(tower_ieta) == 30) {
223 for (
int cell_depth = min_depth; cell_depth <= min_depth + n_depths - 1; cell_depth++)
241 int inputTower =
abs(ietaTower);
243 for (
int iTower =
firstHFTower(0); iTower != inputTower; ++iTower) {
constexpr int zside() const
get the z-side of the cell (1/-1)
const HcalTopology * theTopology
constexpr int ietaAbs() const
get the absolute value of the cell ieta
int nTowers(int version) const
number of towers (version dependent)
constexpr int32_t depth() const
get the depth (1 for EM, channel + 1 for HAD, 2 for RPD, not sure yet for LUM, leave as default) ...
int iphi() const
get the tower iphi
int firstHFTower(int version) const
ALPAKA_FN_ACC ALPAKA_FN_INLINE uint32_t ietaAbs(uint32_t id)
constexpr HcalSubdetector subdet() const
get the subdetector
std::vector< HcalDetId > detIds(const HcalTrigTowerDetId &) const
HcalTopologyMode::TriggerMode triggerMode() const
constexpr int ieta() const
get the cell ieta
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
std::pair< double, double > etaRange(HcalSubdetector subdet, int ieta) const
Abs< T >::type abs(const T &t)
int firstHFRingInTower(int ietaTower) const
since the towers are irregular in eta in HF
int ieta() const
get the tower ieta
void depthBinInformation(HcalSubdetector subdet, int etaRing, int iphi, int zside, int &nDepthBins, int &startingBin) const
finds the number of depth bins and which is the number to start with
int firstHEDoublePhiRing() const
void towerEtaBounds(int ieta, int version, double &eta1, double &eta2) const
where this tower begins and ends in eta
int zside() const
get the z-side of the tower (1/-1)
int nPhiBins(int ieta, int version) const
the number of phi bins in this eta ring
constexpr int32_t channel() const
get the channel
int hfTowerEtaSize(int ieta) const
constexpr int32_t zside() const
get the z-side of the cell (1/-1)
int version() const
get the version code for the trigger tower
HcalTrigTowerGeometry(const HcalTopology *topology)
std::vector< HcalTrigTowerDetId > towerIds(const HcalDetId &cellId) const
the mapping to and from DetIds
constexpr int iphi() const
get the cell iphi
std::vector< HcalTrigTowerDetId > towerIds_ZDC(const HcalZDCDetId &cellId) const
constexpr int depth() const
get the tower depth