49 if( !manager.range( id_range ) ) {
50 ATH_MSG_ERROR(
"Failed to retrieve validity range for " << manager.key());
56 std::vector<Identifier>::const_iterator idfirst = helper->module_begin();
57 std::vector<Identifier>::const_iterator idlast = helper->module_end();
60 const IdContext ModuleContext = helper->module_context();
64 std::unique_ptr<RegSelSiLUT> lut = std::make_unique<RegSelSiLUT>(
RegSelSiLUT::sTGC);
67 for ( std::vector<Identifier>::const_iterator i=idfirst ; i!=idlast ; ++i ) {
72 helper->get_hash( Id, hashId, &ModuleContext );
82 int multilayer = helper->multilayer(Id);
84 char side = stationEta < 0 ?
'C' :
'A';
98 double moduleR = std::sqrt( sTgcPos.mag()*sTgcPos.mag() - sTgcPos.z()*sTgcPos.z());
100 double zmin = sTgcPos.z()-0.5*
depth;
101 double zmax = sTgcPos.z()+0.5*
depth;
103 double rmin = moduleR-0.5*
length;
104 double rmax = std::sqrt( (moduleR+0.5*
length)*(moduleR+0.5*
length) + lwidth*lwidth/4 );
106 double dphi1 = std::atan( (0.5*lwidth)/(moduleR+0.5*
length) );
107 double dphi2 = std::atan( (0.5*swidth)/(moduleR-0.5*
length) );
109 double dphi = ( dphi1 > dphi2 ? dphi1 : dphi2 );
112 double rcutout = moduleR+0.5*
length - ycutout;
113 double dphicutout = std::atan( (0.5*lwidth)/rcutout );
114 if ( dphi < dphicutout ) dphi = dphicutout;
117 double phimin = sTgcPos.phi()-dphi;
118 double phimax = sTgcPos.phi()+dphi;
120 if ( phimin >
M_PI ) phimin -= 2*
M_PI;
121 if ( phimin < -
M_PI ) phimin += 2*
M_PI;
123 int layerid = multilayer;
124 int detid = ( side ==
'C' ? -1 : 1 );
128 for(uint32_t robId : robIdHelper.
get_ids()){
129 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...