CMS 3D CMS Logo

HcalTrigTowerDetId.cc
Go to the documentation of this file.
4 
6 
8 }
9 
10 
12 }
13 
15  id_|=((ieta>0)?(kHcalZsideMask|(ieta<<kHcalEtaOffset)):((-ieta)<<kHcalEtaOffset)) |
16  (iphi&kHcalPhiMask);
17 // Default to depth = 0 & version = 0
18 }
19 
21  const int ones = depth % 10;
22  const int tens = (depth - ones) / 10;
23  // version convension 0 : default for 3x2 TP; 1, 2, 3 : for future & currently version = 1 is for 1x1 TP
24  // Note that in this conversion, depth can take values from 0 to 9 for different purpose
25  // -> so depth should be = ones!
27  ((ieta>0)?(kHcalZsideMask|(ieta<<kHcalEtaOffset)):((-ieta)<<kHcalEtaOffset)) |
28  (iphi&kHcalPhiMask);
29 
30  const int version = tens;
31  if( version > 9 ){ // do NOT envision to have versions over 9...
32  edm::LogError("HcalTrigTowerDetId")<<"in its ctor using depth, version larger than 9 (too many of it!)?"<<std::endl;
33  }
34 
35  id_|=((version&kHcalVersMask)<<kHcalVersOffset);
36 }
37 
39  id_|=((depth&kHcalDepthMask)<<kHcalDepthOffset) |
40  ((ieta>0)?(kHcalZsideMask|(ieta<<kHcalEtaOffset)):((-ieta)<<kHcalEtaOffset)) |
41  (iphi&kHcalPhiMask);
42  id_|=((version&kHcalVersMask)<<kHcalVersOffset);
43 }
44 
46  if (!gen.null() && (gen.det()!=Hcal || gen.subdetId()!=HcalTriggerTower)) {
47  throw cms::Exception("Invalid DetId") << "Cannot initialize HcalTrigTowerDetId from " << std::hex << gen.rawId() << std::dec;
48  }
49  id_=gen.rawId();
50 }
51 
53  id_|=((version&kHcalVersMask)<<kHcalVersOffset);
54 }
55 
57  if (!gen.null() && (gen.det()!=Hcal || gen.subdetId()!=HcalTriggerTower)) {
58  throw cms::Exception("Invalid DetId") << "Cannot assign HcalTrigTowerDetId from " << std::hex << gen.rawId() << std::dec;
59  }
60  id_=gen.rawId();
61  return *this;
62 }
63 
64 std::ostream& operator<<(std::ostream& s,const HcalTrigTowerDetId& id) {
65  s << "(HcalTrigTower v" << id.version() << ": " << id.ieta() << ',' << id.iphi();
66  if (id.depth()>0) s << ',' << id.depth();
67  return s << ')';
68 }
69 
70 
static const int kHcalVersMask
void setVersion(int version)
static const int kHcalEtaOffset
int ieta() const
get the tower ieta
int depth() const
get the depth (zero for LHC Run 1, may be nonzero for later runs)
uint32_t rawId() const
get the raw id
Definition: DetId.h:44
static const int kHcalDepthMask
int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:38
static const int kHcalPhiMask
static const int kHcalDepthOffset
Definition: DetId.h:18
HcalTrigTowerDetId & operator=(const DetId &id)
static const int kHcalVersOffset
int version() const
get the version code for the trigger tower
uint32_t id_
Definition: DetId.h:56
bool null() const
is this a null id ?
Definition: DetId.h:46
static const HcalTrigTowerDetId Undefined
static const int kHcalZsideMask
std::ostream & operator<<(std::ostream &s, const HcalTrigTowerDetId &id)
Detector det() const
get the detector field from this detid
Definition: DetId.h:36
int iphi() const
get the tower iphi