File indexing completed on 2024-04-06 12:04:03
0001 #ifndef ECALDETID_ECALPNDIODEDETID_H
0002 #define ECALDETID_ECALPNDIODEDETID_H
0003
0004 #include <ostream>
0005 #include "DataFormats/DetId/interface/DetId.h"
0006 #include "DataFormats/EcalDetId/interface/EcalSubdetector.h"
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 class EcalPnDiodeDetId : public DetId {
0023 public:
0024
0025 EcalPnDiodeDetId();
0026
0027 EcalPnDiodeDetId(uint32_t rawid);
0028
0029
0030 EcalPnDiodeDetId(int EcalSubDetectorId, int DCCId, int PnId);
0031
0032 EcalPnDiodeDetId(const DetId& id);
0033
0034 EcalPnDiodeDetId& operator=(const DetId& id);
0035
0036 static const int MAX_DCCID = 54;
0037 static const int MIN_DCCID = 1;
0038 static const int MAX_PNID = 15;
0039 static const int MIN_PNID = 1;
0040
0041
0042 int iEcalSubDetectorId() const { return (id_ & 0x800) ? (EcalEndcap) : (EcalBarrel); }
0043
0044 int iDCCId() const { return (id_ >> 4) & 0x7F; }
0045
0046 int iPnId() const { return id_ & 0xF; }
0047
0048 int hashedIndex() const;
0049 };
0050
0051 std::ostream& operator<<(std::ostream&, const EcalPnDiodeDetId& id);
0052
0053 #endif