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;