CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
HcalDDDSimConstants Class Reference

#include <HcalDDDSimConstants.h>

Public Member Functions

HcalCellType::HcalCell cell (const int &det, const int &zside, const int &depth, const int &etaR, const int &iphi) const
 
int findDepth (const int &det, const int &eta, const int &phi, const int &zside, const int &lay) const
 
unsigned int findLayer (const int &layer, const std::vector< HcalParameters::LayerItem > &layerGroup) const
 
std::vector< std::pair< double, double > > getConstHBHE (const int &type) const
 
int getDepthEta16 (const int &det, const int &phi, const int &zside) const
 
int getDepthEta16M (const int &det) const
 
int getDepthEta29 (const int &phi, const int &zside, const int &i) const
 
int getDepthEta29M (const int &i, const bool &planOne) const
 
std::pair< int, double > getDetEta (const double &eta, const int &depth) const
 
int getEta (const int &det, const int &lay, const double &hetaR) const
 
std::pair< int, int > getEtaDepth (const int &det, int etaR, const int &phi, const int &zside, int depth, const int &lay) const
 
double getEtaHO (const double &etaR, const double &x, const double &y, const double &z) const
 
const std::vector< double > & getEtaTableHF () const
 
int getFrontLayer (const int &det, const int &eta) const
 
const std::vector< double > & getGparHF () const
 
const std::vector< HcalDetId > & getIdHF2QIE () const
 
std::pair< int, int > getiEtaRange (const int &i) const
 
int getLastLayer (const int &det, const int &eta) const
 
double getLayer0Wt (const int &det, const int &phi, const int &zside) const
 
int getLayerBack (const int &det, const int &eta, const int &phi, const int &zside, const int &depth) const
 
int getLayerFront (const int &det, const int &eta, const int &phi, const int &zside, const int &depth) const
 
int getLayerMax (const int &eta, const int &depth) const
 
int getMaxDepth (const int &type) const
 
int getMaxDepth (const int &det, const int &eta, const int &phi, const int &zside, const bool &partialOnly) const
 
std::pair< int, int > getMaxDepthDet (const int &i) const
 
int getMinDepth (const int &det, const int &eta, const int &phi, const int &zside, const bool &partialOnly) const
 
std::pair< int, int > getModHalfHBHE (const int &type) const
 
std::pair< double, double > getPhiCons (const int &det, const int &ieta) const
 
std::vector< std::pair< int, double > > getPhis (const int &subdet, const int &ieta) const
 
const std::vector< double > & getPhiTableHF () const
 
const std::vector< double > & getRTableHF () const
 
std::vector< HcalCellTypeHcalCellTypes () const
 
std::vector< HcalCellTypeHcalCellTypes (const HcalSubdetector &, int ieta=-1, int depth=-1) const
 
 HcalDDDSimConstants (const HcalParameters *hp)
 
bool isBH () const
 
bool isHE () const
 
const HcalLayerDepthMapldMap () const
 
int maxHFDepth (const int &ieta, const int &iphi) const
 
unsigned int numberOfCells (const HcalSubdetector &) const
 
const HcalParametersparameter () const
 
int phiNumber (const int &phi, const int &unit) const
 
void printTiles () const
 
int unitPhi (const int &det, const int &etaR) const
 
int unitPhi (const double &dphi) const
 
 ~HcalDDDSimConstants ()
 

Private Member Functions

double deltaEta (const int &det, const int &eta, const int &depth) const
 
double getEta (const int &det, const int &etaR, const int &zside, int depth=1) const
 
double getEta (const double &r, const double &z) const
 
double getGain (const HcalSubdetector &subdet, const int &depth) const
 
int getShift (const HcalSubdetector &subdet, const int &depth) const
 
void initialize ()
 
unsigned int layerGroup (int eta, int i) const
 
unsigned int layerGroup (int det, int eta, int phi, int zside, int i) const
 
unsigned int layerGroupSize (int eta) const
 
void printTileHB (const int &eta, const int &phi, const int &zside, const int &depth) const
 
void printTileHE (const int &eta, const int &phi, const int &zside, const int &depth) const
 

Private Attributes

int depthEta16 [2]
 
int depthEta29 [2]
 
std::pair< int, int > depthMaxDf_
 
std::pair< int, int > depthMaxSp_
 
std::vector< int > depths [nDepthMax]
 
double dlShort
 
double dzVcal
 
double etaHO [4]
 
const HcalParametershpar
 
std::vector< HcalDetIdidHF2QIE
 
bool isBH_
 
int layBHB [3]
 
int layBHE [4]
 
int layFHB [2]
 
int layFHE [3]
 
HcalLayerDepthMap ldmap_
 
std::vector< int > maxDepth
 
int nDepth
 
int nEta
 
int nmodHB
 
int nmodHE
 
int nPhiF
 
int nR
 
int nzHB
 
int nzHE
 
double rminHO
 
double zVcal
 

Static Private Attributes

static const int maxLayer_ = 18
 
static const int maxLayerHB_ = 16
 
static const int nDepthMax = 9
 

Detailed Description

this class reads the constant section of the hcal-sim-numbering xml-file

Author
Sunanda Banerjee, SINP sunan.nosp@m.da.b.nosp@m.anerj.nosp@m.ee@c.nosp@m.ern.c.nosp@m.h

Definition at line 24 of file HcalDDDSimConstants.h.

Constructor & Destructor Documentation

◆ HcalDDDSimConstants()

HcalDDDSimConstants::HcalDDDSimConstants ( const HcalParameters hp)

Definition at line 10 of file HcalDDDSimConstants.cc.

References HcalCellTypes(), and initialize().

10  : hpar(hp) {
11 #ifdef EDM_ML_DEBUG
12  edm::LogVerbatim("HCalGeom") << "HcalDDDSimConstants::HcalDDDSimConstants (const HcalParameters* hp) constructor";
13 #endif
14 
15  initialize();
16 #ifdef EDM_ML_DEBUG
17  std::vector<HcalCellType> cellTypes = HcalCellTypes();
18  edm::LogVerbatim("HCalGeom") << "HcalDDDSimConstants: " << cellTypes.size() << " cells of type HCal (All)";
19 #endif
20 }
Log< level::Info, true > LogVerbatim
std::vector< HcalCellType > HcalCellTypes() const
const HcalParameters * hpar

◆ ~HcalDDDSimConstants()

HcalDDDSimConstants::~HcalDDDSimConstants ( )

Definition at line 22 of file HcalDDDSimConstants.cc.

22  {
23 #ifdef EDM_ML_DEBUG
24  edm::LogVerbatim("HCalGeom") << "HcalDDDSimConstants::destructed!!!";
25 #endif
26 }
Log< level::Info, true > LogVerbatim

Member Function Documentation

◆ cell()

HcalCellType::HcalCell HcalDDDSimConstants::cell ( const int &  det,
const int &  zside,
const int &  depth,
const int &  etaR,
const int &  iphi 
) const

Definition at line 28 of file HcalDDDSimConstants.cc.

References d1, deltaEta(), hcalRecHitTable_cff::depth, HcalParameters::drHB, HcalParameters::dzHE, PVValHelper::eta, HcalParameters::etaMax, HcalParameters::etaMin, getEta(), HcalBarrel, HcalEndcap, HcalForward, HcalOuter, hpar, hcalRecHitTable_cff::iphi, maxDepth, maxLayerHB_, nEta, HcalParameters::noff, nR, convertSQLiteXML::ok, phi, HcalParameters::phibin, HcalParameters::phioff, HcalParameters::phitable, HcalParameters::rHB, HcalParameters::rTable, createJobs::tmp, unitPhi(), HcalParameters::zHE, and ecaldqm::zside().

Referenced by HcalCellTypes(), and HcalTestAnalysis::update().

29  {
30  double etaMn = hpar->etaMin[0];
31  double etaMx = hpar->etaMax[0];
32  if (idet == static_cast<int>(HcalEndcap)) {
33  etaMn = hpar->etaMin[1];
34  etaMx = hpar->etaMax[1];
35  } else if (idet == static_cast<int>(HcalForward)) {
36  etaMn = hpar->etaMin[2];
37  etaMx = hpar->etaMax[2];
38  }
39  double eta = 0, deta = 0, phi = 0, dphi = 0, rz = 0, drz = 0;
40  bool ok = false, flagrz = true;
41  if ((idet == static_cast<int>(HcalBarrel) || idet == static_cast<int>(HcalEndcap) ||
42  idet == static_cast<int>(HcalOuter) || idet == static_cast<int>(HcalForward)) &&
43  etaR >= etaMn && etaR <= etaMx && depth > 0)
44  ok = true;
45  if (idet == static_cast<int>(HcalEndcap) && depth > static_cast<int>(hpar->zHE.size()))
46  ok = false;
47  else if (idet == static_cast<int>(HcalBarrel) && depth > maxLayerHB_ + 1)
48  ok = false;
49  else if (idet == static_cast<int>(HcalOuter) && depth != 4)
50  ok = false;
51  else if (idet == static_cast<int>(HcalForward) && depth > maxDepth[2])
52  ok = false;
53  if (ok) {
54  eta = getEta(idet, etaR, zside, depth);
55  deta = deltaEta(idet, etaR, depth);
56  double fibin, fioff;
57  if (idet == static_cast<int>(HcalBarrel) || idet == static_cast<int>(HcalOuter)) {
58  fioff = hpar->phioff[0];
59  fibin = hpar->phibin[etaR - 1];
60  } else if (idet == static_cast<int>(HcalEndcap)) {
61  fioff = hpar->phioff[1];
62  fibin = hpar->phibin[etaR - 1];
63  } else {
64  fioff = hpar->phioff[2];
65  fibin = hpar->phitable[etaR - hpar->etaMin[2]];
66  if (unitPhi(fibin) > 2)
67  fioff = hpar->phioff[4];
68  }
69  phi = -fioff + (iphi - 0.5) * fibin;
70  dphi = 0.5 * fibin;
71  if (idet == static_cast<int>(HcalForward)) {
72  int ir = nR + hpar->etaMin[2] - etaR - 1;
73  if (ir > 0 && ir < nR) {
74  rz = 0.5 * (hpar->rTable[ir] + hpar->rTable[ir - 1]);
75  drz = 0.5 * (hpar->rTable[ir] - hpar->rTable[ir - 1]);
76  } else {
77  ok = false;
78 #ifdef EDM_ML_DEBUG
79  edm::LogVerbatim("HCalGeom") << "HcalDDDSimConstants: wrong eta " << etaR << " (" << ir << "/" << nR
80  << ") Detector " << idet;
81 #endif
82  }
83  } else if (etaR <= nEta) {
84  int laymin(depth), laymax(depth);
85  if (idet == static_cast<int>(HcalOuter)) {
86  laymin =
87  (etaR > hpar->noff[2]) ? (static_cast<int>(hpar->zHE.size())) : (static_cast<int>(hpar->zHE.size())) - 1;
88  laymax = (static_cast<int>(hpar->zHE.size()));
89  }
90  double d1 = 0, d2 = 0;
91  if (idet == static_cast<int>(HcalEndcap)) {
92  flagrz = false;
93  d1 = hpar->zHE[laymin - 1] - hpar->dzHE[laymin - 1];
94  d2 = hpar->zHE[laymax - 1] + hpar->dzHE[laymax - 1];
95  } else {
96  d1 = hpar->rHB[laymin - 1] - hpar->drHB[laymin - 1];
97  d2 = hpar->rHB[laymax - 1] + hpar->drHB[laymax - 1];
98  }
99  rz = 0.5 * (d2 + d1);
100  drz = 0.5 * (d2 - d1);
101  } else {
102  ok = false;
103  edm::LogWarning("HCalGeom") << "HcalDDDSimConstants: wrong depth " << depth << " or etaR " << etaR
104  << " for detector " << idet;
105  }
106  } else {
107  ok = false;
108  edm::LogWarning("HCalGeom") << "HcalDDDSimConstants: wrong depth " << depth << " det " << idet;
109  }
110  HcalCellType::HcalCell tmp(ok, eta, deta, phi, dphi, rz, drz, flagrz);
111 
112 #ifdef EDM_ML_DEBUG
113  edm::LogVerbatim("HCalGeom") << "HcalDDDSimConstants: det/side/depth/etaR/"
114  << "phi " << idet << "/" << zside << "/" << depth << "/" << etaR << "/" << iphi
115  << " Cell Flag " << tmp.ok << " " << tmp.eta << " " << tmp.deta << " phi " << tmp.phi
116  << " " << tmp.dphi << " r(z) " << tmp.rz << " " << tmp.drz << " " << tmp.flagrz;
117 #endif
118  return tmp;
119 }
Log< level::Info, true > LogVerbatim
int getEta(const int &det, const int &lay, const double &hetaR) const
std::vector< int > maxDepth
std::vector< double > rHB
double deltaEta(const int &det, const int &eta, const int &depth) const
int zside(DetId const &)
std::vector< int > etaMax
std::vector< double > zHE
std::vector< double > dzHE
int unitPhi(const int &det, const int &etaR) const
std::vector< double > phioff
std::vector< double > rTable
std::vector< double > phitable
std::vector< double > phibin
std::vector< double > drHB
std::vector< int > noff
Log< level::Warning, false > LogWarning
const HcalParameters * hpar
static constexpr float d1
tmp
align.sh
Definition: createJobs.py:716
static const int maxLayerHB_
std::vector< int > etaMin

