9 : theTopology(topology)
18 std::vector<HcalTrigTowerDetId>
21 std::vector<HcalTrigTowerDetId>
results;
34 ieta *= cellId.
zside();
40 int iphi = (((cellId.
iphi()+1)/4) * 4 + 1)%72;
45 if (hfRing==29) hfRing=30;
47 int ieta = hfRing*cellId.
zside();
48 int iphi = cellId.
iphi();
52 results.emplace_back(
id);
65 int iphi1 = cellId.
iphi();
66 int ieta = cellId.
ieta();
73 if (ieta == 26 and depth == 7)
75 if (ieta == -26 and depth == 7)
88 std::vector<HcalDetId>
93 int tower_ieta = hcalTrigTowerDetId.
ieta();
94 int tower_iphi = hcalTrigTowerDetId.
iphi();
96 int cell_ieta = tower_ieta;
97 int cell_iphi = tower_iphi;
99 int min_depth, n_depths;
105 for (
int cell_depth = min_depth; cell_depth <= min_depth + n_depths - 1; cell_depth++)
113 for (
int ho_depth = min_depth; ho_depth <= min_depth + n_depths - 1; ho_depth++)
126 if (tower_iphi%2 == 0) cell_iphi = tower_iphi - 1;
129 if (
abs(tower_ieta) == 26)
131 if (tower_ieta == 27)
133 if (tower_ieta == -27)
137 for (
int cell_depth = min_depth; cell_depth <= min_depth + n_depths - 1; cell_depth++)
141 if (
abs(tower_ieta) == 28){
143 for (
int cell_depth = min_depth; cell_depth <= min_depth + n_depths - 1; cell_depth++){
144 if (tower_ieta < 0) results.emplace_back(
HcalDetId(
HcalEndcap, tower_ieta - 1, cell_iphi, cell_depth));
145 if (tower_ieta > 0) results.emplace_back(
HcalDetId(
HcalEndcap, tower_ieta + 1, cell_iphi, cell_depth));
155 if (hcalTrigTowerDetId.
version()==0) {
157 int HfTowerPhiSize = 72 /
nPhiBins(tower_ieta,0);
162 for (
int iHFTowerPhiSegment = 0; iHFTowerPhiSegment < HfTowerPhiSize; iHFTowerPhiSegment++){
164 cell_iphi = (tower_iphi / HfTowerPhiSize) * HfTowerPhiSize;
166 cell_iphi += iHFTowerPhiSegment;
168 cell_iphi = cell_iphi % 72;
171 if (cell_iphi%2 == 0)
continue;
173 for (
int iHFTowerEtaSegment = 0; iHFTowerEtaSegment < HfTowerEtaSize; iHFTowerEtaSegment++){
175 cell_ieta = FirstHFRingInTower + iHFTowerEtaSegment;
177 if (cell_ieta >= 40 && cell_iphi%4 == 1)
continue;
183 if (tower_ieta < 0) zside = -1;
187 for (
int cell_depth = min_depth; cell_depth <= min_depth + n_depths - 1; cell_depth++)
190 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 for (
int cell_depth = min_depth; cell_depth <= min_depth + n_depths - 1; cell_depth++)
201 if (
abs(tower_ieta)==30) {
203 if (tower_ieta < 0) i29 = -29;
205 for (
int cell_depth = min_depth; cell_depth <= min_depth + n_depths - 1; cell_depth++)
217 int ietaAbs =
abs(ieta);
220 return (ietaAbs ==
nTowers(0)) ? 4 : 3;
227 int inputTower =
abs(ietaTower);
229 for(
int iTower =
firstHFTower(0); iTower != inputTower; ++iTower) {
234 if(ietaTower < 0) result *= -1;
240 int ietaAbs =
abs(ieta);
241 std::pair<double,double>
etas =
int zside() const
get the z-side of the tower (1/-1)
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
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 depth() const
get the tower depth
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
int ieta() const
get the cell ieta
Abs< T >::type abs(const T &t)
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