diff --git a/MuonSpectrometer/MuonGeoModelTest/src/MuonGMCheck.cxx b/MuonSpectrometer/MuonGeoModelTest/src/MuonGMCheck.cxx index aa1b683f4f5fada9fcd60331becec68291bb8ed7..e1e0472ef521b48a59ca9e3e3e5198b6176ac2f6 100644 --- a/MuonSpectrometer/MuonGeoModelTest/src/MuonGMCheck.cxx +++ b/MuonSpectrometer/MuonGeoModelTest/src/MuonGMCheck.cxx @@ -1611,6 +1611,25 @@ void MuonGMCheck::checkreadoutmdtgeo() if (mdt->hasCutouts()) tubeStep = 1; for (int tube = 1; tube<mdt->getNtubesperlayer()+1;) { + if(mdt->hasCutouts()){ //check that the tube exists if there are cutouts + PVConstLink cv = mdt->getMaterialGeom(); + int nGrandchildren = cv->getNChildVols(); + if(nGrandchildren <= 0) continue; + bool tubefound = false; + for(unsigned int kk=0; kk < cv->getNChildVols(); kk++) { + int tubegeo = cv->getIdOfChildVol(kk) % 100; + int layergeo = ( cv->getIdOfChildVol(kk) - tubegeo ) / 100; + if( tubegeo == tube && layergeo == tl ) { + tubefound=true; + break; + } + if( layergeo > tl ) break; + } + if(!tubefound){ + tube+=tubeStep; + continue; + } + } gotTube = tube; chid = p_MdtIdHelper->channelID(idp,mdt->getMultilayer(), tl, tube); fout<<p_MdtIdHelper->show_to_string(chid)