◆ deltaEta()

double HcalDDDSimConstants::deltaEta ( const int &  det,
const int &  eta,
const int &  depth 
) const
private

Definition at line 979 of file HcalDDDSimConstants.cc.

References hcalRecHitTable_cff::depth, depthEta29, dlShort, etaHO, HcalParameters::etaMin, HcalParameters::etaTable, getEta(), HcalForward, HcalOuter, hpar, nEta, HcalParameters::noff, nR, HcalParameters::rTable, createJobs::tmp, z, and zVcal.

Referenced by cell().

979  {
980  double tmp = 0;
981  if (det == static_cast<int>(HcalForward)) {
982  int ir = nR + hpar->etaMin[2] - etaR - 1;
983  if (ir > 0 && ir < nR) {
984  double z = zVcal;
985  if (depth % 2 != 1)
986  z += dlShort;
987  tmp = 0.5 * (getEta(hpar->rTable[ir - 1], z) - getEta(hpar->rTable[ir], z));
988  }
989  } else {
990  if (etaR > 0 && etaR < nEta) {
991  if (etaR == hpar->noff[1] - 1 && depth > depthEta29[0]) {
992  tmp = 0.5 * (hpar->etaTable[etaR + 1] - hpar->etaTable[etaR - 1]);
993  } else if (det == static_cast<int>(HcalOuter)) {
994  if (etaR == hpar->noff[2]) {
995  tmp = 0.5 * (etaHO[0] - hpar->etaTable[etaR - 1]);
996  } else if (etaR == hpar->noff[2] + 1) {
997  tmp = 0.5 * (hpar->etaTable[etaR] - etaHO[1]);
998  } else if (etaR == hpar->noff[3]) {
999  tmp = 0.5 * (etaHO[2] - hpar->etaTable[etaR - 1]);
1000  } else if (etaR == hpar->noff[3] + 1) {
1001  tmp = 0.5 * (hpar->etaTable[etaR] - etaHO[3]);
1002  } else {
1003  tmp = 0.5 * (hpar->etaTable[etaR] - hpar->etaTable[etaR - 1]);
1004  }
1005  } else {
1006  tmp = 0.5 * (hpar->etaTable[etaR] - hpar->etaTable[etaR - 1]);
1007  }
1008  }
1009  }
1010 #ifdef EDM_ML_DEBUG
1011  edm::LogVerbatim("HCalGeom") << "HcalDDDSimConstants::deltaEta " << etaR << " " << depth << " ==> " << tmp;
1012 #endif
1013  return tmp;
1014 }
Log< level::Info, true > LogVerbatim
int getEta(const int &det, const int &lay, const double &hetaR) const
std::vector< double > etaTable
std::vector< double > rTable
std::vector< int > noff
const HcalParameters * hpar
tmp
align.sh
Definition: createJobs.py:716
std::vector< int > etaMin

◆ findDepth()

int HcalDDDSimConstants::findDepth ( const int &  det,
const int &  eta,
const int &  phi,
const int &  zside,
const int &  lay 
) const

Definition at line 121 of file HcalDDDSimConstants.cc.

References hcalRecHitTable_cff::depth, PVValHelper::eta, HcalLayerDepthMap::getDepth(), HcalLayerDepthMap::isValid(), ldmap_, phi, and ecaldqm::zside().

Referenced by HcalDDDRecConstants::findDepth(), HcalDDDRecConstants::getHCID(), and layerGroup().

122  {
123  int depth = (ldmap_.isValid(det, phi, zside)) ? ldmap_.getDepth(det, eta, phi, zside, lay) : -1;
124  return depth;
125 }
int getDepth(const int subdet, const int ieta, const int iphi, const int zside, const int layer) const
bool isValid(const int det, const int phi, const int zside) const
int zside(DetId const &)
HcalLayerDepthMap ldmap_

◆ findLayer()

unsigned int HcalDDDSimConstants::findLayer ( const int &  layer,
const std::vector< HcalParameters::LayerItem > &  layerGroup 
) const

Definition at line 127 of file HcalDDDSimConstants.cc.

References mps_fire::i, l1ctLayer2EG_cff::id, nano_mu_digi_cff::layer, and layerGroup().

128  {
129  unsigned int id = layerGroup.size();
130  for (unsigned int i = 0; i < layerGroup.size(); i++) {
131  if (layer == static_cast<int>(layerGroup[i].layer)) {
132  id = i;
133  break;
134  }
135  }
136  return id;
137 }
unsigned int layerGroup(int eta, int i) const

◆ getConstHBHE()

std::vector< std::pair< double, double > > HcalDDDSimConstants::getConstHBHE ( const int &  type) const

Definition at line 139 of file HcalDDDSimConstants.cc.

References HcalParameters::drHB, HcalParameters::dzHE, hpar, mps_fire::i, HcalParameters::rHB, and HcalParameters::zHE.

139  {
140  std::vector<std::pair<double, double> > gcons;
141  if (type == 0) {
142  for (unsigned int i = 0; i < hpar->rHB.size(); ++i) {
143  gcons.emplace_back(std::pair<double, double>(hpar->rHB[i], hpar->drHB[i]));
144  }
145  } else {
146  for (unsigned int i = 0; i < hpar->zHE.size(); ++i) {
147  gcons.emplace_back(std::pair<double, double>(hpar->zHE[i], hpar->dzHE[i]));
148  }
149  }
150  return gcons;
151 }
std::vector< double > rHB
std::vector< double > zHE
std::vector< double > dzHE
std::vector< double > drHB
const HcalParameters * hpar

◆ getDepthEta16()

int HcalDDDSimConstants::getDepthEta16 ( const int &  det,
const int &  phi,
const int &  zside 
) const

Definition at line 153 of file HcalDDDSimConstants.cc.

References hcalRecHitTable_cff::depth, depthEta16, HcalLayerDepthMap::getDepth16(), ldmap_, phi, and ecaldqm::zside().

Referenced by HcalDDDRecConstants::getDepthEta16(), getEtaDepth(), HcalDDDRecConstants::getHCID(), getMaxDepth(), getMinDepth(), HcalDDDRecConstants::getOneEtaBin(), HcalDDDRecConstants::initialize(), and printTiles().

153  {
154  int depth = ldmap_.getDepth16(det, phi, zside);
155  if (depth < 0)
156  depth = (det == 2) ? depthEta16[1] : depthEta16[0];
157 #ifdef EDM_ML_DEBUG
158  edm::LogVerbatim("HCalGeom") << "getDepthEta16: " << det << ":" << depth;
159 #endif
160  return depth;
161 }
Log< level::Info, true > LogVerbatim
int zside(DetId const &)
int getDepth16(const int subdet, const int iphi, const int zside) const
HcalLayerDepthMap ldmap_

◆ getDepthEta16M()

int HcalDDDSimConstants::getDepthEta16M ( const int &  det) const

Definition at line 163 of file HcalDDDSimConstants.cc.

References hcalRecHitTable_cff::depth, depthEta16, HcalLayerDepthMap::getDepth16(), hcalRecHitTable_cff::iphi, ldmap_, HcalLayerDepthMap::validDet(), and ecaldqm::zside().

Referenced by HcalDDDRecConstants::getMaxDepth(), HcalDDDRecConstants::getMinDepth(), HcalDDDRecConstants::getOneEtaBin(), and HcalDDDRecConstants::initialize().

163  {
164  int depth = (det == 2) ? depthEta16[1] : depthEta16[0];
165  std::vector<int> phis;
166  int detsp = ldmap_.validDet(phis);
167  if (detsp == det) {
168  int zside = (phis[0] > 0) ? 1 : -1;
169  int iphi = (phis[0] > 0) ? phis[0] : -phis[0];
170  int depthsp = ldmap_.getDepth16(det, iphi, zside);
171  if (det == 1 && depthsp > depth)
172  depth = depthsp;
173  if (det == 2 && depthsp < depth)
174  depth = depthsp;
175  }
176  return depth;
177 }
int zside(DetId const &)
int getDepth16(const int subdet, const int iphi, const int zside) const
int validDet(std::vector< int > &phis) const
HcalLayerDepthMap ldmap_

◆ getDepthEta29()

int HcalDDDSimConstants::getDepthEta29 ( const int &  phi,
const int &  zside,
const int &  i 
) const

◆ getDepthEta29M()

int HcalDDDSimConstants::getDepthEta29M ( const int &  i,
const bool &  planOne 
) const

Definition at line 186 of file HcalDDDSimConstants.cc.

References hcalRecHitTable_cff::depth, depthEta29, HcalLayerDepthMap::getMaxDepthLastHE(), mps_fire::i, hcalRecHitTable_cff::iphi, ldmap_, HcalLayerDepthMap::validDet(), and ecaldqm::zside().

Referenced by HcalDDDRecConstants::getMaxDepth(), HcalDDDRecConstants::getOneEtaBin(), and HcalDDDRecConstants::initialize().

186  {
187  int depth = (i == 1) ? depthEta29[1] : depthEta29[0];
188  if (i == 0 && planOne) {
189  std::vector<int> phis;
190  int detsp = ldmap_.validDet(phis);
191  if (detsp == 2) {
192  int zside = (phis[0] > 0) ? 1 : -1;
193  int iphi = (phis[0] > 0) ? phis[0] : -phis[0];
194  int depthsp = ldmap_.getMaxDepthLastHE(2, iphi, zside);
195  if (depthsp > depth)
196  depth = depthsp;
197  }
198  }
199  return depth;
200 }
int zside(DetId const &)
int getMaxDepthLastHE(const int subdet, const int iphi, const int zside) const
int validDet(std::vector< int > &phis) const
HcalLayerDepthMap ldmap_

◆ getDetEta()

std::pair< int, double > HcalDDDSimConstants::getDetEta ( const double &  eta,
const int &  depth 
) const

Definition at line 202 of file HcalDDDSimConstants.cc.

References hcalRecHitTable_cff::depth, depthEta16, PVValHelper::eta, ALCARECOTkAlBeamHalo_cff::etaMax, HcalParameters::etaMax, HcalParameters::etaMin, generateTowerEtThresholdLUT::etaRange, HcalParameters::etaTable, JetChargeProducer_cfi::exp, HcalBarrel, HcalEndcap, HcalForward, hpar, mps_fire::i, hcalRecHitTable_cff::ieta, nEta, funct::tan(), theta(), and zVcal.

Referenced by HcalNumberingFromDDD::unitID().

202  {
203  int hsubdet(0), ieta(0);
204  double etaR(0);
205  double heta = fabs(eta);
206  for (int i = 0; i < nEta; i++)
207  if (heta > hpar->etaTable[i])
208  ieta = i + 1;
209  if (heta <= hpar->etaRange[1]) {
210  if (((ieta == hpar->etaMin[1] && depth == depthEta16[1]) || (ieta > hpar->etaMax[0])) &&
211  (ieta <= hpar->etaMax[1])) {
212  hsubdet = static_cast<int>(HcalEndcap);
213  } else {
214  hsubdet = static_cast<int>(HcalBarrel);
215  }
216  etaR = eta;
217  } else {
218  hsubdet = static_cast<int>(HcalForward);
219  double theta = 2. * atan(exp(-heta));
220  double hR = zVcal * tan(theta);
221  etaR = (eta >= 0. ? hR : -hR);
222  }
223  return std::pair<int, double>(hsubdet, etaR);
224 }
std::vector< double > etaTable
std::vector< int > etaMax
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
const HcalParameters * hpar
Geom::Theta< T > theta() const
std::vector< int > etaMin

◆ getEta() [1/3]

int HcalDDDSimConstants::getEta ( const int &  det,
const int &  lay,
const double &  hetaR 
) const

Definition at line 226 of file HcalDDDSimConstants.cc.

References etaHO, HcalParameters::etaMax, ALCARECOTkAlBeamHalo_cff::etaMin, HcalParameters::etaMin, HcalParameters::etaTable, HcalBarrel, HcalEndcap, HcalForward, hpar, mps_fire::i, hcalRecHitTable_cff::ieta, maxLayer_, nEta, HcalParameters::noff, and nR.

Referenced by cell(), deltaEta(), getEta(), and HcalNumberingFromDDD::unitID().

