15 #include "GaudiKernel/EventIDRange.h"
18 #include "CLHEP/Units/SystemOfUnits.h"
50 if( !
manager.range( id_range ) ) {
60 if ( service(
"CSCcablingSvc",
cabling ).isFailure() ) {
68 std::vector<Identifier>::const_iterator idfirst =
helper->module_begin();
69 std::vector<Identifier>::const_iterator idlast =
helper->module_end();
75 std::unique_ptr<RegSelSiLUT>
lut = std::make_unique<RegSelSiLUT>();
79 for ( std::vector<Identifier>::const_iterator itr=idfirst ; itr!=idlast ; ++itr ) {
83 helper->get_hash(Id, Idhash, &ModuleContext);
86 if (
helper->get_expanded_id( Id, exp_id, &ModuleContext)) {
87 ATH_MSG_DEBUG(
"Failed retrieving ExpandedIdentifier for PRD Identifier = " << Id.
getString() <<
". Skipping to the next PRD.");
91 int detid = ( exp_id[2]<0 ? -1 : 1 );
92 int layerid = exp_id[1]+1;
100 if (csc ==
nullptr) {
103 Id2ndLayer =
helper->parentID(Id);
104 Id2ndLayer =
helper->channelID(Id2ndLayer, chamberLayer, 1, 0, 1);
105 csc =
manager->getCscReadoutElement(Id2ndLayer);
113 double eta_min = 99999999.;
114 double eta_max = -99999999.;
115 double phi_min = 999999.;
116 double phi_max = -999999.;
118 double zmin = 999999999;
119 double zmax = -999999999;
124 double phi_test = 0.;
132 int chlayer_inc =
helper->chamberLayerMax(Id)-1;
133 if ( chlayer_inc<1 ) chlayer_inc = 1;
134 for (
int chlayer=1 ; chlayer<=
helper->chamberLayerMax(Id) ; chlayer+=chlayer_inc ) {
137 int wlayer_inc =
helper->wireLayerMax(Id)-1;
138 if ( wlayer_inc<1 ) wlayer_inc = 1;
139 for (
int wlayer=1 ; wlayer<=
helper->wireLayerMax(Id) ; wlayer+=wlayer_inc ){
141 for (
int phis=1 ; phis<=csc->
NphiStrips(wlayer) ; phis++ ) {
155 phis_x1[2] = phis_x.z()-phis_lenght/2.0;
156 phis_x2[2] = phis_x.z()+phis_lenght/2.0;
161 phi_test=gphis_x1.phi();
164 if(exp_id[1]!=51 || exp_id[3]!=1)
if (phi_test < 0) phi_test += 2.*
M_PI;
167 if (
zmin>gphis_x1.z() )
zmin = gphis_x1.z();
168 if (
zmax<gphis_x1.z() )
zmax = gphis_x1.z();
170 if ( rmin==0 || rmin>gphis_x1.perp() ) rmin = gphis_x1.perp();
171 if ( rmax==0 || rmax<gphis_x1.perp() ) rmax = gphis_x1.perp();
173 if (
zmin>gphis_x2.z() )
zmin = gphis_x2.z();
174 if (
zmax<gphis_x2.z() )
zmax = gphis_x2.z();
176 if ( rmin==0 || rmin>gphis_x2.perp() ) rmin = gphis_x2.perp();
177 if ( rmax==0 || rmax<gphis_x2.perp() ) rmax = gphis_x2.perp();
184 if ( rmin==0 || rmin>gphis_x.perp() ) rmin = gphis_x.perp();
185 if ( rmax==0 || rmax<gphis_x.perp() ) rmax = gphis_x.perp();
188 if(phi_test > phi_max){
192 if(phi_test < phi_min){
197 if(gphis_x1.eta() > eta_max) {
199 eta_max=gphis_x1.eta();
201 if(gphis_x1.eta() < eta_min) {
203 eta_min=gphis_x1.eta();
206 phi_test=gphis_x2.phi();
209 if(exp_id[1]!=51 || exp_id[3]!=1)
if (phi_test < 0) phi_test += 2.*
M_PI;
212 if(phi_test > phi_max) {
216 if(phi_test < phi_min) {
221 if(gphis_x2.eta() > eta_max) {
223 eta_max=gphis_x2.eta();
225 if(gphis_x2.eta() < eta_min) {
227 eta_min=gphis_x2.eta();
235 if ( eta_inc<1 ) eta_inc = 1;
250 etas_x1[1] = etas_x.y()-etas_lenght/2.0;
251 etas_x2[1] = etas_x.y()+etas_lenght/2.0;
256 if (
zmin>getas_x1.z() )
zmin = getas_x1.z();
257 if (
zmax<getas_x1.z() )
zmax = getas_x1.z();
259 if (
zmin>getas_x2.z() )
zmin = getas_x2.z();
260 if (
zmax<getas_x2.z() )
zmax = getas_x2.z();
262 if ( rmin==0 || rmin>getas_x1.perp() ) rmin = getas_x1.perp();
263 if ( rmax==0 || rmax<getas_x1.perp() ) rmax = getas_x1.perp();
265 if ( rmin==0 || rmin>getas_x2.perp() ) rmin = getas_x2.perp();
266 if ( rmax==0 || rmax<getas_x2.perp() ) rmax = getas_x2.perp();
272 if ( rmin==0 || rmin>getas_x.perp() ) rmin = getas_x.perp();
273 if ( rmax==0 || rmax<getas_x.perp() ) rmax = getas_x.perp();
275 phi_test = getas_x1.phi();
278 if(exp_id[1]!=51 || exp_id[3]!=1)
if (phi_test < 0) phi_test += 2.*
M_PI;
280 if(phi_test > phi_max){
284 if(phi_test < phi_min){
289 if(getas_x1.eta() > eta_max) {
291 eta_max=getas_x1.eta();
293 if(getas_x1.eta() < eta_min) {
295 eta_min=getas_x1.eta();
298 phi_test = getas_x2.phi();
301 if (exp_id[1]!=51 || exp_id[3]!=1)
if (phi_test < 0) phi_test += 2.*
M_PI;
303 if(phi_test > phi_max){
307 if(phi_test < phi_min){
312 if(getas_x2.eta() > eta_max) {
314 eta_max=getas_x2.eta();
316 if(getas_x2.eta() < eta_min) {
318 eta_min=getas_x2.eta();
327 if(exp_id[1]==51 && exp_id[3]==1) {
328 if (phi_max < 0) phi_max += 2.*
M_PI;
329 if (phi_min < 0) phi_min += 2.*
M_PI;
332 uint16_t subDetectorId = (detid == -1) ? 0x6a : 0x69;
335 cscrob = ((subDetectorId << 16) | cscrob);