@@ -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// _________________________________________________
131131template <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// _________________________________________________
152153template <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