226  {
227  int ieta(0);
228  if (det == static_cast<int>(HcalForward)) { // Forward HCal
229  ieta = hpar->etaMax[2];
230  for (int i = nR - 1; i > 0; i--)
231  if (hetaR < hpar->rTable[i])
232  ieta = hpar->etaMin[2] + nR - i - 1;
233  } else { // Barrel or Endcap
234  ieta = 1;
235  for (int i = 0; i < nEta - 1; i++)
236  if (hetaR > hpar->etaTable[i])
237  ieta = i + 1;
238  if (det == static_cast<int>(HcalBarrel)) {
239  if (ieta > hpar->etaMax[0])
240  ieta = hpar->etaMax[0];
241  if (lay == maxLayer_) {
242  if (hetaR > etaHO[1] && ieta == hpar->noff[2])
243  ieta++;
244  }
245  } else if (det == static_cast<int>(HcalEndcap)) {
246  if (ieta <= hpar->etaMin[1])
247  ieta = hpar->etaMin[1];
248  }
249  }
250  return ieta;
251 }
std::vector< double > etaTable
static const int maxLayer_
std::vector< int > etaMax
std::vector< int > noff
const HcalParameters * hpar
std::vector< int > etaMin

◆ getEta() [2/3]

double HcalDDDSimConstants::getEta ( const int &  det,
const int &  etaR,
const int &  zside,
int  depth = 1 
) const
private

Definition at line 1016 of file HcalDDDSimConstants.cc.

References hcalRecHitTable_cff::depth, depthEta29, dlShort, etaHO, HcalParameters::etaMin, HcalParameters::etaTable, getEta(), HcalForward, HcalOuter, hpar, nEta, HcalParameters::noff, nR, HcalParameters::rTable, createJobs::tmp, z, ecaldqm::zside(), and zVcal.

1016  {
1017  double tmp = 0;
1018  if (det == static_cast<int>(HcalForward)) {
1019  int ir = nR + hpar->etaMin[2] - etaR - 1;
1020  if (ir > 0 && ir < nR) {
1021  double z = zVcal;
1022  if (depth % 2 != 1)
1023  z += dlShort;
1024  tmp = 0.5 * (getEta(hpar->rTable[ir - 1], z) + getEta(hpar->rTable[ir], z));
1025  }
1026  } else {
1027  if (etaR > 0 && etaR < nEta) {
1028  if (etaR == hpar->noff[1] - 1 && depth > depthEta29[0]) {
1029  tmp = 0.5 * (hpar->etaTable[etaR + 1] + hpar->etaTable[etaR - 1]);
1030  } else if (det == static_cast<int>(HcalOuter)) {
1031  if (etaR == hpar->noff[2]) {
1032  tmp = 0.5 * (etaHO[0] + hpar->etaTable[etaR - 1]);
1033  } else if (etaR == hpar->noff[2] + 1) {
1034  tmp = 0.5 * (hpar->etaTable[etaR] + etaHO[1]);
1035  } else if (etaR == hpar->noff[3]) {
1036  tmp = 0.5 * (etaHO[2] + hpar->etaTable[etaR - 1]);
1037  } else if (etaR == hpar->noff[3] + 1) {
1038  tmp = 0.5 * (hpar->etaTable[etaR] + etaHO[3]);
1039  } else {
1040  tmp = 0.5 * (hpar->etaTable[etaR] + hpar->etaTable[etaR - 1]);
1041  }
1042  } else {
1043  tmp = 0.5 * (hpar->etaTable[etaR] + hpar->etaTable[etaR - 1]);
1044  }
1045  }
1046  }
1047  if (zside == 0)
1048  tmp = -tmp;
1049 #ifdef EDM_ML_DEBUG
1050  edm::LogVerbatim("HCalGeom") << "HcalDDDSimConstants::getEta " << etaR << " " << zside << " " << depth << " ==> "
1051  << tmp;
1052 #endif
1053  return tmp;
1054 }
Log< level::Info, true > LogVerbatim
int getEta(const int &det, const int &lay, const double &hetaR) const
std::vector< double > etaTable
int zside(DetId const &)
std::vector< double > rTable
std::vector< int > noff
const HcalParameters * hpar
tmp
align.sh
Definition: createJobs.py:716
std::vector< int > etaMin

◆ getEta() [3/3]

double HcalDDDSimConstants::getEta ( const double &  r,
const double &  z 
) const
private

Definition at line 1056 of file HcalDDDSimConstants.cc.

References dqm-mbProfile::log, alignCSCRings::r, funct::tan(), createJobs::tmp, and z.

1056  {
1057  double tmp = 0;
1058  if (z != 0)
1059  tmp = -log(tan(0.5 * atan(r / z)));
1060 #ifdef EDM_ML_DEBUG
1061  edm::LogVerbatim("HCalGeom") << "HcalDDDSimConstants::getEta " << r << " " << z << " ==> " << tmp;
1062 #endif
1063  return tmp;
1064 }
Log< level::Info, true > LogVerbatim
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
tmp
align.sh
Definition: createJobs.py:716

◆ getEtaDepth()

std::pair< int, int > HcalDDDSimConstants::getEtaDepth ( const int &  det,
int  etaR,
const int &  phi,
const int &  zside,
int  depth,
const int &  lay 
) const

Definition at line 253 of file HcalDDDSimConstants.cc.

References hcalRecHitTable_cff::depth, HcalParameters::etaMin, getDepthEta16(), getDepthEta29(), getMaxDepth(), HcalBarrel, HcalEndcap, HcalForward, HcalOuter, hpar, layerGroup(), HcalParameters::noff, phi, HcalParameters::phibin, HcalParameters::phioff, and ecaldqm::zside().

Referenced by HcalTestNumberingTester::analyze(), and HcalNumberingFromDDD::unitID().

254  {
255 #ifdef EDM_ML_DEBUG
256  edm::LogVerbatim("HCalGeom") << "HcalDDDEsimConstants:getEtaDepth: I/P " << det << ":" << etaR << ":" << phi << ":"
257  << zside << ":" << depth << ":" << lay;
258 #endif
259  //Modify the depth index
260  if ((det == static_cast<int>(HcalEndcap)) && (etaR == 17) && (lay == 1))
261  etaR = 18;
262  if (det == static_cast<int>(HcalForward)) { // Forward HCal
263  } else if (det == static_cast<int>(HcalOuter)) {
264  depth = 4;
265  } else {
266  if (lay >= 0) {
267  depth = layerGroup(det, etaR, phi, zside, lay - 1);
268  if (((det == 2) && (etaR == 18)) || ((det == 1) && (etaR == 15)))
269  if (etaR == hpar->noff[0] && lay > 1) {
270  int kphi = phi + static_cast<int>((hpar->phioff[3] + 0.1) / hpar->phibin[etaR - 1]);
271  kphi = (kphi - 1) % 4 + 1;
272  if (kphi == 2 || kphi == 3)
273  depth = layerGroup(det, etaR, phi, zside, lay - 2);
274  }
275  } else if (det == static_cast<int>(HcalBarrel)) {
276  if (depth > getMaxDepth(det, etaR, phi, zside, false))
277  depth = getMaxDepth(det, etaR, phi, zside, false);
278  }
279  if (etaR >= hpar->noff[1] && depth > getDepthEta29(phi, zside, 0)) {
280  etaR -= getDepthEta29(phi, zside, 1);
281  } else if (etaR == hpar->etaMin[1]) {
282  if (det == static_cast<int>(HcalBarrel)) {
283  if (depth > getDepthEta16(det, phi, zside))
284  depth = getDepthEta16(det, phi, zside);
285  } else {
286  if (depth < getDepthEta16(det, phi, zside))
287  depth = getDepthEta16(det, phi, zside);
288  }
289  }
290  }
291 #ifdef EDM_ML_DEBUG
292  edm::LogVerbatim("HCalGeom") << "HcalDDDEsimConstants:getEtaDepth: O/P " << etaR << ":" << depth;
293 #endif
294  return std::pair<int, int>(etaR, depth);
295 }
Log< level::Info, true > LogVerbatim
int getDepthEta29(const int &phi, const int &zside, const int &i) const
int zside(DetId const &)
std::vector< double > phioff
std::vector< double > phibin
std::vector< int > noff
unsigned int layerGroup(int eta, int i) const
const HcalParameters * hpar
int getMaxDepth(const int &type) const
int getDepthEta16(const int &det, const int &phi, const int &zside) const
std::vector< int > etaMin

◆ getEtaHO()

double HcalDDDSimConstants::getEtaHO ( const double &  etaR,
const double &  x,
const double &  y,
const double &  z 
) const

Definition at line 297 of file HcalDDDSimConstants.cc.

References PVValHelper::eta, HcalParameters::etaTable, hpar, alignCSCRings::r, rminHO, mathSSE::sqrt(), AlCaHLTBitMon_QueryRunRegistry::string, x, y, z, HcalParameters::zHO, and geometryCSVtoXML::zz.

Referenced by HcalNumberingFromDDD::unitID().

297  {
298  if (hpar->zHO.size() > 4) {
299  double eta = fabs(etaR);
300  double r = std::sqrt(x * x + y * y);
301  if (r > rminHO) {
302  double zz = fabs(z);
303  if (zz > hpar->zHO[3]) {
304  if (eta <= hpar->etaTable[10])
305  eta = hpar->etaTable[10] + 0.001;
306  } else if (zz > hpar->zHO[1]) {
307  if (eta <= hpar->etaTable[4])
308  eta = hpar->etaTable[4] + 0.001;
309  }
310  }
311  eta = (z >= 0. ? eta : -eta);
312 #ifdef EDM_ML_DEBUG
313  std::string chk = (eta != etaR) ? " **** Check *****" : " ";
314  edm::LogVerbatim("HCalGeom") << "R " << r << " Z " << z << " eta " << etaR << ":" << eta << chk;
315 #endif
316  return eta;
317  } else {
318  return etaR;
319  }
320 }
Log< level::Info, true > LogVerbatim
std::vector< double > zHO
std::vector< double > etaTable
T sqrt(T t)
Definition: SSEVec.h:19
const HcalParameters * hpar

◆ getEtaTableHF()

const std::vector<double>& HcalDDDSimConstants::getEtaTableHF ( ) const
inline

Definition at line 44 of file HcalDDDSimConstants.h.

References HcalParameters::etaTableHF, and hpar.

44 { return hpar->etaTableHF; }
std::vector< double > etaTableHF
const HcalParameters * hpar

◆ getFrontLayer()

int HcalDDDSimConstants::getFrontLayer ( const int &  det,
const int &  eta 
) const

Definition at line 322 of file HcalDDDSimConstants.cc.

References funct::abs(), PVValHelper::eta, layFHB, and layFHE.

Referenced by HcalDDDRecConstants::getLayerFront().

322  {
323  int lay = 0;
324  if (det == 1) {
325  if (std::abs(eta) == 16)
326  lay = layFHB[1];
327  else
328  lay = layFHB[0];
329  } else {
330  if (std::abs(eta) == 16)
331  lay = layFHE[1];
332  else if (std::abs(eta) == 18)
333  lay = layFHE[2];
334  else
335  lay = layFHE[0];
336  }
337  return lay;
338 }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22

◆ getGain()

double HcalDDDSimConstants::getGain ( const HcalSubdetector subdet,
const int &  depth 
) const
private

Definition at line 1085 of file HcalDDDSimConstants.cc.

References hcalRecHitTable_cff::depth, PedestalClient_cfi::gain, HcalParameters::HBGains, HcalEndcap, HcalForward, HcalOuter, HcalParameters::HEGains, HcalParameters::HFGains, and hpar.

Referenced by HcalCellTypes().

1085  {
1086  double gain;
1087  switch (subdet) {
1088  case HcalEndcap:
1089  gain = hpar->HEGains[0];
1090  break;
1091  case HcalForward:
1092  gain = hpar->HFGains[(depth - 1) % 2];
1093  break;
1094  case HcalOuter:
1095  gain = hpar->HBGains[3];
1096  break;
1097  default:
1098  gain = hpar->HBGains[0];
1099  break;
1100  }
1101  return gain;
1102 }
std::vector< double > HBGains
std::vector< double > HEGains
std::vector< double > HFGains
const HcalParameters * hpar

◆ getGparHF()

const std::vector<double>& HcalDDDSimConstants::getGparHF ( ) const
inline

Definition at line 45 of file HcalDDDSimConstants.h.

References HcalParameters::gparHF, and hpar.

Referenced by HCalSD::HCalSD(), HFShower::HFShower(), and HFShowerParam::HFShowerParam().

45 { return hpar->gparHF; }
std::vector< double > gparHF
const HcalParameters * hpar

◆ getIdHF2QIE()

const std::vector<HcalDetId>& HcalDDDSimConstants::getIdHF2QIE ( ) const
inline

Definition at line 46 of file HcalDDDSimConstants.h.

References idHF2QIE.

Referenced by HcalDDDRecConstants::getHFCellParameters().

46 { return idHF2QIE; }
std::vector< HcalDetId > idHF2QIE

◆ getiEtaRange()

std::pair<int, int> HcalDDDSimConstants::getiEtaRange ( const int &  i) const
inline

Definition at line 43 of file HcalDDDSimConstants.h.

References HcalParameters::etaMax, HcalParameters::etaMin, hpar, and mps_fire::i.

43 { return std::pair<int, int>(hpar->etaMin[i], hpar->etaMax[i]); }
std::vector< int > etaMax
const HcalParameters * hpar
std::vector< int > etaMin

◆ getLastLayer()

