CMS 3D CMS Logo

EcalPnDiodeDetId.cc
Go to the documentation of this file.
3 
5 
6 EcalPnDiodeDetId::EcalPnDiodeDetId(uint32_t rawid) : DetId(rawid) {}
7 
8 EcalPnDiodeDetId::EcalPnDiodeDetId(int EcalSubDetectorId, int DCCId, int PnId) : DetId(Ecal, EcalLaserPnDiode) {
9  if ((DCCId < MIN_DCCID) || (DCCId > MAX_DCCID) || (PnId < MIN_PNID) || (PnId > MAX_PNID) ||
10  (EcalSubDetectorId != EcalBarrel && EcalSubDetectorId != EcalEndcap))
11  throw cms::Exception("InvalidDetId") << "EcalPnDiodeDetId: Cannot create object. Indexes out of bounds.";
12  id_ |= ((((EcalSubDetectorId == EcalBarrel) ? (0) : (1)) << 11) | ((DCCId & 0x7F) << 4) | (PnId & 0xF));
13 }
14 
16  if (!gen.null() && (gen.det() != Ecal || gen.subdetId() != EcalLaserPnDiode)) {
17  throw cms::Exception("InvalidDetId");
18  }
19  id_ = gen.rawId();
20 }
21 
23  if (!gen.null() && (gen.det() != Ecal || gen.subdetId() != EcalLaserPnDiode)) {
24  throw cms::Exception("InvalidDetId");
25  }
26  id_ = gen.rawId();
27  return *this;
28 }
29 
30 int EcalPnDiodeDetId::hashedIndex() const { throw cms::Exception("MethodNotImplemented"); }
31 
32 std::ostream& operator<<(std::ostream& s, const EcalPnDiodeDetId& id) {
33  return s << "(EcalPnDiode " << id.iEcalSubDetectorId() << ',' << id.iDCCId() << ',' << id.iPnId() << ')';
34 }
EcalLaserPnDiode
Definition: EcalSubdetector.h:10
EcalPnDiodeDetId
Definition: EcalPnDiodeDetId.h:22
EcalBarrel
Definition: EcalSubdetector.h:10
DetId
Definition: DetId.h:17
alignCSCRings.s
s
Definition: alignCSCRings.py:92
gen
Definition: PythiaDecays.h:13
EcalPnDiodeDetId::hashedIndex
int hashedIndex() const
get a compact index for arrays [TODO: NEEDS WORK]
Definition: EcalPnDiodeDetId.cc:30
operator<<
std::ostream & operator<<(std::ostream &s, const EcalPnDiodeDetId &id)
Definition: EcalPnDiodeDetId.cc:32
EcalEndcap
Definition: EcalSubdetector.h:10
EcalPnDiodeDetId::MIN_PNID
static const int MIN_PNID
Definition: EcalPnDiodeDetId.h:39
EcalPnDiodeDetId.h
DetId::id_
uint32_t id_
Definition: DetId.h:69
DetId::Ecal
Definition: DetId.h:27
EcalPnDiodeDetId::EcalPnDiodeDetId
EcalPnDiodeDetId()
Definition: EcalPnDiodeDetId.cc:4
EcalPnDiodeDetId::operator=
EcalPnDiodeDetId & operator=(const DetId &id)
Definition: EcalPnDiodeDetId.cc:22
Exception
Definition: hltDiff.cc:246
Exception.h
EcalPnDiodeDetId::MAX_DCCID
static const int MAX_DCCID
Definition: EcalPnDiodeDetId.h:36
EcalPnDiodeDetId::MIN_DCCID
static const int MIN_DCCID
Definition: EcalPnDiodeDetId.h:37
EcalPnDiodeDetId::MAX_PNID
static const int MAX_PNID
Definition: EcalPnDiodeDetId.h:38