16 std::vector<HcalTrigTowerDetId>
results;
34 int iphi = (((cellId.
iphi() + 1) / 4) * 4 + 1) % 72;
60 int iphi1 = cellId.
iphi();
88 int tower_ieta = hcalTrigTowerDetId.
ieta();
89 int tower_iphi = hcalTrigTowerDetId.
iphi();
91 int cell_ieta = tower_ieta;
92 int cell_iphi = tower_iphi;
94 int min_depth, n_depths;
100 HcalBarrel,
abs(tower_ieta), tower_iphi, hcalTrigTowerDetId.
zside(), n_depths, min_depth);
101 for (
int cell_depth = min_depth; cell_depth <= min_depth + n_depths - 1; cell_depth++)
109 HcalOuter,
abs(tower_ieta), tower_iphi, hcalTrigTowerDetId.
zside(), n_depths, min_depth);
110 for (
int ho_depth = min_depth; ho_depth <= min_depth + n_depths - 1; ho_depth++)
118 HcalEndcap,
abs(tower_ieta), tower_iphi, hcalTrigTowerDetId.
zside(), n_depths, min_depth);
122 if (tower_iphi % 2 == 0)
123 cell_iphi = tower_iphi - 1;
126 if (
abs(tower_ieta) == 26)
128 if (tower_ieta == 27)
130 if (tower_ieta == -27)
134 for (
int cell_depth = min_depth; cell_depth <= min_depth + n_depths - 1; cell_depth++)
138 if (
abs(tower_ieta) == 28) {
140 HcalEndcap,
abs(tower_ieta) + 1, tower_iphi, hcalTrigTowerDetId.
zside(), n_depths, min_depth);
141 for (
int cell_depth = min_depth; cell_depth <= min_depth + n_depths - 1; cell_depth++) {
153 if (hcalTrigTowerDetId.
version() == 0) {
154 int HfTowerPhiSize = 72 /
nPhiBins(tower_ieta, 0);
159 for (
int iHFTowerPhiSegment = 0; iHFTowerPhiSegment < HfTowerPhiSize; iHFTowerPhiSegment++) {
160 cell_iphi = (tower_iphi / HfTowerPhiSize) * HfTowerPhiSize;
162 cell_iphi += iHFTowerPhiSegment;
164 cell_iphi = cell_iphi % 72;
167 if (cell_iphi % 2 == 0)
170 for (
int iHFTowerEtaSegment = 0; iHFTowerEtaSegment < HfTowerEtaSize; iHFTowerEtaSegment++) {
171 cell_ieta = FirstHFRingInTower + iHFTowerEtaSegment;
173 if (cell_ieta >= 40 && cell_iphi % 4 == 1)
177 HcalForward, cell_ieta, tower_iphi, hcalTrigTowerDetId.
zside(), n_depths, min_depth);
186 for (
int cell_depth = min_depth; cell_depth <= min_depth + n_depths - 1; cell_depth++)
189 if (
zside * cell_ieta == 30) {
192 for (
int cell_depth = min_depth; cell_depth <= min_depth + n_depths - 1; cell_depth++)
197 }
else if (hcalTrigTowerDetId.
version() == 1) {
199 HcalForward, tower_ieta, tower_iphi, hcalTrigTowerDetId.
zside(), n_depths, min_depth);
200 for (
int cell_depth = min_depth; cell_depth <= min_depth + n_depths - 1; cell_depth++)
202 if (
abs(tower_ieta) == 30) {
207 for (
int cell_depth = min_depth; cell_depth <= min_depth + n_depths - 1; cell_depth++)
220 return (ietaAbs ==
nTowers(0)) ? 4 : 3;
225 int inputTower =
abs(ietaTower);
227 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)
int iphi() const
get the tower iphi
int firstHFTower(int version) const
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
int hfTowerEtaSize(int ieta) const
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
constexpr int depth() const
get the tower depth