From 66f89a15566315676f3b2b9d6dd40c1587ead3ee Mon Sep 17 00:00:00 2001
From: Florian Uhlig <f.uhlig@gsi.de>
Date: Wed, 29 Jun 2022 11:35:45 +0200
Subject: [PATCH] Add several compiler warnings

Use struct instead of class for forward declarations if the object is defined
as struct.
Remove unused data members, variables and parameters.
Remove an explicite usage of std::move to allow copy ellision.
Correct type in printf statements.
Add missing virtual destructor in some class.
Fix two issues where closing braces were at the wrong place.
---
 MQ/mcbm/CbmDeviceDigiEventSink.cxx                     |  3 ++-
 MQ/mcbm/CbmDeviceDigiEventSink.h                       |  2 +-
 analysis/PWGDIL/dielectron/lmvm/LmvmTask.cxx           |  2 +-
 .../analysis_tree_converter/CbmTofHitsConverter.cxx    |  4 ++--
 core/data/raw/AccDataSis18.h                           |  4 ++++
 core/detectors/trd/CbmTrdFASP.cxx                      | 10 ++++++----
 reco/L1/CbmL1.h                                        |  2 +-
 reco/L1/L1Algo/L1MaterialInfo.cxx                      |  2 +-
 reco/L1/ParticleFinder/CbmL1PFFitter.h                 |  2 +-
 reco/detectors/rich/unpack/CbmRichUnpackMonitor.cxx    |  6 +++---
 reco/mq/CbmDevBuildEvents.h                            |  2 +-
 reco/mq/CbmDevTrigger.h                                |  2 +-
 12 files changed, 24 insertions(+), 17 deletions(-)

diff --git a/MQ/mcbm/CbmDeviceDigiEventSink.cxx b/MQ/mcbm/CbmDeviceDigiEventSink.cxx
index cdf99c95fc..b54e6f8213 100644
--- a/MQ/mcbm/CbmDeviceDigiEventSink.cxx
+++ b/MQ/mcbm/CbmDeviceDigiEventSink.cxx
@@ -622,7 +622,8 @@ void CbmDeviceDigiEventSink::PrepareTreeEntry(CbmEventTimeslice unpTs)
     TimesliceMetaData(std::move(unpTs.fTsMetaData));
 
   /// Extract CbmEvent vector from input message
-  (*fEventsSel) = std::move(unpTs.GetSelectedData());
+  // FU, 29.06.22 Remove std::move to allow copy ellision
+  (*fEventsSel) = unpTs.GetSelectedData();
   if (kTRUE == fbFillHistos) {
     /// Accumulated counts, will show rise + plateau pattern in spill
     fulProcessedEvents += fEventsSel->size();
diff --git a/MQ/mcbm/CbmDeviceDigiEventSink.h b/MQ/mcbm/CbmDeviceDigiEventSink.h
index 958fdc1a7e..024bc9e2fd 100644
--- a/MQ/mcbm/CbmDeviceDigiEventSink.h
+++ b/MQ/mcbm/CbmDeviceDigiEventSink.h
@@ -152,7 +152,7 @@ private:
   CbmTsEventHeader* fEvtHeader = nullptr;
   /// TS MetaData storage
   TClonesArray* fTimeSliceMetaDataArray = nullptr;  //!
-  TimesliceMetaData* fTsMetaData        = nullptr;
+                                                    //  TimesliceMetaData* fTsMetaData        = nullptr;
   /// CbmEvents
   std::vector<CbmDigiEvent>* fEventsSel = nullptr;  //! output container of CbmEvents
   /// Full TS Digis storage (optional usage, controlled by fbStoreFullTs!)
diff --git a/analysis/PWGDIL/dielectron/lmvm/LmvmTask.cxx b/analysis/PWGDIL/dielectron/lmvm/LmvmTask.cxx
index 092452b9b9..c8d9cdfc55 100644
--- a/analysis/PWGDIL/dielectron/lmvm/LmvmTask.cxx
+++ b/analysis/PWGDIL/dielectron/lmvm/LmvmTask.cxx
@@ -1164,7 +1164,7 @@ void LmvmTask::DifferenceSignalAndBg()
       fH.FillH2("hTrdElLikePur_El", cand.fMomentum.Mag(), cand.fTrdLikeEl, fW);
       fH.FillH2("hTofM2Pur_El", cand.fMomentum.Mag(), cand.fMass2, fW);
     }
