77// #define EDM_ML_DEBUG
88
99HGCMouseBite::HGCMouseBite (const HGCalDDDConstants& hgc, const std::vector<double >& angle, double maxL, bool rot)
10- : hgcons_(hgc), cut_(maxL), rot_(rot) {
11- modeUV_ = hgcons_.waferHexagon8 ();
10+ : hgcons_(&hgc), hgTBcons_(nullptr ), ifTB_(false ), cut_(maxL), rot_(rot) {
11+ modeUV_ = hgcons_->waferHexagon8 ();
12+ init (angle);
13+ }
14+
15+ HGCMouseBite::HGCMouseBite (const HGCalTBDDDConstants& hgc, const std::vector<double >& angle, double maxL, bool rot)
16+ : hgcons_(nullptr ), hgTBcons_(&hgc), ifTB_(true ), cut_(maxL), rot_(rot) {
17+ modeUV_ = false ;
18+ init (angle);
19+ }
20+
21+ void HGCMouseBite::init (const std::vector<double >& angle) {
1222 for (auto ang : angle) {
1323 projXY_.push_back (std::pair<double , double >(cos (ang * CLHEP::deg), sin (ang * CLHEP::deg)));
1424 }
@@ -25,8 +35,12 @@ bool HGCMouseBite::exclude(G4ThreeVector& point, int zside, int lay, int waferU,
2535 bool check (false );
2636 double dx (0 ), dy (0 );
2737 if (point == G4ThreeVector ()) {
28- std::pair<double , double > xy =
29- (modeUV_ ? hgcons_.waferPosition (lay, waferU, waferV, false , false ) : hgcons_.waferPosition (waferU, false ));
38+ std::pair<double , double > xy;
39+ if (ifTB_)
40+ xy = hgTBcons_->waferPosition (waferU, false );
41+ else
42+ xy =
43+ (modeUV_ ? hgcons_->waferPosition (lay, waferU, waferV, false , false ) : hgcons_->waferPosition (waferU, false ));
3044 double xx = (zside > 0 ) ? xy.first : -xy.first ;
3145 if (rot_) {
3246 dx = std::abs (point.y () - xy.second );
0 commit comments