27 const std::vector<ExtendedSegPtr>& segments,
28 const std::vector<ExtendedTrkPtr>& tracks) :
33 const MuonFixedId id = rawHit->identify();
35 MuonFixedId chId = idManip.chamberIdentifier(id);
36 MuonFixedIdManipulator::StationIndex stationIndex = idManip.stationLayerIndex(id);
38 MdtRegionInfo& chInfo = m_mdtChamberIdMap[chId];
39 ExtendedChannelInfo& channelChInfo = chInfo.hits[id];
40 MdtRegionInfo& stInfo = m_mdtChamberIndexMap[stationIndex];
41 ExtendedChannelInfo& channelStInfo = stInfo.hits[id];
43 channelChInfo.hits.emplace_back(rawHit);
44 channelStInfo.hits.emplace_back(rawHit);
46 const bool above_thresh = {rawHit->adcCount() > m_adcThreshold};
47 chInfo.nhitsAboveAdcThreshold += above_thresh;
48 stInfo.nhitsAboveAdcThreshold += above_thresh;
55 const IdHitMap& idHitMap = trk->idHitMap();
56 IdHitMap::const_iterator pos = idHitMap.find(
id);
57 if (pos == idHitMap.end())
continue;
63 ++chInfo.nhitsOnTrack;
64 ++stInfo.nhitsOnTrack;
67 trk->rawHitAssociationMap().addMdtRawHit(rawHit);
68 channelChInfo.associatedTracks.emplace_back(trk);
69 channelStInfo.associatedTracks.emplace_back(trk);
78 if (!seg->idSet().count(
id))
continue;
81 ++chInfo.nhitsOnSegment;
82 ++stInfo.nhitsOnSegment;
85 seg->rawHitAssociationMap().addMdtRawHit(rawHit);
86 channelChInfo.associatedSegments.emplace_back(seg);
87 channelStInfo.associatedSegments.emplace_back(seg);
93 std::ostringstream sout;
96 sout <<
" number of MDT chambers with hits: " <<
m_mdtChamberIdMap.size() << std::endl;
98 if (chIt.second.nhitsAboveAdcThreshold < 3)
continue;
100 sout <<
" " << std::setw(20) << printer.
chamberIdentifier(chId) <<
" nhits " << std::setw(3) << chIt.second.hits.size()
101 <<
" above ADC cut " << std::setw(3) << chIt.second.nhitsAboveAdcThreshold <<
" on segment " << std::setw(3)
102 << chIt.second.nhitsOnSegment <<
" on track " << std::setw(3) << chIt.second.nhitsOnTrack;