-    else if (!cand.IsMcSignal() && std::abs(cand.fMcPdg != 11)) {
+    else if (!cand.IsMcSignal() && std::abs(cand.fMcPdg) != 11) {
       fH.FillH2("hAnnRichVsMomPur_Bg", cand.fMomentum.Mag(), cand.fRichAnn, fW);
       fH.FillH2("hTrdElLikePur_Bg", cand.fMomentum.Mag(), cand.fTrdLikeEl, fW);
       fH.FillH2("hTofM2Pur_Bg", cand.fMomentum.Mag(), cand.fMass2, fW);
diff --git a/analysis/common/analysis_tree_converter/CbmTofHitsConverter.cxx b/analysis/common/analysis_tree_converter/CbmTofHitsConverter.cxx
index 2909165515..1a373d987b 100644
--- a/analysis/common/analysis_tree_converter/CbmTofHitsConverter.cxx
+++ b/analysis/common/analysis_tree_converter/CbmTofHitsConverter.cxx
@@ -96,8 +96,8 @@ void CbmTofHitsConverter::ProcessData(CbmEvent* event)
     event_id = FairRootManager::Instance()->GetEntryNr();
   }
 
-  const int n_tracks   = event ? event->GetNofData(ECbmDataType::kGlobalTrack) : cbm_global_tracks_->GetEntriesFast();
-  const int n_tof_hits = event ? event->GetNofData(ECbmDataType::kTofHit) : cbm_tof_hits_->GetEntriesFast();
+  const int n_tracks = event ? event->GetNofData(ECbmDataType::kGlobalTrack) : cbm_global_tracks_->GetEntriesFast();
+  //  const int n_tof_hits = event ? event->GetNofData(ECbmDataType::kTofHit) : cbm_tof_hits_->GetEntriesFast(); // FU, 02.08.22
 
   if (n_tracks <= 0) {
     LOG(warn) << "No global tracks!";
diff --git a/core/data/raw/AccDataSis18.h b/core/data/raw/AccDataSis18.h
index 538fdf0840..de31a2491f 100644
--- a/core/data/raw/AccDataSis18.h
+++ b/core/data/raw/AccDataSis18.h
@@ -17,6 +17,8 @@ public:
 
   AccTimingEvent(std::string sLine, bool bVerbose = false);
 
+  virtual ~AccTimingEvent() = default;
+
   void Print() const;
 
   uint32_t GetGroupId() const { return ((fulRawEvent >> kOffsetGroupId) & ((1ULL << kNbBitsGroupId) - 1)); }
@@ -95,6 +97,8 @@ public:
   {
   }
 
+  virtual ~AccStatusTs() = default;
+
   void SetLastEvtBefTs(AccTimingEvent lastEvtBefTs) { fLastEvtBeforeTs = lastEvtBefTs; }
 
   /// True when we start within a spill cycle (not in short interval between cycle end and cycle start))
diff --git a/core/detectors/trd/CbmTrdFASP.cxx b/core/detectors/trd/CbmTrdFASP.cxx
index 30dcc7fd3b..fcd255666b 100644
--- a/core/detectors/trd/CbmTrdFASP.cxx
+++ b/core/detectors/trd/CbmTrdFASP.cxx
@@ -539,7 +539,7 @@ void CbmTrdFASP::ScanDigi(std::vector<std::pair<CbmTrdDigi*, CbmMatch*>>* vdigi,
     t /= 10;
     r /= 10;
     if (VERBOSE)
-      printf("  time buffer[5ns]=%4llu / phys[ns]=%lu charge[fC]=%5.1f / %5.1f", time, digi->GetTimeDAQ(), t, r);
+      printf("  time buffer[5ns]=%4llu / phys[ns]=%llu charge[fC]=%5.1f / %5.1f", time, digi->GetTimeDAQ(), t, r);
     // tilt pad channel
     if (t > 0) {
       if (DRAW) fGraphPhys[gid]->SetPoint(time, digi->GetTimeDAQ(), t / 100.);
@@ -621,7 +621,8 @@ void CbmTrdFASP::ScanDigiNE(std::vector<std::pair<CbmTrdDigi*, CbmMatch*>>* vdig
       }
       digi->GetCharge(t, dt);
       t /= 10.;
-      if (VERBOSE) printf("  [T] time buffer[5ns]=%4llu / phys[ns]=%lu charge[fC]=%5.1f ", time, digi->GetTimeDAQ(), t);
+      if (VERBOSE)
+        printf("  [T] time buffer[5ns]=%4llu / phys[ns]=%llu charge[fC]=%5.1f ", time, digi->GetTimeDAQ(), t);
       // tilt pad channel
       if (t > 0) {
         if (DRAW) fGraphPhys[gid]->SetPoint(time, digi->GetTimeDAQ(), t / 100.);
@@ -665,7 +666,8 @@ void CbmTrdFASP::ScanDigiNE(std::vector<std::pair<CbmTrdDigi*, CbmMatch*>>* vdig
       digi->GetCharge(t, dt);
       t /= 10.;
 
-      if (VERBOSE) printf("  [T] time buffer[5ns]=%4llu / phys[ns]=%lu charge[fC]=%5.1f ", time, digi->GetTimeDAQ(), t);
+      if (VERBOSE)
+        printf("  [T] time buffer[5ns]=%4llu / phys[ns]=%llu charge[fC]=%5.1f ", time, digi->GetTimeDAQ(), t);
       // tilt pad channel
       if (t > 0) {
         if (DRAW) fGraphPhys[gid]->SetPoint(time, digi->GetTimeDAQ(), t / 100.);
@@ -712,7 +714,7 @@ void CbmTrdFASP::ScanDigiNE(std::vector<std::pair<CbmTrdDigi*, CbmMatch*>>* vdig
     }
     r = digi->GetCharge(t, dt);
     r /= 10.;
-    if (VERBOSE) printf("  [R] time buffer[5ns]=%4llu / phys[ns]=%lu charge[fC]=%5.1f ", time, digi->GetTimeDAQ(), r);
+    if (VERBOSE) printf("  [R] time buffer[5ns]=%4llu / phys[ns]=%llu charge[fC]=%5.1f ", time, digi->GetTimeDAQ(), r);
 
     // rect pad channel
     if (r > 0) {
diff --git a/reco/L1/CbmL1.h b/reco/L1/CbmL1.h
index d75b79d2d4..0d9741de88 100644
--- a/reco/L1/CbmL1.h
+++ b/reco/L1/CbmL1.h
@@ -52,7 +52,7 @@
 #include "L1Algo/L1Vector.h"
 #include "L1EventEfficiencies.h"
 
-class L1AlgoInputData;
+struct L1AlgoInputData;
 class L1Algo;
 class L1Event;
 class CbmL1ParticlesFinder;
diff --git a/reco/L1/L1Algo/L1MaterialInfo.cxx b/reco/L1/L1Algo/L1MaterialInfo.cxx
index 267d97ca3d..0cfa4d6a64 100644
--- a/reco/L1/L1Algo/L1MaterialInfo.cxx
+++ b/reco/L1/L1Algo/L1MaterialInfo.cxx
@@ -75,7 +75,7 @@ L1Material::L1Material() {}
 
 //------------------------------------------------------------------------------------------------------------------------------------
 //
-L1Material::~L1Material() {}
+L1Material::~L1Material() noexcept {}
 
 //------------------------------------------------------------------------------------------------------------------------------------
 //
diff --git a/reco/L1/ParticleFinder/CbmL1PFFitter.h b/reco/L1/ParticleFinder/CbmL1PFFitter.h
index d4dacf99b5..4c08cf5859 100644
--- a/reco/L1/ParticleFinder/CbmL1PFFitter.h
+++ b/reco/L1/ParticleFinder/CbmL1PFFitter.h
@@ -28,7 +28,7 @@ class CbmL1Track;
 class CbmStsTrack;
 class L1TrackPar;
 class L1UMeasurementInfo;
-class L1MaterialInfo;
+struct L1MaterialInfo;
 class L1Station;
 class L1FieldRegion;
 class CbmKFVertex;
diff --git a/reco/detectors/rich/unpack/CbmRichUnpackMonitor.cxx b/reco/detectors/rich/unpack/CbmRichUnpackMonitor.cxx
index 6e31dec262..8a7e48e61c 100644
--- a/reco/detectors/rich/unpack/CbmRichUnpackMonitor.cxx
+++ b/reco/detectors/rich/unpack/CbmRichUnpackMonitor.cxx
@@ -81,7 +81,7 @@ Bool_t CbmRichUnpackMonitor::ResetHistograms()
   return kTRUE;
 }
 
-Bool_t CbmRichUnpackMonitor::CreateDebugHistograms(CbmMcbm2018RichPar* pUnpackPar) { return kTRUE; }
+Bool_t CbmRichUnpackMonitor::CreateDebugHistograms(CbmMcbm2018RichPar* /*pUnpackPar*/) { return kTRUE; }
 
 Bool_t CbmRichUnpackMonitor::ResetDebugHistograms() { return kTRUE; }
 // -------------------------------------------------------------------------
@@ -105,8 +105,8 @@ void CbmRichUnpackMonitor::FillDigisToTDiRICH(Int_t Address, Double_t ToT)
 }
 
 // -------------------------------------------------------------------------
-void CbmRichUnpackMonitor::PrintDebugInfo(const uint64_t MsStartTime, const size_t NrProcessedTs,
-                                          const uint16_t msDescriptorFlags, const uint32_t uSize)
+void CbmRichUnpackMonitor::PrintDebugInfo(const uint64_t /*MsStartTime*/, const size_t /*NrProcessedTs*/,
+                                          const uint16_t /*msDescriptorFlags*/, const uint32_t /*uSize*/)
 {
 }
 
diff --git a/reco/mq/CbmDevBuildEvents.h b/reco/mq/CbmDevBuildEvents.h
index ceb7c03552..7b4a52a4f5 100644
--- a/reco/mq/CbmDevBuildEvents.h
+++ b/reco/mq/CbmDevBuildEvents.h
@@ -53,7 +53,7 @@ private:
 
   /// Statistics & first TS rejection
   uint64_t fulNumMessages = 0;
-  uint64_t fulTsCounter   = 0;
+  //  uint64_t fulTsCounter   = 0;
 
   /// Processing algos
   cbm::algo::EventBuilder fEvbuildAlgo;
diff --git a/reco/mq/CbmDevTrigger.h b/reco/mq/CbmDevTrigger.h
index 5ab19fdf16..ffe7acfe59 100644
--- a/reco/mq/CbmDevTrigger.h
+++ b/reco/mq/CbmDevTrigger.h
@@ -28,7 +28,7 @@
 #include <chrono>
 #include <vector>
 
-class CbmDigiTimeslice;
+struct CbmDigiTimeslice;
 class CbmTsEventHeader;
 class TimesliceMetaData;
 
-- 
GitLab