ATLAS Offline Software
CscRODReadOutV1.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef MUONCSC_CNVTOOL_CSCRODREADOUTV1_H
6 #define MUONCSC_CNVTOOL_CSCRODREADOUTV1_H
7 
8 #include <stdint.h>
9 
10 #include <cmath>
11 #include <vector>
12 
14 
15 // TGC ROD encoder/decoder for CscRDO
16 // Author Ketevi A. Assamagan
17 // BNL December 27 2003
18 
20 public:
22  CscRODReadOutV1(double startTime, uint16_t samplingTime, double signalWidth, uint16_t numIntegration);
23  ~CscRODReadOutV1() = default;
24 
25  // more static header/footer information
29  uint32_t latency() { return LATENCY; }
30  uint32_t samplingRate() { return RATE; }
31  uint32_t numDPU() { return NUM_DPU; }
33  for (int i = 0; i < 3; i++) *(trigger + i) = m_TRIGGER_INFO[i];
34  };
35 
36  // DPU header info
39 
40  // get additional info
41  double getSamplingTime() { return m_SAMPLING_TIME; }
43  double getStartTime() { return m_TIME_OFFSET; }
44  double getConversion() { return m_CHARGE_TO_ADC_COUNT; }
45  double getMaxTimeBin() { return m_Z0; }
46 
47  // encoding
49  void encodeFragments(const std::vector<uint16_t>& amplitude, std::vector<uint32_t>& v) const;
50 
51  // initialize helper
52  void set(const CscIdHelper* cscHelper) { m_cscHelper = cscHelper; }
53 
54  void setParams(double timeOffset, double samplingTime, double signalWidth);
55 
56  void setParams(double samplingTime);
57 
58  // testing
59  bool isDPU(const uint32_t fragment) const;
60  bool discard(const uint32_t fragment) const;
61  bool isAmplitude(const uint16_t fragment) const;
62  bool isAddress(const uint32_t fragment) const;
63 
64  // Decoding
65  void decodeSourceID(uint32_t sourceId);
66  void decodeAmplitude(const uint32_t fragment);
67  void decodeAddress(const uint32_t fragment);
69  uint32_t hashIdentifier(const Identifier& moduleId);
70 
71  uint32_t numberOfStrips(const uint32_t fragment);
72  void setAddress(const uint32_t address);
73  Identifier decodeAddress(const Identifier& moduleId);
74  Identifier decodeAddress(const Identifier& moduleId, int j);
75  int findCharge(const std::vector<uint16_t>& amplitude, double& time);
76  double signal_amplitude(double samplingTime) const;
77  uint32_t address(const Identifier& channelId, int& eta, int& phi) const;
78 
79  // Retrieve decoded results
80  uint16_t sourceID() const { return m_sourceID; }
81  uint16_t moduleType() const { return m_moduleType; }
83  uint16_t rodId() const { return m_rodId; }
84  uint16_t getAmp1() const { return m_amp1; }
85  uint16_t getAmp2() const { return m_amp2; }
86  uint32_t address() const { return m_address; }
87 
88 private:
97  double m_norm;
98 
99  double m_TIME_OFFSET;
104  double m_Z0;
105 
107 
108  static const uint32_t ROD_HEADER_SIZE = 12;
109 
110  static const uint32_t ROD_FOOTER_SIZE = 0x0;
111 
112  static const uint16_t SOURCE_ID = 0x00;
113  static const uint16_t MODULE_TYPE = 0x00;
114 
115  static const uint16_t BODY_AMPLITUDE = 0x0000;
116  static const uint32_t BODY_ADDRESS = 0x00000000;
117 
118  static const uint32_t NUM_SAMPLES = 25;
119  static const uint32_t LATENCY = 0;
120  static const uint32_t RATE = 40;
121  static const uint32_t NUM_DPU = 12;
122 
123  static const uint32_t DPU_HEADER_MARKER = 0xC5F38856;
124  static const uint32_t DPU_HEADER_SIZE = 13;
125 
126  static const uint32_t DPU_DISCARD = 0xFFFFFFFF;
127 
128  void set32bits(const uint16_t* v16, uint32_t& v32) const;
129  double signal(double z) const;
130 };
131 
132 inline void CscRODReadOutV1::setParams(double timeOffset, double samplingTime, double signalWidth) {
133  m_TIME_OFFSET = timeOffset;
134  m_SAMPLING_TIME = samplingTime;
135  m_SIGNAL_WIDTH = signalWidth;
136 }
137 
138 inline void CscRODReadOutV1::setParams(double samplingTime) { m_SAMPLING_TIME = samplingTime; }
139 
141  uint32_t sourceIdentifier = 0;
142  sourceIdentifier = SOURCE_ID << 24 | MODULE_TYPE << 16 | side << 8 | rodId;
143  return sourceIdentifier;
144 }
145 
147  m_sourceID = (sourceID & 0xff000000) >> 24;
148  m_moduleType = (sourceID & 0x00ff0000) >> 16;
149  m_subDetectorId = (sourceID & 0x0000ff00) >> 8;
150  m_rodId = (sourceID & 0x000000ff);
151 }
152 
153 inline void CscRODReadOutV1::set32bits(const uint16_t* v16, uint32_t& v32) const {
154  uint32_t p = 0, v = 0;
155  uint16_t n = 2;
156  uint16_t pos[] = {0, 16};
157  for (uint16_t i = 0; i < n; i++) {
158  v = (uint32_t)(*(v16 + i));
159  p = (uint32_t)(*(pos + i));
160  v32 = v32 | (v << p);
161  }
162 }
163 
164 inline bool CscRODReadOutV1::isDPU(const uint32_t fragment) const { return (fragment == DPU_HEADER_MARKER); }
165 
166 inline bool CscRODReadOutV1::discard(const uint32_t fragment) const { return (fragment == DPU_DISCARD); }
167 
168 inline bool CscRODReadOutV1::isAmplitude(const uint16_t fragment) const {
169  uint16_t amplitudeTest = (fragment >> 12);
170  return (amplitudeTest == BODY_AMPLITUDE);
171 }
172 
173 inline bool CscRODReadOutV1::isAddress(const uint32_t fragment) const {
174  uint32_t addressTest = (fragment >> 17);
175  return (addressTest == BODY_ADDRESS);
176 }
177 
178 inline void CscRODReadOutV1::decodeAmplitude(const uint32_t fragment) {
179  m_amp1 = 0x0000FFFF & fragment;
180  m_amp2 = (0xFFFF0000 & fragment) >> 16;
181 }
182 
183 inline void CscRODReadOutV1::decodeAddress(const uint32_t fragment) {
184  uint32_t address = 0x0001FFFF & fragment;
186  int stationName = ((address & 0x00010000) >> 16) + 50;
187  int stationEta = (((address & 0x00001000) >> 12) == 0x0) ? -1 : 1;
188  int stationPhi = ((address & 0x0000E000) >> 13) + 1;
189  int chamberLayer = ((address & 0x00000800) >> 11) + 1;
190  int wireLayer = ((address & 0x00000600) >> 9) + 1;
191  int measuresPhi = ((address & 0x00000100) >> 8);
192  int strip = (address & 0x000000FF) + 1;
193 
194  // redefine the ranges
195  uint32_t nameIndex = uint32_t(stationName - 50);
196  uint32_t etaIndex = (stationEta == -1) ? 0 : 1;
198  uint32_t chamberIndex = uint32_t(chamberLayer - 0);
199  uint32_t layerIndex = uint32_t(wireLayer - 1);
200  uint32_t stripType = uint32_t(measuresPhi);
201  uint32_t stripNumber = uint32_t(strip - 1);
202 
203  // build the address
204  m_address = nameIndex << 16 | phiIndex << 13 | etaIndex << 12 | chamberIndex << 11 | layerIndex << 9 | stripType << 8 | stripNumber;
205 }
206 
208  int stationName = ((m_address & 0x00010000) >> 16) + 50;
209  int stationEta = (((m_address & 0x00001000) >> 12) == 0x0) ? -1 : 1;
210  int stationPhi = ((m_address & 0x0000E000) >> 13) + 1;
211 
213 }
214 
216 
218  int chamberLayer = ((m_address & 0x00000800) >> 11) + 0;
219  int wireLayer = ((m_address & 0x00000600) >> 9) + 0;
220  int measuresPhi = ((m_address & 0x00000100) >> 8);
221  int strip = (m_address & 0x000000FF) + 1;
222  return m_cscHelper->channelID(moduleId, chamberLayer, wireLayer, measuresPhi, strip);
223 }
224 
225 inline Identifier CscRODReadOutV1::decodeAddress(const Identifier& moduleId, int j) {
226  int chamberLayer = ((m_address & 0x00000800) >> 11) + 0;
227  int wireLayer = ((m_address & 0x00000600) >> 9) + 1;
228  int measuresPhi = ((m_address & 0x00000100) >> 8);
229  int strip = (m_address & 0x000000FF) + 1 + j;
230  return m_cscHelper->channelID(moduleId, chamberLayer, wireLayer, measuresPhi, strip);
231 }
232 
234  int chamberLayer = ((m_address & 0x00000800) >> 11) + 0;
235  int wireLayer = ((m_address & 0x00000600) >> 9) + 1;
236  int measuresPhi = ((m_address & 0x00000100) >> 8);
237  int strip = (m_address & 0x000000FF) + 1;
238  Identifier id = m_cscHelper->channelID(moduleId, chamberLayer, wireLayer, measuresPhi, strip);
241  m_cscHelper->get_hash(id, hash, &context);
242  return (uint32_t)hash;
243 }
244 
246  decodeAddress(fragment);
247  Identifier moduleId = decodeAddress();
248  Identifier channelId = decodeAddress(moduleId);
250 }
251 
252 // get the signal amplitude for a given sampling time (ns)
253 inline double CscRODReadOutV1::signal_amplitude(double samplingTime) const {
254  if (samplingTime <= m_TIME_OFFSET) return 0.0;
255  double z = (samplingTime - m_TIME_OFFSET) / m_SIGNAL_WIDTH;
256  return signal(z) / m_norm;
257 }
258 
259 // signal amplitude as a function of the time bin z
260 inline double CscRODReadOutV1::signal(double z) const {
261  double amplitude = (1.0 - z / (1 + m_NUMBER_OF_INTEGRATION)) * std::pow(z, m_NUMBER_OF_INTEGRATION) * exp(-z);
262  return amplitude;
263 }
264 
265 // find the address of this strip
266 inline uint32_t CscRODReadOutV1::address(const Identifier& channelId, int& eta, int& phi) const {
267  // unpack the strip identifier
271  int chamberLayer = m_cscHelper->chamberLayer(channelId);
272  int wireLayer = m_cscHelper->wireLayer(channelId);
273  int orientation = m_cscHelper->measuresPhi(channelId);
275 
276  // redefine the ranges
277  uint32_t nameIndex = uint32_t(name - 50);
278  uint32_t etaIndex = (eta == -1) ? 0 : 1;
279  uint32_t phiIndex = uint32_t(phi - 1);
280  uint32_t chamberIndex = uint32_t(chamberLayer - 0);
281  uint32_t layerIndex = uint32_t(wireLayer - 1);
282  uint32_t stripType = uint32_t(orientation);
283  uint32_t stripNumber = uint32_t(strip - 1);
284 
285  // build the address
286  uint32_t address =
287  nameIndex << 16 | phiIndex << 13 | etaIndex << 12 | chamberIndex << 11 | layerIndex << 9 | stripType << 8 | stripNumber;
288 
289  return address;
290 }
291 
292 #endif // MUONCSC_CNVTOOL_CSCRODREADOUTV1_H
CscRODReadOutV1::getConversion
double getConversion()
Definition: CscRODReadOutV1.h:44
CscIdHelper.h
CscRODReadOutV1::m_TRIGGER_INFO
uint32_t m_TRIGGER_INFO[3]
Definition: CscRODReadOutV1.h:106
CscRODReadOutV1::ROD_HEADER_SIZE
static const uint32_t ROD_HEADER_SIZE
Definition: CscRODReadOutV1.h:108
CscRODReadOutV1::decodeAddress
Identifier decodeAddress()
Definition: CscRODReadOutV1.h:207
Muon::nsw::STGTPSegments::moduleIDBits::stationPhi
constexpr uint8_t stationPhi
station Phi 1 to 8
Definition: NSWSTGTPDecodeBitmaps.h:129
CscIdHelper::stripMax
static int stripMax()
Definition: CscIdHelper.cxx:804
CscRODReadOutV1::triggerInfo
void triggerInfo(uint32_t *trigger)
Definition: CscRODReadOutV1.h:32
SiliconTech::strip
@ strip
CscRODReadOutV1::getHeaderSize
uint32_t getHeaderSize()
Definition: CscRODReadOutV1.h:26
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
CscRODReadOutV1::NUM_DPU
static const uint32_t NUM_DPU
MHz.
Definition: CscRODReadOutV1.h:121
dumpTgcDigiDeadChambers.stationName
dictionary stationName
Definition: dumpTgcDigiDeadChambers.py:30
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
MuonIdHelper::channel_context
IdContext channel_context() const
id for channel
Definition: MuonIdHelper.cxx:745
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
CscRODReadOutV1::signal_amplitude
double signal_amplitude(double samplingTime) const
Definition: CscRODReadOutV1.h:253
CscRODReadOutV1::m_rodId
uint16_t m_rodId
Definition: CscRODReadOutV1.h:92
CscRODReadOutV1::getAmp2
uint16_t getAmp2() const
Definition: CscRODReadOutV1.h:85
CscRODReadOutV1::m_CHARGE_TO_ADC_COUNT
double m_CHARGE_TO_ADC_COUNT
Definition: CscRODReadOutV1.h:103
conifer::pow
constexpr int pow(int x)
Definition: conifer.h:20
CscRODReadOutV1::dpuHeaderSize
uint32_t dpuHeaderSize()
Definition: CscRODReadOutV1.h:38
CscRODReadOutV1::m_cscHelper
const CscIdHelper * m_cscHelper
Definition: CscRODReadOutV1.h:89
lumiFormat.startTime
startTime
Definition: lumiFormat.py:102
CscRODReadOutV1::findCharge
int findCharge(const std::vector< uint16_t > &amplitude, double &time)
Definition: CscRODReadOutV1.cxx:83
MuonIdHelper::stationName
int stationName(const Identifier &id) const
Definition: MuonIdHelper.cxx:804
drawFromPickle.exp
exp
Definition: drawFromPickle.py:36
CscRODReadOutV1::decodeAmplitude
void decodeAmplitude(const uint32_t fragment)
Definition: CscRODReadOutV1.h:178
CscRODReadOutV1::encodeFragments
void encodeFragments(const std::vector< uint16_t > &amplitude, std::vector< uint32_t > &v) const
Definition: CscRODReadOutV1.cxx:66
CscRODReadOutV1::m_sourceID
uint16_t m_sourceID
Definition: CscRODReadOutV1.h:90
CscRODReadOutV1::getSamplingTime
double getSamplingTime()
Definition: CscRODReadOutV1.h:41
CscRODReadOutV1::m_norm
double m_norm
Definition: CscRODReadOutV1.h:97
CscRODReadOutV1::RATE
static const uint32_t RATE
Definition: CscRODReadOutV1.h:120
CscRODReadOutV1::DPU_HEADER_SIZE
static const uint32_t DPU_HEADER_SIZE
Definition: CscRODReadOutV1.h:124
TRT::Hit::side
@ side
Definition: HitInfo.h:83
CscRODReadOutV1::setAddress
void setAddress(const uint32_t address)
Definition: CscRODReadOutV1.h:215
CscRODReadOutV1::MODULE_TYPE
static const uint16_t MODULE_TYPE
Definition: CscRODReadOutV1.h:113
CscIdHelper::wireLayer
int wireLayer(const Identifier &id) const
Definition: CscIdHelper.cxx:772
CscRODReadOutV1::decodeSourceID
void decodeSourceID(uint32_t sourceId)
Definition: CscRODReadOutV1.h:146
CscRODReadOutV1::discard
bool discard(const uint32_t fragment) const
Definition: CscRODReadOutV1.h:166
CscRODReadOutV1::CscRODReadOutV1
CscRODReadOutV1()
Definition: CscRODReadOutV1.cxx:8
CscRODReadOutV1::DPU_DISCARD
static const uint32_t DPU_DISCARD
Definition: CscRODReadOutV1.h:126
CscRODReadOutV1::BODY_AMPLITUDE
static const uint16_t BODY_AMPLITUDE
Definition: CscRODReadOutV1.h:115
CscRODReadOutV1::~CscRODReadOutV1
~CscRODReadOutV1()=default
CscRODReadOutV1::isAddress
bool isAddress(const uint32_t fragment) const
Definition: CscRODReadOutV1.h:173
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:88
CscRODReadOutV1::isDPU
bool isDPU(const uint32_t fragment) const
Definition: CscRODReadOutV1.h:164
lumiFormat.i
int i
Definition: lumiFormat.py:92
z
#define z
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
CscRODReadOutV1::m_Z0
double m_Z0
Definition: CscRODReadOutV1.h:104
CscRODReadOutV1::numDPU
uint32_t numDPU()
Definition: CscRODReadOutV1.h:31
beamspotman.n
n
Definition: beamspotman.py:731
CscRODReadOutV1::signal
double signal(double z) const
Definition: CscRODReadOutV1.h:260
CscRODReadOutV1
Definition: CscRODReadOutV1.h:19
CscRODReadOutV1::m_SIGNAL_WIDTH
double m_SIGNAL_WIDTH
Definition: CscRODReadOutV1.h:100
CscRODReadOutV1::setParams
void setParams(double timeOffset, double samplingTime, double signalWidth)
Definition: CscRODReadOutV1.h:132
CscRODReadOutV1::address
uint32_t address() const
Definition: CscRODReadOutV1.h:86
CscRODReadOutV1::getSourceID
uint32_t getSourceID(uint16_t side, uint16_t rodId)
Definition: CscRODReadOutV1.h:140
CscRODReadOutV1::LATENCY
static const uint32_t LATENCY
Definition: CscRODReadOutV1.h:119
CscRODReadOutV1::getAmp1
uint16_t getAmp1() const
Definition: CscRODReadOutV1.h:84
CscRODReadOutV1::m_amp2
uint16_t m_amp2
Definition: CscRODReadOutV1.h:95
CscRODReadOutV1::setSamplingTime
void setSamplingTime(double time)
Definition: CscRODReadOutV1.h:42
CscRODReadOutV1::sourceID
uint16_t sourceID() const
Definition: CscRODReadOutV1.h:80
CaloCondBlobAlgs_fillNoiseFromASCII.channelId
channelId
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:122
CscRODReadOutV1::m_NUMBER_OF_INTEGRATION
int m_NUMBER_OF_INTEGRATION
Definition: CscRODReadOutV1.h:102
CscRODReadOutV1::rodId
uint16_t rodId() const
Definition: CscRODReadOutV1.h:83
CscRODReadOutV1::getStartTime
double getStartTime()
Definition: CscRODReadOutV1.h:43
MuonIdHelper::stationPhi
int stationPhi(const Identifier &id) const
Definition: MuonIdHelper.cxx:814
CscRODReadOutV1::m_moduleType
uint16_t m_moduleType
Definition: CscRODReadOutV1.h:91
CscRODReadOutV1::SOURCE_ID
static const uint16_t SOURCE_ID
Definition: CscRODReadOutV1.h:112
CscRODReadOutV1::numberOfStrips
uint32_t numberOfStrips(const uint32_t fragment)
Definition: CscRODReadOutV1.h:245
CscIdHelper::channelID
Identifier channelID(int stationName, int stationEta, int stationPhi, int chamberLayer, int wireLayer, int measuresPhi, int strip) const
Definition: CscIdHelper.cxx:706
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
MuonIdHelper::stationEta
int stationEta(const Identifier &id) const
Definition: MuonIdHelper.cxx:809
RTTAlgmain.address
address
Definition: RTTAlgmain.py:55
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
CscIdHelper::elementID
Identifier elementID(int stationName, int stationEta, int stationPhi) const
Definition: CscIdHelper.cxx:678
eflowRec::phiIndex
unsigned int phiIndex(float phi, float binsize)
calculate phi index for a given phi
Definition: EtaPhiLUT.cxx:23
python.PyAthena.v
v
Definition: PyAthena.py:157
CscRODReadOutV1::dpuHeader
uint32_t dpuHeader()
Definition: CscRODReadOutV1.h:37
CscRODReadOutV1::moduleType
uint16_t moduleType() const
Definition: CscRODReadOutV1.h:81
CscRODReadOutV1::numSamples
uint32_t numSamples()
Definition: CscRODReadOutV1.h:28
CaloCondBlobAlgs_fillNoiseFromASCII.hash
dictionary hash
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:109
CaloSwCorrections.time
def time(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:242
CscIdHelper
Definition: CscIdHelper.h:52
MuonIdHelper::get_hash
virtual int get_hash(const Identifier &id, IdentifierHash &hash_id, const IdContext *context=0) const override
Create hash id from compact id (return == 0 for OK)
Definition: MuonIdHelper.cxx:143
CscRODReadOutV1::getMaxTimeBin
double getMaxTimeBin()
Definition: CscRODReadOutV1.h:45
CscIdHelper::strip
int strip(const Identifier &id) const
Definition: CscIdHelper.cxx:776
CscRODReadOutV1::m_subDetectorId
uint16_t m_subDetectorId
Definition: CscRODReadOutV1.h:93
CscRODReadOutV1::isAmplitude
bool isAmplitude(const uint16_t fragment) const
Definition: CscRODReadOutV1.h:168
CscRODReadOutV1::set32bits
void set32bits(const uint16_t *v16, uint32_t &v32) const
Definition: CscRODReadOutV1.h:153
CscRODReadOutV1::subDetectorId
uint16_t subDetectorId() const
Definition: CscRODReadOutV1.h:82
CscRODReadOutV1::samplingRate
uint32_t samplingRate()
Definition: CscRODReadOutV1.h:30
CscRODReadOutV1::DPU_HEADER_MARKER
static const uint32_t DPU_HEADER_MARKER
Definition: CscRODReadOutV1.h:123
CscRODReadOutV1::latency
uint32_t latency()
Definition: CscRODReadOutV1.h:29
CscRODReadOutV1::NUM_SAMPLES
static const uint32_t NUM_SAMPLES
Definition: CscRODReadOutV1.h:118
CscIdHelper::measuresPhi
bool measuresPhi(const Identifier &id) const override
Definition: CscIdHelper.cxx:774
Muon::nsw::STGTPSegments::moduleIDBits::stationEta
constexpr uint8_t stationEta
1 to 3
Definition: NSWSTGTPDecodeBitmaps.h:127
IdentifierHash
Definition: IdentifierHash.h:38
CscRODReadOutV1::getFooterSize
uint32_t getFooterSize()
Definition: CscRODReadOutV1.h:27
CscRODReadOutV1::m_address
uint32_t m_address
Definition: CscRODReadOutV1.h:96
CscRODReadOutV1::set
void set(const CscIdHelper *cscHelper)
Definition: CscRODReadOutV1.h:52
CscRODReadOutV1::ROD_FOOTER_SIZE
static const uint32_t ROD_FOOTER_SIZE
Definition: CscRODReadOutV1.h:110
IdContext
class IdContext
Definition: IdContext.h:34
CscRODReadOutV1::BODY_ADDRESS
static const uint32_t BODY_ADDRESS
Definition: CscRODReadOutV1.h:116
CscRODReadOutV1::hashIdentifier
uint32_t hashIdentifier(const Identifier &moduleId)
Definition: CscRODReadOutV1.h:233
CscRODReadOutV1::m_SAMPLING_TIME
double m_SAMPLING_TIME
Definition: CscRODReadOutV1.h:101
CscRODReadOutV1::m_amp1
uint16_t m_amp1
Definition: CscRODReadOutV1.h:94
CscIdHelper::chamberLayer
int chamberLayer(const Identifier &id) const
Definition: CscIdHelper.cxx:770
PhysDESDM_Quirks.trigger
trigger
Definition: PhysDESDM_Quirks.py:27
CscRODReadOutV1::m_TIME_OFFSET
double m_TIME_OFFSET
Definition: CscRODReadOutV1.h:99