Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:04:17

0001 #ifndef HcalOtherDetId_h_included
0002 #define HcalOtherDetId_h_included 1
0003 
0004 #include <ostream>
0005 #include "DataFormats/DetId/interface/DetId.h"
0006 #include "DataFormats/HcalDetId/interface/HcalSubdetector.h"
0007 
0008 /** \class HcalOtherDetId
0009     
0010 Detector id class which serves as base class for other HCAL-related 
0011 det ids  (cascaded from top bit).
0012 
0013 Packing:
0014 
0015 [31:28] Global det == HCAL
0016 [27:25] HCAL subdet == Other
0017 [24:20] Other subdet id
0018 [19:0]  Available for use
0019 
0020 \author J. Mans - Minnesota
0021 */
0022 class HcalOtherDetId : public DetId {
0023 public:
0024   /** Constructor from a generic cell id */
0025   HcalOtherDetId(const DetId& id);
0026   /** Assignment from a generic cell id */
0027   HcalOtherDetId& operator=(const DetId& id);
0028 
0029   /// get the category
0030   HcalOtherSubdetector subdet() const { return HcalOtherSubdetector((id_ >> 20) & 0x1F); }
0031 
0032 protected:
0033   /** Constructor of a null id */
0034   HcalOtherDetId();
0035   /** Constructor from a raw value */
0036   explicit HcalOtherDetId(uint32_t rawid);
0037   /** \brief Constructor from signed ieta, iphi plus composite type and composite data */
0038   HcalOtherDetId(HcalOtherSubdetector subdet);
0039 };
0040 
0041 #endif  // HcalOtherDetId_h_included