64 std::map<int, int> sectorLayerCounts;
67 std::vector<Trk::MuonTrackSummary::ChamberHitSummary>::const_iterator chit = s.chamberHitSummary().begin();
68 std::vector<Trk::MuonTrackSummary::ChamberHitSummary>::const_iterator chit_end = s.chamberHitSummary().end();
69 for (; chit != chit_end; ++chit) {
75 bool isEIPrec = isCsc || isMM || issTgc;
78 if ((isMdt && chit->nhits() > 0) || (isEIPrec && chit->netaHits() > 0)) {
81 sectorLayerCounts[sector] += chit->nhits();
83 sectorLayerCounts[sector] += chit->netaHits();
84 sum.sectors.insert(sector);
88 if (!isMdt && chit->nphiHits() > 0) {
90 sum.phiLayers.insert(
index);
114 if (chit->nphiHits() > 0) ++hitSummary.
nphiLayers;
115 if (chit->nphiHits() > 0 && chit->netaHits() > 0) ++hitSummary.
netaPhiLayers;
117 if (!isEIPrec && chit->etaProjection().nholes > 0 && chit->etaProjection().nhits == 0) ++hitSummary.
netaTriggerHoleLayers;
118 if (chit->phiProjection().nholes > 0 && chit->phiProjection().nhits == 0) ++hitSummary.
nphiHoleLayers;
124 std::map<int, int>::iterator secIt = sectorLayerCounts.begin();
125 std::map<int, int>::iterator secIt_end = sectorLayerCounts.end();
126 for (; secIt != secIt_end; ++secIt) {
127 if (secIt->second > maxHits) {
128 maxHits = secIt->second;
129 mainSec = secIt->first;
132 sum.mainSector = mainSec;
142 sum.nprecisionLayers = 0;
143 sum.nprecisionGoodLayers = 0;
144 sum.nprecisionHoleLayers = 0;
146 sum.ntrigEtaLayers = 0;
147 sum.nphiHoleLayers = 0;
148 sum.ntrigEtaHoleLayers = 0;
150 std::map<MuonStationIndex::StIndex, Muon::IMuonHitSummaryTool::HitSummary>::const_iterator hsit = sum.stationLayers.begin();
151 std::map<MuonStationIndex::StIndex, Muon::IMuonHitSummaryTool::HitSummary>::const_iterator hsit_end = sum.stationLayers.end();
152 for (; hsit != hsit_end; ++hsit) {
158 ++sum.nprecisionLayers;
160 ++sum.nprecisionGoodLayers;
162 sum.isSmall = hitSummary.
isSmall;
165 ++sum.nprecisionHoleLayers;
167 sum.nphiLayers = sum.phiLayers.size();
175 std::vector<const Trk::MeasurementBase*> rioVec;
176 std::vector<const Muon::MuonSegment*>::const_iterator sit = segments.begin();
177 std::vector<const Muon::MuonSegment*>::const_iterator sit_end = segments.end();
178 for (; sit != sit_end; ++sit)
179 rioVec.insert(rioVec.end(), (*sit)->containedMeasurements().begin(), (*sit)->containedMeasurements().end());
185 std::map<int, int> sectorLayerCounts;
187 std::map<MuonStationIndex::StIndex, std::map<MuonStationIndex::PhiIndex, std::pair<int, int> > > countLayersPerStation;
189 std::vector<const Trk::MeasurementBase*>::const_iterator it = rioVec.begin();
190 std::vector<const Trk::MeasurementBase*>::const_iterator it_end = rioVec.end();
191 for (; it != it_end; ++it) {
200 if (isMdt || (isCsc && !measuresPhi)) {
202 if (isMdt) ++sectorLayerCounts[sector];
203 if (isCsc) ++sectorLayerCounts[sector];
204 sum.sectors.insert(sector);
208 if (!isMdt && measuresPhi) {
210 sum.phiLayers.insert(
index);
215 if (isMdt || (isCsc && !measuresPhi)) ++hitSummary.
nprecisionHits;
219 std::pair<int, int> etaPhiCount = countLayersPerStation[
index][pindex];
223 ++etaPhiCount.second;
229 std::map<int, int>::iterator secIt = sectorLayerCounts.begin();
230 std::map<int, int>::iterator secIt_end = sectorLayerCounts.end();
231 for (; secIt != secIt_end; ++secIt) {
232 if (secIt->second > maxHits) {
233 maxHits = secIt->second;
234 mainSec = secIt->first;
237 sum.mainSector = mainSec;
239 std::map<MuonStationIndex::StIndex, std::map<MuonStationIndex::PhiIndex, std::pair<int, int> > >
::iterator sit =
240 countLayersPerStation.begin();
241 std::map<MuonStationIndex::StIndex, std::map<MuonStationIndex::PhiIndex, std::pair<int, int> > >
::iterator sit_end =
242 countLayersPerStation.end();
243 for (; sit != sit_end; ++sit) {
244 HitSummary& hitSummary = sum.stationLayers[sit->first];
246 std::map<MuonStationIndex::PhiIndex, std::pair<int, int> >
::iterator pit = sit->second.begin();
247 std::map<MuonStationIndex::PhiIndex, std::pair<int, int> >
::iterator pit_end = sit->second.end();
248 for (; pit != pit_end; ++pit) {
249 if (pit->second.first != 0) ++hitSummary.
nphiLayers;
251 if (pit->second.second != 0 && pit->second.first != 0) ++hitSummary.
netaPhiLayers;