Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add static_analysis back and fix the format issues #29

Merged
merged 1 commit into from
Feb 14, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
---
Language: Cpp
#AccessModifierOffset: -4
ConstructorInitializerIndentWidth: 4
Expand Down Expand Up @@ -51,4 +50,4 @@ SpaceBeforeAssignmentOperators: true
ContinuationIndentWidth: 4
CommentPragmas: '^ IWYU pragma:'
SpaceBeforeParens: ControlStatements
...
SpaceBeforeCpp11BracedList: false
145 changes: 87 additions & 58 deletions .github/workflows/static_analysis.yml
Original file line number Diff line number Diff line change
@@ -1,66 +1,95 @@
# #
# # SPDX-License-Identifier: LGPL-3.0-or-later
#
# SPDX-License-Identifier: LGPL-3.0-or-later

# name: static analysis
# on:
# push:
# branches: [dev, edwin_dev]
# pull_request:
# branches: [dev, edwin_dev]
name: static analysis
on:
pull_request:
branches: [ dev, edwin_dev ]

# workflow_dispatch:
workflow_dispatch:

# permissions:
# pull-requests: write
# contents: write
permissions: write-all

# jobs:
# clang-lint:
# runs-on: ubuntu-latest
# defaults:
# run:
# shell: bash
# strategy:
# matrix:
# preset: [default]
# os: [ubuntu-latest]
# container:
# image: yanzhaowang/fairroot:${{ matrix.os }}
# options: --user root --privileged
# steps:
# - uses: actions/checkout@v4
# with:
# submodules: 'true'
jobs:
# This workflow contains a single job called "clang-format"
clang-format:
runs-on: ubuntu-latest

# - name: install sudo
# run: |
# apt-get install -y sudo
# sudo -H python3 -m pip install conan
steps:
- uses: actions/checkout@v4
- uses: cpp-linter/cpp-linter-action@v2
id: linter
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
style: 'file' # Use .clang-format config file
tidy-checks: '-*'
version: 18
verbosity: debug
lines-changed-only: false
files-changed-only: false
step-summary: true
thread-comments: update
extensions: 'h,cxx'
ignore: '*|!neuland|!r3bbase|!r3bdata/neulandData|!r3bsource/neuland|!r3bsource/base|ext_h101*'
format-review: true
- name: Fail fast?!
if: steps.linter.outputs.clang-format-checks-failed > 0
run: exit 1

clang-tidy:
runs-on: ubuntu-latest
strategy:
matrix:
preset: [ default ]
os: [ debian12 ]
container:
image: yanzhaowang/cvmfs_clang:${{ matrix.os }}
volumes:
- /tmp:/cvmfs
env:
CVMDIR: /cvmfs/fairsoft.gsi.de
options: --user root --privileged --ulimit nofile=9999:10000 --cap-add SYS_ADMIN --device /dev/fuse
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

# - name: configure r3broot
# uses: './.github/actions/r3bbuild-steps'
# with:
# build-needed: 'false'
- name: pre-build
uses: './.github/actions/pre-build'

# - name: Run clang-format style check for C/C++/Protobuf programs.
# uses: cpp-linter/cpp-linter-action@v2
# id: linter
# env:
# GITHUB_TOKEN: ${{ secrets.CPPLINTER_TOKEN }}
# with:
# style: 'file'
# tidy-checks: ''
# version: 18
# lines-changed-only: true
# database: '${{ github.workspace }}/build'
# thread-comments: update
# tidy-review: true
# file-annotations: true
# format-review: true
# passive-reviews: true
# extensions: 'h,cxx'
# ignore: '*|!neuland|!r3bbase|!r3bdata|!r3bsource|ext_h101*'
- name: install deps
id: restore-caching
uses: './.github/actions/install-deps'
with:
cache-name: 'false'

- name: configure r3broot
uses: './.github/actions/r3bbuild-steps'
with:
build-needed: 'false'

