9 : theTopology(topology)
17 std::vector<HcalTrigTowerDetId>
20 std::vector<HcalTrigTowerDetId>
results;
33 ieta *= cellId.
zside();
39 int iphi = (((cellId.
iphi()+1)/4) * 4 + 1)%72;
44 if (hfRing==29) hfRing=30;
46 int ieta = hfRing*cellId.
zside();
47 int iphi = cellId.
iphi();
51 results.push_back(
id);
60 int iphi1 = cellId.
iphi();
61 int ieta = cellId.
ieta();
68 if (ieta == 26 and depth == 7)
70 if (ieta == -26 and depth == 7)
83 std::vector<HcalDetId>
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 for (
int cell_depth = min_depth; cell_depth <= min_depth + n_depths - 1; cell_depth++)
108 for (
int ho_depth = min_depth; ho_depth <= min_depth + n_depths - 1; ho_depth++)
121 if (tower_iphi%2 == 0) cell_iphi = tower_iphi - 1;
124 if (
abs(tower_ieta) == 26)
126 if (tower_ieta == 27)
128 if (tower_ieta == -27)
132 for (
int cell_depth = min_depth; cell_depth <= min_depth + n_depths - 1; cell_depth++)
136 if (
abs(tower_ieta) == 28){
138 for (
int cell_depth = min_depth; cell_depth <= min_depth + n_depths - 1; cell_depth++){
139 if (tower_ieta < 0) results.push_back(
HcalDetId(
HcalEndcap, tower_ieta - 1, cell_iphi, cell_depth));
140 if (tower_ieta > 0) results.push_back(
HcalDetId(
HcalEndcap, tower_ieta + 1, cell_iphi, cell_depth));
150 if (hcalTrigTowerDetId.
version()==0) {
152 int HfTowerPhiSize = 72 /
nPhiBins(tower_ieta,0);
157 for (
int iHFTowerPhiSegment = 0; iHFTowerPhiSegment < HfTowerPhiSize; iHFTowerPhiSegment++){
159 cell_iphi = (tower_iphi / HfTowerPhiSize) * HfTowerPhiSize;
161 cell_iphi += iHFTowerPhiSegment;
163 cell_iphi = cell_iphi % 72;
166 if (cell_iphi%2 == 0)
continue;
168 for (
int iHFTowerEtaSegment = 0; iHFTowerEtaSegment < HfTowerEtaSize; iHFTowerEtaSegment++){
170 cell_ieta = FirstHFRingInTower + iHFTowerEtaSegment;
172 if (cell_ieta >= 40 && cell_iphi%4 == 1)
continue;
178 if (tower_ieta < 0) zside = -1;
182 for (
int cell_depth = min_depth; cell_depth <= min_depth + n_depths - 1; cell_depth++)
185 if ( zside * cell_ieta == 30 ) {
187 for (
int cell_depth = min_depth; cell_depth <= min_depth + n_depths - 1; cell_depth++)
192 }
else if (hcalTrigTowerDetId.
version()==1) {
194 for (
int cell_depth = min_depth; cell_depth <= min_depth + n_depths - 1; cell_depth++)
196 if (
abs(tower_ieta)==30) {
198 if (tower_ieta < 0) i29 = -29;
200 for (
int cell_depth = min_depth; cell_depth <= min_depth + n_depths - 1; cell_depth++)
212 int ietaAbs =
abs(ieta);
215 return (ietaAbs ==
nTowers(0)) ? 4 : 3;
222 int inputTower =
abs(ietaTower);
224 for(
int iTower =
firstHFTower(0); iTower != inputTower; ++iTower) {
229 if(ietaTower < 0) result *= -1;
235 int ietaAbs =
abs(ieta);
236 std::pair<double,double>
etas =
HcalSubdetector subdet() const
get the subdetector
std::vector< HcalTrigTowerDetId > towerIds(const HcalDetId &cellId) const
the mapping to and from DetIds
CaloTopology const * topology(0)
const HcalTopology * theTopology
int zside() const
get the z-side of the cell (1/-1)
void towerEtaBounds(int ieta, int version, double &eta1, double &eta2) const
where this tower begins and ends in eta
int ieta() const
get the tower ieta
int hfTowerEtaSize(int ieta) const
HcalTopologyMode::TriggerMode triggerMode() const
int nPhiBins(int ieta, int version) const
the number of phi bins in this eta ring
int depth() const
get the tower depth
int ieta() const
get the cell ieta
Abs< T >::type abs(const T &t)
void depthBinInformation(HcalSubdetector subdet, int etaRing, int &nDepthBins, int &startingBin) const
finds the number of depth bins and which is the number to start with
int firstHEDoublePhiRing() const
int nTowers(int version) const
number of towers (version dependent)
int ietaAbs() const
get the absolute value of the cell ieta
int iphi() const
get the cell iphi
int firstHFRingInTower(int ietaTower) const
since the towers are irregular in eta in HF
int version() const
get the version code for the trigger tower
std::vector< std::vector< double > > tmp
std::pair< double, double > etaRange(HcalSubdetector subdet, int ieta) const
HcalTrigTowerGeometry(const HcalTopology *topology)
int iphi() const
get the tower iphi
std::vector< HcalDetId > detIds(const HcalTrigTowerDetId &) const
int firstHFTower(int version) const