@@ -445,8 +445,15 @@ bool Detector::ProcessHits(FairVolume* vol)
445445 if (subDetID == 1 ) {
446446 fMC ->CurrentVolOffID (1 , chip);
447447 fMC ->CurrentVolOffID (2 , mod);
448- fMC ->CurrentVolOffID (3 , halfstave);
449- fMC ->CurrentVolOffID (4 , stave);
448+ if (mGeometryTGeo ->getNumberOfHalfStaves (layer) == 2 ) {
449+ fMC ->CurrentVolOffID (3 , halfstave);
450+ fMC ->CurrentVolOffID (4 , stave);
451+ } else if (mGeometryTGeo ->getNumberOfHalfStaves (layer) == 1 ) {
452+ fMC ->CurrentVolOffID (3 , stave);
453+ } else {
454+ LOGP (fatal, " Wrong number of halfstaves for layer {}" , layer);
455+ }
456+
450457 } // / if VD, for the moment the volume is the "chipID" so no need to retrieve other elments
451458
452459 int chipID = mGeometryTGeo ->getChipIndex (subDetID, volume, layer, stave, halfstave, mod, chip);
@@ -486,7 +493,7 @@ void Detector::Print(FairVolume* vol, int volume, int subDetID, int layer, int s
486493 LOG (info) << " off volume name 4 " << fMC ->CurrentVolOffName (4 ) << " stave: " << stave;
487494 LOG (info) << " SubDetector ID: " << subDetID << " Layer: " << layer << " staveinLayer: " << stave << " Chip ID: " << chipID;
488495 } else if (subDetID == 1 && mGeometryTGeo ->getNumberOfHalfStaves (layer) == 1 ) { // turbo geometry
489- LOG (info) << " off volume name 2 " << fMC ->CurrentVolOffName (3 ) << " stave: " << stave;
496+ LOG (info) << " off volume name 3 " << fMC ->CurrentVolOffName (3 ) << " stave: " << stave;
490497 LOG (info) << " SubDetector ID: " << subDetID << " Layer: " << layer << " staveinLayer: " << stave << " Chip ID: " << chipID;
491498 } else {
492499 LOG (info) << " SubDetector ID: " << subDetID << " Chip ID: " << chipID;
0 commit comments