From 362313017d963a5f77df5e66d3883779b00cf2cb Mon Sep 17 00:00:00 2001
From: Dinyar Rabady <dinyar@cern.ch>
Date: Thu, 27 Oct 2022 18:29:44 +0200
Subject: [PATCH] Micro optimisations

---
 src/processor.cc | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/src/processor.cc b/src/processor.cc
index c03a4937..c00b786d 100644
--- a/src/processor.cc
+++ b/src/processor.cc
@@ -126,7 +126,7 @@ inline std::pair<uint32_t, bool> StreamProcessor::ProcessOrbitHeader(char *rd_pt
 // Goes through orbit worth of data and fills the output memory with the calo
 // data corresponding to the non-empty bunchcrossings, as marked in bx_vect
 StreamProcessor::fillOrbitMetadata StreamProcessor::FillOrbitCalo(
-    std::vector<unsigned int> &bx_vect, char *rd_ptr, char *wr_ptr) {
+    const std::vector<unsigned int> &bx_vect, char *rd_ptr, char *wr_ptr) {
   std::pair<uint32_t, bool> orbit_header = std::pair<uint32_t, bool>{
       ProcessOrbitHeader(rd_ptr)};  //.second is the warning test enable bit
   rd_ptr += 32;                     // +32 to account for orbit header
@@ -142,7 +142,7 @@ StreamProcessor::fillOrbitMetadata StreamProcessor::FillOrbitCalo(
     uint32_t bx = uint32_t{bx_vect[relbx]};
     uint32_t orbit_ = uint32_t{orbit_header.first};
     if (bx > 3554) {
-      orbit_--;
+      --orbit_;
     }  // fix for the fact that bx 3555 - 3564 are from the previous orbit
     uint32_t header = uint32_t{orbit_header.second};  // header can be added to later
     memcpy(wr_ptr, (char *)&header, 4);
@@ -233,7 +233,7 @@ uint32_t StreamProcessor::FillBril(char *rd_ptr, char *wr_ptr, char *end_ptr) {
 // Goes through orbit worth of data and fills the output memory with the muons
 // corresponding to the non-empty bunchcrossings, as marked in bx_vect
 StreamProcessor::fillOrbitMetadata StreamProcessor::FillOrbitMuon(
-    std::vector<unsigned int> &bx_vect, char *rd_ptr, char *wr_ptr) {
+    const std::vector<unsigned int> &bx_vect, char *rd_ptr, char *wr_ptr) {
   std::pair<uint32_t, bool> orbit_header = std::pair<uint32_t, bool>{
       ProcessOrbitHeader(rd_ptr)};  //.second is the warning test enable bit
   rd_ptr += 32;                     // +32 to account for orbit header
@@ -252,7 +252,7 @@ StreamProcessor::fillOrbitMetadata StreamProcessor::FillOrbitMuon(
     bool BblocksOn[8];
     uint32_t bx = uint32_t{bx_vect[relbx]};
     if (bx > 3554) {
-      orbit--;
+      --orbit;
     }  // fix for the fact that bx 3555 - 3564 are from the previous orbit
     for (unsigned int i = 0; i < 8; i++) {
       uint32_t bxA = (bl->bx[i] >> shifts::bx) & masks::bx;
@@ -375,10 +375,9 @@ void StreamProcessor::process(Slice &input, Slice &out) {
     return;
   }
   while (endofpacket == false) {
-    std::vector<unsigned int> bx_vect;
     uint32_t orbitCount = 0;
     bool trailerError = false;
-    bx_vect = CountBX(input, rd_ptr, trailerError);
+    std::vector<unsigned int> bx_vect = CountBX(input, rd_ptr, trailerError);
     if (trailerError == true) {
       stats.orbit_trailer_error_count++;
       LOG(WARNING) << "Orbit trailer error: orbit trailer not found before end of data "
-- 
GitLab