 |
ATLAS Offline Software
|
#include <CscRODReadOut.h>
|
| | CscRODReadOut () |
| |
| | CscRODReadOut (double startTime, double signalWidth, uint16_t numIntegration) |
| |
| | ~CscRODReadOut ()=default |
| |
| uint32_t | getHeaderSize () const |
| |
| uint32_t | getFooterSize () const |
| |
| uint32_t | numSamples () const |
| |
| uint32_t | latency () const |
| |
| uint32_t | samplingRate () const |
| |
| uint32_t | numDPU () const |
| |
| uint32_t | dpuHeader () const |
| |
| uint32_t | dpuHeaderSize () const |
| |
| double | getStartTime () const |
| |
| double | getConversion () const |
| |
| double | getMaxTimeBin () const |
| |
| uint32_t | getSourceID (uint16_t side, uint16_t rodId) const |
| |
| void | encodeFragments (const std::vector< uint16_t > &litude, std::vector< uint32_t > &v) const |
| |
| void | set (const CscIdHelper *cscIdHelper) |
| |
| void | setChamberBitVaue (uint32_t value) |
| |
| void | setParams (double timeOffset, double signalWidth) |
| |
| bool | isDPU (const uint32_t fragment) const |
| |
| bool | discard (const uint32_t fragment) const |
| |
| bool | isAmplitude (const uint16_t fragment) const |
| |
| bool | isAddress (const uint32_t fragment) const |
| |
| void | decodeSourceID (uint32_t sourceIdIDIn, uint16_t &sourceID, uint16_t &moduleType, uint16_t &subDetectorId, uint16_t &rodId) const |
| |
| void | decodeAmplitude (const uint32_t fragment, uint16_t &1, uint16_t &2) const |
| |
| uint32_t | fragmentToAddress (const uint32_t fragment) const |
| |
| Identifier | decodeAddress (const uint32_t address) const |
| |
| uint32_t | hashIdentifier (const uint32_t address, const Identifier &moduleId) const |
| |
| uint32_t | numberOfStrips (const uint32_t fragment) const |
| |
| Identifier | decodeAddress (const uint32_t address, const Identifier &moduleId) const |
| |
| Identifier | decodeAddress (const uint32_t address, const Identifier &moduleId, int j) const |
| |
| double | signal_amplitude (double samplingTime) const |
| |
| uint32_t | address (const Identifier &channelId, int &eta, int &phi) const |
| |
|
| static int | findCharge (double samplingTime, const std::vector< uint16_t > &litude, double &time) |
| |
Definition at line 22 of file CscRODReadOut.h.
◆ CscRODReadOut() [1/2]
| CscRODReadOut::CscRODReadOut |
( |
| ) |
|
◆ CscRODReadOut() [2/2]
| CscRODReadOut::CscRODReadOut |
( |
double |
startTime, |
|
|
double |
signalWidth, |
|
|
uint16_t |
numIntegration |
|
) |
| |
◆ ~CscRODReadOut()
| CscRODReadOut::~CscRODReadOut |
( |
| ) |
|
|
default |
◆ address()
| uint32_t CscRODReadOut::address |
( |
const Identifier & |
channelId, |
|
|
int & |
eta, |
|
|
int & |
phi |
|
) |
| const |
|
inline |
Definition at line 254 of file CscRODReadOut.h.
279 nameIndex << 16 |
phiIndex << 13 | etaIndex << 12 | chamberIndex << 11 | layerIndex << 9 | stripType << 8 | stripNumber;
◆ decodeAddress() [1/3]
◆ decodeAddress() [2/3]
◆ decodeAddress() [3/3]
◆ decodeAmplitude()
| void CscRODReadOut::decodeAmplitude |
( |
const uint32_t |
fragment, |
|
|
uint16_t & |
amp1, |
|
|
uint16_t & |
amp2 |
|
) |
| const |
|
inline |
Definition at line 154 of file CscRODReadOut.h.
155 amp2 = 0x0000FFFF & fragment;
156 amp1 = (0xFFFF0000 & fragment) >> 16;
◆ decodeSourceID()
| void CscRODReadOut::decodeSourceID |
( |
uint32_t |
sourceIdIDIn, |
|
|
uint16_t & |
sourceID, |
|
|
uint16_t & |
moduleType, |
|
|
uint16_t & |
subDetectorId, |
|
|
uint16_t & |
rodId |
|
) |
| const |
|
inline |
Definition at line 121 of file CscRODReadOut.h.
123 sourceID = (sourceIDIn & 0xff000000) >> 24;
124 moduleType = (sourceIDIn & 0x00ff0000) >> 16;
125 subDetectorId = (sourceIDIn & 0x0000ff00) >> 8;
126 rodId = (sourceIDIn & 0x000000ff);
◆ discard()
| bool CscRODReadOut::discard |
( |
const uint32_t |
fragment | ) |
const |
|
inline |
◆ dpuHeader()
| uint32_t CscRODReadOut::dpuHeader |
( |
| ) |
const |
|
inline |
◆ dpuHeaderSize()
| uint32_t CscRODReadOut::dpuHeaderSize |
( |
| ) |
const |
|
inline |
◆ encodeFragments()
| void CscRODReadOut::encodeFragments |
( |
const std::vector< uint16_t > & |
amplitude, |
|
|
std::vector< uint32_t > & |
v |
|
) |
| const |
pedestal
Definition at line 53 of file CscRODReadOut.cxx.
54 int numberOfFragments = amplitude.size();
60 while (j < numberOfFragments) {
◆ findCharge()
| int CscRODReadOut::findCharge |
( |
double |
samplingTime, |
|
|
const std::vector< uint16_t > & |
amplitude, |
|
|
double & |
time |
|
) |
| |
|
static |
do a parabolic fit - from Nir and David
calculate the charge and the time need to use the correct calibration
assuming amplitude[0] gives the pedestal
Definition at line 70 of file CscRODReadOut.cxx.
76 int numberOfSamplings = amplitude.size();
80 for (
int i = 0;
i < numberOfSamplings;
i++) {
81 if (amplitude[
i] >
max) {
88 if (maxIndex < 0 || maxIndex >= numberOfSamplings)
return charge;
93 else if (maxIndex == (numberOfSamplings - 1))
94 return amplitude[numberOfSamplings - 1];
97 double y1 = amplitude[maxIndex - 1];
98 double y2 = amplitude[maxIndex];
99 double y3 = amplitude[maxIndex + 1];
100 a = 0.5 * (y3 +
y1 - 2 *
y2);
106 double offset = (
a == 0) ? 0 : -
b / (2 *
a);
◆ fragmentToAddress()
| uint32_t CscRODReadOut::fragmentToAddress |
( |
const uint32_t |
fragment | ) |
const |
|
inline |
◆ getConversion()
| double CscRODReadOut::getConversion |
( |
| ) |
const |
|
inline |
◆ getFooterSize()
| uint32_t CscRODReadOut::getFooterSize |
( |
| ) |
const |
|
inline |
◆ getHeaderSize()
| uint32_t CscRODReadOut::getHeaderSize |
( |
| ) |
const |
|
inline |
◆ getMaxTimeBin()
| double CscRODReadOut::getMaxTimeBin |
( |
| ) |
const |
|
inline |
◆ getSourceID()
| uint32_t CscRODReadOut::getSourceID |
( |
uint16_t |
side, |
|
|
uint16_t |
rodId |
|
) |
| const |
|
inline |
◆ getStartTime()
| double CscRODReadOut::getStartTime |
( |
| ) |
const |
|
inline |
◆ hashIdentifier()
| uint32_t CscRODReadOut::hashIdentifier |
( |
const uint32_t |
address, |
|
|
const Identifier & |
moduleId |
|
) |
| const |
|
inline |
Definition at line 209 of file CscRODReadOut.h.
212 int wireLayer = ((
address & 0x00000600) >> 9) + 1;
213 int measuresPhi = ((
address & 0x00000100) >> 8);
226 throw (std::runtime_error(
"CscRODReadOut::hashIdentifier: Unable to get identifier!"));
◆ isAddress()
| bool CscRODReadOut::isAddress |
( |
const uint32_t |
fragment | ) |
const |
|
inline |
◆ isAmplitude()
| bool CscRODReadOut::isAmplitude |
( |
const uint16_t |
fragment | ) |
const |
|
inline |
◆ isDPU()
| bool CscRODReadOut::isDPU |
( |
const uint32_t |
fragment | ) |
const |
|
inline |
◆ latency()
| uint32_t CscRODReadOut::latency |
( |
| ) |
const |
|
inline |
◆ numberOfStrips()
| uint32_t CscRODReadOut::numberOfStrips |
( |
const uint32_t |
fragment | ) |
const |
|
inline |
◆ numDPU()
| uint32_t CscRODReadOut::numDPU |
( |
| ) |
const |
|
inline |
◆ numSamples()
| uint32_t CscRODReadOut::numSamples |
( |
| ) |
const |
|
inline |
◆ samplingRate()
| uint32_t CscRODReadOut::samplingRate |
( |
| ) |
const |
|
inline |
◆ set()
◆ set32bits()
| void CscRODReadOut::set32bits |
( |
const uint16_t * |
v16, |
|
|
uint32_t & |
v32 |
|
) |
| const |
|
inlineprivate |
◆ setChamberBitVaue()
| void CscRODReadOut::setChamberBitVaue |
( |
uint32_t |
value | ) |
|
|
inline |
◆ setParams()
| void CscRODReadOut::setParams |
( |
double |
timeOffset, |
|
|
double |
signalWidth |
|
) |
| |
|
inline |
◆ signal()
| double CscRODReadOut::signal |
( |
double |
z | ) |
const |
|
inlineprivate |
◆ signal_amplitude()
| double CscRODReadOut::signal_amplitude |
( |
double |
samplingTime | ) |
const |
|
inline |
◆ BODY_ADDRESS
| const uint32_t CscRODReadOut::BODY_ADDRESS = 0x00000000 |
|
staticprivate |
◆ BODY_AMPLITUDE
| const uint16_t CscRODReadOut::BODY_AMPLITUDE = 0x0000 |
|
staticprivate |
◆ DPU_DISCARD
| const uint32_t CscRODReadOut::DPU_DISCARD = 0xFFFFFFFF |
|
staticprivate |
◆ DPU_HEADER_MARKER
| const uint32_t CscRODReadOut::DPU_HEADER_MARKER = 0xC5F38856 |
|
staticprivate |
◆ DPU_HEADER_SIZE
| const uint32_t CscRODReadOut::DPU_HEADER_SIZE = 13 |
|
staticprivate |
◆ LATENCY
| const uint32_t CscRODReadOut::LATENCY = 0 |
|
staticprivate |
◆ m_chamberBitValue
| uint32_t CscRODReadOut::m_chamberBitValue |
|
private |
◆ m_CHARGE_TO_ADC_COUNT
| double CscRODReadOut::m_CHARGE_TO_ADC_COUNT |
|
private |
◆ m_cscIdHelper
◆ m_norm
| double CscRODReadOut::m_norm |
|
private |
◆ m_NUMBER_OF_INTEGRATION
| int CscRODReadOut::m_NUMBER_OF_INTEGRATION |
|
private |
◆ m_SIGNAL_WIDTH
| double CscRODReadOut::m_SIGNAL_WIDTH |
|
private |
◆ m_TIME_OFFSET
| double CscRODReadOut::m_TIME_OFFSET |
|
private |
◆ m_Z0
| double CscRODReadOut::m_Z0 |
|
private |
◆ MODULE_TYPE
| const uint16_t CscRODReadOut::MODULE_TYPE = 0x00 |
|
staticprivate |
◆ NUM_DPU
| const uint32_t CscRODReadOut::NUM_DPU = 12 |
|
staticprivate |
◆ NUM_SAMPLES
| const uint32_t CscRODReadOut::NUM_SAMPLES = 25 |
|
staticprivate |
◆ RATE
| const uint32_t CscRODReadOut::RATE = 40 |
|
staticprivate |
◆ ROD_FOOTER_SIZE
| const uint32_t CscRODReadOut::ROD_FOOTER_SIZE = 0x0 |
|
staticprivate |
◆ ROD_HEADER_SIZE
| const uint32_t CscRODReadOut::ROD_HEADER_SIZE = 12 |
|
staticprivate |
◆ SOURCE_ID
| const uint16_t CscRODReadOut::SOURCE_ID = 0x00 |
|
staticprivate |
The documentation for this class was generated from the following files:
Identifier decodeAddress(const uint32_t address) const
static const uint32_t ROD_FOOTER_SIZE
constexpr uint8_t stationPhi
station Phi 1 to 8
static const uint16_t MODULE_TYPE
Scalar phi() const
phi method
IdContext channel_context() const
id for channel
Scalar eta() const
pseudorapidity method
static const uint32_t NUM_SAMPLES
static const uint32_t DPU_HEADER_MARKER
const CscIdHelper * m_cscIdHelper
int stationName(const Identifier &id) const
uint32_t fragmentToAddress(const uint32_t fragment) const
uint32_t address(const Identifier &channelId, int &eta, int &phi) const
static const uint32_t LATENCY
int wireLayer(const Identifier &id) const
static const uint16_t BODY_AMPLITUDE
static const uint32_t BODY_ADDRESS
uint32_t m_chamberBitValue
double signal(double z) const
double m_CHARGE_TO_ADC_COUNT
int stationPhi(const Identifier &id) const
void set32bits(const uint16_t *v16, uint32_t &v32) const
static const uint32_t DPU_HEADER_SIZE
Identifier channelID(int stationName, int stationEta, int stationPhi, int chamberLayer, int wireLayer, int measuresPhi, int strip) const
double charge(const T &p)
int stationEta(const Identifier &id) const
Identifier elementID(int stationName, int stationEta, int stationPhi) const
unsigned int phiIndex(float phi, float binsize)
calculate phi index for a given phi
def time(flags, cells_name, *args, **kw)
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)
int strip(const Identifier &id) const
int m_NUMBER_OF_INTEGRATION
static const uint32_t DPU_DISCARD
static const uint16_t SOURCE_ID
bool measuresPhi(const Identifier &id) const override
constexpr uint8_t stationEta
1 to 3
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
constexpr int pow(int base, int exp) noexcept
static const uint32_t ROD_HEADER_SIZE
static const uint32_t RATE
This class saves the "context" of an expanded identifier (ExpandedIdentifier) for compact or hash ver...
static const uint32_t NUM_DPU
MHz.
int chamberLayer(const Identifier &id) const