50 if( !manager.range( id_range ) ) {
51 ATH_MSG_ERROR(
"Failed to retrieve validity range for " << manager.key());
63 const IdContext ModuleContext = helper->module_context();
67 std::unique_ptr<RegSelSiLUT> lut = std::make_unique<RegSelSiLUT>();
70 for (
auto i = helper->module_begin(); i != helper->module_end(); ++i) {
75 helper->get_module_hash(Id, hashId);
78 if (helper->get_expanded_id( Id, exp_id, &ModuleContext)) {
79 ATH_MSG_DEBUG(
"Failed retrieving ExpandedIdentifier for PRD Identifier = " << Id.
getString() <<
". Skipping to the next PRD.");
83 int detid = ( exp_id[2]<0 ? -1 : 1 );
84 int layerid = exp_id[1]+1;
91 constexpr int gapMin = 1;
94 Identifier chId = helper -> channelID(Id,gapMin,0,1);
97 chId = helper -> channelID(Id,gapMax,0,1);
98 constexpr int chmin = 1;
104 double activeheight = tgc->
length();
106 const double zmin = posmin.z();
107 const double zmax = posmax.z();
109 const double rmin = posctr.perp()-0.5*activeheight;
110 const double rmax = posctr.perp()+0.5*activeheight;
112 const double minTheta = std::atan2(std::abs(zmin), rmin);
113 const double maxTheta = std::atan2(std::abs(zmax), rmax);
114 double etamin = -std::log(0.5*std::tan(minTheta));
115 double etamax = -std::log(0.5*std::tan(maxTheta));
117 if (helper->stationEta(Id) < 0) {
127 double phimin = std::atan2(posctr.y(),posctr.x()) - std::atan2(activelongside/2.,posctr.perp()+activeheight/2.);
128 double phimax = std::atan2(posctr.y(),posctr.x()) + std::atan2(activelongside/2.,posctr.perp()+activeheight/2.);
130 if (phimin < 0) phimin += 2.*
M_PI;
131 if (phimax < 0) phimax += 2.*
M_PI;
134 int subDetectorId = 0;
136 cabling->getReadoutIDfromElementID(Id, subDetectorId, rodId);
137 uint32_t robId = ( ((0x0ff) & subDetectorId)<<16 ) | (rodId);
140 RegSelModule m( zmin, zmax, rmin, rmax, phimin, phimax, layerid, detid, robId, hashId );
This class saves the "context" of an expanded identifier (ExpandedIdentifier) for compact or hash ver...