13 using namespace MuonStationIndex;
22 ATH_CHECK(m_ntrigEtaLayersKey.initialize());
23 ATH_CHECK(m_innerSmallHitsKey.initialize());
24 ATH_CHECK(m_innerLargeHitsKey.initialize());
25 ATH_CHECK(m_middleSmallHitsKey.initialize());
26 ATH_CHECK(m_middleLargeHitsKey.initialize());
27 ATH_CHECK(m_outerSmallHitsKey.initialize());
28 ATH_CHECK(m_outerLargeHitsKey.initialize());
29 ATH_CHECK(m_extendedSmallHitsKey.initialize());
30 ATH_CHECK(m_extendedLargeHitsKey.initialize());
31 ATH_CHECK(m_phiLayer1HitsKey.initialize());
32 ATH_CHECK(m_phiLayer2HitsKey.initialize());
33 ATH_CHECK(m_phiLayer3HitsKey.initialize());
34 ATH_CHECK(m_phiLayer4HitsKey.initialize());
35 ATH_CHECK(m_etaLayer1HitsKey.initialize());
36 ATH_CHECK(m_etaLayer2HitsKey.initialize());
37 ATH_CHECK(m_etaLayer3HitsKey.initialize());
38 ATH_CHECK(m_etaLayer4HitsKey.initialize());
39 ATH_CHECK(m_truthMdtHitsKey.initialize(m_idHelperSvc->hasMDT()));
40 ATH_CHECK(m_truthTgcHitsKey.initialize(m_idHelperSvc->hasTGC()));
41 ATH_CHECK(m_truthRpcHitsKey.initialize(m_idHelperSvc->hasRPC()));
42 ATH_CHECK(m_truthCscHitsKey.initialize(m_idHelperSvc->hasCSC()));
43 ATH_CHECK(m_truthStgcHitsKey.initialize(m_idHelperSvc->hasSTGC()));
44 ATH_CHECK(m_truthMMHitsKey.initialize(m_idHelperSvc->hasMM()));
46 return StatusCode::SUCCESS;
60 ATH_CHECK(addHitCounts(ctx, *truthParticle,
ids, myDecors));
61 ATH_CHECK(addHitIDVectors(*truthParticle,
ids, myDecors));
63 return StatusCode::SUCCESS;
70 std::vector<unsigned int> nprecHitsPerChamberLayer;
71 std::vector<unsigned int> nphiHitsPerChamberLayer;
72 std::vector<unsigned int> ntrigEtaHitsPerChamberLayer;
85 for (
const std::pair<Identifier, HepMcParticleLink> trajectory : *col) {
91 bool measPhi = m_idHelperSvc->measuresPhi(
id);
92 bool isTgc = m_idHelperSvc->isTgc(
id);
96 if (m_idHelperSvc->isTgc(
id)) {
106 ids[m_idHelperSvc->chamberIndex(
id)].push_back(
id);
108 if (m_idHelperSvc->issTgc(
id)) {
115 }
else if (m_idHelperSvc->isMM(
id)) {
117 }
else if (m_idHelperSvc->isTrigger(
id)) {
123 ++ntrigEtaHitsPerChamberLayer.at(
toInt(
index));
250 ATH_MSG_DEBUG(
"Precision layers " <<
static_cast<int>(nprecLayers) <<
" phi layers " <<
static_cast<int>(nphiLayers)
251 <<
" triggerEta layers " <<
static_cast<int>(ntrigEtaLayers));
253 if (nprecLayers > 0) {
256 for (
int index = 0; index < static_cast<int>(nprecHitsPerChamberLayer.size()); ++
index) {
257 if (nprecHitsPerChamberLayer[
index] > 0)
259 <<
" hits " << nprecHitsPerChamberLayer[
index];
262 if (nphiLayers > 0) {
264 for (
int index = 0; index < static_cast<int>(nphiHitsPerChamberLayer.size()); ++
index) {
265 if (nphiHitsPerChamberLayer[
index] > 0)
267 <<
" hits " << nphiHitsPerChamberLayer[
index];
271 if (ntrigEtaLayers > 0) {
273 for (
int index = 0; index < static_cast<int>(ntrigEtaHitsPerChamberLayer.size()); ++
index) {
274 if (ntrigEtaHitsPerChamberLayer[
index] > 0)
276 <<
" hits " << ntrigEtaHitsPerChamberLayer[
index];
281 return StatusCode::SUCCESS;
287 std::vector<unsigned long long> mdtTruthHits{};
288 std::vector<unsigned long long> tgcTruthHits{};
289 std::vector<unsigned long long> rpcTruthHits{};
290 std::vector<unsigned long long> stgcTruthHits{};
291 std::vector<unsigned long long> cscTruthHits{};
292 std::vector<unsigned long long> mmTruthHits{};
295 int nEI = 0, nEM = 0;
296 for (
const auto& lay :
ids) {
301 if (m_idHelperSvc->isMdt(
id))
302 mdtTruthHits.push_back(
id.get_compact());
303 else if (m_idHelperSvc->isCsc(
id))
304 cscTruthHits.push_back(
id.get_compact());
305 else if (m_idHelperSvc->isTgc(
id)) {
310 tgcTruthHits.push_back(
id.get_compact());
311 }
else if (m_idHelperSvc->issTgc(
id))
312 stgcTruthHits.push_back(
id.get_compact());
313 else if (m_idHelperSvc->isRpc(
id))
314 rpcTruthHits.push_back(
id.get_compact());
315 else if (m_idHelperSvc->isMM(
id))
316 mmTruthHits.push_back(
id.get_compact());
320 std::vector<unsigned long long>&
hits) {
322 (*dec)(truthParticle) = std::move(
hits);
331 ATH_MSG_VERBOSE(
"Added " << mdtTruthHits.size() <<
" mdt truth hits, " << cscTruthHits.size() <<
" csc truth hits, "
332 << rpcTruthHits.size() <<
" rpc truth hits, and " << tgcTruthHits.size() <<
" tgc truth hits");
333 return StatusCode::SUCCESS;