CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CaloTowerDetId.h
Go to the documentation of this file.
1 #ifndef DATAFORMATS_CALOTOWERS_CALOTOWERDETID_H
2 #define DATAFORMATS_CALOTOWERS_CALOTOWERDETID_H 1
3 
5 
14 class CaloTowerDetId : public DetId {
15 public:
19  explicit CaloTowerDetId(uint32_t rawid);
21  CaloTowerDetId(int tower_ieta, int tower_iphi);
23  CaloTowerDetId(const DetId& id);
25  CaloTowerDetId& operator=(const DetId& id);
26 
28  int zside() const { return (id_&0x2000)?(1):(-1); }
30  int ietaAbs() const { return (id_>>7)&0x3f; }
32  int ieta() const { return zside()*ietaAbs(); }
34  int iphi() const;
35 
36  static const int SubdetId = 1;
37 
38  static bool validDetId( int ie , int ip ) ;
39 
40  uint32_t denseIndex() const ;
41 
42  static CaloTowerDetId detIdFromDenseIndex( uint32_t din ) ;
43 
44  static bool validDenseIndex( uint32_t din ) { return ( din < kSizeForDenseIndexing ) ; }
45 
46  enum { kMaxIEta = 41 ,
47  kMaxIPhi = 72 ,
51  kBarIEta = 20 ,
52  kEndIEta = 39 ,
61  kNIndex = 2*kAllNTot } ;
62 
64 
65 };
66 
67 std::ostream& operator<<(std::ostream&, const CaloTowerDetId& id);
68 
69 #endif
static bool validDetId(int ie, int ip)
int ietaAbs() const
get the absolute value of the tower ieta
uint32_t denseIndex() const
std::ostream & operator<<(std::ostream &out, const ALILine &li)
Definition: ALILine.cc:187
static CaloTowerDetId detIdFromDenseIndex(uint32_t din)
CaloTowerDetId & operator=(const DetId &id)
static const int SubdetId
int iphi() const
get the tower iphi
Definition: DetId.h:20
uint32_t id_
Definition: DetId.h:57
int zside() const
get the z-side of the tower (1/-1)
static bool validDenseIndex(uint32_t din)
int ieta() const
get the tower ieta