int HcalDDDSimConstants::getLastLayer ( const int &  det,
const int &  eta 
) const

Definition at line 340 of file HcalDDDSimConstants.cc.

References funct::abs(), PVValHelper::eta, layBHB, and layBHE.

Referenced by HcalDDDRecConstants::getLayerBack(), and HcalDDDRecConstants::getThickActive().

340  {
341  int lay = 0;
342  if (det == 1) {
343  if (std::abs(eta) == 15)
344  lay = layBHB[1];
345  else if (std::abs(eta) == 16)
346  lay = layBHB[2];
347  else
348  lay = layBHB[0];
349  } else {
350  if (std::abs(eta) == 16)
351  lay = layBHE[1];
352  else if (std::abs(eta) == 17)
353  lay = layBHE[2];
354  else if (std::abs(eta) == 18)
355  lay = layBHE[3];
356  else
357  lay = layBHE[0];
358  }
359  return lay;
360 }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22

◆ getLayer0Wt()

double HcalDDDSimConstants::getLayer0Wt ( const int &  det,
const int &  phi,
const int &  zside 
) const

Definition at line 362 of file HcalDDDSimConstants.cc.

References HcalLayerDepthMap::getLayer0Wt(), hpar, HcalParameters::Layer0Wt, ldmap_, phi, and ecaldqm::zside().

Referenced by HCalSD::getEnergyDeposit(), and HcalDDDRecConstants::getLayer0Wt().

362  {
363  double wt = ldmap_.getLayer0Wt(det, phi, zside);
364  if (wt < 0)
365  wt = (det == 2) ? hpar->Layer0Wt[1] : hpar->Layer0Wt[0];
366  return wt;
367 }
double getLayer0Wt(const int subdet, const int iphi, const int zside) const
int zside(DetId const &)
std::vector< double > Layer0Wt
const HcalParameters * hpar
HcalLayerDepthMap ldmap_

◆ getLayerBack()

int HcalDDDSimConstants::getLayerBack ( const int &  det,
const int &  eta,
const int &  phi,
const int &  zside,
const int &  depth 
) const

Definition at line 388 of file HcalDDDSimConstants.cc.

References hcalRecHitTable_cff::depth, depths, PVValHelper::eta, HcalLayerDepthMap::getLayerBack(), nano_mu_digi_cff::layer, ldmap_, maxLayer_, phi, and ecaldqm::zside().

Referenced by printTileHB(), and printTileHE().

389  {
390  int layer = ldmap_.getLayerBack(det, eta, phi, zside, depth);
391  if (layer < 0) {
392  if (det == 1 || det == 2) {
393  layer = depths[depth - 1][eta - 1];
394  } else {
395  layer = maxLayer_;
396  }
397  }
398  return layer;
399 }
static const int maxLayer_
int zside(DetId const &)
std::vector< int > depths[nDepthMax]
int getLayerBack(const int subdet, const int ieta, const int iphi, const int zside, const int depth) const
HcalLayerDepthMap ldmap_

◆ getLayerFront()

int HcalDDDSimConstants::getLayerFront ( const int &  det,
const int &  eta,
const int &  phi,
const int &  zside,
const int &  depth 
) const

Definition at line 369 of file HcalDDDSimConstants.cc.

References hcalRecHitTable_cff::depth, PVValHelper::eta, HcalLayerDepthMap::getLayerFront(), getLayerMax(), hpar, MainPageGenerator::l, nano_mu_digi_cff::layer, layerGroup(), ldmap_, maxLayer_, maxLayerHB_, HcalParameters::noff, phi, and ecaldqm::zside().

Referenced by printTileHB(), and printTileHE().

370  {
371  int layer = ldmap_.getLayerFront(det, eta, phi, zside, depth);
372  if (layer < 0) {
373  if (det == 1 || det == 2) {
374  layer = 1;
375  for (int l = 0; l < getLayerMax(eta, depth); ++l) {
376  if (static_cast<int>(layerGroup(eta - 1, l)) == depth) {
377  layer = l + 1;
378  break;
379  }
380  }
381  } else {
382  layer = (eta > hpar->noff[2]) ? maxLayerHB_ + 1 : maxLayer_;
383  }
384  }
385  return layer;
386 }
static const int maxLayer_
int getLayerFront(const int subdet, const int ieta, const int iphi, const int zside, const int depth) const
int zside(DetId const &)
std::vector< int > noff
unsigned int layerGroup(int eta, int i) const
const HcalParameters * hpar
int getLayerMax(const int &eta, const int &depth) const
static const int maxLayerHB_
HcalLayerDepthMap ldmap_

◆ getLayerMax()

int HcalDDDSimConstants::getLayerMax ( const int &  eta,
const int &  depth 
) const

Definition at line 401 of file HcalDDDSimConstants.cc.

References hcalRecHitTable_cff::depth, PVValHelper::eta, HcalParameters::etaMin, hpar, layerGroupSize(), maxDepth, and maxLayerHB_.

Referenced by getLayerFront(), and initialize().

401  {
402  int layermx = ((eta < hpar->etaMin[1]) && depth - 1 < maxDepth[0]) ? maxLayerHB_ + 1
403  : static_cast<int>(layerGroupSize(eta - 1));
404  return layermx;
405 }
std::vector< int > maxDepth
unsigned int layerGroupSize(int eta) const
const HcalParameters * hpar
static const int maxLayerHB_
std::vector< int > etaMin

◆ getMaxDepth() [1/2]

int HcalDDDSimConstants::getMaxDepth ( const int &  type) const
inline

◆ getMaxDepth() [2/2]

int HcalDDDSimConstants::getMaxDepth ( const int &  det,
const int &  eta,
const int &  phi,
const int &  zside,
const bool &  partialOnly 
) const

Definition at line 407 of file HcalDDDSimConstants.cc.

References PVValHelper::eta, HcalParameters::etaMax, getDepthEta16(), HcalLayerDepthMap::getDepths(), hpar, HcalLayerDepthMap::isValid(), layerGroup(), ldmap_, maxDepth, maxHFDepth(), maxLayer_, maxLayerHB_, phi, and ecaldqm::zside().

408  {
409  int dmax(-1);
410  if (partialDetOnly) {
411  if (ldmap_.isValid(det, phi, zside)) {
412  dmax = ldmap_.getDepths(eta).second;
413  }
414  } else if (det == 1 || det == 2) {
415  if (ldmap_.isValid(det, phi, zside))
416  dmax = ldmap_.getDepths(eta).second;
417  else if (det == 2)
418  dmax = (maxDepth[1] > 0) ? layerGroup(eta - 1, maxLayer_) : 0;
419  else if (eta == hpar->etaMax[0])
420  dmax = getDepthEta16(det, phi, zside);
421  else
422  dmax = layerGroup(eta - 1, maxLayerHB_);
423  } else if (det == 3) { // HF
424  dmax = maxHFDepth(zside * eta, phi);
425  } else if (det == 4) { // HO
426  dmax = maxDepth[3];
427  } else {
428  dmax = -1;
429  }
430  return dmax;
431 }
std::vector< int > maxDepth
bool isValid(const int det, const int phi, const int zside) const
int maxHFDepth(const int &ieta, const int &iphi) const
static const int maxLayer_
int zside(DetId const &)
std::vector< int > etaMax
std::pair< int, int > getDepths(const int eta) const
unsigned int layerGroup(int eta, int i) const
const HcalParameters * hpar
static const int maxLayerHB_
int getDepthEta16(const int &det, const int &phi, const int &zside) const
HcalLayerDepthMap ldmap_

◆ getMaxDepthDet()

std::pair<int, int> HcalDDDSimConstants::getMaxDepthDet ( const int &  i) const
inline

Definition at line 55 of file HcalDDDSimConstants.h.

References depthMaxDf_, depthMaxSp_, and mps_fire::i.

Referenced by HcalDDDRecConstants::initialize().

55 { return ((i == 1) ? depthMaxDf_ : depthMaxSp_); }
std::pair< int, int > depthMaxDf_
std::pair< int, int > depthMaxSp_

◆ getMinDepth()

int HcalDDDSimConstants::getMinDepth ( const int &  det,
const int &  eta,
const int &  phi,
const int &  zside,
const bool &  partialOnly 
) const

Definition at line 433 of file HcalDDDSimConstants.cc.

References PVValHelper::eta, HcalParameters::etaMin, getDepthEta16(), HcalLayerDepthMap::getDepths(), hpar, HcalLayerDepthMap::isValid(), layerGroup(), layerGroupSize(), ldmap_, maxDepth, phi, and ecaldqm::zside().

Referenced by HcalDDDRecConstants::getMinDepth().

434  {
435  int lmin(-1);
436  if (partialDetOnly) {
437  if (ldmap_.isValid(det, phi, zside)) {
438  lmin = ldmap_.getDepths(eta).first;
439  }
440  } else if (det == 3) { // HF
441  lmin = 1;
442  } else if (det == 4) { // HO
443  lmin = maxDepth[3];
444  } else {
445  if (ldmap_.isValid(det, phi, zside)) {
446  lmin = ldmap_.getDepths(eta).first;
447  } else if (layerGroupSize(eta - 1) > 0) {
448  lmin = static_cast<int>(layerGroup(eta - 1, 0));
449  unsigned int type = (det == 1) ? 0 : 1;
450  if (type == 1 && eta == hpar->etaMin[1])
451  lmin = getDepthEta16(det, phi, zside);
452  } else {
453  lmin = 1;
454  }
455  }
456  return lmin;
457 }
std::vector< int > maxDepth
bool isValid(const int det, const int phi, const int zside) const
int zside(DetId const &)
unsigned int layerGroupSize(int eta) const
std::pair< int, int > getDepths(const int eta) const
unsigned int layerGroup(int eta, int i) const
const HcalParameters * hpar
int getDepthEta16(const int &det, const int &phi, const int &zside) const
std::vector< int > etaMin
HcalLayerDepthMap ldmap_

◆ getModHalfHBHE()

std::pair< int, int > HcalDDDSimConstants::getModHalfHBHE ( const int &  type) const

Definition at line 459 of file HcalDDDSimConstants.cc.

References nmodHB, nmodHE, nzHB, and nzHE.

459  {
460  if (type == 0) {
461  return std::pair<int, int>(nmodHB, nzHB);
462  } else {
463  return std::pair<int, int>(nmodHE, nzHE);
464  }
465 }

◆ getPhiCons()

std::pair< double, double > HcalDDDSimConstants::getPhiCons ( const int &  det,
const int &  ieta 
) const

Definition at line 467 of file HcalDDDSimConstants.cc.

References HcalParameters::etaMin, HcalEndcap, HcalForward, hpar, hcalRecHitTable_cff::ieta, HcalParameters::phibin, HcalParameters::phioff, HcalParameters::phitable, and unitPhi().

Referenced by getPhis(), HcalDDDRecConstants::getPhis(), and HcalNumberingFromDDD::unitID().

467  {
468  double fioff(0), fibin(0);
469  if (det == static_cast<int>(HcalForward)) { // Forward HCal
470  fioff = hpar->phioff[2];
471  fibin = hpar->phitable[ieta - hpar->etaMin[2]];
472  if (unitPhi(fibin) > 2) { // HF double-phi
473  fioff = hpar->phioff[4];
474  }
475  } else { // Barrel or Endcap
476  if (det == static_cast<int>(HcalEndcap)) {
477  fioff = hpar->phioff[1];
478  } else {
479  fioff = hpar->phioff[0];
480  }
481  fibin = hpar->phibin[ieta - 1];
482  }
483  return std::pair<double, double>(fioff, fibin);
484 }
int unitPhi(const int &det, const int &etaR) const
std::vector< double > phioff
std::vector< double > phitable
std::vector< double > phibin
const HcalParameters * hpar
std::vector< int > etaMin

◆ getPhis()

std::vector< std::pair< int, double > > HcalDDDSimConstants::getPhis ( const int &  subdet,
const int &  ieta 
) const

Definition at line 486 of file HcalDDDSimConstants.cc.

References angle_units::operators::convertRadToDeg(), getPhiCons(), hcalRecHitTable_cff::ieta, createfilelist::int, hcalRecHitTable_cff::iphi, dqmdumpme::k, nphi, phi, phiNumber(), edm::second(), unitPhi(), and units().

Referenced by HcalCellTypes().

486  {
487  std::vector<std::pair<int, double> > phis;
488  int ietaAbs = (ieta > 0) ? ieta : -ieta;
489  std::pair<double, double> ficons = getPhiCons(subdet, ietaAbs);
490  int nphi = int((2._pi + 0.1 * ficons.second) / ficons.second);
491  int units = unitPhi(subdet, ietaAbs);
492  for (int ifi = 0; ifi < nphi; ++ifi) {
493  double phi = -ficons.first + (ifi + 0.5) * ficons.second;
494  int iphi = phiNumber(ifi + 1, units);
495  phis.emplace_back(std::pair<int, double>(iphi, phi));
496  }
497 #ifdef EDM_ML_DEBUG
498  edm::LogVerbatim("HCalGeom") << "getPhis: subdet|ieta|iphi " << subdet << "|" << ieta << " with " << phis.size()
499  << " phi bins";
500  for (unsigned int k = 0; k < phis.size(); ++k)
501  edm::LogVerbatim("HCalGeom") << "[" << k << "] iphi " << phis[k].first << " phi "
502  << convertRadToDeg(phis[k].second);
503 #endif
504  return phis;
505 }
Log< level::Info, true > LogVerbatim
const int nphi
constexpr NumType convertRadToDeg(NumType radians)
Definition: angle_units.h:21
std::pair< double, double > getPhiCons(const int &det, const int &ieta) const
int phiNumber(const int &phi, const int &unit) const
U second(std::pair< T, U > const &p)
int unitPhi(const int &det, const int &etaR) const
TString units(TString variable, Char_t axis)

