Skip to content

Commit d510b1d

Browse files
committed
HBFUtils will set HB/TF flags on demand
1 parent f46cb26 commit d510b1d

1 file changed

Lines changed: 19 additions & 18 deletions

File tree

Detectors/Raw/include/DetectorsRaw/HBFUtils.h

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,11 @@ struct HBFUtils : public o2::conf::ConfigurableParamHelper<HBFUtils> {
7575

7676
///< create RDH for given IR
7777
template <typename H>
78-
H createRDH(const IR& rec) const;
78+
H createRDH(const IR& rec, bool setHBTF = true) const;
7979

8080
///< update RDH for with given IR info
8181
template <typename H>
82-
void updateRDH(H& rdh, const IR& rec) const;
82+
void updateRDH(H& rdh, const IR& rec, bool setHBTF = true) const;
8383

8484
/*//-------------------------------------------------------------------------------------
8585
Fill provided vector (cleaned) by interaction records (bc/orbit) for HBFs, considering
@@ -129,31 +129,32 @@ struct HBFUtils : public o2::conf::ConfigurableParamHelper<HBFUtils> {
129129

130130
//_________________________________________________
131131
template <typename H>
132-
void HBFUtils::updateRDH(H& rdh, const IR& rec) const
132+
void HBFUtils::updateRDH(H& rdh, const IR& rec, bool setHBTF) const
133133
{
134-
auto tfhb = getTFandHBinTF(rec);
135-
RDHUtils::setHeartBeatBC(rdh, bcFirst);
136-
RDHUtils::setHeartBeatOrbit(rdh, rec.orbit);
137-
if (RDHUtils::getVersion(rdh) < 5) { // v3,4 have separate fields for trigger IR
138-
RDHUtils::setTriggerBC(rdh, bcFirst);
139-
RDHUtils::setTriggerOrbit(rdh, rec.orbit);
140-
}
141-
142-
if (rec.bc == bcFirst) { // if we are starting new HB, set the HB trigger flag
143-
auto trg = RDHUtils::getTriggerType(rdh) | (o2::trigger::ORBIT | o2::trigger::HB);
144-
if (tfhb.second == 0) { // if we are starting new TF, set the TF trigger flag
145-
trg |= o2::trigger::TF;
134+
RDHUtils::setTriggerBC(rdh, rec.bc); // for RDH>4 the trigger and HB IR is the same!
135+
RDHUtils::setTriggerOrbit(rdh, rec.orbit);
136+
137+
if (setHBTF) { // need to set the HBF IR and HB / TF trigger flags
138+
auto tfhb = getTFandHBinTF(rec);
139+
RDHUtils::setHeartBeatBC(rdh, bcFirst);
140+
RDHUtils::setHeartBeatOrbit(rdh, rec.orbit);
141+
142+
if (rec.bc == bcFirst) { // if we are starting new HB, set the HB trigger flag
143+
auto trg = RDHUtils::getTriggerType(rdh) | (o2::trigger::ORBIT | o2::trigger::HB);
144+
if (tfhb.second == 0) { // if we are starting new TF, set the TF trigger flag
145+
trg |= o2::trigger::TF;
146+
}
147+
RDHUtils::setTriggerType(rdh, trg);
146148
}
147-
RDHUtils::setTriggerType(rdh, trg);
148149
}
149150
}
150151

151152
//_________________________________________________
152153
template <typename H>
153-
inline H HBFUtils::createRDH(const o2::InteractionRecord& rec) const
154+
inline H HBFUtils::createRDH(const o2::InteractionRecord& rec, bool setHBTF) const
154155
{
155156
H rdh;
156-
updateRDH(rdh, rec);
157+
updateRDH(rdh, rec, setHBTF);
157158
return rdh;
158159
}
159160

0 commit comments

Comments
 (0)