54 if( !manager.range( id_range ) ) {
55 ATH_MSG_ERROR(
"Failed to retrieve validity range for " << manager.key());
63 if( !cabling.range( id_range ) ) {
70 const IdContext ModuleContext = helper->module_context();
74 std::unique_ptr<RegSelSiLUT> lut = std::make_unique<RegSelSiLUT>();
77 for (
auto i = helper->module_begin(); i != helper->module_end(); ++i) {
82 helper->get_module_hash(Id, hashId);
85 if (helper->get_expanded_id( Id, exp_id, &ModuleContext)) {
86 ATH_MSG_DEBUG(
"Failed retrieving ExpandedIdentifier for PRD Identifier = " << Id.
getString() <<
". Skipping to the next PRD.");
90 int detid = ( exp_id[2]<0 ? -1 : 1 );
91 int layerid = exp_id[1]+1;
98 constexpr int gapMin = 1;
101 Identifier chId = helper -> channelID(Id,gapMin,0,1);
104 chId = helper -> channelID(Id,gapMax,0,1);
105 constexpr int chmin = 1;
111 double activeheight = tgc->
length();
113 const double zmin = posmin.z();
114 const double zmax = posmax.z();
116 const double rmin = posctr.perp()-0.5*activeheight;
117 const double rmax = posctr.perp()+0.5*activeheight;
119 const double minTheta = std::atan2(std::abs(zmin), rmin);
120 const double maxTheta = std::atan2(std::abs(zmax), rmax);
121 double etamin = -std::log(0.5*std::tan(minTheta));
122 double etamax = -std::log(0.5*std::tan(maxTheta));
124 if (helper->stationEta(Id) < 0) {
134 double phimin = std::atan2(posctr.y(),posctr.x()) - std::atan2(activelongside/2.,posctr.perp()+activeheight/2.);
135 double phimax = std::atan2(posctr.y(),posctr.x()) + std::atan2(activelongside/2.,posctr.perp()+activeheight/2.);
137 if (phimin < 0) phimin += 2.*
M_PI;
138 if (phimax < 0) phimax += 2.*
M_PI;
141 int subDetectorId = 0;
143 cabling->getReadoutIDfromElementID(Id, subDetectorId, rodId);
144 uint32_t robId = ( ((0x0ff) & subDetectorId)<<16 ) | (rodId);
147 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...