12 extTopology ( theTopology )
95 std::vector<HcalDetId> hcalIds;
96 int nDepthSegments, startingDepthSegment;
97 for(
int etaRing = firstEtaRing; etaRing <= lastEtaRing; ++etaRing) {
100 unsigned int phiInc=72/
std::max(36u,nPhiBins);
101 for(
int idepth = 0; idepth < nDepthSegments; ++idepth) {
102 int depthBin = startingDepthSegment + idepth;
104 for(
unsigned iphi = 1; iphi <= 72; iphi+=phiInc) {
105 for(
int zsign = -1; zsign <= 1; zsign += 2) {
106 HcalDetId id( subdet, zsign * etaRing, iphi, depthBin);
113 edm::LogInfo(
"HcalHardcodeGeometry") <<
"Number of HCAL DetIds made: "
115 <<
" " << hcalIds.size();
117 for(std::vector<HcalDetId>::const_iterator hcalIdItr = hcalIds.begin();
118 hcalIdItr != hcalIds.end(); ++hcalIdItr)
140 else if (etaRing==28 && detId.
depth()==3)
151 double eta = 0.5*(eta1+eta2) * detId.
zside();
152 double deta = 0.5*(eta2-eta1);
155 int nDepthBins, startingBin;
162 double phi_low = dphi_nominal*(detId.
iphi()-1);
163 double phi = phi_low+dphi_half;
176 if (detId.
depth()==1)
189 if (detId.
depth()==1)
212 thickness *= cosh(eta);
216 int depth = detId.
depth();
224 else if (nDepthBins==2 && depth==2)
237 thickness /= fabs(tanh(eta));
256 std::vector<double> hf ;
258 hf.push_back( deta ) ;
259 hf.push_back( dphi_half ) ;
260 hf.push_back( thickness/2 ) ;
261 hf.push_back( fabs( point.
eta() ) ) ;
262 hf.push_back( fabs( point.
z() ) ) ;
272 const double mysign ( isBarrel ? 1 : -1 ) ;
273 std::vector<double> hh ;
275 hh.push_back( deta ) ;
276 hh.push_back( dphi_half ) ;
277 hh.push_back( mysign*thickness/2. ) ;
278 hh.push_back( fabs( point.
eta() ) ) ;
279 hh.push_back( fabs( point.
z() ) ) ;
HcalSubdetector subdet() const
get the subdetector
const HcalTopology * extTopology
virtual bool valid(const HcalDetId &id) const
int zside() const
get the z-side of the cell (1/-1)
Sin< T >::type sin(const T &t)
double theta_from_eta(double eta)
int nPhiBins(int etaRing) const
how many phi segments in this ring
Geom::Theta< T > theta() const
Exp< T >::type exp(const T &t)
void allocatePar(ParVec::size_type n, unsigned int m)
CaloCellGeometry * makeCell(const HcalDetId &detId, ReturnType geom) const
void addCell(const DetId &id, CaloCellGeometry *ccg)
Add a cell to the geometry.
int depth() const
get the tower depth
const T & max(const T &a, const T &b)
Cos< T >::type cos(const T &t)
Tan< T >::type tan(const T &t)
void depthBinInformation(HcalSubdetector subdet, int etaRing, int &nDepthBins, int &startingBin) const
finds the number of depth bins and which is the number to start with
HcalHardcodeGeometryLoader()
int ietaAbs() const
get the absolute value of the cell ieta
int iphi() const
get the cell iphi
void fill(HcalSubdetector subdet, int firstEtaRing, int lastEtaRing, ReturnType cg)
static const double theHFEtaBounds[]
CaloCellGeometry::CornersMgr * cornersMgr()
static const double * getParmPtr(const std::vector< double > &vd, ParMgr *mgr, ParVecVec &pvv)
ReturnType load()
Load all of HCAL.
void allocateCorners(CaloCellGeometry::CornersVec::size_type n)
static const double theHBHEEtaBounds[]
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point