66
77// #define EDM_ML_DEBUG
88
9- HGCalCellOffset::HGCalCellOffset (
10- double waferSize, int32_t nFine, int32_t nCoarse, double guardRingOffset_, double mouseBiteCut_, double sizeOffset_) {
9+ HGCalCellOffset::HGCalCellOffset (double waferSize,
10+ int32_t nFine,
11+ int32_t nCoarse,
12+ double guardRingOffset_,
13+ double mouseBiteCut_,
14+ double sizeOffset_) {
1115 ncell_[0 ] = nFine;
1216 ncell_[1 ] = nCoarse;
1317 hgcalcell_ = std::make_unique<HGCalCell>(waferSize, nFine, nCoarse);
@@ -26,16 +30,19 @@ HGCalCellOffset::HGCalCellOffset(
2630 } else if (j == HGCalCell::cornerCell) { // Offset for corner cells
2731 if (k == 0 ) {
2832 double h = (mouseBiteCut_ - sqrt3By2_ * cellX_[k]);
29- double H = mouseBiteCut_ + guardRingOffset_ - (1 / sqrt3By2_* guardRingOffset_);
30- double h1 = H - (sqrt3_/ 4 * cellX_[k]) + (guardRingSizeOffset_/( 2 * sqrt3_));
31- double h2 = H - (sqrt3_/ 2 * cellX_[k]) + (guardRingSizeOffset_/( 2 * sqrt3_));
33+ double H = mouseBiteCut_ + guardRingOffset_ - (1 / sqrt3By2_ * guardRingOffset_);
34+ double h1 = H - (sqrt3_ / 4 * cellX_[k]) + (guardRingSizeOffset_ / ( 2 * sqrt3_));
35+ double h2 = H - (sqrt3_ / 2 * cellX_[k]) + (guardRingSizeOffset_ / ( 2 * sqrt3_));
3236 double totalArea = 11.0 * sqrt3_ * std::pow (cellX_[k], 2 ) / 8.0 ;
33- double cutArea1 = (sqrt3By2_ * cellX_[k] * guardRingSizeOffset_) - (0.5 /sqrt3_*std::pow (guardRingSizeOffset_, 2 ));
34- double cutArea2 = (sqrt3_ * cellX_[k] * guardRingSizeOffset_) - (0.5 /sqrt3_*std::pow (guardRingSizeOffset_, 2 ));
37+ double cutArea1 =
38+ (sqrt3By2_ * cellX_[k] * guardRingSizeOffset_) - (0.5 / sqrt3_ * std::pow (guardRingSizeOffset_, 2 ));
39+ double cutArea2 =
40+ (sqrt3_ * cellX_[k] * guardRingSizeOffset_) - (0.5 / sqrt3_ * std::pow (guardRingSizeOffset_, 2 ));
3541 double A1 = 2.0 * cellX_[k] * h - std::pow (h, 2 ) / (sqrt3_);
3642 double A2 = sqrt3By2_ * cellX_[k] * cellX_[k];
3743 double A3 = sqrt3By2_ * cellX_[k] * cellX_[k] / 4.0 ;
38- double cutArea3 = sqrt3_*std::pow (H, 2 ) - (1 /sqrt3By2_*std::pow (h1, 2 )) - (1 /sqrt3By2_*std::pow (h2, 2 ));
44+ double cutArea3 =
45+ sqrt3_ * std::pow (H, 2 ) - (1 / sqrt3By2_ * std::pow (h1, 2 )) - (1 / sqrt3By2_ * std::pow (h2, 2 ));
3946 // std::cout << "h1 " << h1 << " h2 " << h2 << " H " << H << " cutarea1 " << cutArea1 << " cutarea2 " << cutArea2 << " cutarea3 " << cutArea3 << " " << cellX_[k] << " " << guardRingSizeOffset_ << std::endl;
4047 double x3_1 = -(((2.0 * std::pow (h, 3 )) / (3.0 * sqrt3_) - cellX_[k] * std::pow (h, 2 )) / A1);
4148 double y3_1 = 0 ;
@@ -80,13 +87,16 @@ HGCalCellOffset::HGCalCellOffset(
8087 }
8188 } else if (k == 1 ) {
8289 double h = (mouseBiteCut_ - guardRingOffset_) / sqrt3By2_ - cellX_[k] / 2 ;
83- double H = mouseBiteCut_ + guardRingOffset_ - (1 / sqrt3By2_* guardRingOffset_);
84- double h1 = H - (sqrt3_/ 4 * cellX_[k]) + (guardRingSizeOffset_/( 2 * sqrt3_));
85- double h2 = H - (sqrt3_/ 2 * cellX_[k]) + (guardRingSizeOffset_/( 2 * sqrt3_));
90+ double H = mouseBiteCut_ + guardRingOffset_ - (1 / sqrt3By2_ * guardRingOffset_);
91+ double h1 = H - (sqrt3_ / 4 * cellX_[k]) + (guardRingSizeOffset_ / ( 2 * sqrt3_));
92+ double h2 = H - (sqrt3_ / 2 * cellX_[k]) + (guardRingSizeOffset_ / ( 2 * sqrt3_));
8693 double totalArea = 11.0 * sqrt3_ * std::pow (cellX_[k], 2 ) / 8.0 ;
87- double cutArea1 = (sqrt3By2_ * cellX_[k] * guardRingSizeOffset_) - (0.5 /sqrt3_*std::pow (guardRingSizeOffset_, 2 ));
88- double cutArea2 = (sqrt3_ * cellX_[k] * guardRingSizeOffset_) - (0.5 /sqrt3_*std::pow (guardRingSizeOffset_, 2 ));
89- double cutArea3 = sqrt3_*std::pow (H, 2 ) - (1 /sqrt3By2_*std::pow (h1, 2 )) - (1 /sqrt3By2_*std::pow (h2, 2 ));
94+ double cutArea1 =
95+ (sqrt3By2_ * cellX_[k] * guardRingSizeOffset_) - (0.5 / sqrt3_ * std::pow (guardRingSizeOffset_, 2 ));
96+ double cutArea2 =
97+ (sqrt3_ * cellX_[k] * guardRingSizeOffset_) - (0.5 / sqrt3_ * std::pow (guardRingSizeOffset_, 2 ));
98+ double cutArea3 =
99+ sqrt3_ * std::pow (H, 2 ) - (1 / sqrt3By2_ * std::pow (h1, 2 )) - (1 / sqrt3By2_ * std::pow (h2, 2 ));
90100 // double cutArea3 = sqrt3_ * std::pow((mouseBiteCut_ - guardRingOffset_), 2) - sqrt3By2_ * std::pow(h, 2);
91101
92102 double x2_0 = (0.375 * cellX_[k] * cellX_[k] - (0.25 * cellX_[k] * guardRingOffset_) +
@@ -168,10 +178,10 @@ HGCalCellOffset::HGCalCellOffset(
168178 for (int i = 0 ; i < 6 ; ++i) {
169179 offsetX[k][j][i] = tempOffsetX[i];
170180 offsetY[k][j][i] = tempOffsetY[i];
171- }
181+ }
172182 } else if (j == HGCalCell::truncatedMBCell) {
173- double H = mouseBiteCut_ + guardRingOffset_ - (1 / sqrt3By2_* guardRingOffset_);
174- double h = H - (sqrt3_/ 2 * cellX_[k]) + (guardRingSizeOffset_/( 2 * sqrt3_));
183+ double H = mouseBiteCut_ + guardRingOffset_ - (1 / sqrt3By2_ * guardRingOffset_);
184+ double h = H - (sqrt3_ / 2 * cellX_[k]) + (guardRingSizeOffset_ / ( 2 * sqrt3_));
175185 if (h > 0 ) {
176186 double totalArea = 5.0 * sqrt3_ * std::pow (cellX_[k], 2 ) / 4.0 ;
177187
@@ -226,8 +236,8 @@ HGCalCellOffset::HGCalCellOffset(
226236 }
227237 }
228238 } else if (j == HGCalCell::extendedMBCell) {
229- double H = mouseBiteCut_ + guardRingOffset_ - (1 / sqrt3By2_* guardRingOffset_);
230- double h = H - (sqrt3_/ 4 * cellX_[k]) + (guardRingSizeOffset_/( 2 * sqrt3_));
239+ double H = mouseBiteCut_ + guardRingOffset_ - (1 / sqrt3By2_ * guardRingOffset_);
240+ double h = H - (sqrt3_ / 4 * cellX_[k]) + (guardRingSizeOffset_ / ( 2 * sqrt3_));
231241
232242 double totalArea = 7.0 * sqrt3_ * std::pow (cellX_[k], 2 ) / 4.0 ;
233243 double cutArea1 = (sqrt3_ * cellX_[k] * guardRingSizeOffset_);
@@ -238,7 +248,7 @@ HGCalCellOffset::HGCalCellOffset(
238248 double x2 = -(sqrt3By2_ * 1.5 * cellX_[k] - h / sqrt3_);
239249 double y2 = -0.25 * cellX_[k] + h / 3.0 ;
240250 cellArea[k][j] = totalArea - cutArea1 - cutArea2;
241- // std::cout << H << "trunMB h " << h << " tot " << totalArea << " cutArea1 " << cutArea1 << " cutArea2 " << cutArea2 << std::endl;
251+ // std::cout << H << "trunMB h " << h << " tot " << totalArea << " cutArea1 " << cutArea1 << " cutArea2 " << cutArea2 << std::endl;
242252 double xMag1 =
243253 ((-10.0 * sqrt3_ * cellX_[k] / 168.0 ) * totalArea - (cutArea1 * x1) - (cutArea2 * x2)) / (cellArea[k][j]);
244254 double yMag1 = ((10.0 * cellX_[k] / 168.0 ) * totalArea - (cutArea1 * y1) - (cutArea2 * y2)) / (cellArea[k][j]);
0 commit comments