diff --git a/offline/packages/intt/InttCombinedRawDataDecoder.cc b/offline/packages/intt/InttCombinedRawDataDecoder.cc index 4ffd06f8e1..574d7bf783 100644 --- a/offline/packages/intt/InttCombinedRawDataDecoder.cc +++ b/offline/packages/intt/InttCombinedRawDataDecoder.cc @@ -502,6 +502,8 @@ int InttCombinedRawDataDecoder::process_event(PHCompositeNode* topNode) hit = new TrkrHitv2; //--hit->setAdc(adc); hit->setAdc(dac); + hit->setFPHXBCO(intthit->get_FPHX_BCO()); + hit->setBCO(intthit->get_bco()); hit_set_container_itr->second->addHitSpecificKey(hit_key, hit); } diff --git a/offline/packages/trackbase/TrkrHit.h b/offline/packages/trackbase/TrkrHit.h index 5a2180e162..963b321fa6 100644 --- a/offline/packages/trackbase/TrkrHit.h +++ b/offline/packages/trackbase/TrkrHit.h @@ -11,6 +11,7 @@ #include +#include #include #include #include @@ -55,6 +56,13 @@ class TrkrHit : public PHObject // after digitization, these are the adc values virtual void setAdc(const unsigned int) {} virtual unsigned int getAdc() const { return 0; } + + // optional per-hit timing payload used by detectors that need to retain + // the frontend bunch-counter value alongside the digitized hit. + virtual void setFPHXBCO(const uint16_t) {} + virtual uint16_t getFPHXBCO() const { return 0; } + virtual void setBCO(const uint64_t) {} + virtual uint64_t getBCO() const { return 0; } /* virtual void setCrossing(const short int) {} virtual short int getCrossing() { return 0;} diff --git a/offline/packages/trackbase/TrkrHitv1.cc b/offline/packages/trackbase/TrkrHitv1.cc index b0001fb30e..b96c56b42d 100644 --- a/offline/packages/trackbase/TrkrHitv1.cc +++ b/offline/packages/trackbase/TrkrHitv1.cc @@ -13,6 +13,8 @@ void TrkrHitv1::CopyFrom(const TrkrHit& source) // copy adc setAdc(source.getAdc()); + setFPHXBCO(source.getFPHXBCO()); + setBCO(source.getBCO()); } unsigned int TrkrHitv1::getAdc() const diff --git a/offline/packages/trackbase/TrkrHitv1.h b/offline/packages/trackbase/TrkrHitv1.h index 7ab629a1c3..6ac15306e2 100644 --- a/offline/packages/trackbase/TrkrHitv1.h +++ b/offline/packages/trackbase/TrkrHitv1.h @@ -28,7 +28,9 @@ class TrkrHitv1 : public TrkrHit // PHObject virtual overloads void identify(std::ostream& os = std::cout) const override { - os << "TrkrHitV1 class with adc = " << m_adc << std::endl; + os << "TrkrHitV1 class with adc = " << m_adc + << " and FPHX_BCO = " << m_fphx_bco + << " and BCO = " << m_bco << std::endl; } void Reset() override {} int isValid() const override { return 0; } @@ -49,11 +51,17 @@ class TrkrHitv1 : public TrkrHit double getEnergy() const override { return m_edep; } void setAdc(const unsigned int adc) override { m_adc = adc; } unsigned int getAdc() const override; + void setFPHXBCO(const uint16_t bco) override { m_fphx_bco = bco; } + uint16_t getFPHXBCO() const override { return m_fphx_bco; } + void setBCO(const uint64_t bco) override { m_bco = bco; } + uint64_t getBCO() const override { return m_bco; } protected: double m_edep = 0; unsigned int m_adc = 0; - ClassDefOverride(TrkrHitv1, 1); + uint16_t m_fphx_bco = 0; + uint64_t m_bco = 0; + ClassDefOverride(TrkrHitv1, 3); }; #endif // TRACKBASE_TRKRHITV1_H diff --git a/offline/packages/trackbase/TrkrHitv2.cc b/offline/packages/trackbase/TrkrHitv2.cc index 6ef48d6435..27a87085d3 100644 --- a/offline/packages/trackbase/TrkrHitv2.cc +++ b/offline/packages/trackbase/TrkrHitv2.cc @@ -14,6 +14,8 @@ void TrkrHitv2::CopyFrom(const TrkrHit& source) // copy adc setAdc(source.getAdc()); + setFPHXBCO(source.getFPHXBCO()); + setBCO(source.getBCO()); } // these set and get the energy before digitization diff --git a/offline/packages/trackbase/TrkrHitv2.h b/offline/packages/trackbase/TrkrHitv2.h index 8c83192019..c637ad8cc9 100644 --- a/offline/packages/trackbase/TrkrHitv2.h +++ b/offline/packages/trackbase/TrkrHitv2.h @@ -33,7 +33,9 @@ class TrkrHitv2 : public TrkrHit // PHObject virtual overloads void identify(std::ostream& os = std::cout) const override { - os << "TrkrHitv2 class with adc = " << m_adc << std::endl; + os << "TrkrHitv2 class with adc = " << m_adc + << " and FPHX_BCO = " << m_fphx_bco + << " and BCO = " << m_bco << std::endl; } void Reset() override {} int isValid() const override { return 0; } @@ -57,10 +59,16 @@ class TrkrHitv2 : public TrkrHit // after digitization, these are the adc values void setAdc(const unsigned int adc) override; unsigned int getAdc() const override; + void setFPHXBCO(const uint16_t bco) override { m_fphx_bco = bco; } + uint16_t getFPHXBCO() const override { return m_fphx_bco; } + void setBCO(const uint64_t bco) override { m_bco = bco; } + uint64_t getBCO() const override { return m_bco; } protected: unsigned short m_adc = 0; - ClassDefOverride(TrkrHitv2, 1); + uint16_t m_fphx_bco = 0; + uint64_t m_bco = 0; + ClassDefOverride(TrkrHitv2, 3); }; #endif // TRACKBASE_TRKRHITV2_H