15 #include "GaudiKernel/EventIDRange.h"
18 #include "CLHEP/Units/SystemOfUnits.h"
50 if( !
manager.range( id_range ) ) {
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;
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);
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);