◆ getPhiTableHF()

const std::vector<double>& HcalDDDSimConstants::getPhiTableHF ( ) const
inline

Definition at line 60 of file HcalDDDSimConstants.h.

References hpar, and HcalParameters::phitable.

Referenced by HcalDDDRecConstants::getHFCellParameters().

60 { return hpar->phitable; }
std::vector< double > phitable
const HcalParameters * hpar

◆ getRTableHF()

const std::vector<double>& HcalDDDSimConstants::getRTableHF ( ) const
inline

Definition at line 61 of file HcalDDDSimConstants.h.

References hpar, and HcalParameters::rTable.

Referenced by HcalDDDRecConstants::getHFCellParameters(), HFShowerFibreBundle::HFShowerFibreBundle(), and HFShowerPMT::HFShowerPMT().

61 { return hpar->rTable; }
std::vector< double > rTable
const HcalParameters * hpar

◆ getShift()

int HcalDDDSimConstants::getShift ( const HcalSubdetector subdet,
const int &  depth 
) const
private

Definition at line 1066 of file HcalDDDSimConstants.cc.

References hcalRecHitTable_cff::depth, HcalParameters::HBShift, HcalEndcap, HcalForward, HcalOuter, HcalParameters::HEShift, HcalParameters::HFShift, hpar, and edm::shift.

Referenced by HcalCellTypes().

1066  {
1067  int shift;
1068  switch (subdet) {
1069  case HcalEndcap:
1070  shift = hpar->HEShift[0];
1071  break;
1072  case HcalForward:
1073  shift = hpar->HFShift[(depth - 1) % 2];
1074  break;
1075  case HcalOuter:
1076  shift = hpar->HBShift[3];
1077  break;
1078  default:
1079  shift = hpar->HBShift[0];
1080  break;
1081  }
1082  return shift;
1083 }
std::vector< int > HEShift
std::vector< int > HFShift
static unsigned int const shift
std::vector< int > HBShift
const HcalParameters * hpar

◆ HcalCellTypes() [1/2]

std::vector< HcalCellType > HcalDDDSimConstants::HcalCellTypes ( ) const

Definition at line 507 of file HcalDDDSimConstants.cc.

References HcalBarrel, HcalEndcap, HcalForward, HcalOuter, and mps_fire::i.

Referenced by HcalDDDRecConstants::HcalCellTypes(), HcalDDDSimConstants(), and numberOfCells().

507  {
508  std::vector<HcalCellType> cellTypes = HcalCellTypes(HcalBarrel);
509 #ifdef EDM_ML_DEBUG
510  edm::LogVerbatim("HCalGeom") << "HcalDDDSimConstants: " << cellTypes.size() << " cells of type HCal Barrel";
511  for (unsigned int i = 0; i < cellTypes.size(); i++)
512  edm::LogVerbatim("HCalGeom") << "Cell " << i << " " << cellTypes[i];
513 #endif
514 
515  std::vector<HcalCellType> hoCells = HcalCellTypes(HcalOuter);
516 #ifdef EDM_ML_DEBUG
517  edm::LogVerbatim("HCalGeom") << "HcalDDDSimConstants: " << hoCells.size() << " cells of type HCal Outer";
518  for (unsigned int i = 0; i < hoCells.size(); i++)
519  edm::LogVerbatim("HCalGeom") << "Cell " << i << " " << hoCells[i];
520 #endif
521  cellTypes.insert(cellTypes.end(), hoCells.begin(), hoCells.end());
522 
523  std::vector<HcalCellType> heCells = HcalCellTypes(HcalEndcap);
524 #ifdef EDM_ML_DEBUG
525  edm::LogVerbatim("HCalGeom") << "HcalDDDSimConstants: " << heCells.size() << " cells of type HCal Endcap";
526  for (unsigned int i = 0; i < heCells.size(); i++)
527  edm::LogVerbatim("HCalGeom") << "Cell " << i << " " << heCells[i];
528 #endif
529  cellTypes.insert(cellTypes.end(), heCells.begin(), heCells.end());
530 
531  std::vector<HcalCellType> hfCells = HcalCellTypes(HcalForward);
532 #ifdef EDM_ML_DEBUG
533  edm::LogVerbatim("HCalGeom") << "HcalDDDSimConstants: " << hfCells.size() << " cells of type HCal Forward";
534  for (unsigned int i = 0; i < hfCells.size(); i++)
535  edm::LogVerbatim("HCalGeom") << "Cell " << i << " " << hfCells[i];
536 #endif
537  cellTypes.insert(cellTypes.end(), hfCells.begin(), hfCells.end());
538 
539  return cellTypes;
540 }
Log< level::Info, true > LogVerbatim
std::vector< HcalCellType > HcalCellTypes() const

◆ HcalCellTypes() [2/2]

std::vector< HcalCellType > HcalDDDSimConstants::HcalCellTypes ( const HcalSubdetector subdet,
int  ieta = -1,
int  depth = -1 
) const

Definition at line 542 of file HcalDDDSimConstants.cc.

References cell(), hcalRecHitTable_cff::depth, dlShort, dzVcal, PVValHelper::eta, HcalParameters::etaMax, HcalParameters::etaMin, PedestalClient_cfi::gain, getGain(), getPhis(), getShift(), HcalBarrel, HcalEndcap, HcalForward, HcalOuter, hpar, idHF2QIE, hcalRecHitTable_cff::ieta, GetRecoTauVFromDQM_MC_cff::kk, MainPageGenerator::l, maxDepth, maxLayer_, maxLayerHB_, HcalParameters::noff, nzHB, nzHE, HcalCellType::HcalCell::ok, convertSQLiteXML::ok, phi, HcalParameters::phibin, HcalParameters::phioff, HcalParameters::phitable, HcalCellType::setPhi(), edm::shift, unit(), unitPhi(), and ecaldqm::zside().

544  {
545  std::vector<HcalCellType> cellTypes;
546  if (subdet == HcalForward) {
547  if (dzVcal < 0)
548  return cellTypes;
549  }
550 
551  int dmin, dmax, indx, nz;
552  double hsize = 0;
553  switch (subdet) {
554  case HcalEndcap:
555  dmin = 1;
556  dmax = (maxDepth[1] > 0) ? maxLayer_ + 1 : 0;
557  indx = 1;
558  nz = nzHE;
559  break;
560  case HcalForward:
561  dmin = 1;
562  dmax = (!idHF2QIE.empty()) ? 2 : maxDepth[2];
563  indx = 2;
564  nz = 2;
565  break;
566  case HcalOuter:
567  dmin = 4;
568  dmax = 4;
569  indx = 0;
570  nz = nzHB;
571  break;
572  default:
573  dmin = 1;
574  dmax = maxLayerHB_ + 1;
575  indx = 0;
576  nz = nzHB;
577  break;
578  }
579  if (depthl > 0)
580  dmin = dmax = depthl;
581  int ietamin = (ieta > 0) ? ieta : hpar->etaMin[indx];
582  int ietamax = (ieta > 0) ? ieta : hpar->etaMax[indx];
583  int phi = (indx == 2) ? 3 : 1;
584 
585  // Get the Cells
586  int subdet0 = static_cast<int>(subdet);
587  for (int depth = dmin; depth <= dmax; depth++) {
588  int shift = getShift(subdet, depth);
589  double gain = getGain(subdet, depth);
590  if (subdet == HcalForward) {
591  if (depth % 2 == 1)
592  hsize = dzVcal;
593  else
594  hsize = dzVcal - 0.5 * dlShort;
595  }
596  for (int eta = ietamin; eta <= ietamax; eta++) {
597  for (int iz = 0; iz < nz; ++iz) {
598  int zside = -2 * iz + 1;
599  HcalCellType::HcalCell temp1 = cell(subdet0, zside, depth, eta, phi);
600  if (temp1.ok) {
601  std::vector<std::pair<int, double> > phis = getPhis(subdet0, eta);
602  HcalCellType temp2(subdet, eta, zside, depth, temp1, shift, gain, hsize);
603  double dphi, fioff;
604  std::vector<int> phiMiss2;
605  if ((subdet == HcalBarrel) || (subdet == HcalOuter)) {
606  fioff = hpar->phioff[0];
607  dphi = hpar->phibin[eta - 1];
608  if (subdet == HcalOuter) {
609  if (eta == hpar->noff[4]) {
610  int kk = (iz == 0) ? 7 : (7 + hpar->noff[5]);
611  for (int miss = 0; miss < hpar->noff[5 + iz]; miss++) {
612  phiMiss2.emplace_back(hpar->noff[kk]);
613  kk++;
614  }
615  }
616  }
617  } else if (subdet == HcalEndcap) {
618  fioff = hpar->phioff[1];
619  dphi = hpar->phibin[eta - 1];
620  } else {
621  fioff = hpar->phioff[2];
622  dphi = hpar->phitable[eta - hpar->etaMin[2]];
623  if (unitPhi(dphi) > 2)
624  fioff = hpar->phioff[4];
625  }
626  int unit = unitPhi(dphi);
627  temp2.setPhi(phis, phiMiss2, fioff, dphi, unit);
628  cellTypes.emplace_back(temp2);
629  // For HF look at extra cells
630  if ((subdet == HcalForward) && (!idHF2QIE.empty())) {
631  HcalCellType temp3(subdet, eta, zside + 2, depth, temp1, shift, gain, hsize);
632  std::vector<int> phiMiss3;
633  for (auto& phi : phis) {
634  bool ok(false);
635  for (auto l : idHF2QIE) {
636  if ((eta * zside == l.ieta()) && (phi.first == l.iphi())) {
637  ok = true;
638  break;
639  }
640  }
641  if (!ok)
642  phiMiss3.emplace_back(phi.first);
643  }
644  dphi = hpar->phitable[eta - hpar->etaMin[2]];
645  unit = unitPhi(dphi);
646  fioff = (unit > 2) ? hpar->phioff[4] : hpar->phioff[2];
647  temp3.setPhi(phis, phiMiss2, fioff, dphi, unit);
648  cellTypes.emplace_back(temp3);
649  }
650  }
651  }
652  }
653  }
654  return cellTypes;
655 }
HcalCellType::HcalCell cell(const int &det, const int &zside, const int &depth, const int &etaR, const int &iphi) const
std::vector< int > maxDepth
static const int maxLayer_
int zside(DetId const &)
double getGain(const HcalSubdetector &subdet, const int &depth) const
std::vector< int > etaMax
std::vector< std::pair< int, double > > getPhis(const int &subdet, const int &ieta) const
std::vector< HcalDetId > idHF2QIE
Basic3DVector unit() const
int unitPhi(const int &det, const int &etaR) const
std::vector< double > phioff
std::vector< double > phitable
std::vector< double > phibin
static unsigned int const shift
std::vector< int > noff
const HcalParameters * hpar
static const int maxLayerHB_
std::vector< int > etaMin
int getShift(const HcalSubdetector &subdet, const int &depth) const

◆ initialize()

void HcalDDDSimConstants::initialize ( void  )
private

Definition at line 743 of file HcalDDDSimConstants.cc.

References depthEta16, depthEta29, depthMaxDf_, depthMaxSp_, depths, dlShort, runTauDisplay::dtype, HcalParameters::dzVcal, dzVcal, etaHO, ALCARECOTkAlBeamHalo_cff::etaMax, HcalParameters::etaMax, HcalParameters::etaMin, HcalParameters::etaTable, cms::cuda::for(), HcalLayerDepthMap::getDepthMax(), getLayerMax(), HcalParameters::gparHF, HcalForward, hpar, mps_fire::i, idHF2QIE, HcalLayerDepthMap::initialize(), hcalRecHitTable_cff::iphi, isBH_, dqmdumpme::k, GetRecoTauVFromDQM_MC_cff::kk, MainPageGenerator::l, layBHB, layBHE, HcalParameters::Layer0Wt, layerGroup(), layerGroupSize(), layFHB, layFHE, ldmap_, HcalParameters::maxDepth, maxDepth, maxLayerHB_, HcalParameters::modHB, HcalParameters::modHE, nEta, nmodHB, nmodHE, HcalParameters::noff, nphi, nPhiF, nR, nzHB, nzHE, HcalParameters::rHB, HcalParameters::rHO, rminHO, HcalParameters::rTable, HcalParameters::zHO, ecaldqm::zside(), and zVcal.

