@@ -82,9 +82,7 @@ class TPCFactorizeSACSpec : public o2::framework::Task
8282 static constexpr header::DataDescription getDataDescriptionLane () { return header::DataDescription{" SACLANE" }; }
8383
8484 // for CCDB
85- static constexpr header::DataDescription getDataDescriptionCCDBSAC0 () { return header::DataDescription{" TPC_CalibSAC0" }; }
86- static constexpr header::DataDescription getDataDescriptionCCDBSAC1 () { return header::DataDescription{" TPC_CalibSAC1" }; }
87- static constexpr header::DataDescription getDataDescriptionCCDBSACDelta () { return header::DataDescription{" TPC_SACDelta" }; }
85+ static constexpr header::DataDescription getDataDescriptionCCDBSAC () { return header::DataDescription{" TPC_CalibSAC" }; }
8886
8987 private:
9088 SACFactorization mSACFactorization ; // /< object for performing the factorization of the SACs
@@ -106,42 +104,30 @@ class TPCFactorizeSACSpec : public o2::framework::Task
106104 output.snapshot (Output{gDataOriginTPC , getDataDescriptionTimeStamp ()}, std::vector<uint64_t >{timeStampStart, timeStampEnd});
107105 output.snapshot (Output{gDataOriginTPC , getDataDescriptionLane ()}, mLaneId );
108106
109- o2::ccdb::CcdbObjectInfo ccdbInfoSAC0 (CDBTypeMap.at (CDBType::CalSAC0), std::string{}, std::string{}, std::map<std::string, std::string>{}, timeStampStart, timeStampEnd);
110- auto imageSAC0 = o2::ccdb::CcdbApi::createObjectImage (&mSACFactorization .getSACZero (), &ccdbInfoSAC0);
111- LOGP (info, " Sending object {} / {} of size {} bytes, valid for {} : {} " , ccdbInfoSAC0.getPath (), ccdbInfoSAC0.getFileName (), imageSAC0->size (), ccdbInfoSAC0.getStartValidityTimestamp (), ccdbInfoSAC0.getEndValidityTimestamp ());
112- output.snapshot (Output{o2::calibration::Utils::gDataOriginCDBPayload , getDataDescriptionCCDBSAC0 (), 0 }, *imageSAC0.get ());
113- output.snapshot (Output{o2::calibration::Utils::gDataOriginCDBWrapper , getDataDescriptionCCDBSAC0 (), 0 }, ccdbInfoSAC0);
114-
115- o2::ccdb::CcdbObjectInfo ccdbInfoSAC1 (CDBTypeMap.at (CDBType::CalSAC1), std::string{}, std::string{}, std::map<std::string, std::string>{}, timeStampStart, timeStampEnd);
116- auto imageSAC1 = o2::ccdb::CcdbApi::createObjectImage (&mSACFactorization .getSACOne (), &ccdbInfoSAC1);
117- LOGP (info, " Sending object {} / {} of size {} bytes, valid for {} : {} " , ccdbInfoSAC1.getPath (), ccdbInfoSAC1.getFileName (), imageSAC1->size (), ccdbInfoSAC1.getStartValidityTimestamp (), ccdbInfoSAC1.getEndValidityTimestamp ());
118- output.snapshot (Output{o2::calibration::Utils::gDataOriginCDBPayload , getDataDescriptionCCDBSAC1 (), 0 }, *imageSAC1.get ());
119- output.snapshot (Output{o2::calibration::Utils::gDataOriginCDBWrapper , getDataDescriptionCCDBSAC1 (), 0 }, ccdbInfoSAC1);
120-
121- o2::ccdb::CcdbObjectInfo ccdbInfoSACDelta (CDBTypeMap.at (CDBType::CalSACDelta), std::string{}, std::string{}, std::map<std::string, std::string>{}, timeStampStart, timeStampEnd);
107+ o2::ccdb::CcdbObjectInfo ccdbInfoSAC (CDBTypeMap.at (CDBType::CalSAC), std::string{}, std::string{}, std::map<std::string, std::string>{}, timeStampStart, timeStampEnd);
122108
123109 std::unique_ptr<std::vector<char >> imageSACDelta{};
124110 switch (mCompressionDeltaSAC ) {
125111 case SACFactorization::SACDeltaCompression::MEDIUM:
126112 default : {
127- const SACDelta <unsigned short > sacDelta = mSACFactorization .getSACDeltaMediumCompressed ();
128- imageSACDelta = o2::ccdb::CcdbApi::createObjectImage (&sacDelta , &ccdbInfoSACDelta );
113+ SAC <unsigned short > sacContainer{ mSACFactorization . getSACZero (), mSACFactorization . getSACOne (), mSACFactorization .getSACDeltaMediumCompressed ()} ;
114+ imageSACDelta = o2::ccdb::CcdbApi::createObjectImage (&sacContainer , &ccdbInfoSAC );
129115 break ;
130116 }
131117 case SACFactorization::SACDeltaCompression::HIGH: {
132- const SACDelta <unsigned char > sacDelta = mSACFactorization .getSACDeltaHighCompressed ();
133- imageSACDelta = o2::ccdb::CcdbApi::createObjectImage (&sacDelta , &ccdbInfoSACDelta );
118+ SAC <unsigned char > sacContainer{ mSACFactorization . getSACZero (), mSACFactorization . getSACOne (), mSACFactorization .getSACDeltaHighCompressed ()} ;
119+ imageSACDelta = o2::ccdb::CcdbApi::createObjectImage (&sacContainer , &ccdbInfoSAC );
134120 break ;
135121 }
136122 case SACFactorization::SACDeltaCompression::NO:
137- SACDelta <float > sacDelta = std::move (mSACFactorization ).getSACDeltaUncompressed ();
138- imageSACDelta = o2::ccdb::CcdbApi::createObjectImage (&sacDelta , &ccdbInfoSACDelta );
123+ SAC <float > sacContainer{ mSACFactorization . getSACZero (), mSACFactorization . getSACOne (), std::move (mSACFactorization ).getSACDeltaUncompressed ()} ;
124+ imageSACDelta = o2::ccdb::CcdbApi::createObjectImage (&sacContainer , &ccdbInfoSAC );
139125 break ;
140126 }
141127
142- LOGP (info, " Sending object {} / {} of size {} bytes, valid for {} : {} " , ccdbInfoSACDelta .getPath (), ccdbInfoSACDelta .getFileName (), imageSACDelta->size (), ccdbInfoSACDelta .getStartValidityTimestamp (), ccdbInfoSACDelta .getEndValidityTimestamp ());
143- output.snapshot (Output{o2::calibration::Utils::gDataOriginCDBPayload , getDataDescriptionCCDBSACDelta (), 0 }, *imageSACDelta.get ());
144- output.snapshot (Output{o2::calibration::Utils::gDataOriginCDBWrapper , getDataDescriptionCCDBSACDelta (), 0 }, ccdbInfoSACDelta );
128+ LOGP (info, " Sending object {} / {} of size {} bytes, valid for {} : {} " , ccdbInfoSAC .getPath (), ccdbInfoSAC .getFileName (), imageSACDelta->size (), ccdbInfoSAC .getStartValidityTimestamp (), ccdbInfoSAC .getEndValidityTimestamp ());
129+ output.snapshot (Output{o2::calibration::Utils::gDataOriginCDBPayload , getDataDescriptionCCDBSAC (), 0 }, *imageSACDelta.get ());
130+ output.snapshot (Output{o2::calibration::Utils::gDataOriginCDBWrapper , getDataDescriptionCCDBSAC (), 0 }, ccdbInfoSAC );
145131 } else {
146132 LOGP (warning, " Received empty data for SACs! SACs will not be stored for the current aggregation interval!" );
147133 }
@@ -153,12 +139,8 @@ class TPCFactorizeSACSpec : public o2::framework::Task
153139DataProcessorSpec getTPCFactorizeSACSpec (const int lane, const unsigned int timeframes, const SACFactorization::SACFactorization::SACDeltaCompression compression, const bool debug)
154140{
155141 std::vector<OutputSpec> outputSpecs;
156- outputSpecs.emplace_back (ConcreteDataTypeMatcher{o2::calibration::Utils::gDataOriginCDBPayload , TPCFactorizeSACSpec::getDataDescriptionCCDBSAC0 ()}, Lifetime::Sporadic);
157- outputSpecs.emplace_back (ConcreteDataTypeMatcher{o2::calibration::Utils::gDataOriginCDBWrapper , TPCFactorizeSACSpec::getDataDescriptionCCDBSAC0 ()}, Lifetime::Sporadic);
158- outputSpecs.emplace_back (ConcreteDataTypeMatcher{o2::calibration::Utils::gDataOriginCDBPayload , TPCFactorizeSACSpec::getDataDescriptionCCDBSAC1 ()}, Lifetime::Sporadic);
159- outputSpecs.emplace_back (ConcreteDataTypeMatcher{o2::calibration::Utils::gDataOriginCDBWrapper , TPCFactorizeSACSpec::getDataDescriptionCCDBSAC1 ()}, Lifetime::Sporadic);
160- outputSpecs.emplace_back (ConcreteDataTypeMatcher{o2::calibration::Utils::gDataOriginCDBPayload , TPCFactorizeSACSpec::getDataDescriptionCCDBSACDelta ()}, Lifetime::Sporadic);
161- outputSpecs.emplace_back (ConcreteDataTypeMatcher{o2::calibration::Utils::gDataOriginCDBWrapper , TPCFactorizeSACSpec::getDataDescriptionCCDBSACDelta ()}, Lifetime::Sporadic);
142+ outputSpecs.emplace_back (ConcreteDataTypeMatcher{o2::calibration::Utils::gDataOriginCDBPayload , TPCFactorizeSACSpec::getDataDescriptionCCDBSAC ()}, Lifetime::Sporadic);
143+ outputSpecs.emplace_back (ConcreteDataTypeMatcher{o2::calibration::Utils::gDataOriginCDBWrapper , TPCFactorizeSACSpec::getDataDescriptionCCDBSAC ()}, Lifetime::Sporadic);
162144
163145 outputSpecs.emplace_back (ConcreteDataMatcher{gDataOriginTPC , TPCFactorizeSACSpec::getDataDescriptionSAC1 (), header::DataHeader::SubSpecificationType{Side::A}}, Lifetime::Sporadic);
164146 outputSpecs.emplace_back (ConcreteDataMatcher{gDataOriginTPC , TPCFactorizeSACSpec::getDataDescriptionSAC1 (), header::DataHeader::SubSpecificationType{Side::C}}, Lifetime::Sporadic);
0 commit comments