62 std::map<int, int> sectorLayerCounts;
65 std::vector<Trk::MuonTrackSummary::ChamberHitSummary>::const_iterator chit = s.chamberHitSummary().begin();
66 std::vector<Trk::MuonTrackSummary::ChamberHitSummary>::const_iterator chit_end = s.chamberHitSummary().end();
67 for (; chit != chit_end; ++chit) {
73 bool isEIPrec = isCsc || isMM || issTgc;
76 if ((isMdt && chit->nhits() > 0) || (isEIPrec && chit->netaHits() > 0)) {
79 sectorLayerCounts[sector] += chit->nhits();
81 sectorLayerCounts[sector] += chit->netaHits();
82 sum.sectors.insert(sector);
86 if (!isMdt && chit->nphiHits() > 0) {
88 sum.phiLayers.insert(
index);
112 if (chit->nphiHits() > 0) ++hitSummary.
nphiLayers;
113 if (chit->nphiHits() > 0 && chit->netaHits() > 0) ++hitSummary.
netaPhiLayers;
115 if (!isEIPrec && chit->etaProjection().nholes > 0 && chit->etaProjection().nhits == 0) ++hitSummary.
netaTriggerHoleLayers;
116 if (chit->phiProjection().nholes > 0 && chit->phiProjection().nhits == 0) ++hitSummary.
nphiHoleLayers;
122 std::map<int, int>::iterator secIt = sectorLayerCounts.begin();
123 std::map<int, int>::iterator secIt_end = sectorLayerCounts.end();
124 for (; secIt != secIt_end; ++secIt) {
125 if (secIt->second > maxHits) {
126 maxHits = secIt->second;
127 mainSec = secIt->first;
130 sum.mainSector = mainSec;
140 sum.nprecisionLayers = 0;
141 sum.nprecisionGoodLayers = 0;
142 sum.nprecisionHoleLayers = 0;
144 sum.ntrigEtaLayers = 0;
145 sum.nphiHoleLayers = 0;
146 sum.ntrigEtaHoleLayers = 0;
148 std::map<MuonStationIndex::StIndex, Muon::IMuonHitSummaryTool::HitSummary>::const_iterator hsit = sum.stationLayers.begin();
149 std::map<MuonStationIndex::StIndex, Muon::IMuonHitSummaryTool::HitSummary>::const_iterator hsit_end = sum.stationLayers.end();
150 for (; hsit != hsit_end; ++hsit) {
156 ++sum.nprecisionLayers;
158 ++sum.nprecisionGoodLayers;
160 sum.isSmall = hitSummary.
isSmall;
163 ++sum.nprecisionHoleLayers;
165 sum.nphiLayers = sum.phiLayers.size();
173 std::vector<const Trk::MeasurementBase*> rioVec;
174 std::vector<const Muon::MuonSegment*>::const_iterator sit = segments.begin();
175 std::vector<const Muon::MuonSegment*>::const_iterator sit_end = segments.end();
176 for (; sit != sit_end; ++sit)
177 rioVec.insert(rioVec.end(), (*sit)->containedMeasurements().begin(), (*sit)->containedMeasurements().end());
183 std::map<int, int> sectorLayerCounts;
185 std::map<MuonStationIndex::StIndex, std::map<MuonStationIndex::PhiIndex, std::pair<int, int> > > countLayersPerStation;
187 std::vector<const Trk::MeasurementBase*>::const_iterator it = rioVec.begin();
188 std::vector<const Trk::MeasurementBase*>::const_iterator it_end = rioVec.end();
189 for (; it != it_end; ++it) {
198 if (isMdt || (isCsc && !measuresPhi)) {
200 if (isMdt) ++sectorLayerCounts[sector];
201 if (isCsc) ++sectorLayerCounts[sector];
202 sum.sectors.insert(sector);
206 if (!isMdt && measuresPhi) {
208 sum.phiLayers.insert(
index);
213 if (isMdt || (isCsc && !measuresPhi)) ++hitSummary.
nprecisionHits;
217 std::pair<int, int> etaPhiCount = countLayersPerStation[
index][pindex];
221 ++etaPhiCount.second;
227 std::map<int, int>::iterator secIt = sectorLayerCounts.begin();
228 std::map<int, int>::iterator secIt_end = sectorLayerCounts.end();
229 for (; secIt != secIt_end; ++secIt) {
230 if (secIt->second > maxHits) {
231 maxHits = secIt->second;
232 mainSec = secIt->first;
235 sum.mainSector = mainSec;
237 std::map<MuonStationIndex::StIndex, std::map<MuonStationIndex::PhiIndex, std::pair<int, int> > >
::iterator sit =
238 countLayersPerStation.begin();
239 std::map<MuonStationIndex::StIndex, std::map<MuonStationIndex::PhiIndex, std::pair<int, int> > >
::iterator sit_end =
240 countLayersPerStation.end();
241 for (; sit != sit_end; ++sit) {
242 HitSummary& hitSummary = sum.stationLayers[sit->first];
244 std::map<MuonStationIndex::PhiIndex, std::pair<int, int> >
::iterator pit = sit->second.begin();
245 std::map<MuonStationIndex::PhiIndex, std::pair<int, int> >
::iterator pit_end = sit->second.end();
246 for (; pit != pit_end; ++pit) {
247 if (pit->second.first != 0) ++hitSummary.
nphiLayers;
249 if (pit->second.second != 0 && pit->second.first != 0) ++hitSummary.
netaPhiLayers;