@@ -56,19 +56,26 @@ Long64_t ZorroSummary::Merge(TCollection* list)
5656 return n;
5757}
5858
59- double ZorroSummary::getNormalisationFactor ( int toiId ) const
59+ std::unordered_map< int , std::vector< double >> ZorroSummary::getPerRunNormalisationFactors ( ) const
6060{
61- double totalTOI{0 .}, totalTVX{0 .};
62- ULong64_t totalAnalysedTOI{0 };
63- for (const auto & [runNumber, toiCounters] : mTOIcounters ) {
64- totalTOI += toiCounters.at (toiId);
65- }
66- for (const auto & [runNumber, tvxCounters] : mTVXcounters ) {
67- totalTVX += tvxCounters;
68- }
61+ std::unordered_map<int , std::vector<double >> runNormalisations;
6962 for (const auto & [runNumber, analysedTOIcounters] : mAnalysedTOIcounters ) {
70- totalAnalysedTOI += analysedTOIcounters.at (toiId);
63+ const double tvxCount = mTVXcounters .at (runNumber);
64+ for (int toiId = 0 ; toiId < mNtois ; ++toiId) {
65+ double toiCount = mTOIcounters .at (runNumber).at (toiId);
66+ ULong64_t analysedTOI = analysedTOIcounters.at (toiId);
67+ runNormalisations[runNumber].push_back (tvxCount * analysedTOI / toiCount);
68+ }
7169 }
70+ return runNormalisations;
71+ }
7272
73- return totalTVX * totalAnalysedTOI / totalTOI;
73+ double ZorroSummary::getNormalisationFactor (int toiId) const
74+ {
75+ double normalisationFactor{0 .};
76+ auto runNormalisations = getPerRunNormalisationFactors ();
77+ for (const auto & [runNumber, normalisations] : runNormalisations) {
78+ normalisationFactor += normalisations.at (toiId);
79+ }
80+ return normalisationFactor;
7481}
0 commit comments