ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonCnv
MuonCSC_CnvTools
src
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
7
#include "
MuonIdHelpers/CscIdHelper.h
"
8
#include "
MuonRDO/CscRawDataCollection.h
"
9
#include "eformat/SourceIdentifier.h"
10
11
using
eformat::helper::SourceIdentifier;
12
13
#include <cassert>
14
16
uint32_t
CSC_Hid2RESrcID::getRodID
(
const
CscRawDataCollection
* rdo)
const
{
17
uint16_t rodId = rdo->
rodId
();
18
uint16_t subDetectorId = rdo->
subDetectorId
();
19
20
return
this->
getRodID
(subDetectorId, rodId);
21
}
22
24
uint32_t
CSC_Hid2RESrcID::getRodID
(uint16_t subDetectorId, uint16_t rodId)
const
{
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
35
uint32_t
CSC_Hid2RESrcID::getRodID
(
const
Identifier
& offlineId)
const
{
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
49
uint32_t
CSC_Hid2RESrcID::getRobID
(uint32_t rod_id)
const
{
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
63
void
CSC_Hid2RESrcID::fillAllRobIds
() {
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
95
uint32_t
CSC_Hid2RESrcID::getRosID
(uint32_t rob_id)
const
{
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
105
uint32_t
CSC_Hid2RESrcID::getDetID
(uint32_t ros_id)
const
{
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
}
eta
Scalar eta() const
pseudorapidity method
Definition
AmgMatrixBasePlugin.h:83
phi
Scalar phi() const
phi method
Definition
AmgMatrixBasePlugin.h:67
CSC_Hid2RESrcID.h
CscIdHelper.h
CscRawDataCollection.h
CSC_Hid2RESrcID::m_isOldCosmic
bool m_isOldCosmic
Definition
CSC_Hid2RESrcID.h:93
CSC_Hid2RESrcID::m_robIDs
std::vector< uint32_t > m_robIDs
Definition
CSC_Hid2RESrcID.h:96
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
CSC_Hid2RESrcID::m_cabling
CSCcablingSvc * m_cabling
Definition
CSC_Hid2RESrcID.h:94
CSC_Hid2RESrcID::m_cscIdHelper
const CscIdHelper * m_cscIdHelper
Definition
CSC_Hid2RESrcID.h:95
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
CSC_Hid2RESrcID::getRodID
uint32_t getRodID(const CscRawDataCollection *rdo) const
Make a ROD Source ID for CSC RDO.
Definition
CSC_Hid2RESrcID.cxx:16
CSC_Hid2RESrcID::m_isCosmic
bool m_isCosmic
Definition
CSC_Hid2RESrcID.h:92
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::fillAllRobIds
void fillAllRobIds()
fill all the ROB ids
Definition
CSC_Hid2RESrcID.cxx:63
CscRawDataCollection
Collection of CSC Raw Hits, arranged according to CSC Detector Elements Author: Ketevi A.
Definition
CscRawDataCollection.h:24
CscRawDataCollection::rodId
uint16_t rodId() const
Definition
CscRawDataCollection.h:112
CscRawDataCollection::subDetectorId
uint16_t subDetectorId() const
Definition
CscRawDataCollection.h:113
Identifier
Definition
IdentifierFieldParser.cxx:14
Generated on
for ATLAS Offline Software by
1.17.0