CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_1/src/Geometry/HcalTowerAlgo/interface/HcalTrigTowerGeometry.h

Go to the documentation of this file.
00001 #ifndef HcalTrigTowerGeometry_h
00002 #define HcalTrigTowerGeometry_h
00003 
00004 #include "Geometry/CaloTopology/interface/HcalTopology.h"
00005 #include "DataFormats/DetId/interface/DetId.h"
00006 #include <vector>
00007 class HcalTrigTowerDetId;
00008 class HcalDetId;
00009 
00010 class HcalTrigTowerGeometry {
00011 public:
00012 
00013   HcalTrigTowerGeometry();
00014 
00015   void setupHF(bool useShortFibers, bool useQuadRings);
00016   
00018   std::vector<HcalTrigTowerDetId> towerIds(const HcalDetId & cellId) const;
00019   std::vector<HcalDetId> detIds(const HcalTrigTowerDetId &) const;
00020 
00022   //std::vector<DetId> getValidDetIds(DetId::Detector det, int subdet) const;
00023 
00025   int nPhiBins(int ieta) const {
00026     return (abs(ieta) < firstHFTower()) ? 72 : 18;
00027   }
00028 
00029   int firstHFTower() const {return 29;} 
00030   int nTowers() const {return 32;}
00031 
00034   int hfTowerEtaSize(int ieta) const;
00035 
00037   int firstHFRingInTower(int ietaTower) const;
00038 
00040   void towerEtaBounds(int ieta, double & eta1, double & eta2) const;
00041 
00042 private:
00043   HcalTopology theTopology;
00044   bool useShortFibers_;
00045   bool useHFQuadPhiRings_;
00046 };
00047 
00048 #endif
00049