Referenced by HcalDDDSimConstants().

743  {
744  nEta = hpar->etaTable.size();
745  nR = hpar->rTable.size();
746  nPhiF = nR - 1;
747  isBH_ = false;
748 
749 #ifdef EDM_ML_DEBUG
750  for (int i = 0; i < nEta - 1; ++i) {
751  edm::LogVerbatim("HCalGeom") << "HcalDDDSimConstants:Read LayerGroup" << i << ":";
752  for (unsigned int k = 0; k < layerGroupSize(i); k++)
753  edm::LogVerbatim("HCalGeom") << " [" << k << "] = " << layerGroup(i, k);
754  }
755 #endif
756 
757  // Geometry parameters for HF
758  dlShort = hpar->gparHF[0];
759  zVcal = hpar->gparHF[4];
760  dzVcal = hpar->dzVcal;
761 #ifdef EDM_ML_DEBUG
762  edm::LogVerbatim("HCalGeom") << "HcalDDDSimConstants: dlShort " << dlShort << " zVcal " << zVcal << " and dzVcal "
763  << dzVcal;
764 #endif
765 
766  //Transform some of the parameters
768  maxDepth[0] = maxDepth[1] = 0;
769  for (int i = 0; i < nEta - 1; ++i) {
770  unsigned int imx = layerGroupSize(i);
771  int laymax = (imx > 0) ? layerGroup(i, imx - 1) : 0;
772  if (i < hpar->etaMax[0]) {
773  int laymax0 = (imx > 16) ? layerGroup(i, 16) : laymax;
774  if (i + 1 == hpar->etaMax[0] && laymax0 > 2)
775  laymax0 = 2;
776  if (maxDepth[0] < laymax0)
777  maxDepth[0] = laymax0;
778  }
779  if (i >= hpar->etaMin[1] - 1 && i < hpar->etaMax[1]) {
780  if (maxDepth[1] < laymax)
781  maxDepth[1] = laymax;
782  }
783  }
784 #ifdef EDM_ML_DEBUG
785  for (int i = 0; i < 4; ++i)
786  edm::LogVerbatim("HCalGeom") << "Detector Type [" << i << "] iEta " << hpar->etaMin[i] << ":" << hpar->etaMax[i]
787  << " MaxDepth " << maxDepth[i];
788 #endif
789 
790  int maxdepth = (maxDepth[1] > maxDepth[0]) ? maxDepth[1] : maxDepth[0];
791  for (int i = 0; i < maxdepth; ++i) {
792  for (int k = 0; k < nEta - 1; ++k) {
793  int layermx = getLayerMax(k + 1, i + 1);
794  int ll = layermx;
795  for (int l = layermx - 1; l >= 0; --l) {
796  if (static_cast<int>(layerGroup(k, l)) == i + 1) {
797  ll = l + 1;
798  break;
799  }
800  }
801  depths[i].emplace_back(ll);
802  }
803 
804 #ifdef EDM_ML_DEBUG
805  edm::LogVerbatim("HCalGeom") << "Depth " << i + 1 << " with " << depths[i].size() << " etas:";
806  for (int k = 0; k < nEta - 1; ++k)
807  edm::LogVerbatim("HCalGeom") << " [" << k << "] " << depths[i][k];
808 #endif
809  }
810 
811  nzHB = hpar->modHB[1];
812  nmodHB = hpar->modHB[0];
813  nzHE = hpar->modHE[1];
814  nmodHE = hpar->modHE[0];
815 #ifdef EDM_ML_DEBUG
816  edm::LogVerbatim("HCalGeom") << "HcalDDDSimConstants:: " << nzHB << ":" << nmodHB << " barrel and " << nzHE << ":"
817  << nmodHE << " endcap half-sectors";
818 #endif
819 
820  if (hpar->rHB.size() > maxLayerHB_ + 1 && hpar->zHO.size() > 4) {
821  rminHO = hpar->rHO[0];
822  for (int k = 0; k < 4; ++k)
823  etaHO[k] = hpar->rHO[k + 1];
824  } else {
825  rminHO = -1.0;
826  etaHO[0] = hpar->etaTable[4];
827  etaHO[1] = hpar->etaTable[4];
828  etaHO[2] = hpar->etaTable[10];
829  etaHO[3] = hpar->etaTable[10];
830  }
831 #ifdef EDM_ML_DEBUG
832  edm::LogVerbatim("HCalGeom") << "HO Eta boundaries " << etaHO[0] << " " << etaHO[1] << " " << etaHO[2] << " "
833  << etaHO[3];
834  edm::LogVerbatim("HCalGeom") << "HO Parameters " << rminHO << " " << hpar->zHO.size();
835  for (int i = 0; i < 4; ++i)
836  edm::LogVerbatim("HCalGeom") << " eta[" << i << "] = " << etaHO[i];
837  for (unsigned int i = 0; i < hpar->zHO.size(); ++i)
838  edm::LogVerbatim("HCalGeom") << " zHO[" << i << "] = " << hpar->zHO[i];
839 #endif
840 
841  int noffsize = 7 + hpar->noff[5] + hpar->noff[6];
842  int noffl(noffsize + 5);
843  if (static_cast<int>(hpar->noff.size()) > (noffsize + 3)) {
844  depthEta16[0] = hpar->noff[noffsize];
845  depthEta16[1] = hpar->noff[noffsize + 1];
846  depthEta29[0] = hpar->noff[noffsize + 2];
847  depthEta29[1] = hpar->noff[noffsize + 3];
848  if (static_cast<int>(hpar->noff.size()) > (noffsize + 4)) {
849  noffl += (2 * hpar->noff[noffsize + 4]);
850  if (static_cast<int>(hpar->noff.size()) > noffl)
851  isBH_ = (hpar->noff[noffl] > 0);
852  }
853  } else {
854  depthEta16[0] = 2;
855  depthEta16[1] = 3;
856  depthEta29[0] = 2;
857  depthEta29[1] = 1;
858  }
859 #ifdef EDM_ML_DEBUG
860  edm::LogVerbatim("HCalGeom") << "isBH_ " << hpar->noff.size() << ":" << noffsize << ":" << noffl << ":" << isBH_;
861  edm::LogVerbatim("HCalGeom") << "Depth index at ieta = 16 for HB (max) " << depthEta16[0] << " HE (min) "
862  << depthEta16[1] << "; max depth for itea = 29 : (" << depthEta29[0] << ":"
863  << depthEta29[1] << ")";
864 #endif
865 
866  if (static_cast<int>(hpar->noff.size()) > (noffsize + 4)) {
867  int npair = hpar->noff[noffsize + 4];
868  int kk = noffsize + 4;
869  for (int k = 0; k < npair; ++k) {
870  idHF2QIE.emplace_back(HcalDetId(HcalForward, hpar->noff[kk + 1], hpar->noff[kk + 2], 1));
871  kk += 2;
872  }
873  }
874 #ifdef EDM_ML_DEBUG
875  edm::LogVerbatim("HCalGeom") << idHF2QIE.size() << " detector channels having 2 QIE cards:";
876  for (unsigned int k = 0; k < idHF2QIE.size(); ++k)
877  edm::LogVerbatim("HCalGeom") << " [" << k << "] " << idHF2QIE[k];
878 #endif
879 
880  layFHB[0] = 0;
881  layFHB[1] = 1;
882  layBHB[0] = 16;
883  layBHB[1] = 15;
884  layBHB[2] = 8;
885  if (maxDepth[1] == 0) {
886  layFHE[0] = layFHE[1] = layFHE[2] = 0;
887  layBHE[0] = layBHE[1] = layBHE[2] = layBHE[3] = 0;
888  } else {
889  layFHE[0] = 1;
890  layFHE[1] = 4;
891  layFHE[2] = 0;
892  layBHE[0] = 18;
893  layBHE[1] = 9;
894  layBHE[2] = 14;
895  layBHE[3] = 16;
896  }
897  depthMaxSp_ = std::pair<int, int>(0, 0);
898  int noffk(noffsize + 5);
899  if (static_cast<int>(hpar->noff.size()) > (noffsize + 5)) {
900  noffk += (2 * hpar->noff[noffsize + 4]);
901  if (static_cast<int>(hpar->noff.size()) >= noffk + 7) {
902  int dtype = hpar->noff[noffk + 1];
903  int nphi = hpar->noff[noffk + 2];
904  int ndeps = hpar->noff[noffk + 3];
905  int ndp16 = hpar->noff[noffk + 4];
906  int ndp29 = hpar->noff[noffk + 5];
907  double wt = 0.1 * (hpar->noff[noffk + 6]);
908  if (static_cast<int>(hpar->noff.size()) >= (noffk + 7 + nphi + 3 * ndeps)) {
909  if (dtype == 1 || dtype == 2) {
910  std::vector<int> ifi, iet, ily, idp;
911  for (int i = 0; i < nphi; ++i)
912  ifi.emplace_back(hpar->noff[noffk + 7 + i]);
913  for (int i = 0; i < ndeps; ++i) {
914  iet.emplace_back(hpar->noff[noffk + 7 + nphi + 3 * i]);
915  ily.emplace_back(hpar->noff[noffk + 7 + nphi + 3 * i + 1]);
916  idp.emplace_back(hpar->noff[noffk + 7 + nphi + 3 * i + 2]);
917  }
918 #ifdef EDM_ML_DEBUG
919  edm::LogVerbatim("HCalGeom") << "Initialize HcalLayerDepthMap for "
920  << "Detector " << dtype << " etaMax " << hpar->etaMax[dtype] << " with " << nphi
921  << " sectors";
922  for (int i = 0; i < nphi; ++i)
923  edm::LogVerbatim("HCalGeom") << " [" << i << "] " << ifi[i];
924  edm::LogVerbatim("HCalGeom") << "And " << ndeps << " depth sections";
925  for (int i = 0; i < ndeps; ++i)
926  edm::LogVerbatim("HCalGeom") << " [" << i << "] " << iet[i] << " " << ily[i] << " " << idp[i];
927  edm::LogVerbatim("HCalGeom") << "Maximum depth for last HE Eta tower " << depthEta29[0] << ":" << ndp16 << ":"
928  << ndp29 << " L0 Wt " << hpar->Layer0Wt[dtype - 1] << ":" << wt;
929 #endif
930  ldmap_.initialize(dtype, hpar->etaMax[dtype - 1], ndp16, ndp29, wt, ifi, iet, ily, idp);
931  int zside = (ifi[0] > 0) ? 1 : -1;
932  int iphi = (ifi[0] > 0) ? ifi[0] : -ifi[0];
933  depthMaxSp_ = std::pair<int, int>(dtype, ldmap_.getDepthMax(dtype, iphi, zside));
934  }
935  }
936  int noffm = (noffk + 7 + nphi + 3 * ndeps);
937  if (static_cast<int>(hpar->noff.size()) > noffm) {
938  int ndnext = hpar->noff[noffm];
939  if (ndnext > 4 && static_cast<int>(hpar->noff.size()) >= noffm + ndnext) {
940  for (int i = 0; i < 2; ++i)
941  layFHB[i] = hpar->noff[noffm + i + 1];
942  for (int i = 0; i < 3; ++i)
943  layFHE[i] = hpar->noff[noffm + i + 3];
944  }
945  if (ndnext > 11 && static_cast<int>(hpar->noff.size()) >= noffm + ndnext) {
946  for (int i = 0; i < 3; ++i)
947  layBHB[i] = hpar->noff[noffm + i + 6];
948  for (int i = 0; i < 4; ++i)
949  layBHE[i] = hpar->noff[noffm + i + 9];
950  }
951  }
952  }
953  }
954 #ifdef EDM_ML_DEBUG
955  edm::LogVerbatim("HCalGeom") << "Front Layer Definition for HB: " << layFHB[0] << ":" << layFHB[1]
956  << " and for HE: " << layFHE[0] << ":" << layFHE[1] << ":" << layFHE[2];
957  edm::LogVerbatim("HCalGeom") << "Last Layer Definition for HB: " << layBHB[0] << ":" << layBHB[1] << ":" << layBHB[2]
958  << " and for HE: " << layBHE[0] << ":" << layBHE[1] << ":" << layBHE[2] << ":"
959  << layBHE[3];
960 #endif
961  if (depthMaxSp_.first == 0) {
962  depthMaxSp_ = depthMaxDf_ = std::pair<int, int>(2, maxDepth[1]);
963  } else if (depthMaxSp_.first == 1) {
964  depthMaxDf_ = std::pair<int, int>(1, maxDepth[0]);
965  if (depthMaxSp_.second > maxDepth[0])
966  maxDepth[0] = depthMaxSp_.second;
967  } else {
968  depthMaxDf_ = std::pair<int, int>(2, maxDepth[1]);
969  if (depthMaxSp_.second > maxDepth[1])
970  maxDepth[1] = depthMaxSp_.second;
971  }
972 #ifdef EDM_ML_DEBUG
973  edm::LogVerbatim("HCalGeom") << "Detector type and maximum depth for all RBX " << depthMaxDf_.first << ":"
974  << depthMaxDf_.second << " and for special RBX " << depthMaxSp_.first << ":"
975  << depthMaxSp_.second;
976 #endif
977 }
Log< level::Info, true > LogVerbatim
const int nphi
std::vector< double > zHO
std::vector< double > etaTable
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)
std::vector< int > maxDepth
std::vector< double > rHB
for(int i=first, nt=offsets[nh];i< nt;i+=gridDim.x *blockDim.x)
std::pair< int, int > depthMaxDf_
int zside(DetId const &)
std::vector< int > etaMax
std::vector< int > depths[nDepthMax]
std::vector< int > modHB
unsigned int layerGroupSize(int eta) const
std::vector< double > rHO
std::pair< int, int > depthMaxSp_
std::vector< int > modHE
std::vector< HcalDetId > idHF2QIE
std::vector< double > gparHF
std::vector< double > Layer0Wt
std::vector< double > rTable
int getDepthMax(const int subdet, const int iphi, const int zside) const
std::vector< int > noff
unsigned int layerGroup(int eta, int i) const
const HcalParameters * hpar
std::vector< int > maxDepth
int getLayerMax(const int &eta, const int &depth) const
static const int maxLayerHB_
std::vector< int > etaMin
HcalLayerDepthMap ldmap_

