16#ifndef O2_TRD_CTF_HELPER_H
17#define O2_TRD_CTF_HELPER_H
35 CTFHelper(
const gsl::span<const TriggerRecord>& trgRec,
36 const gsl::span<const Tracklet64>& trkData,
const gsl::span<const Digit>& digData)
37 : mTrigRec(trgRec), mTrkData(trkData), mDigData(digData), mTrkStart(trkData.
size()), mDigStart(digData.
size())
40 for (
const auto& trg : mTrigRec) {
41 if (trg.getNumberOfTracklets()) {
42 mTrkStart[trg.getFirstTracklet()] =
true;
44 if (trg.getNumberOfDigits()) {
45 mDigStart[trg.getFirstDigit()] =
true;
53 uint32_t(mTrigRec.size()), uint32_t(mTrkData.size()), uint32_t(mDigData.size()), 0, 0, 0};
54 if (mTrigRec.size()) {
55 h.firstOrbit = mTrigRec[0].getBCData().orbit;
56 h.firstBC = mTrigRec[0].getBCData().bc;
58 if (mTrkData.size()) {
59 h.format = (uint16_t)mTrkData[0].getFormat();
67 template <
typename I,
typename D,
typename T,
int M = 1>
83 return static_cast<I&
>(*this);
88 I
res = *(
static_cast<I*
>(
this));
96 return static_cast<I&
>(*this);
101 I
res = *(
static_cast<I*
>(
this));
109 return static_cast<I&
>(*this);
114 I
res = *(
const_cast<I*
>(
static_cast<const I*
>(
this)));
121 return static_cast<I&
>(*this);
126 I
res = *(
const_cast<I*
>(
static_cast<const I*
>(
this)));
216 const std::vector<bool>* mTrigStart{
nullptr};
281 const std::vector<bool>* mTrigStart{
nullptr};
296 return (*mTrigStart)[
id] ?
mData[
id].getDetector() :
mData[
id].getDetector() -
mData[
id - 1].getDetector();
388 const gsl::span<const o2::trd::TriggerRecord> mTrigRec;
389 const gsl::span<const o2::trd::Tracklet64> mTrkData;
390 const gsl::span<const o2::trd::Digit> mDigData;
391 std::vector<bool> mTrkStart;
392 std::vector<bool> mDigStart;
Class for time synchronization of RawReader instances.
value_type operator[](difference_type i) const
value_type operator*() const
value_type operator*() const
Iter_CIDDig(const std::vector< bool > *ts, const gsl::span< const Digit > &data, bool end)
value_type operator[](difference_type i) const
value_type operator[](difference_type i) const
Iter_HCIDTrk(const std::vector< bool > *ts, const gsl::span< const Tracklet64 > &data, bool end)
value_type operator*() const
value_type operator[](difference_type i) const
value_type operator*() const
value_type operator[](difference_type i) const
value_type operator*() const
value_type operator*() const
value_type operator[](difference_type i) const
value_type operator*() const
value_type operator[](difference_type i) const
value_type operator[](difference_type i) const
value_type operator*() const
value_type operator*() const
value_type operator[](difference_type i) const
value_type operator[](difference_type i) const
value_type operator*() const
value_type operator*() const
value_type operator[](difference_type i) const
value_type operator*() const
value_type operator[](difference_type i) const
value_type operator*() const
value_type operator[](difference_type i) const
value_type operator[](difference_type i) const
value_type operator*() const
value_type operator[](difference_type i) const
value_type operator*() const
I & operator+=(difference_type i) noexcept
I & operator++() noexcept
friend I operator+(difference_type i, const I &iter)
I & operator--() noexcept
bool operator>(const I &other) const noexcept
I operator-(difference_type i) const
std::ptrdiff_t difference_type
bool operator<=(const I &other) const noexcept
I & operator-=(difference_type i) noexcept
std::random_access_iterator_tag iterator_category
bool operator>=(const I &other) const noexcept
I operator+(difference_type i) const
bool operator!=(const I &other) const noexcept
gsl::span< const D > mData
bool operator<(const I &other) const noexcept
difference_type operator-(const I &other) const noexcept
_Iter(const gsl::span< const D > &data, bool end=false)
bool operator==(const I &other) const noexcept
Iter_orbitIncTrig begin_orbitIncTrig() const
Iter_pidTrk end_pidTrk() const
Iter_HCIDTrk begin_HCIDTrk() const
Iter_entriesDig end_entriesDig() const
Iter_chanDig begin_chanDig() const
Iter_bcIncTrig end_bcIncTrig() const
Iter_entriesDig begin_entriesDig() const
Iter_CIDDig end_CIDDig() const
Iter_slopeTrk end_slopeTrk() const
Iter_CIDDig begin_CIDDig() const
Iter_orbitIncTrig end_orbitIncTrig() const
Iter_pidTrk begin_pidTrk() const
Iter_posTrk end_posTrk() const
Iter_ROBDig begin_ROBDig() const
Iter_MCMDig begin_MCMDig() const
Iter_entriesTrk end_entriesTrk() const
Iter_slopeTrk begin_slopeTrk() const
Iter_ADCDig end_ADCDig() const
Iter_MCMDig end_MCMDig() const
CTFHelper(const gsl::span< const TriggerRecord > &trgRec, const gsl::span< const Tracklet64 > &trkData, const gsl::span< const Digit > &digData)
Iter_posTrk begin_posTrk() const
Iter_entriesTrk begin_entriesTrk() const
Iter_ADCDig begin_ADCDig() const
Iter_padrowTrk begin_padrowTrk() const
Iter_padrowTrk end_padrowTrk() const
Iter_bcIncTrig begin_bcIncTrig() const
Iter_colTrk begin_colTrk() const
Iter_ROBDig end_ROBDig() const
Iter_colTrk end_colTrk() const
Iter_chanDig end_chanDig() const
Iter_HCIDTrk end_HCIDTrk() const
Header for data corresponding to the same hardware trigger adapted from DataFormatsITSMFT/ROFRecord.
constexpr int TIMEBINS
the number of time bins
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
VectorOfTObjectPtrs other