File indexing completed on 2024-04-06 12:29:47
0001 #ifndef SimG4CMS_HcalNumberingFromPS_h
0002 #define SimG4CMS_HcalNumberingFromPS_h
0003
0004 #include "Geometry/CaloGeometry/interface/CaloNumberingScheme.h"
0005 #include "Geometry/HcalCommonData/interface/HcalNumberingFromDDD.h"
0006 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0007 #
0008 #include <cstdint>
0009 #include <vector>
0010
0011 class HcalNumberingFromPS {
0012 public:
0013 HcalNumberingFromPS(const edm::ParameterSet&);
0014 ~HcalNumberingFromPS() {}
0015
0016 HcalNumberingFromDDD::HcalID unitID(int det, int layer, int depth, const math::XYZVectorD& pos) const;
0017 std::pair<int, int> getEta(const int& det, const math::XYZVectorD& pos) const;
0018 std::pair<int, int> getPhi(const int& det, const int& ieta, const double& phi) const;
0019
0020 private:
0021 static const int nEtas_ = 29;
0022 std::vector<double> etaTable_, phibin_, phioff_;
0023 std::vector<int> etaMin_, etaMax_, depthHBHE_;
0024 int etaHBHE_, depth29Mx_;
0025 double rMinHO_;
0026 std::vector<double> zHO_;
0027 std::vector<std::vector<int> > segmentation_;
0028 };
0029
0030 #endif