CMS 3D CMS Logo

HcalLayerDepthMap.h
Go to the documentation of this file.
1 #ifndef Geometry_HcalTowerAlgo_HcalLayerDepthMap_h
2 #define Geometry_HcalTowerAlgo_HcalLayerDepthMap_h
3 
12 #include <iostream>
13 #include <iomanip>
14 #include <map>
15 #include <string>
16 #include <vector>
17 
19 public:
22  void initialize(const int subdet,
23  const int ietaMax,
24  const int dep16C,
25  const int dep29C,
26  const double wtl0C,
27  std::vector<int> const& iphi,
28  std::vector<int> const& ieta,
29  std::vector<int> const& layer,
30  std::vector<int> const& depth);
31  int getSubdet() const { return subdet_; }
32  int getDepth(const int subdet, const int ieta, const int iphi, const int zside, const int layer) const;
33  int getDepth16(const int subdet, const int iphi, const int zside) const;
34  int getDepthMin(const int subdet, const int iphi, const int zside) const;
35  int getDepthMax(const int subdet, const int iphi, const int zside) const;
36  int getDepthMax(const int subdet, const int ieta, const int iphi, const int zside) const;
37  std::pair<int, int> getDepths(const int eta) const;
38  int getLayerFront(const int subdet, const int ieta, const int iphi, const int zside, const int depth) const;
39  int getLayerBack(const int subdet, const int ieta, const int iphi, const int zside, const int depth) const;
40  void getLayerDepth(
41  const int subdet, const int ieta, const int iphi, const int zside, std::map<int, int>& layers) const;
42  void getLayerDepth(const int ieta, std::map<int, int>& layers) const;
43  double getLayer0Wt(const int subdet, const int iphi, const int zside) const;
44  int getMaxDepthLastHE(const int subdet, const int iphi, const int zside) const;
45  const std::vector<int>& getPhis() const { return iphi_; }
46  bool isValid(const int det, const int phi, const int zside) const;
47  int validDet(std::vector<int>& phis) const;
48  std::pair<int, int> validEta() const { return std::pair<int, int>(ietaMin_, ietaMax_); }
49 
50 private:
51  static const int maxLayers_ = 18;
52  int subdet_; // Subdet (HB=1, HE=2)
53  int ietaMin_; // Minimum eta value
54  int ietaMax_; // Maximum eta value
55  int depthMin_; // Minimum depth
56  int depthMax_; // Maximum depth
57  int dep16C_; // Max/Min layer # for HB/HE (ieta=16)
58  int dep29C_; // Max Depth of the last HE
59  double wtl0C_; // Layer 0 weight
60  std::vector<int> iphi_; // phi*zside values
61  std::map<std::pair<int, int>, int> layer2Depth_; // Layer to depth map
62  std::map<std::pair<int, int>, int> depth2LayerF_; // Depth to front layer map
63  std::map<std::pair<int, int>, int> depth2LayerB_; // Depth to back layer map
64  std::map<int, std::pair<int, int>> depthsEta_; // Depth range for each eta
65 };
66 
67 #endif
double getLayer0Wt(const int subdet, const int iphi, const int zside) const
int getDepth(const int subdet, const int ieta, const int iphi, const int zside, const int layer) const
void initialize(const int subdet, const int ietaMax, const int dep16C, const int dep29C, const double wtl0C, std::vector< int > const &iphi, std::vector< int > const &ieta, std::vector< int > const &layer, std::vector< int > const &depth)
bool isValid(const int det, const int phi, const int zside) const
int getLayerFront(const int subdet, const int ieta, const int iphi, const int zside, const int depth) const
std::map< std::pair< int, int >, int > depth2LayerB_
int zside(DetId const &)
std::map< std::pair< int, int >, int > layer2Depth_
constexpr std::array< uint8_t, layerIndexSize > layer
int getMaxDepthLastHE(const int subdet, const int iphi, const int zside) const
std::pair< int, int > getDepths(const int eta) const
const std::vector< int > & getPhis() const
std::map< int, std::pair< int, int > > depthsEta_
std::map< std::pair< int, int >, int > depth2LayerF_
int getLayerBack(const int subdet, const int ieta, const int iphi, const int zside, const int depth) const
int getDepthMin(const int subdet, const int iphi, const int zside) const
std::vector< int > iphi_
int getDepthMax(const int subdet, const int iphi, const int zside) const
int getDepth16(const int subdet, const int iphi, const int zside) const
void getLayerDepth(const int subdet, const int ieta, const int iphi, const int zside, std::map< int, int > &layers) const
static const int maxLayers_
std::pair< int, int > validEta() const
int validDet(std::vector< int > &phis) const