CMS 3D CMS Logo

HcalTopology.h
Go to the documentation of this file.
1 #ifndef GEOMETRY_CALOTOPOLOGY_HCALTOPOLOGY_H
2 #define GEOMETRY_CALOTOPOLOGY_HCALTOPOLOGY_H 1
3 
4 #include <vector>
5 #include <map>
12 
27 public:
28  HcalTopology(const HcalDDDRecConstants* hcons, const bool mergePosition = false);
29 
30  HcalTopologyMode::Mode mode() const { return mode_; }
33  void exclude(const HcalDetId& id);
37  int exclude(HcalSubdetector subdet, int ieta1, int ieta2, int iphi1, int iphi2, int depth1 = 1, int depth2 = 4);
38 
39  static std::string producerTag() { return "HCAL"; }
40 
42  unsigned int detId2denseId(const DetId& id) const override;
44  DetId denseId2detId(unsigned int /*denseid*/) const override;
46  unsigned int ncells() const override;
47  unsigned int ncells(int subdet) const;
49  int topoVersion() const override;
50 
52  bool valid(const DetId& id) const override;
54  bool validHcal(const HcalDetId& id) const;
55  bool validDetId(HcalSubdetector subdet, int ieta, int iphi, int depth) const;
56  bool validHT(const HcalTrigTowerDetId& id) const;
57  bool validCalib(const HcalCalibDetId& id) const;
59  bool validHcal(const HcalDetId& id, const unsigned int flag) const;
63  std::vector<DetId> east(const DetId& id) const override;
65  std::vector<DetId> west(const DetId& id) const override;
67  std::vector<DetId> north(const DetId& id) const override;
69  std::vector<DetId> south(const DetId& id) const override;
71  std::vector<DetId> up(const DetId& id) const override;
73  std::vector<DetId> down(const DetId& id) const override;
74 
76  int incIEta(const HcalDetId& id, HcalDetId neighbors[2]) const;
78  int decIEta(const HcalDetId& id, HcalDetId neighbors[2]) const;
80  bool incIPhi(const HcalDetId& id, HcalDetId& neighbor) const;
82  bool decIPhi(const HcalDetId& id, HcalDetId& neighbor) const;
84  bool incrementDepth(HcalDetId& id) const;
86  bool decrementDepth(HcalDetId& id) const;
87 
88  int firstHBRing() const { return firstHBRing_; }
89  int lastHBRing() const { return lastHBRing_; }
90  int firstHERing() const { return firstHERing_; }
91  int lastHERing() const { return lastHERing_; }
92  int lastHBHERing() const { return std::max(lastHBRing_, lastHERing_); }
93  int firstHFRing() const { return firstHFRing_; }
94  int lastHFRing() const { return lastHFRing_; }
95  int firstHORing() const { return firstHORing_; }
96  int lastHORing() const { return lastHORing_; }
97 
99  int firstHEQuadPhiRing() const { return firstHEQuadPhiRing_; }
100  int firstHFQuadPhiRing() const { return firstHFQuadPhiRing_; }
102  int singlePhiBins() const { return singlePhiBins_; }
103  int doublePhiBins() const { return doublePhiBins_; }
104 
106  void depthBinInformation(
107  HcalSubdetector subdet, int etaRing, int iphi, int zside, int& nDepthBins, int& startingBin) const;
108  bool mergedDepth29(HcalDetId id) const { return hcons_->mergedDepthList29(id.ieta(), id.iphi(), id.depth()); }
109  std::vector<int> mergedDepthList29(HcalDetId id) const { return hcons_->mergedDepthList29(id.ieta(), id.iphi()); }
110 
112  int nPhiBins(int etaRing) const;
113  int nPhiBins(HcalSubdetector subdet, int etaRing) const;
114 
116  int etaRing(HcalSubdetector subdet, double eta) const;
117  int phiBin(HcalSubdetector subdet, int etaRing, double phi) const;
118 
121  void getDepthSegmentation(const unsigned ring, std::vector<int>& readoutDepths, const bool flag = false) const;
122  void setDepthSegmentation(const unsigned ring, const std::vector<int>& readoutDepths, const bool flag);
126  std::pair<int, int> segmentBoundaries(const unsigned ring, const unsigned depth, const bool flag = false) const;
127  int getPhiZOne(std::vector<std::pair<int, int> >& phiz) const { return hcons_->getPhiZOne(phiz); }
128 
129  unsigned int getHBSize() const { return HBSize_; }
130  unsigned int getHESize() const { return HESize_; }
131  unsigned int getHOSize() const { return HOSize_; }
132  unsigned int getHFSize() const { return HFSize_; }
133  unsigned int getHTSize() const { return HTSize_; }
134  unsigned int getCALIBSize() const { return CALIBSize_; }
135 
136  int maxDepthHB() const { return maxDepthHB_; }
137  int maxDepthHE() const { return maxDepthHE_; }
138  int maxDepth(void) const;
139  int maxDepth(HcalSubdetector subdet) const;
140  double etaMax(HcalSubdetector subdet) const;
141  std::pair<double, double> etaRange(HcalSubdetector subdet, int ieta) const;
142 
144  unsigned int detId2denseIdHB(const DetId& id) const;
146  unsigned int detId2denseIdHE(const DetId& id) const;
148  unsigned int detId2denseIdHO(const DetId& id) const;
150  unsigned int detId2denseIdHF(const DetId& id) const;
152  unsigned int detId2denseIdHT(const DetId& id) const;
154  unsigned int detId2denseIdCALIB(const DetId& id) const;
156  HcalCalibDetId denseId2detIdCALIB(const unsigned int& id) const;
157 
158  unsigned int getNumberOfShapes() const { return numberOfShapes_; }
159  bool isBH() const { return ((hcons_ == nullptr) ? false : hcons_->isBH()); }
160 
161  const HcalDDDRecConstants* dddConstants() const { return hcons_; }
162  bool withSpecialRBXHBHE() const { return hcons_->withSpecialRBXHBHE(); }
163  HcalDetId mergedDepthDetId(const HcalDetId& id) const { return hcons_->mergedDepthDetId(id); }
164  bool getMergePositionFlag() const { return mergePosition_; }
165  void unmergeDepthDetId(const HcalDetId& id, std::vector<HcalDetId>& ids) const { hcons_->unmergeDepthDetId(id, ids); }
166  // Returns the DetId of the front Id if it is a merged RecHit in "Plan 1"
167  HcalDetId idFront(const HcalDetId& id) const { return hcons_->idFront(id); }
168  HcalDetId idBack(const HcalDetId& id) const { return hcons_->idBack(id); }
169 
170 private:
171  bool phase1() const { return ((mode_ == HcalTopologyMode::LHC) || (mode_ == HcalTopologyMode::H2HE)); }
172  bool phase1A() const {
175  }
176  bool phase1B() const {
179  }
180  bool phase2() const { return ((mode_ == HcalTopologyMode::Run4)); }
182  int incAIEta(const HcalDetId& id, HcalDetId neighbors[2]) const;
184  int decAIEta(const HcalDetId& id, HcalDetId neighbors[2]) const;
185 
187  bool validDetIdPreLS1(const HcalDetId& id) const;
188  bool validRaw(const HcalDetId& id, const bool debug = false) const;
189  unsigned int detId2denseIdPreLS1(const DetId& id) const;
190  bool isExcluded(const HcalDetId& id) const;
191 
194  std::vector<HcalDetId> exclusionList_;
196 
199 
204 
205  std::vector<HcalDDDRecConstants::HcalEtaBin> etaBinsHB_, etaBinsHE_;
207 
214 
215  unsigned int HBSize_;
216  unsigned int HESize_;
217  unsigned int HOSize_;
218  unsigned int HFSize_;
219  unsigned int HTSize_;
220  unsigned int CALIBSize_;
221  unsigned int numberOfShapes_;
222 
223  std::vector<double> etaTable, etaTableHF, dPhiTable, dPhiTableHF;
224  std::vector<double> phioff;
225  std::vector<int> unitPhi, unitPhiHF;
226 
228 
229  // index is ring;
230  typedef std::map<unsigned, std::vector<int> > SegmentationMap;
233 
234  static constexpr int kHBhalf = 1296, kHEhalf = 1296, kHOhalf = 1080, kHFhalf = 864, kHThalf = 2088, kZDChalf = 11,
235  kCASTORhalf = 224, kCALIBhalf = 693, kHThalfPhase1 = 2520,
237  static constexpr int kHBhalfPostLS2 = 4536, kHEhalfPostLS2 = 3384, kHFhalfPostLS2 = 1728;
241  static constexpr int kHBSizePreLS1 = 2 * kHBhalf;
242  static constexpr int kHESizePreLS1 = 2 * kHEhalf;
243  static constexpr int kHOSizePreLS1 = 2 * kHOhalf;
244  static constexpr int kHFSizePreLS1 = 2 * kHFhalf;
245  static constexpr int kHTSizePreLS1 = 2 * kHThalf;
251  static constexpr int minMaxDepth_ = 4;
252  static constexpr unsigned int minPhi_ = 1, maxPhi_ = 72;
253  static constexpr unsigned int kOffCalibHB_ = 0;
254  static constexpr unsigned int nchanCalibHB_ = 3, nEtaCalibHB_ = 2;
256  static constexpr int chanCalibHB_[nchanCalibHB_] = {0, 1, 2};
257  static constexpr int etaCalibHB_[nEtaCalibHB_] = {-1, 1};
261  static constexpr unsigned int nchanCalibHE1_ = 6, nEtaCalibHE_ = 2;
263  static constexpr int chanCalibHE1_[nchanCalibHE1_] = {0, 1, 3, 4, 5, 6};
264  static constexpr int etaCalibHE_[nEtaCalibHE_] = {-1, 1};
268  static constexpr unsigned int nchanCalibHF1_ = 3, nEtaCalibHF_ = 2;
270  static constexpr int chanCalibHF1_[nchanCalibHF1_] = {0, 1, 8};
271  static constexpr int etaCalibHF_[nEtaCalibHF_] = {-1, 1};
275  static constexpr unsigned int nchanCalibHO_ = 2, nEtaCalibHO_ = 5;
276  static constexpr int chanCalibHOs_ = 7;
277  static constexpr int chanCalibHO_[nchanCalibHO_] = {0, 1};
278  static constexpr int etaCalibHO_[nEtaCalibHO_] = {-2, -1, 0, 1, 2};
279  static constexpr int phiCalibHO_[nEtaCalibHO_] = {59, 47, 53, 47, 47};
280  static constexpr unsigned int mPhiCalibHO0_ = 6, mPhiCalibHO1_ = 12;
281  static constexpr unsigned int kPhiCalibHO0_ = maxPhi_ / mPhiCalibHO0_;
282  static constexpr unsigned int kPhiCalibHO1_ = maxPhi_ / mPhiCalibHO1_;
283  static constexpr unsigned int kPhiCalibHO2_ = 4 * kPhiCalibHO1_ + kPhiCalibHO0_;
286  static constexpr unsigned int nCalibHO2_ = nEtaCalibHO_;
288  static constexpr int chanCalibHE2_ = 2;
289  static constexpr unsigned int kchanCalibHE2_ = kPhiCalibHE_;
292  static constexpr int chanCalibHF2_ = 9, phiCalibHF2_ = 1;
293  static constexpr unsigned int kchanCalibHF2_ = 1;
294  static constexpr unsigned int nCalibHF2_ = nEtaCalibHF_;
296  static constexpr unsigned int nEtaCalibHOX_ = 2;
297  static constexpr int etaCalibHOX_[nEtaCalibHOX_] = {4, 15};
298  static constexpr unsigned int mPhiCalibHOX_[nEtaCalibHOX_] = {2, 1};
299  static constexpr unsigned int nPhiCalibHOX_[nEtaCalibHOX_] = {36, 72};
300  static constexpr int nCalibHOX_ = 2 * (nPhiCalibHOX_[0] + nPhiCalibHOX_[1]);
303  static constexpr unsigned int nEtaCalibHBX_ = 1, mPhiCalibHBX_ = 1;
304  static constexpr int etaCalibHBX_ = 16;
305  static constexpr unsigned int kPhiCalibHBX_ = maxPhi_ / mPhiCalibHBX_;
306  static constexpr unsigned int nCalibHBX_ = 2 * kPhiCalibHBX_ * nEtaCalibHBX_;
308  static constexpr unsigned int nEtaCalibHEX_ = 2, mPhiCalibHEX_ = 2;
309  static constexpr int etaCalibHEX_[nEtaCalibHEX_] = {25, 27};
310  static constexpr unsigned int kPhiCalibHEX_ = maxPhi_ / mPhiCalibHEX_;
311  static constexpr unsigned int nCalibHEX_ = 2 * kPhiCalibHEX_ * nEtaCalibHEX_;
313 };
314 
315 #endif
static constexpr int minMaxDepth_
Definition: HcalTopology.h:251
static constexpr int chanCalibHF2_
Definition: HcalTopology.h:292
bool mergedDepth29(HcalDetId id) const
Definition: HcalTopology.h:108
bool phase1B() const
Definition: HcalTopology.h:176
bool validHT(const HcalTrigTowerDetId &id) const
bool getMergePositionFlag() const
Definition: HcalTopology.h:164
std::vector< int > unitPhiHF
Definition: HcalTopology.h:225
static constexpr unsigned int kchanCalibHE1_
Definition: HcalTopology.h:265
static constexpr int etaCalibHE_[nEtaCalibHE_]
Definition: HcalTopology.h:264
static constexpr unsigned int kchanCalibHF1_
Definition: HcalTopology.h:272
static constexpr unsigned int kPhiCalibHBX_
Definition: HcalTopology.h:305
static constexpr int etaCalibHBX_
Definition: HcalTopology.h:304
static constexpr unsigned int kOffCalibHFX_
Definition: HcalTopology.h:312
unsigned int numberOfShapes_
Definition: HcalTopology.h:221
unsigned int detId2denseIdPreLS1(const DetId &id) const
int firstHORing() const
Definition: HcalTopology.h:95
static constexpr int kHFhalfPostLS2
Definition: HcalTopology.h:237
static constexpr int kHBhalfPostLS2
Definition: HcalTopology.h:237
std::vector< double > dPhiTableHF
Definition: HcalTopology.h:223
void excludeSubdetector(HcalSubdetector subdet)
bool decrementDepth(HcalDetId &id) const
static constexpr unsigned int nCalibHEX_
Definition: HcalTopology.h:311
bool withSpecialRBXHBHE() const
std::vector< HcalDDDRecConstants::HcalEtaBin > etaBinsHB_
Definition: HcalTopology.h:205
HcalDetId mergedDepthDetId(const HcalDetId &id) const
int singlePhiBins() const
Definition: HcalTopology.h:102
bool withSpecialRBXHBHE() const
Definition: HcalTopology.h:162
int topoVersion() const override
return a version which identifies the given topology
void getDepthSegmentation(const unsigned ring, std::vector< int > &readoutDepths, const bool flag=false) const
std::vector< int > unitPhi
Definition: HcalTopology.h:225
bool isBH() const
Definition: HcalTopology.h:159
static constexpr unsigned int nCalibHE1_
Definition: HcalTopology.h:266
static constexpr unsigned int nCalibHO2_
Definition: HcalTopology.h:286
static constexpr unsigned int kchanCalibHE2_
Definition: HcalTopology.h:289
static constexpr int kZDChalf
Definition: HcalTopology.h:234
bool valid(const DetId &id) const override
unsigned int getHESize() const
Definition: HcalTopology.h:130
static constexpr int kHcalhalf
Definition: HcalTopology.h:236
bool mergedDepthList29(int ieta, int iphi, int depth) const
std::vector< DetId > south(const DetId &id) const override
unsigned int detId2denseIdHF(const DetId &id) const
return a linear packed id from HF
void exclude(const HcalDetId &id)
HcalTopologyMode::TriggerMode triggerMode_
Definition: HcalTopology.h:198
int maxDepthHE() const
Definition: HcalTopology.h:137
unsigned int detId2denseIdHO(const DetId &id) const
return a linear packed id from HO
static constexpr unsigned int kchanCalibHF2_
Definition: HcalTopology.h:293
std::pair< int, int > segmentBoundaries(const unsigned ring, const unsigned depth, const bool flag=false) const
static constexpr unsigned int kOffCalibHE1_
Definition: HcalTopology.h:260
unsigned int detId2denseId(const DetId &id) const override
return a linear packed id
int decAIEta(const HcalDetId &id, HcalDetId neighbors[2]) const
static constexpr unsigned int nEtaCalibHO_
Definition: HcalTopology.h:275
static constexpr unsigned int nCalibHB_
Definition: HcalTopology.h:259
unsigned int HESize_
Definition: HcalTopology.h:216
int incIEta(const HcalDetId &id, HcalDetId neighbors[2]) const
int lastHORing() const
Definition: HcalTopology.h:96
HcalDetId idBack(const HcalDetId &id) const
unsigned int HTSize_
Definition: HcalTopology.h:219
static constexpr int kHFSizePreLS1
Definition: HcalTopology.h:244
static constexpr int kHBhalf
Definition: HcalTopology.h:234
static constexpr unsigned int kPhiCalibHO0_
Definition: HcalTopology.h:281
int zside(DetId const &)
bool incIPhi(const HcalDetId &id, HcalDetId &neighbor) const
static constexpr int phiCalibHO_[nEtaCalibHO_]
Definition: HcalTopology.h:279
static constexpr int kHEhalfPostLS2
Definition: HcalTopology.h:237
static constexpr int etaCalibHO_[nEtaCalibHO_]
Definition: HcalTopology.h:278
HcalCalibDetId denseId2detIdCALIB(const unsigned int &id) const
return a Calib DetId from linear packed id
static constexpr unsigned int nEtaCalibHF_
Definition: HcalTopology.h:268
static constexpr int kHTSizePreLS1
Definition: HcalTopology.h:245
unsigned int getHBSize() const
Definition: HcalTopology.h:129
static constexpr unsigned int nchanCalibHO_
Definition: HcalTopology.h:275
static constexpr int etaCalibHB_[nEtaCalibHB_]
Definition: HcalTopology.h:257
static constexpr unsigned int nCalibHE2_
Definition: HcalTopology.h:290
int maxDepthHB() const
Definition: HcalTopology.h:136
std::vector< HcalDDDRecConstants::HcalEtaBin > etaBinsHE_
Definition: HcalTopology.h:205
static constexpr unsigned int nPhiCalibHOX_[nEtaCalibHOX_]
Definition: HcalTopology.h:299
bool validDetId(HcalSubdetector subdet, int ieta, int iphi, int depth) const
static constexpr int kHESizePostLS2
Definition: HcalTopology.h:249
unsigned int getNumberOfShapes() const
Definition: HcalTopology.h:158
int firstHETripleDepthRing() const
Definition: HcalTopology.h:101
unsigned int getHOSize() const
Definition: HcalTopology.h:131
static constexpr int kCALIBSizePreLS1
Definition: HcalTopology.h:247
static constexpr int kHThalf
Definition: HcalTopology.h:234
static constexpr int kHFSizePostLS2
Definition: HcalTopology.h:250
static constexpr int chanCalibHE2_
Definition: HcalTopology.h:288
static constexpr unsigned int nEtaCalibHB_
Definition: HcalTopology.h:254
int etaRing(HcalSubdetector subdet, double eta) const
eta and phi index from eta, phi values
static constexpr int nCalibHOX_
Definition: HcalTopology.h:300
static constexpr int phiCalibHOX3_
Definition: HcalTopology.h:301
static constexpr unsigned int kPhiCalibHB_
Definition: HcalTopology.h:255
static constexpr unsigned int nEtaCalibHE_
Definition: HcalTopology.h:261
unsigned int detId2denseIdHE(const DetId &id) const
return a linear packed id from HE
int getPhiZOne(std::vector< std::pair< int, int > > &phiz) const
Definition: HcalTopology.h:127
static constexpr unsigned int maxPhi_
Definition: HcalTopology.h:252
std::vector< DetId > up(const DetId &id) const override
int firstHBRing() const
Definition: HcalTopology.h:88
static constexpr int phiCalibHOX2_
Definition: HcalTopology.h:301
int decIEta(const HcalDetId &id, HcalDetId neighbors[2]) const
unsigned int CALIBSize_
Definition: HcalTopology.h:220
static constexpr unsigned int nchanCalibHB_
Definition: HcalTopology.h:254
unsigned int detId2denseIdCALIB(const DetId &id) const
return a linear packed id from CALIB
unsigned int HFSize_
Definition: HcalTopology.h:218
static constexpr int phiCalibHOX1_
Definition: HcalTopology.h:301
unsigned int detId2denseIdHB(const DetId &id) const
return a linear packed id from HB
bool decIPhi(const HcalDetId &id, HcalDetId &neighbor) const
int firstHFQuadPhiRing() const
Definition: HcalTopology.h:100
HcalDetId idFront(const HcalDetId &id) const
Definition: HcalTopology.h:167
static constexpr unsigned int kOffCalibHEX_
Definition: HcalTopology.h:307
static constexpr unsigned int mPhiCalibHOX_[nEtaCalibHOX_]
Definition: HcalTopology.h:298
HcalTopologyMode::TriggerMode triggerMode() const
Definition: HcalTopology.h:31
int lastHBRing() const
Definition: HcalTopology.h:89
static constexpr unsigned int nCalibHF1_
Definition: HcalTopology.h:273
HcalTopologyMode::Mode mode_
Definition: HcalTopology.h:197
HcalTopology(const HcalDDDRecConstants *hcons, const bool mergePosition=false)
Definition: HcalTopology.cc:17
static constexpr unsigned int mPhiCalibHEX_
Definition: HcalTopology.h:308
std::pair< double, double > etaRange(HcalSubdetector subdet, int ieta) const
HcalDetId idBack(const HcalDetId &id) const
Definition: HcalTopology.h:168
static constexpr int kHOhalf
Definition: HcalTopology.h:234
static std::string producerTag()
Definition: HcalTopology.h:39
bool phase2() const
Definition: HcalTopology.h:180
int maxDepth(void) const
static constexpr int chanCalibHE1_[nchanCalibHE1_]
Definition: HcalTopology.h:263
HcalSubdetector
Definition: HcalAssistant.h:31
unsigned int HBSize_
Definition: HcalTopology.h:215
HcalTopologyMode::Mode mode() const
Definition: HcalTopology.h:30
static constexpr int kHESizePreLS1
Definition: HcalTopology.h:242
static constexpr int kHBSizePreLS1
Definition: HcalTopology.h:241
DetId denseId2detId(unsigned int) const override
return a linear packed id
bool phase1() const
Definition: HcalTopology.h:171
static constexpr int etaCalibHEX_[nEtaCalibHEX_]
Definition: HcalTopology.h:309
static constexpr int kHOSizePreLS1
Definition: HcalTopology.h:243
unsigned int getHFSize() const
Definition: HcalTopology.h:132
unsigned int getHTSize() const
Definition: HcalTopology.h:133
static constexpr int kHEhalf
Definition: HcalTopology.h:234
static constexpr unsigned int kPhiCalibHO2_
Definition: HcalTopology.h:283
std::vector< double > etaTableHF
Definition: HcalTopology.h:223
SegmentationMap depthSegmentation_
Definition: HcalTopology.h:231
static constexpr unsigned int kPhiCalibHO1_
Definition: HcalTopology.h:282
SegmentationMap depthSegmentationOne_
Definition: HcalTopology.h:232
static constexpr unsigned int mPhiCalibHE_
Definition: HcalTopology.h:262
unsigned int HOSize_
Definition: HcalTopology.h:217
bool validDetIdPreLS1(const HcalDetId &id) const
std::vector< DetId > east(const DetId &id) const override
std::vector< double > etaTable
Definition: HcalTopology.h:223
int incAIEta(const HcalDetId &id, HcalDetId neighbors[2]) const
static constexpr unsigned int kOffCalibHB_
Definition: HcalTopology.h:253
static constexpr unsigned int nchanCalibHF1_
Definition: HcalTopology.h:268
unsigned int ncells() const override
return a count of valid cells (for dense indexing use)
static constexpr int kHTSizePhase1
Definition: HcalTopology.h:246
std::vector< DetId > down(const DetId &id) const override
static constexpr unsigned int nCalibHBX_
Definition: HcalTopology.h:306
static constexpr int kHThalfPhase1
Definition: HcalTopology.h:235
static constexpr int chanCalibHO_[nchanCalibHO_]
Definition: HcalTopology.h:277
static constexpr unsigned int nchanCalibHE1_
Definition: HcalTopology.h:261
static constexpr unsigned int mPhiCalibHO1_
Definition: HcalTopology.h:280
static constexpr unsigned int kOffCalibHOX_
Definition: HcalTopology.h:295
static constexpr unsigned int kPhiCalibHF1_
Definition: HcalTopology.h:269
int firstHEQuadPhiRing() const
Definition: HcalTopology.h:99
int firstHEQuadPhiRing_
Definition: HcalTopology.h:208
bool validCalib(const HcalCalibDetId &id) const
static constexpr int kCALIBhalf
Definition: HcalTopology.h:235
static constexpr int kCASTORhalf
Definition: HcalTopology.h:235
Definition: DetId.h:17
bool mergePosition_
Definition: HcalTopology.h:193
static constexpr int etaCalibHOX_[nEtaCalibHOX_]
Definition: HcalTopology.h:297
std::vector< double > phioff
Definition: HcalTopology.h:224
int getPhiZOne(std::vector< std::pair< int, int >> &phiz) const
static constexpr int chanCalibHOs_
Definition: HcalTopology.h:276
static constexpr int kSizeForDenseIndexingPostLS2
Definition: HcalTopology.h:240
#define debug
Definition: HDRShower.cc:19
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
static constexpr unsigned int kOffCalibHF1_
Definition: HcalTopology.h:267
static constexpr unsigned int nEtaCalibHOX_
Definition: HcalTopology.h:296
static constexpr int chanCalibHF1_[nchanCalibHF1_]
Definition: HcalTopology.h:270
static constexpr int kHFhalf
Definition: HcalTopology.h:234
static constexpr unsigned int kOffCalibHE2_
Definition: HcalTopology.h:287
int firstHEDoublePhiRing() const
Definition: HcalTopology.h:98
static constexpr unsigned int kOffCalibHBX_
Definition: HcalTopology.h:302
static constexpr int chanCalibHB_[nchanCalibHB_]
Definition: HcalTopology.h:256
std::vector< DetId > north(const DetId &id) const override
bool validHcal(const HcalDetId &id) const
static constexpr unsigned int mPhiCalibHO0_
Definition: HcalTopology.h:280
std::vector< double > dPhiTable
Definition: HcalTopology.h:223
static constexpr int kHBSizePostLS2
Definition: HcalTopology.h:248
static constexpr unsigned int nEtaCalibHBX_
Definition: HcalTopology.h:303
HcalDetId mergedDepthDetId(const HcalDetId &id) const
Definition: HcalTopology.h:163
static constexpr unsigned int kOffCalibHO2_
Definition: HcalTopology.h:285
HcalDetId idFront(const HcalDetId &id) const
bool phase1A() const
Definition: HcalTopology.h:172
static constexpr unsigned int minPhi_
Definition: HcalTopology.h:252
int firstHETripleDepthRing_
Definition: HcalTopology.h:209
static constexpr int kSizeForDenseIndexingPreLS1
Definition: HcalTopology.h:239
void unmergeDepthDetId(const HcalDetId &id, std::vector< HcalDetId > &ids) const
Definition: HcalTopology.h:165
int lastHERing() const
Definition: HcalTopology.h:91
static constexpr int etaCalibHF_[nEtaCalibHF_]
Definition: HcalTopology.h:271
int doublePhiBins() const
Definition: HcalTopology.h:103
static constexpr unsigned int nCalibHO1_
Definition: HcalTopology.h:284
std::vector< HcalDetId > exclusionList_
Definition: HcalTopology.h:194
const HcalDDDRecConstants * dddConstants() const
Definition: HcalTopology.h:161
bool incrementDepth(HcalDetId &id) const
std::vector< int > mergedDepthList29(HcalDetId id) const
Definition: HcalTopology.h:109
int lastHFRing() const
Definition: HcalTopology.h:94
static constexpr unsigned int kPhiCalibHE_
Definition: HcalTopology.h:262
unsigned int getCALIBSize() const
Definition: HcalTopology.h:134
static constexpr unsigned int mPhiCalibHB_
Definition: HcalTopology.h:255
static constexpr unsigned int kchanCalibHB_
Definition: HcalTopology.h:258
int phiBin(HcalSubdetector subdet, int etaRing, double phi) const
void unmergeDepthDetId(const HcalDetId &id, std::vector< HcalDetId > &ids) const
std::vector< DetId > west(const DetId &id) const override
void setDepthSegmentation(const unsigned ring, const std::vector< int > &readoutDepths, const bool flag)
static constexpr int kHcalhalfPostLS2
Definition: HcalTopology.h:238
static constexpr int phiCalibHF2_
Definition: HcalTopology.h:292
static constexpr unsigned int kOffCalibHO1_
Definition: HcalTopology.h:274
static constexpr unsigned int nEtaCalibHEX_
Definition: HcalTopology.h:308
static constexpr unsigned int kPhiCalibHEX_
Definition: HcalTopology.h:310
static constexpr unsigned int nCalibHF2_
Definition: HcalTopology.h:294
double etaMax(HcalSubdetector subdet) const
bool validRaw(const HcalDetId &id, const bool debug=false) const
static constexpr unsigned int mPhiCalibHF1_
Definition: HcalTopology.h:269
unsigned int detId2denseIdHT(const DetId &id) const
return a linear packed id from HT
int firstHFRing() const
Definition: HcalTopology.h:93
int nPhiBins(int etaRing) const
how many phi segments in this ring
int firstHEDoublePhiRing_
Definition: HcalTopology.h:208
const HcalDDDRecConstants * hcons_
Definition: HcalTopology.h:192
std::map< unsigned, std::vector< int > > SegmentationMap
Definition: HcalTopology.h:230
static constexpr unsigned int kOffCalibHF2_
Definition: HcalTopology.h:291
int firstHFQuadPhiRing_
Definition: HcalTopology.h:208
int lastHBHERing() const
Definition: HcalTopology.h:92
int firstHERing() const
Definition: HcalTopology.h:90
bool isExcluded(const HcalDetId &id) const
static constexpr unsigned int mPhiCalibHBX_
Definition: HcalTopology.h:303