CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CastorTopology.h
Go to the documentation of this file.
1 #ifndef GEOMETRY_CALOTOPOLOGY_CASTORTOPOLOGY_H
2 #define GEOMETRY_CALOTOPOLOGY_CASTORTOPOLOGY_H 1
3 
4 #include <vector>
7 
14 public:
15 
18  void exclude(const HcalCastorDetId& id);
20  void exclude(int zside);
22  void exclude(int zside, HcalCastorDetId::Section section);
24  int exclude(int zside, HcalCastorDetId::Section section1, int isec1, int imod1, HcalCastorDetId::Section section2, int isec2, int imod2);
25 
27  virtual bool valid(const HcalCastorDetId& id) const;
28 
30  virtual bool validRaw(const HcalCastorDetId& id) const;
31 
33  virtual std::vector<DetId> incSector(const DetId& id) const;
34 
36  virtual std::vector<DetId> incModule(const DetId& id) const;
37 
38  //** I have to put this here since they inherit from CaloSubdetectorTopology
39  virtual std::vector<DetId> east(const DetId& id) const;
40  virtual std::vector<DetId> west(const DetId& id) const;
41  virtual std::vector<DetId> north(const DetId& id) const;
42  virtual std::vector<DetId> south(const DetId& id) const;
43  virtual std::vector<DetId> up(const DetId& id) const;
44  virtual std::vector<DetId> down(const DetId& id) const;
45 
46  // how many channels (deph) for a given section
47  int ncells(HcalCastorDetId::Section section) const;
48 
49  //return first and last cell of each section
50  int firstCell(HcalCastorDetId::Section section)const;
51  int lastCell(HcalCastorDetId::Section section)const;
52 
53  private:
54 
55  std::vector<HcalCastorDetId> exclusionList_;
56 
58 
60 
61  bool isExcluded(const HcalCastorDetId& id) const;
62 
63  int firstEMModule() const {return firstEMModule_;}
64  int firstHADModule() const {return firstHADModule_;}
65  int lastEMModule() const {return lastEMModule_;}
66  int lastHADModule() const {return lastHADModule_;}
67 
68 };
69 
70 
71 #endif
72 
virtual std::vector< DetId > incModule(const DetId &id) const
virtual std::vector< DetId > up(const DetId &id) const
virtual std::vector< DetId > west(const DetId &id) const
virtual bool validRaw(const HcalCastorDetId &id) const
virtual std::vector< DetId > south(const DetId &id) const
virtual std::vector< DetId > north(const DetId &id) const
int lastHADModule() const
virtual unsigned int ncells() const
return a count of valid cells (for dense indexing use)
virtual std::vector< DetId > down(const DetId &id) const
virtual bool valid(const HcalCastorDetId &id) const
Definition: DetId.h:20
int lastEMModule() const
virtual std::vector< DetId > incSector(const DetId &id) const
virtual std::vector< DetId > east(const DetId &id) const
int firstCell(HcalCastorDetId::Section section) const
bool isExcluded(const HcalCastorDetId &id) const
int firstEMModule() const
int lastCell(HcalCastorDetId::Section section) const
int firstHADModule() const
void exclude(const HcalCastorDetId &id)
std::vector< HcalCastorDetId > exclusionList_