File indexing completed on 2023-03-17 11:24:33
0001 #ifndef SimG4CMS_HGCalTestBeam_AHCALDETID_H
0002 #define SimG4CMS_HGCalTestBeam_AHCALDETID_H 1
0003
0004 #include <iosfwd>
0005 #include "DataFormats/DetId/interface/DetId.h"
0006 #include "DataFormats/HcalDetId/interface/HcalDetId.h"
0007 #include "DataFormats/HcalDetId/interface/HcalSubdetector.h"
0008
0009
0010
0011
0012
0013 class AHCalDetId : public DetId {
0014 public:
0015
0016 AHCalDetId();
0017
0018 AHCalDetId(uint32_t rawid);
0019
0020 AHCalDetId(int row, int col, int depth);
0021
0022 AHCalDetId(const DetId& id);
0023
0024 AHCalDetId& operator=(const DetId& id) {
0025 id_ = id.rawId();
0026 return *this;
0027 }
0028
0029
0030 HcalSubdetector subdet() const { return HcalOther; }
0031
0032 int zside() const { return 1; }
0033
0034 int irow() const;
0035 int irowAbs() const { return ((id_ >> HcalDetId::kHcalEtaOffset1) & HcalDetId::kHcalEtaMask1); }
0036
0037 int icol() const;
0038 int icolAbs() const { return (id_ & HcalDetId::kHcalPhiMask1); }
0039
0040 int depth() const;
0041
0042 static const AHCalDetId Undefined;
0043
0044 private:
0045 static constexpr int kMaxRowCol = 16;
0046 static constexpr uint32_t kHcalDepthMask = 0x3F;
0047 };
0048
0049 std::ostream& operator<<(std::ostream&, const AHCalDetId& id);
0050
0051 #endif