14 extTopology ( theTopology )
97 std::vector<HcalDetId> hcalIds;
98 int nDepthSegments, startingDepthSegment;
99 for(
int etaRing = firstEtaRing; etaRing <= lastEtaRing; ++etaRing) {
102 unsigned int phiInc=72/
std::max(36u,nPhiBins);
103 for(
int idepth = 0; idepth < nDepthSegments; ++idepth) {
104 int depthBin = startingDepthSegment + idepth;
106 for(
unsigned iphi = 1; iphi <= 72; iphi+=phiInc) {
107 for(
int zsign = -1; zsign <= 1; zsign += 2) {
108 HcalDetId id( subdet, zsign * etaRing, iphi, depthBin);
115 edm::LogInfo(
"HcalHardcodeGeometry") <<
"Number of HCAL DetIds made: "
117 <<
" " << hcalIds.size();
119 for(std::vector<HcalDetId>::const_iterator hcalIdItr = hcalIds.begin();
120 hcalIdItr != hcalIds.end(); ++hcalIdItr)
142 else if (etaRing==28 && detId.
depth()==3)
153 double eta = 0.5*(eta1+eta2) * detId.
zside();
154 double deta = 0.5*(eta2-eta1);
157 int nDepthBins, startingBin;
164 double phi_low = dphi_nominal*(detId.
iphi()-1);
165 double phi = phi_low+dphi_half;
178 if (detId.
depth()==1)
191 if (detId.
depth()==1)
214 thickness *= cosh(eta);
218 int depth = detId.
depth();
226 else if (nDepthBins==2 && depth==2)
239 thickness /= fabs(tanh(eta));
255 std::vector<CCGFloat> hp ;
260 hp.push_back( deta ) ;
261 hp.push_back( dphi_half ) ;
262 hp.push_back( thickness/2 ) ;
263 hp.push_back( fabs( point.
eta() ) ) ;
264 hp.push_back( fabs( point.
z() ) ) ;
268 const double mysign ( isBarrel ? 1 : -1 ) ;
269 hp.push_back( deta ) ;
270 hp.push_back( dphi_half ) ;
271 hp.push_back( mysign*thickness/2. ) ;
272 hp.push_back( fabs( point.
eta() ) ) ;
273 hp.push_back( fabs( point.
z() ) ) ;
275 geom->
newCell( point, point, point,
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)
virtual void newCell(const GlobalPoint &f1, const GlobalPoint &f2, const GlobalPoint &f3, const CCGFloat *parm, const DetId &detId)=0
Sin< T >::type sin(const T &t)
Geom::Theta< T > theta() const
double theta_from_eta(double eta)
int nPhiBins(int etaRing) const
how many phi segments in this ring
void allocatePar(ParVec::size_type n, unsigned int m)
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)
CaloCellGeometry::CCGFloat CCGFloat
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
static const CCGFloat * getParmPtr(const std::vector< CCGFloat > &vd, ParMgr *mgr, ParVecVec &pvv)
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()
void makeCell(const HcalDetId &detId, ReturnType geom) const
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