00001 #ifndef ECALDETID_HODOSCOPEDETID_H 00002 #define ECALDETID_HODOSCOPEDETID_H 00003 00004 #include <ostream> 00005 #include <cmath> 00006 #include "DataFormats/DetId/interface/DetId.h" 00007 #include "DataFormats/EcalDetId/interface/EcalSubdetector.h" 00008 00017 class HodoscopeDetId : public DetId { 00018 public: 00020 HodoscopeDetId(); 00022 HodoscopeDetId(uint32_t rawid); 00025 HodoscopeDetId(int indexPlane, int indexFibr); 00027 HodoscopeDetId(const DetId& id); 00029 HodoscopeDetId& operator=(const DetId& id); 00030 00032 EcalSubdetector subdet() const { return EcalSubdetector(subdetId()); } 00033 00034 int planeId() const { return id_&0x3 ; } 00035 00036 int fibrId() const { return (id_>>2)&0x3F ; } 00037 00039 static const int MIN_PLANE = 0; 00040 static const int MAX_PLANE = 3; 00041 static const int MIN_FIBR = 0; 00042 static const int MAX_FIBR = 63; 00043 00044 }; 00045 00046 std::ostream& operator<<(std::ostream& s,const HodoscopeDetId& id); 00047 00048 00049 #endif