ATLAS Offline Software
CSC_Hid2RESrcID.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include "CSC_Hid2RESrcID.h"
6 
9 #include "eformat/SourceIdentifier.h"
10 
11 using eformat::helper::SourceIdentifier;
12 
13 #include <cassert>
14 
17  uint16_t rodId = rdo->rodId();
18  uint16_t subDetectorId = rdo->subDetectorId();
19 
20  return this->getRodID(subDetectorId, rodId);
21 }
22 
25  // get Source ID
26  assert(subDetectorId == eformat::MUON_CSC_ENDCAP_C_SIDE || subDetectorId == eformat::MUON_CSC_ENDCAP_A_SIDE);
27 
28  assert(m_cabling->is_rodId(rodId));
29 
30  SourceIdentifier sid(static_cast<eformat::SubDetector>(subDetectorId), static_cast<uint16_t>(rodId));
31  return sid.code();
32 }
33 
36  int eta = m_cscIdHelper->stationEta(offlineId);
37  int phi = m_cscIdHelper->stationPhi(offlineId);
38  uint16_t subDetectorId = (eta == -1) ? eformat::MUON_CSC_ENDCAP_C_SIDE : eformat::MUON_CSC_ENDCAP_A_SIDE;
39  uint16_t rodId = uint16_t(phi - 1);
40  // if(offlineId >= 0x10 && offlineId <= 0x1F) rodId = 0x10 +
41  uint16_t onlineRodId = 0x0;
42  bool check = m_cabling->onlineId(rodId, onlineRodId);
43  assert(check);
44  if (!check) onlineRodId = 0xFFFF;
45  return this->getRodID(subDetectorId, onlineRodId);
46 }
47 
50  uint32_t rob_id = rod_id;
51 
52  if (m_isCosmic && m_isOldCosmic) {
53  if (rod_id == 0x0069000a)
54  rob_id = 0x0;
55  else if (rod_id == 0x0069000c)
56  rob_id = 0x1;
57  }
58 
59  return rob_id;
60 }
61 
64  uint16_t sub_detector[] = {eformat::MUON_CSC_ENDCAP_C_SIDE, eformat::MUON_CSC_ENDCAP_A_SIDE};
65 
66  m_robIDs.clear();
67 
68  for (uint16_t i = 0; i < m_cabling->nSide(); ++i) {
69  uint16_t rodId = (m_cabling->nROD() == 8) ? 0 : 16;
70  // for (uint16_t rodId=0; rodId<m_cabling->nROD(); ++rodId) {
71  for (unsigned int j = 0; j < m_cabling->nROD(); ++j) {
72  uint16_t onlineRodId = 0x0;
73  bool check = m_cabling->onlineId(rodId, onlineRodId);
74  assert(check);
75  if (!check) onlineRodId = 0xFFFF;
76  uint32_t theROD = this->getRodID(sub_detector[i], onlineRodId);
77 
78  if (m_isCosmic) {
79  int jj = i * 8 + rodId;
80  if (jj == 8)
81  theROD = 0x0069000a;
82  else if (jj == 9)
83  theROD = 0x0069000c;
84  }
85 
86  uint32_t theROB = this->getRobID(theROD);
87 
88  m_robIDs.push_back(theROB);
89  ++rodId;
90  }
91  }
92 }
93 
96  // Change Module Type to ROS, moduleid = 0
97  SourceIdentifier id(rob_id);
98  SourceIdentifier id2(id.subdetector_id(), 0);
99 
100  // return Source ID
101  return id2.code();
102 }
103 
106  // ROS to DET
107  SourceIdentifier id(ros_id);
108  SourceIdentifier id2(id.subdetector_id(), 0);
109 
110  // return Source ID
111  return id2.code();
112 }
CscIdHelper.h
CSC_Hid2RESrcID::m_robIDs
std::vector< uint32_t > m_robIDs
Definition: CSC_Hid2RESrcID.h:96
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
CSC_Hid2RESrcID::getRosID
uint32_t getRosID(uint32_t rob_id) const
Make a ROS Source ID from a ROB source ID.
Definition: CSC_Hid2RESrcID.cxx:95
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
CSC_Hid2RESrcID::getRodID
uint32_t getRodID(const CscRawDataCollection *rdo) const
Make a ROD Source ID for CSC RDO.
Definition: CSC_Hid2RESrcID.cxx:16
CSCcablingSvc::nSide
unsigned int nSide() const
Definition: CSCcablingSvc.h:50
CSCcablingSvc::onlineId
bool onlineId(const uint16_t subdetectorID, const uint16_t offlineID, uint32_t &rodId) const
map offline ROD identifier to online ID
Definition: CSCcablingSvc.cxx:75
CSC_Hid2RESrcID::getRobID
uint32_t getRobID(uint32_t rod_id) const
Make a ROB Source ID from a ROD source ID.
Definition: CSC_Hid2RESrcID.cxx:49
CSCcablingSvc::nROD
unsigned int nROD() const
Definition: CSCcablingSvc.h:51
CSCcablingSvc::is_rodId
bool is_rodId(const uint16_t rodId) const
check that we have the correct online ROD id
Definition: CSCcablingSvc.cxx:178
id2
HWIdentifier id2
Definition: LArRodBlockPhysicsV0.cxx:564
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:88
CSC_Hid2RESrcID::getDetID
uint32_t getDetID(uint32_t ros_id) const
Make a SubDetector ID from ROS source ID.
Definition: CSC_Hid2RESrcID.cxx:105
CSC_Hid2RESrcID::m_isOldCosmic
bool m_isOldCosmic
Definition: CSC_Hid2RESrcID.h:93
lumiFormat.i
int i
Definition: lumiFormat.py:92
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
CscRawDataCollection::rodId
uint16_t rodId() const
Definition: CscRawDataCollection.h:112
CSC_Hid2RESrcID::m_cscIdHelper
const CscIdHelper * m_cscIdHelper
Definition: CSC_Hid2RESrcID.h:95
CSC_Hid2RESrcID::m_isCosmic
bool m_isCosmic
Definition: CSC_Hid2RESrcID.h:92
CscRawDataCollection
Collection of CSC Raw Hits, arranged according to CSC Detector Elements Author: Ketevi A.
Definition: CscRawDataCollection.h:24
MuonIdHelper::stationPhi
int stationPhi(const Identifier &id) const
Definition: MuonIdHelper.cxx:814
CscRawDataCollection.h
CSC_Hid2RESrcID::fillAllRobIds
void fillAllRobIds()
fill all the ROB ids
Definition: CSC_Hid2RESrcID.cxx:63
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:194
CSC_Hid2RESrcID.h
MuonIdHelper::stationEta
int stationEta(const Identifier &id) const
Definition: MuonIdHelper.cxx:809
LArNewCalib_Delay_OFC_Cali.check
check
Definition: LArNewCalib_Delay_OFC_Cali.py:208
createCablingJSON.sub_detector
int sub_detector
Definition: createCablingJSON.py:12
CscRawDataCollection::subDetectorId
uint16_t subDetectorId() const
Definition: CscRawDataCollection.h:113
CSC_Hid2RESrcID::m_cabling
CSCcablingSvc * m_cabling
Definition: CSC_Hid2RESrcID.h:94