12 extTopology ( theTopology )
57 std::vector<HcalZDCDetId> zdcIds;
61 for(
int ichannel = firstCell; ichannel <= lastCell; ++ichannel) {
72 edm::LogInfo(
"ZdcHardcodeGeometry") <<
"Number of ZDC DetIds made: " << section <<
" " << zdcIds.size();
76 for(std::vector<HcalZDCDetId>::const_iterator zdcIdItr = zdcIds.begin();
77 zdcIdItr != zdcIds.end(); ++zdcIdItr)
91 const int channel ( detId.
channel() ) ;
96 static const double x0 ( 0 ) ;
97 static const double y0 ( 0 ) ;
98 static const double z0 ( 14000 ) ;
100 static const double angEM ( 0 ) ;
101 static const double angLUM ( 0 ) ;
102 static const double angRPD ( 0 ) ;
103 static const double angHAD ( atan( 1. ) ) ;
107 static const double dxHAD ( 4.8 ) ;
108 static const double dxEM ( dxHAD/5. ) ;
109 static const double dxLUM ( 4.8 ) ;
110 static const double dxRPD ( 4.8 ) ;
112 static const double dhEM ( 6.25 ) ;
113 static const double dhLUM ( 6.25 ) ;
114 static const double dhHAD ( 6.25 ) ;
115 static const double dhRPD ( 6.25 ) ;
117 static const double dzEM ( 33.*0.15 ) ;
118 static const double dzLUM ( 23.5 ) ;
119 static const double dzHAD ( 0.82*6./
cos(angHAD) ) ;
120 static const double dzRPD ( 23.5 ) ;
125 static const double xOffEM ( -4.*dxEM ) ;
126 static const double xOffLUM ( 0 ) ;
127 static const double xOffHAD ( 0 ) ;
128 static const double xOffRPD ( 0 ) ;
130 static const double yOffEM ( 0 ) ;
131 static const double yOffLUM ( 0 ) ;
132 static const double yOffHAD ( 0 ) ;
133 static const double yOffRPD ( 0 ) ;
135 static const double zOffEM ( -49.85 - 0.15 ) ;
136 static const double zOffLUM ( -39.555 ) ;
137 static const double zOffHAD ( -29.00 ) ;
138 static const double zOffRPD ( -39.555 ) ;
142 double dx,
dh,
dz,
x,
y,
z, an ;
149 x =
zside*( x0 + xOffEM + ( channel - 1.0 )*dxEM*2. ) ;
151 z =
zside*( z0 + zOffEM ) ;
157 x =
zside*( x0 + xOffLUM ) ;
159 z =
zside*( z0 + zOffLUM + ( channel - 1.0 )*dzLUM*2. ) ;
165 x =
zside*( x0 + xOffRPD ) ;
167 z =
zside*( z0 + zOffRPD + ( channel - 1.0 )*dzRPD*2. ) ;
174 x =
zside*( x0 + xOffHAD ) ;
176 z =
zside*( z0 + zOffHAD + ( channel - 1.0 )*dzHAD*2. ) ;
181 const double dy ( dh*
cos( an ) ) ;
183 std::vector<CCGFloat>
zz ;
virtual void newCell(const GlobalPoint &f1, const GlobalPoint &f2, const GlobalPoint &f3, const CCGFloat *parm, const DetId &detId)=0
int zside() const
get the z-side of the cell (1/-1)
ZdcTopology * theTopology
void allocatePar(ParVec::size_type n, unsigned int m)
void makeCell(const HcalZDCDetId &detId, CaloSubdetectorGeometry *geom) const
virtual bool valid(const HcalZDCDetId &id) const
int lastCell(HcalZDCDetId::Section section) const
Cos< T >::type cos(const T &t)
void fill(HcalZDCDetId::Section section, CaloSubdetectorGeometry *cg)
static const CCGFloat * getParmPtr(const std::vector< CCGFloat > &vd, ParMgr *mgr, ParVecVec &pvv)
static const int SubdetectorId
CaloCellGeometry::CornersMgr * cornersMgr()
int channel() const
get the channel
Section section() const
get the section
int firstCell(HcalZDCDetId::Section section) const
void allocateCorners(CaloCellGeometry::CornersVec::size_type n)
ZdcHardcodeGeometryLoader()
const ZdcTopology * extTopology
CaloCellGeometry::CCGFloat CCGFloat