◆ isBH()

bool HcalDDDSimConstants::isBH ( ) const
inline

Definition at line 64 of file HcalDDDSimConstants.h.

References isBH_.

Referenced by HcalDDDRecConstants::isBH().

64 { return isBH_; }

◆ isHE()

bool HcalDDDSimConstants::isHE ( ) const
inline

Definition at line 65 of file HcalDDDSimConstants.h.

References HcalParameters::etaMax, HcalParameters::etaMin, and hpar.

Referenced by HcalDDDRecConstants::isHE(), and HCalSD::setDetUnitId().

65 { return (hpar->etaMax[1] > hpar->etaMin[1]); }
std::vector< int > etaMax
const HcalParameters * hpar
std::vector< int > etaMin

◆ layerGroup() [1/2]

unsigned int HcalDDDSimConstants::layerGroup ( int  eta,
int  i 
) const
private

Definition at line 1216 of file HcalDDDSimConstants.cc.

References PVValHelper::eta, hpar, mps_fire::i, dqmdumpme::k, and HcalParameters::layerGroupEtaSim.

Referenced by findLayer(), getEtaDepth(), getLayerFront(), getMaxDepth(), getMinDepth(), initialize(), and layerGroup().

1216  {
1217  unsigned int k = 0;
1218  for (auto const& it : hpar->layerGroupEtaSim) {
1219  if (it.layer == static_cast<unsigned int>(eta + 1)) {
1220  return it.layerGroup.at(i);
1221  }
1222  if (it.layer > static_cast<unsigned int>(eta + 1))
1223  break;
1224  k = it.layerGroup.at(i);
1225  }
1226  return k;
1227 }
std::vector< LayerItem > layerGroupEtaSim
const HcalParameters * hpar

◆ layerGroup() [2/2]

unsigned int HcalDDDSimConstants::layerGroup ( int  det,
int  eta,
int  phi,
int  zside,
int  i 
) const
private

Definition at line 1229 of file HcalDDDSimConstants.cc.

References hcalRecHitTable_cff::depth, PVValHelper::eta, findDepth(), layerGroup(), phi, and ecaldqm::zside().

1229  {
1230  int depth0 = findDepth(det, eta, phi, zside, lay);
1231  unsigned int depth = (depth0 > 0) ? static_cast<unsigned int>(depth0) : layerGroup(eta - 1, lay);
1232  return depth;
1233 }
int zside(DetId const &)
int findDepth(const int &det, const int &eta, const int &phi, const int &zside, const int &lay) const
unsigned int layerGroup(int eta, int i) const

◆ layerGroupSize()

unsigned int HcalDDDSimConstants::layerGroupSize ( int  eta) const
private

Definition at line 1203 of file HcalDDDSimConstants.cc.

References PVValHelper::eta, hpar, dqmdumpme::k, and HcalParameters::layerGroupEtaSim.

Referenced by getLayerMax(), getMinDepth(), and initialize().

1203  {
1204  unsigned int k = 0;
1205  for (auto const& it : hpar->layerGroupEtaSim) {
1206  if (it.layer == static_cast<unsigned int>(eta + 1)) {
1207  return it.layerGroup.size();
1208  }
1209  if (it.layer > static_cast<unsigned int>(eta + 1))
1210  break;
1211  k = it.layerGroup.size();
1212  }
1213  return k;
1214 }
std::vector< LayerItem > layerGroupEtaSim
const HcalParameters * hpar

◆ ldMap()

const HcalLayerDepthMap* HcalDDDSimConstants::ldMap ( ) const
inline

◆ maxHFDepth()

int HcalDDDSimConstants::maxHFDepth ( const int &  ieta,
const int &  iphi 
) const

Definition at line 657 of file HcalDDDSimConstants.cc.

References PVValHelper::eta, idHF2QIE, hcalRecHitTable_cff::iphi, dqmdumpme::k, maxDepth, and convertSQLiteXML::ok.

Referenced by getMaxDepth(), HcalDDDRecConstants::maxHFDepth(), FastHFShowerLibrary::modifyDepth(), and HCalSD::modifyDepth().

657  {
658  int mxdepth = maxDepth[2];
659  if (!idHF2QIE.empty()) {
660  bool ok(false);
661  for (auto k : idHF2QIE) {
662  if ((eta == k.ieta()) && (iphi == k.iphi())) {
663  ok = true;
664  break;
665  }
666  }
667  if (!ok)
668  mxdepth = 2;
669  }
670  return mxdepth;
671 }
std::vector< int > maxDepth
std::vector< HcalDetId > idHF2QIE

◆ numberOfCells()

unsigned int HcalDDDSimConstants::numberOfCells ( const HcalSubdetector subdet) const

Definition at line 673 of file HcalDDDSimConstants.cc.

References HcalCellTypes(), and EgammaValidation_cff::num.

Referenced by HcalDDDRecConstants::nCells(), and HcalDDDRecConstants::numberOfCells().

673  {
674  unsigned int num = 0;
675  std::vector<HcalCellType> cellTypes = HcalCellTypes(subdet);
676  for (auto& cellType : cellTypes) {
677  num += static_cast<unsigned int>(cellType.nPhiBins());
678  }
679 #ifdef EDM_ML_DEBUG
680  edm::LogVerbatim("HCalGeom") << "HcalDDDSimConstants:numberOfCells " << cellTypes.size() << " " << num
681  << " for subdetector " << subdet;
682 #endif
683  return num;
684 }
Log< level::Info, true > LogVerbatim
std::vector< HcalCellType > HcalCellTypes() const

◆ parameter()

const HcalParameters* HcalDDDSimConstants::parameter ( ) const
inline

Definition at line 69 of file HcalDDDSimConstants.h.

References hpar.

69 { return hpar; }
const HcalParameters * hpar

◆ phiNumber()

int HcalDDDSimConstants::phiNumber ( const int &  phi,
const int &  unit 
) const

Definition at line 686 of file HcalDDDSimConstants.cc.

References phi, and units().

Referenced by HcalDDDRecConstants::getHCID(), getPhis(), HcalDDDRecConstants::getPhis(), and HcalNumberingFromDDD::unitID().

686  {
687  int iphi_skip = phi;
688  if (units == 2)
689  iphi_skip = (phi - 1) * 2 + 1;
690  else if (units == 4)
691  iphi_skip = (phi - 1) * 4 - 1;
692  if (iphi_skip < 0)
693  iphi_skip += 72;
694  return iphi_skip;
695 }
TString units(TString variable, Char_t axis)

◆ printTileHB()

void HcalDDDSimConstants::printTileHB ( const int &  eta,
const int &  phi,
const int &  zside,
const int &  depth 
) const
private

Definition at line 1104 of file HcalDDDSimConstants.cc.

References custom_jme_cff::area, angle_units::operators::convertRadToDeg(), funct::cos(), hcalRecHitTable_cff::depth, HcalParameters::dxHB, HcalParameters::dyHB, PVValHelper::dz, PVValHelper::eta, HcalParameters::etaTable, JetChargeProducer_cfi::exp, getLayerBack(), getLayerFront(), hpar, dqmdumpme::k, GetRecoTauVFromDQM_MC_cff::kk, HcalParameters::layHB, SiStripPI::mean, SiStripPI::min, phi, HcalParameters::rhoxHB, funct::sin(), SiStripMonitorCluster_cfi::zmax, SiStripMonitorCluster_cfi::zmin, and ecaldqm::zside().

Referenced by printTiles().

1104  {
1105  edm::LogVerbatim("HCalGeom") << "HcalDDDSimConstants::printTileHB for eta " << eta << " and depth " << depth;
1106 
1107  double etaL = hpar->etaTable.at(eta - 1);
1108  double thetaL = 2. * atan(exp(-etaL));
1109  double etaH = hpar->etaTable.at(eta);
1110  double thetaH = 2. * atan(exp(-etaH));
1111  int layL = getLayerFront(1, eta, phi, zside, depth);
1112  int layH = getLayerBack(1, eta, phi, zside, depth);
1113  edm::LogVerbatim("HCalGeom") << "\ntileHB:: eta|depth " << zside * eta << "|" << depth << " theta "
1114  << convertRadToDeg(thetaH) << ":" << convertRadToDeg(thetaL) << " Layer " << layL - 1
1115  << ":" << layH - 1;
1116  for (int lay = layL - 1; lay < layH; ++lay) {
1117  std::vector<double> area(2, 0);
1118  int kk(0);
1119  double mean(0);
1120  for (unsigned int k = 0; k < hpar->layHB.size(); ++k) {
1121  if (lay == hpar->layHB[k]) {
1122  double zmin = hpar->rhoxHB[k] * std::cos(thetaL) / std::sin(thetaL);
1123  double zmax = hpar->rhoxHB[k] * std::cos(thetaH) / std::sin(thetaH);
1124  double dz = (std::min(zmax, hpar->dxHB[k]) - zmin);
1125  if (dz > 0) {
1126  area[kk] = dz * hpar->dyHB[k];
1127  mean += area[kk];
1128  kk++;
1129  }
1130  }
1131  }
1132  if (area[0] > 0) {
1133  mean /= (kk * 100);
1134  edm::LogVerbatim("HCalGeom") << std::setw(2) << lay << " Area " << std::setw(8) << area[0] << " " << std::setw(8)
1135  << area[1] << " Mean " << mean;
1136  }
1137  }
1138 }
Log< level::Info, true > LogVerbatim
std::vector< double > etaTable
constexpr NumType convertRadToDeg(NumType radians)
Definition: angle_units.h:21
std::vector< double > rhoxHB
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
int zside(DetId const &)
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
int getLayerBack(const int &det, const int &eta, const int &phi, const int &zside, const int &depth) const
int getLayerFront(const int &det, const int &eta, const int &phi, const int &zside, const int &depth) const
std::vector< double > dyHB
std::vector< double > dxHB
const HcalParameters * hpar
std::vector< int > layHB

◆ printTileHE()

void HcalDDDSimConstants::printTileHE ( const int &  eta,
const int &  phi,
const int &  zside,
const int &  depth 
) const
private

Definition at line 1140 of file HcalDDDSimConstants.cc.

References custom_jme_cff::area, angle_units::operators::convertRadToDeg(), hcalRecHitTable_cff::depth, HcalParameters::dx1HE, HcalParameters::dyHE, PVValHelper::eta, HcalParameters::etaTable, JetChargeProducer_cfi::exp, getLayerBack(), getLayerFront(), hpar, dqmdumpme::k, GetRecoTauVFromDQM_MC_cff::kk, HcalParameters::layHE, SiStripPI::max, SiStripPI::mean, SiStripPI::min, nphi, phi, HcalParameters::phibin, HcalParameters::rhoxHE, funct::tan(), ecaldqm::zside(), and HcalParameters::zxHE.

Referenced by printTiles().