- name: clang-tidy check
run: |
mkdir -p clang-tidy-result
git diff -U0 HEAD^ | python3 $PWD/util/clang-tidy-diff.py -p1 -path build -j4 -use-color \
-iregex '^(.*\/)(?!ext_)([^\/]*\.(cpp|cc|c\+\+|cxx|cl|hpp|hh|h|m|mm|inc))$' \
> clang-tidy-result/fixes.yml
cat clang-tidy-result/fixes.yml |\
sed -e 's/\x1b\[[0-9;]*m//g' |\
sed 's/\(^.*\):\([0-9]*\):\([0-9]*\): warning:/::warning file=\1,line=\2,col=\3::/' |\
sed 's/\(^.*\):\([0-9]*\):\([0-9]*\): error:/::error file=\1,line=\2,col=\3::/'
echo "WARN_NUM=$(sed -e 's/\x1b\[[0-9;]*m//g' clang-tidy-result/fixes.yml | grep -w " warning:" | wc -l | xargs)" >> $GITHUB_ENV
echo "ERROR_NUM=$(sed -e 's/\x1b\[[0-9;]*m//g' clang-tidy-result/fixes.yml | grep -w " error:" | wc -l | xargs)" >> $GITHUB_ENV

- name: clang-tidy results
run: |
if [ "${{ env.WARN_NUM }}" -eq "0" ] && [ "${{ env.ERROR_NUM }}" -eq "0" ]; then
echo "::notice::All clean, LGTM!"
else
cat clang-tidy-result/fixes.yml | sed -e 's/\x1b\[[0-9;]*mnote: \x1b\[0m/\x1b\[33mnote: \x1b\[0m/g'
echo "::notice::Clang-tidy generates ${{ env.WARN_NUM }} warnings and ${{ env.ERROR_NUM }} errors! Please fix them before being merged."
exit 1
fi
shell: bash

# - name: Fail fast?!
# if: steps.linter.outputs.checks-failed > 0
# run: exit 1
1 change: 0 additions & 1 deletion neuland/application/R3BNeulandSimApp.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ namespace R3B::Neuland
constexpr auto DEFAULT_NEULAND_Z_POS = 1650.; // cm
constexpr auto DEFAULT_NEULAND_ENERGY = 0.6; // GeV


class SimulationApplication : public Application
{
public:
Expand Down
19 changes: 11 additions & 8 deletions neuland/calibration/cal_to_hit/R3BNeulandCalToHitTask.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,14 +64,17 @@ namespace R3B::Neuland
const std::vector<CalibratedSignal>& right_signals,
const HitModulePar& par,
/* inout */ std::vector<R3BNeulandHit>& hits);
[[nodiscard]] auto construct_hit(const LRPair<CalibratedSignal>& signalPair, const HitModulePar& par) const
-> R3BNeulandHit;
static auto get_calibrated_energy(const CalDataSignal& calSignal, const HitModulePar& par, R3B::Side side)
-> ValueErrorD;
static auto get_calibrated_time(const CalDataSignal& calSignal, const HitModulePar& par, R3B::Side side)
-> ValueErrorD;
static auto to_calibrated_signal(const CalDataSignal& calSignal, const HitModulePar& par, R3B::Side side)
-> CalibratedSignal;
[[nodiscard]] auto construct_hit(const LRPair<CalibratedSignal>& signalPair,
const HitModulePar& par) const -> R3BNeulandHit;
static auto get_calibrated_energy(const CalDataSignal& calSignal,
const HitModulePar& par,
R3B::Side side) -> ValueErrorD;
static auto get_calibrated_time(const CalDataSignal& calSignal,
const HitModulePar& par,
R3B::Side side) -> ValueErrorD;
static auto to_calibrated_signal(const CalDataSignal& calSignal,
const HitModulePar& par,
R3B::Side side) -> CalibratedSignal;
[[nodiscard]] auto signal_match_checking(const CalibratedSignal& first_signal,
const CalibratedSignal& second_signal,
const HitModulePar& par) -> bool;
Expand Down
10 changes: 5 additions & 5 deletions neuland/calibration/cal_to_hit/engine/R3BNeulandCosmicEngine.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,11 @@ namespace R3B::Neuland::Calibration
virtual void AddSignal(const BarCalData& signal) = 0;
virtual void Calibrate(Cal2HitPar& hit_par) = 0;
virtual void SetMinStat(int min) {}
virtual void BeginOfEvent(unsigned int event_num){};
virtual void EndOfEvent(unsigned int event_num){};
virtual void EventReset(){};
virtual void EndOfTask(){};
virtual void HistInit(DataMonitor& histograms){};
virtual void BeginOfEvent(unsigned int event_num) {};
virtual void EndOfEvent(unsigned int event_num) {};
virtual void EventReset() {};
virtual void EndOfTask() {};
virtual void HistInit(DataMonitor& histograms) {};
virtual void SetErrorScale(float scale) {}

private:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ namespace R3B::Neuland::Calibration
void Calibrate(Cal2HitPar& hit_par) override;
void EndOfEvent(unsigned int event_num = 0) override {}
void EventReset() override {}
void EndOfTask() override{}
void EndOfTask() override {}
auto SignalFilter(const std::vector<BarCalData>& signals) -> bool override;
void HistInit(DataMonitor& histograms) override;
void SetMinStat(int min) override
Expand Down
6 changes: 3 additions & 3 deletions neuland/calibration/legacy/LSQR.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -767,9 +767,9 @@ void lsqr(lsqr_input* input,
if ((term_iter < term_iter_max) && (output->num_iters < input->max_iter))
output->term_flag = 0;
} /* end while loop */
/*
* Finish computing the standard error estimates vector se.
*/
/*
* Finish computing the standard error estimates vector se.
*/
temp = 1.0;

if (input->num_rows > input->num_cols)
Expand Down
28 changes: 10 additions & 18 deletions neuland/calibration/legacy/R3BNeulandCal2HitPar.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -43,43 +43,36 @@
{
}

R3BNeulandCal2HitPar::~R3BNeulandCal2HitPar() {}

InitStatus R3BNeulandCal2HitPar::Init()
{
FairRootManager* mgr = FairRootManager::Instance();

if (!mgr)
{
LOG(fatal) << "R3BNeulandCal2HitPar::Init: "
<< "FairRootManager not found";
LOG(fatal) << "R3BNeulandCal2HitPar::Init: FairRootManager not found";

Check warning on line 52 in neuland/calibration/legacy/R3BNeulandCal2HitPar.cxx

View workflow job for this annotation

GitHub Actions / clang-tidy (default, debian12)

no header providing "LOG" is directly included [misc-include-cleaner]
return kFATAL;
}

fEventHeader = static_cast<R3BEventHeader*>(mgr->GetObject("EventHeader."));

if (!fEventHeader)
{
LOG(info) << "R3BNeulandCal2HitPar::Init: "
<< "Branch EventHeader not found, its ok";
LOG(info) << "R3BNeulandCal2HitPar::Init Branch EventHeader not found, its ok";
// return kFATAL;
}

fCalNeuland = static_cast<TClonesArray*>(mgr->GetObject("NeulandCalData"));

if (!fCalNeuland)
{
LOG(fatal) << "R3BNeulandCal2HitPar::Init: "
<< "Branch NeulandCalData not found";
LOG(fatal) << "R3BNeulandCal2HitPar::Init: Branch NeulandCalData not found";
return kFATAL;
}

fNeulandHitPar = static_cast<R3BNeulandHitPar*>(FairRuntimeDb::instance()->getContainer("NeulandHitPar"));
LOG(info) << "R3BNeulandCal2HitPar::Init: "
<< "Number of Hit-Paramteres found: " << fNeulandHitPar->GetNumModulePar();
LOG(info) << "R3BNeulandCal2HitPar::Init: Number of Hit-Paramteres found: " << fNeulandHitPar->GetNumModulePar();

LOG(info) << "R3BNeulandCal2HitPar::Init: "
<< "Initializing NeulandHitCalibrationEngine.";
LOG(info) << "R3BNeulandCal2HitPar::Init: Initializing NeulandHitCalibrationEngine.";
fHitCalEngine->Init(fNeulandHitPar);

if (fNeulandHitPar)
Expand Down Expand Up @@ -171,11 +164,10 @@

void R3BNeulandCal2HitPar::FinishTask()
{
LOG(info) << "R3BNeulandCal2HitPar::FinishTask: "
<< "Saved " << fAcceptedEventNumber << " Events. ";
LOG(info) << "R3BNeulandCal2HitPar::FinishTask: " << "Saved " << fAcceptedEventNumber << " Events.";

LOG(info) << "R3BNeulandCal2HitPar::FinishTask: "
<< "Starting Neuland Hit Calibration with " << fAcceptedEventNumber << " Events.";
LOG(info) << "R3BNeulandCal2HitPar::FinishTask: " << "Starting Neuland Hit Calibration with "
<< fAcceptedEventNumber << " Events.";

const auto batchMode = gROOT->IsBatch();
gROOT->SetBatch(kTRUE);
Expand Down Expand Up @@ -212,8 +204,8 @@

fNeulandHitPar->setChanged();

LOG(info) << "R3BNeulandCal2HitPar::FinishTask: "
<< "Number of calibrated Bars: " << fNeulandHitPar->GetNumModulePar();
LOG(info) << "R3BNeulandCal2HitPar::FinishTask: " << "Number of calibrated Bars: "
<< fNeulandHitPar->GetNumModulePar();
}

bool R3BNeulandCal2HitPar::IsCosmicEvent() const { return ((fEventHeader->GetTpat() & fCosmicTpat) == fCosmicTpat); }
Expand Down
5 changes: 3 additions & 2 deletions neuland/calibration/legacy/R3BNeulandCal2HitPar.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,10 @@ class R3BNeulandCal2HitPar : public FairTask
{
public:
R3BNeulandCal2HitPar()
: R3BNeulandCal2HitPar("R3BNeulandCal2HitPar", 1){};
: R3BNeulandCal2HitPar("R3BNeulandCal2HitPar", 1)
{
}
R3BNeulandCal2HitPar(const char* name, const Int_t iVerbose = 1);
virtual ~R3BNeulandCal2HitPar();

virtual InitStatus Init();

Expand Down
6 changes: 4 additions & 2 deletions neuland/calibration/map_to_cal/R3BFTCalEngine.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -138,8 +138,10 @@
}
} // namespace

