CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC4_patch1/src/Geometry/CaloGeometry/interface/CaloGenericDetId.h

Go to the documentation of this file.
00001 #ifndef CALOGEOMETRY_CALOGENERICDETID_H
00002 #define CALOGEOMETRY_CALOGENERICDETID_H
00003 
00004 #include "DataFormats/DetId/interface/DetId.h"
00005 #include "DataFormats/EcalDetId/interface/EBDetId.h"
00006 #include "DataFormats/EcalDetId/interface/EEDetId.h"
00007 #include "DataFormats/EcalDetId/interface/ESDetId.h"
00008 #include "DataFormats/HcalDetId/interface/HcalZDCDetId.h"
00009 #include "DataFormats/HcalDetId/interface/HcalCastorDetId.h"
00010 #include "DataFormats/CaloTowers/interface/CaloTowerDetId.h"
00011 
00012 class CaloGenericDetId : public DetId 
00013 {
00014    public:
00015 //      CaloGenericDetId() {}
00016       CaloGenericDetId( uint32_t rawid ) : DetId( rawid ) {}
00017 
00018       CaloGenericDetId( const DetId& id ) : DetId ( id ) {}
00019 
00020       CaloGenericDetId( DetId::Detector iDet ,
00021                         int             iSub ,
00022                         uint32_t        iDenseIndex  ) ; // to check valid iDenseIndex
00023 
00024       bool     validDetId() const ;
00025 
00026       uint32_t denseIndex() const ;
00027 
00028       uint32_t sizeForDenseIndexing() const ;
00029 
00030       bool isEcal()      const { return det() == DetId::Ecal ; }
00031       bool isEB()        const { return isEcal() && subdetId() == EBDetId::Subdet ; }
00032       bool isEE()        const { return isEcal() && subdetId() == EEDetId::Subdet ; }
00033       bool isES()        const { return isEcal() && subdetId() == ESDetId::Subdet ; }
00034       bool isCalo()      const { return det() == DetId::Calo ; }
00035       bool isHcal()      const { return det() == DetId::Hcal ; }
00036       bool isZDC()       const { return isCalo() && subdetId() == HcalZDCDetId::SubdetectorId ; }
00037       bool isCastor()    const { return isCalo() && subdetId() == HcalCastorDetId::SubdetectorId ; }
00038       bool isCaloTower() const { return isCalo() && subdetId() == CaloTowerDetId::SubdetId ; } 
00039 };
00040 
00041 std::ostream& operator<<(std::ostream& s,const CaloGenericDetId& id);
00042 
00043 
00044 #endif