@@ -51,7 +51,8 @@ class HGCalDDDConstants {
5151 double calibCellRad (bool hd) const { return (hd ? hgpar_->calibCellRHD_ : hgpar_->calibCellRLD_ ); }
5252 bool cassetteMode () const {
5353 return ((mode_ == HGCalGeometryMode::Hexagon8Cassette) || (mode_ == HGCalGeometryMode::TrapezoidCassette) ||
54- (mode_ == HGCalGeometryMode::Hexagon8CalibCell));
54+ (mode_ == HGCalGeometryMode::Hexagon8CalibCell) || (mode_ == HGCalGeometryMode::Hexagon8FineCell) ||
55+ (mode_ == HGCalGeometryMode::TrapezoidFineCell));
5556 }
5657 bool cassetteShiftScintillator (int zside, int layer, int iphi) const ;
5758 bool cassetteShiftSilicon (int zside, int layer, int waferU, int waferV) const ;
@@ -113,10 +114,18 @@ class HGCalDDDConstants {
113114 std::pair<float , float > localToGlobal8 (
114115 int zside, int lay, int waferU, int waferV, double localX, double localY, bool reco, bool debug) const ;
115116 std::pair<float , float > locateCell (int cell, int lay, int type, bool reco) const ;
116- std::pair<float , float > locateCell (
117- int zside, int lay, int waferU, int waferV, int cellU, int cellV, bool reco, bool all, bool norot, bool debug)
118- const ;
119- std::pair<float , float > locateCell (const HGCSiliconDetId&, bool debug) const ;
117+ std::pair<float , float > locateCell (int zside,
118+ int lay,
119+ int waferU,
120+ int waferV,
121+ int cellU,
122+ int cellV,
123+ bool reco,
124+ bool all,
125+ bool norot,
126+ bool cog,
127+ bool debug) const ;
128+ std::pair<float , float > locateCell (const HGCSiliconDetId&, bool cog, bool debug) const ;
120129 std::pair<float , float > locateCell (const HGCScintillatorDetId&, bool debug) const ;
121130 std::pair<float , float > locateCellHex (int cell, int wafer, bool reco) const ;
122131 std::pair<float , float > locateCellTrap (int zside, int lay, int ieta, int iphi, bool reco, bool debug) const ;
@@ -137,6 +146,12 @@ class HGCalDDDConstants {
137146 std::vector<int > numberCells (int lay, bool reco) const ;
138147 int numberCellsHexagon (int wafer) const ;
139148 int numberCellsHexagon (int lay, int waferU, int waferV, bool flag) const ;
149+ inline int partialWaferType (int lay, int waferU, int waferV) const {
150+ int indx = HGCalWaferIndex::waferIndex (lay, waferU, waferV);
151+ auto ktr = hgpar_->waferInfoMap_ .find (indx);
152+ int part = (ktr != hgpar_->waferInfoMap_ .end ()) ? (ktr->second ).part : HGCalTypes::WaferFull;
153+ return part;
154+ }
140155 std::pair<double , double > rangeR (double z, bool reco) const ;
141156 std::pair<double , double > rangeRLayer (int lay, bool reco) const ;
142157 std::pair<double , double > rangeZ (bool reco) const ;
@@ -153,12 +168,13 @@ class HGCalDDDConstants {
153168 inline int tileSiPM (int sipm) const { return ((sipm > 0 ) ? HGCalTypes::SiPMSmall : HGCalTypes::SiPMLarge); }
154169 bool tileTrapezoid () const {
155170 return ((mode_ == HGCalGeometryMode::Trapezoid) || (mode_ == HGCalGeometryMode::TrapezoidFile) ||
156- (mode_ == HGCalGeometryMode::TrapezoidModule) || (mode_ == HGCalGeometryMode::TrapezoidCassette));
171+ (mode_ == HGCalGeometryMode::TrapezoidModule) || (mode_ == HGCalGeometryMode::TrapezoidCassette) ||
172+ (mode_ == HGCalGeometryMode::TrapezoidFineCell));
157173 }
158174 std::pair<int , int > tileType (int layer, int ring, int phi) const ;
159175 inline bool trapezoidFile () const {
160176 return ((mode_ == HGCalGeometryMode::TrapezoidFile) || (mode_ == HGCalGeometryMode::TrapezoidModule) ||
161- (mode_ == HGCalGeometryMode::TrapezoidCassette));
177+ (mode_ == HGCalGeometryMode::TrapezoidCassette) || (mode_ == HGCalGeometryMode::TrapezoidFineCell) );
162178 }
163179 inline bool v17OrLess () const { return (mode_ < HGCalGeometryMode::Hexagon8CalibCell); }
164180 inline unsigned int volumes () const { return hgpar_->moduleLayR_ .size (); }
@@ -182,15 +198,18 @@ class HGCalDDDConstants {
182198 inline bool waferHexagon8 () const {
183199 return ((mode_ == HGCalGeometryMode::Hexagon8) || (mode_ == HGCalGeometryMode::Hexagon8Full) ||
184200 (mode_ == HGCalGeometryMode::Hexagon8File) || (mode_ == HGCalGeometryMode::Hexagon8Module) ||
185- (mode_ == HGCalGeometryMode::Hexagon8Cassette) || (mode_ == HGCalGeometryMode::Hexagon8CalibCell));
201+ (mode_ == HGCalGeometryMode::Hexagon8Cassette) || (mode_ == HGCalGeometryMode::Hexagon8CalibCell) ||
202+ (mode_ == HGCalGeometryMode::Hexagon8FineCell));
186203 }
187204 inline bool waferHexagon8File () const {
188205 return ((mode_ == HGCalGeometryMode::Hexagon8File) || (mode_ == HGCalGeometryMode::Hexagon8Module) ||
189- (mode_ == HGCalGeometryMode::Hexagon8Cassette) || (mode_ == HGCalGeometryMode::Hexagon8CalibCell));
206+ (mode_ == HGCalGeometryMode::Hexagon8Cassette) || (mode_ == HGCalGeometryMode::Hexagon8CalibCell) ||
207+ (mode_ == HGCalGeometryMode::Hexagon8FineCell));
190208 }
209+ inline bool waferHexagon8Fine () const { return ((mode_ == HGCalGeometryMode::Hexagon8FineCell)); }
191210 inline bool waferHexagon8Module () const {
192211 return ((mode_ == HGCalGeometryMode::Hexagon8Module) || (mode_ == HGCalGeometryMode::Hexagon8Cassette) ||
193- (mode_ == HGCalGeometryMode::Hexagon8CalibCell));
212+ (mode_ == HGCalGeometryMode::Hexagon8CalibCell) || (mode_ == HGCalGeometryMode::Hexagon8FineCell) );
194213 }
195214 bool waferInLayer (int wafer, int lay, bool reco) const ;
196215 bool waferFullInLayer (int wafer, int lay, bool reco) const ;
0 commit comments