auto calculate_value_errors(TH1* hist, unsigned int max_bin, double total_entry, FTCalErrorMethod methodtype)
-> std::pair<ValueErrors, unsigned int>
auto calculate_value_errors(TH1* hist,

Check warning on line 141 in neuland/calibration/map_to_cal/R3BFTCalEngine.cxx

View workflow job for this annotation

GitHub Actions / clang-tidy (default, debian12)

function 'calculate_value_errors' can be made static or moved into an anonymous namespace to enforce internal linkage [misc-use-internal-linkage]
unsigned int max_bin,
double total_entry,
FTCalErrorMethod methodtype) -> std::pair<ValueErrors, unsigned int>

Check warning on line 144 in neuland/calibration/map_to_cal/R3BFTCalEngine.cxx

View workflow job for this annotation

GitHub Actions / clang-tidy (default, debian12)

no header providing "std::pair" is directly included [misc-include-cleaner]
{
auto output = extract_bin_data(hist, max_bin);

Expand Down
10 changes: 6 additions & 4 deletions neuland/calibration/map_to_cal/R3BNeulandMapToCalParTask.cxx
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
#include "R3BNeulandMapToCalParTask.h"
#include "R3BEventHeader.h"
#include "R3BException.h"
#include <FairParIo.h>
#include <FairParRootFileIo.h>
#include <FairRootManager.h>
#include <FairRun.h>
#include <FairRuntimeDb.h>
#include <R3BLogger.h>
#include <iostream>

namespace
{
Expand Down Expand Up @@ -99,7 +97,8 @@
for (const auto& [barNum, barSignals] : planeSignals.bars)
{
auto barNum_tmp = barNum;
R3BLOG(debug, fmt::format("Calibrating with the map-level bar signal: {}, barNum: {}", barSignals, barNum));
R3BLOG(debug,
fmt::format("Calibrating with the map-level bar signal: {}, barNum: {}", barSignals, barNum));

Check warning on line 101 in neuland/calibration/map_to_cal/R3BNeulandMapToCalParTask.cxx

View workflow job for this annotation

GitHub Actions / clang-tidy (default, debian12)

no header providing "fmt::format" is directly included [misc-include-cleaner]
auto FillData = [&](FTType type, auto value)
{ FillEngine(mapCalEngine_, type, value, planeID, barNum_tmp); };
for (const auto& signal : barSignals.left)
Expand All @@ -120,7 +119,10 @@
{
for (const auto& [moduleNum, moduleSignals] : trigMappedData_)
{
R3BLOG(debug, fmt::format("Calibrating with the map-level bar trig signal: {}, module num: {}", moduleSignals.signal, moduleNum));
R3BLOG(debug,
fmt::format("Calibrating with the map-level bar trig signal: {}, module num: {}",

Check warning on line 123 in neuland/calibration/map_to_cal/R3BNeulandMapToCalParTask.cxx

View workflow job for this annotation

GitHub Actions / clang-tidy (default, debian12)

no header providing "fmt::format" is directly included [misc-include-cleaner]
moduleSignals.signal,
moduleNum));
FillEngine(trigMapCalEngine_, FTType::trigger, moduleSignals.signal.fine, moduleNum);
}
}
Expand Down
5 changes: 3 additions & 2 deletions neuland/calibration/map_to_cal/R3BNeulandMapToCalTask.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -204,8 +204,9 @@
return convert_to_real_time(calibrationTrigPar_, trigData->second.signal, FTType::trigger, trigData->first);
}

auto Map2CalTask::get_tot(DoubleEdgeSignal pmtSignal, unsigned int module_num, Side side) const
-> ValueError<double>
auto Map2CalTask::get_tot(DoubleEdgeSignal pmtSignal,

Check warning on line 207 in neuland/calibration/map_to_cal/R3BNeulandMapToCalTask.cxx

View workflow job for this annotation

GitHub Actions / clang-tidy (default, debian12)

no header providing "R3B::DoubleEdgeSignal" is directly included [misc-include-cleaner]
unsigned int module_num,
Side side) const -> ValueError<double>
{
const auto leadFType = (side == Side::left) ? FTType::leftleading : FTType::rightleading;
const auto trailFType = (side == Side::left) ? FTType::lefttrailing : FTType::righttrailing;
Expand Down
5 changes: 3 additions & 2 deletions neuland/calibration/map_to_cal/R3BNeulandMapToCalTask.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,9 @@ namespace R3B::Neuland
SingleEdgeSignal signal,
FTType ftType,
unsigned int module_num) const -> ValueError<double>;
[[nodiscard]] auto get_tot(DoubleEdgeSignal pmtSignal, unsigned int module_num, Side side) const
-> ValueError<double>;
[[nodiscard]] auto get_tot(DoubleEdgeSignal pmtSignal,
unsigned int module_num,
Side side) const -> ValueError<double>;
[[nodiscard]] auto get_trigger_time(unsigned int module_num, Side side) const -> ValueError<double>;
void overflow_correct(R3B::Neuland::CalDataSignal& calSignal) const;
};
Expand Down
Loading
Loading