1140  {
1141  double etaL = hpar->etaTable[eta - 1];
1142  double thetaL = 2. * atan(exp(-etaL));
1143  double etaH = hpar->etaTable[eta];
1144  double thetaH = 2. * atan(exp(-etaH));
1145  int layL = getLayerFront(2, eta, phi, zside, depth);
1146  int layH = getLayerBack(2, eta, phi, zside, depth);
1147  double phib = hpar->phibin[eta - 1];
1148  int nphi = 2;
1149  if (phib > 6._deg)
1150  nphi = 1;
1151  edm::LogVerbatim("HCalGeom") << "\ntileHE:: Eta/depth " << zside * eta << "|" << depth << " theta "
1152  << convertRadToDeg(thetaH) << ":" << convertRadToDeg(thetaL) << " Layer " << layL - 1
1153  << ":" << layH - 1 << " phi " << nphi;
1154  for (int lay = layL - 1; lay < layH; ++lay) {
1155  std::vector<double> area(4, 0);
1156  int kk(0);
1157  double mean(0);
1158  for (unsigned int k = 0; k < hpar->layHE.size(); ++k) {
1159  if (lay == hpar->layHE[k]) {
1160  double rmin = hpar->zxHE[k] * std::tan(thetaH);
1161  double rmax = hpar->zxHE[k] * std::tan(thetaL);
1162  if ((lay != 0 || eta == 18) &&
1163  (lay != 1 || (eta == 18 && hpar->rhoxHE[k] - hpar->dyHE[k] > 1000) ||
1164  (eta != 18 && hpar->rhoxHE[k] - hpar->dyHE[k] < 1000)) &&
1165  rmin + 30 < hpar->rhoxHE[k] + hpar->dyHE[k] && rmax > hpar->rhoxHE[k] - hpar->dyHE[k]) {
1166  rmin = std::max(rmin, hpar->rhoxHE[k] - hpar->dyHE[k]);
1167  rmax = std::min(rmax, hpar->rhoxHE[k] + hpar->dyHE[k]);
1168  double dx1 = rmin * std::tan(phib);
1169  double dx2 = rmax * std::tan(phib);
1170  double ar1 = 0, ar2 = 0;
1171  if (nphi == 1) {
1172  ar1 = 0.5 * (rmax - rmin) * (dx1 + dx2 - 4. * hpar->dx1HE[k]);
1173  mean += ar1;
1174  } else {
1175  ar1 = 0.5 * (rmax - rmin) * (dx1 + dx2 - 2. * hpar->dx1HE[k]);
1176  ar2 = 0.5 * (rmax - rmin) * ((rmax + rmin) * tan(10._deg) - 4 * hpar->dx1HE[k]) - ar1;
1177  mean += (ar1 + ar2);
1178  }
1179  area[kk] = ar1;
1180  area[kk + 2] = ar2;
1181  kk++;
1182  }
1183  }
1184  }
1185  if (area[0] > 0 && area[1] > 0) {
1186  int lay0 = lay - 1;
1187  if (eta == 18)
1188  lay0++;
1189  if (nphi == 1) {
1190  mean /= (kk * 100);
1191  edm::LogVerbatim("HCalGeom") << std::setw(2) << lay0 << " Area " << std::setw(8) << area[0] << " "
1192  << std::setw(8) << area[1] << " Mean " << mean;
1193  } else {
1194  mean /= (kk * 200);
1195  edm::LogVerbatim("HCalGeom") << std::setw(2) << lay0 << " Area " << std::setw(8) << area[0] << " "
1196  << std::setw(8) << area[1] << ":" << std::setw(8) << area[2] << " " << std::setw(8)
1197  << area[3] << " Mean " << mean;
1198  }
1199  }
1200  }
1201 }
Log< level::Info, true > LogVerbatim
const int nphi
std::vector< double > etaTable
std::vector< int > layHE
constexpr NumType convertRadToDeg(NumType radians)
Definition: angle_units.h:21
int zside(DetId const &)
std::vector< double > rhoxHE
std::vector< double > zxHE
std::vector< double > dyHE
std::vector< double > dx1HE
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
int getLayerBack(const int &det, const int &eta, const int &phi, const int &zside, const int &depth) const
int getLayerFront(const int &det, const int &eta, const int &phi, const int &zside, const int &depth) const
std::vector< double > phibin
const HcalParameters * hpar

◆ printTiles()

void HcalDDDSimConstants::printTiles ( ) const

Definition at line 697 of file HcalDDDSimConstants.cc.

References hcalRecHitTable_cff::depth, PVValHelper::eta, ALCARECOTkAlBeamHalo_cff::etaMax, HcalParameters::etaMax, HcalParameters::etaMin, getDepthEta16(), getMaxDepth(), hpar, hcalRecHitTable_cff::iphi, ldmap_, printTileHB(), printTileHE(), HcalLayerDepthMap::validDet(), and ecaldqm::zside().

697  {
698  std::vector<int> phis;
699  int detsp = ldmap_.validDet(phis);
700  int kphi = (detsp > 0) ? phis[0] : 1;
701  int zside = (kphi > 0) ? 1 : -1;
702  int iphi = (kphi > 0) ? kphi : -kphi;
703  edm::LogVerbatim("HCalGeom") << "Tile Information for HB from " << hpar->etaMin[0] << " to " << hpar->etaMax[0];
704  for (int eta = hpar->etaMin[0]; eta <= hpar->etaMax[0]; eta++) {
705  int dmax = getMaxDepth(1, eta, iphi, -zside, false);
706  for (int depth = 1; depth <= dmax; depth++)
708  if (detsp == 1) {
709  int dmax = getMaxDepth(1, eta, iphi, zside, false);
710  for (int depth = 1; depth <= dmax; depth++)
712  }
713  }
714 
715  edm::LogVerbatim("HCalGeom") << "\nTile Information for HE from " << hpar->etaMin[1] << " to " << hpar->etaMax[1];
716  for (int eta = hpar->etaMin[1]; eta <= hpar->etaMax[1]; eta++) {
717  int dmin = (eta == hpar->etaMin[1]) ? getDepthEta16(2, iphi, -zside) : 1;
718  int dmax = getMaxDepth(2, eta, iphi, -zside, false);
719  for (int depth = dmin; depth <= dmax; depth++)
721  if (detsp == 2) {
722  int dmax = getMaxDepth(2, eta, iphi, zside, false);
723  for (int depth = 1; depth <= dmax; depth++)
725  }
726  }
727 }
Log< level::Info, true > LogVerbatim
int zside(DetId const &)
std::vector< int > etaMax
void printTileHE(const int &eta, const int &phi, const int &zside, const int &depth) const
void printTileHB(const int &eta, const int &phi, const int &zside, const int &depth) const
const HcalParameters * hpar
int getMaxDepth(const int &type) const
int validDet(std::vector< int > &phis) const
int getDepthEta16(const int &det, const int &phi, const int &zside) const
std::vector< int > etaMin
HcalLayerDepthMap ldmap_

◆ unitPhi() [1/2]

int HcalDDDSimConstants::unitPhi ( const int &  det,
const int &  etaR 
) const

Definition at line 729 of file HcalDDDSimConstants.cc.

References HcalParameters::etaMin, HcalForward, hpar, HcalParameters::phibin, and HcalParameters::phitable.

Referenced by cell(), HcalDDDRecConstants::getEtaPhi(), HcalDDDRecConstants::getHCID(), getPhiCons(), getPhis(), HcalDDDRecConstants::getPhis(), HcalCellTypes(), HcalDDDRecConstants::HcalCellTypes(), HcalDDDRecConstants::initialize(), and HcalNumberingFromDDD::unitID().

729  {
730  double dphi =
731  (det == static_cast<int>(HcalForward)) ? hpar->phitable[etaR - hpar->etaMin[2]] : hpar->phibin[etaR - 1];
732  return unitPhi(dphi);
733 }
int unitPhi(const int &det, const int &etaR) const
std::vector< double > phitable
std::vector< double > phibin
const HcalParameters * hpar
std::vector< int > etaMin

◆ unitPhi() [2/2]

int HcalDDDSimConstants::unitPhi ( const double &  dphi) const

Definition at line 735 of file HcalDDDSimConstants.cc.

References createfilelist::int, M_PI, and units().

735  {
736  const double fiveDegInRad = 2 * M_PI / 72;
737  int units = int(dphi / fiveDegInRad + 0.5);
738  if (units < 1)
739  units = 1;
740  return units;
741 }
#define M_PI
TString units(TString variable, Char_t axis)

Member Data Documentation

◆ depthEta16

int HcalDDDSimConstants::depthEta16[2]
private

Definition at line 107 of file HcalDDDSimConstants.h.

Referenced by getDepthEta16(), getDepthEta16M(), getDetEta(), and initialize().

◆ depthEta29

int HcalDDDSimConstants::depthEta29[2]
private

Definition at line 108 of file HcalDDDSimConstants.h.

Referenced by deltaEta(), getDepthEta29(), getDepthEta29M(), getEta(), and initialize().

◆ depthMaxDf_

std::pair<int, int> HcalDDDSimConstants::depthMaxDf_
private

Definition at line 115 of file HcalDDDSimConstants.h.

Referenced by getMaxDepthDet(), and initialize().

◆ depthMaxSp_

std::pair<int, int> HcalDDDSimConstants::depthMaxSp_
private

Definition at line 115 of file HcalDDDSimConstants.h.

Referenced by getMaxDepthDet(), and initialize().

◆ depths

std::vector<int> HcalDDDSimConstants::depths[nDepthMax]
private

Definition at line 99 of file HcalDDDSimConstants.h.

Referenced by getLayerBack(), and initialize().

◆ dlShort

double HcalDDDSimConstants::dlShort
private

Definition at line 106 of file HcalDDDSimConstants.h.

Referenced by deltaEta(), getEta(), HcalCellTypes(), and initialize().

◆ dzVcal

double HcalDDDSimConstants::dzVcal
private

Definition at line 105 of file HcalDDDSimConstants.h.

Referenced by HcalCellTypes(), and initialize().

◆ etaHO

double HcalDDDSimConstants::etaHO[4]
private

Definition at line 103 of file HcalDDDSimConstants.h.

Referenced by deltaEta(), getEta(), and initialize().

◆ hpar

const HcalParameters* HcalDDDSimConstants::hpar
private

◆ idHF2QIE

std::vector<HcalDetId> HcalDDDSimConstants::idHF2QIE
private

Definition at line 114 of file HcalDDDSimConstants.h.

Referenced by getIdHF2QIE(), HcalCellTypes(), initialize(), and maxHFDepth().

◆ isBH_

bool HcalDDDSimConstants::isBH_
private

Definition at line 113 of file HcalDDDSimConstants.h.

Referenced by initialize(), and isBH().

◆ layBHB

int HcalDDDSimConstants::layBHB[3]
private

Definition at line 111 of file HcalDDDSimConstants.h.

Referenced by getLastLayer(), and initialize().

◆ layBHE

int HcalDDDSimConstants::layBHE[4]
private

Definition at line 112 of file HcalDDDSimConstants.h.

Referenced by getLastLayer(), and initialize().

◆ layFHB

int HcalDDDSimConstants::layFHB[2]
private

Definition at line 109 of file HcalDDDSimConstants.h.

Referenced by getFrontLayer(), and initialize().

◆ layFHE

int HcalDDDSimConstants::layFHE[3]
private

Definition at line 110 of file HcalDDDSimConstants.h.

Referenced by getFrontLayer(), and initialize().

◆ ldmap_

HcalLayerDepthMap HcalDDDSimConstants::ldmap_
private

◆ maxDepth

std::vector<int> HcalDDDSimConstants::maxDepth
private

◆ maxLayer_

const int HcalDDDSimConstants::maxLayer_ = 18
staticprivate

Definition at line 77 of file HcalDDDSimConstants.h.

Referenced by getEta(), getLayerBack(), getLayerFront(), getMaxDepth(), and HcalCellTypes().

◆ maxLayerHB_

const int HcalDDDSimConstants::maxLayerHB_ = 16
staticprivate

◆ nDepth

int HcalDDDSimConstants::nDepth
private

Definition at line 100 of file HcalDDDSimConstants.h.

◆ nDepthMax

const int HcalDDDSimConstants::nDepthMax = 9
staticprivate

Definition at line 76 of file HcalDDDSimConstants.h.

◆ nEta

int HcalDDDSimConstants::nEta
private

Definition at line 96 of file HcalDDDSimConstants.h.

Referenced by cell(), deltaEta(), getDetEta(), getEta(), and initialize().

◆ nmodHB

int HcalDDDSimConstants::nmodHB
private

Definition at line 101 of file HcalDDDSimConstants.h.

Referenced by getModHalfHBHE(), and initialize().

◆ nmodHE

int HcalDDDSimConstants::nmodHE
private

Definition at line 102 of file HcalDDDSimConstants.h.

Referenced by getModHalfHBHE(), and initialize().

◆ nPhiF

int HcalDDDSimConstants::nPhiF
private

Definition at line 98 of file HcalDDDSimConstants.h.

Referenced by initialize().

◆ nR

int HcalDDDSimConstants::nR
private

Definition at line 97 of file HcalDDDSimConstants.h.

Referenced by cell(), deltaEta(), getEta(), and initialize().

◆ nzHB

int HcalDDDSimConstants::nzHB
private

Definition at line 101 of file HcalDDDSimConstants.h.

Referenced by getModHalfHBHE(), HcalCellTypes(), and initialize().

◆ nzHE

int HcalDDDSimConstants::nzHE
private

Definition at line 102 of file HcalDDDSimConstants.h.

Referenced by getModHalfHBHE(), HcalCellTypes(), and initialize().

◆ rminHO

double HcalDDDSimConstants::rminHO
private

Definition at line 103 of file HcalDDDSimConstants.h.

Referenced by getEtaHO(), and initialize().

◆ zVcal

double HcalDDDSimConstants::zVcal
private

Definition at line 104 of file HcalDDDSimConstants.h.

Referenced by deltaEta(), getDetEta(), getEta(), and initialize().