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

TOF: Adding workflow for integrated TOF currents #10608

Merged
merged 5 commits into from
Jan 26, 2023

Conversation

matthias-kleiner
Copy link
Contributor

The 1D integrated TOF currents (~1ms) are similar as the TPC 1D-IDCs and can be used for QA and calibration.

The clusters are integrated in the o2-tof-integrate-cluster-workflow device and aggregated + merged to longer contiguous time intervals (1000TFs default ~ 11s) in the o2-tof-merge-integrate-cluster-workflow device using the TimeSlotCalibration. The workflow can be used using the CTFs as input:

o2-ctf-reader-workflow  --copy-cmd no-copy   --onlyDet TOF  --ctf-input "ctf.list"   --severity warning \
| o2-tof-reco-workflow --input-type compressed-clusters-ctf   --output-type "clusters,disable-writer" --disable-mc --disable-root-output \
| o2-tof-integrate-cluster-workflow | o2-tof-merge-integrate-cluster-workflow --debug true \
|  o2-calibration-ccdb-populator-workflow --ccdb-path "ccdb-test.cern.ch:8080" -b

The output will be stored in the CCDB or in local files using the o2-tof-merge-integrate-cluster-workflow --debug true option.

The 1D integrated TOF currents (~1ms) are similar as the TPC 1D-IDCs and can be used for QA and calibration.

The clusters are integrated in the `o2-tof-integrate-cluster-workflow` device and aggregated + merged to longer contiguous time intervalsi (1000TFs default ~ 11s) in the `o2-tof-merge-integrate-cluster-workflow` device using the `TimeSlotCalibration`.
The workflow can be used using the CTFs as input:
```
o2-ctf-reader-workflow  --copy-cmd no-copy   --onlyDet TOF  --ctf-input "ctf.list"   --severity warning \
| o2-tof-reco-workflow --input-type compressed-clusters-ctf   --output-type "clusters,disable-writer" --disable-mc --disable-root-output \
| o2-tof-integrate-cluster-workflow | o2-tof-merge-integrate-cluster-workflow --debug true \
|  o2-calibration-ccdb-populator-workflow --ccdb-path "ccdb-test.cern.ch:8080" -b
```

The output will be stored in the CCDB or in local files using the `o2-tof-merge-integrate-cluster-workflow --debug true` option.
@matthias-kleiner
Copy link
Contributor Author

@chiarazampolli
This is the PR for the integrated cluster currents for the TOF. I already tested it with a list of input CTFs and it was running fine. There is also some output http://ccdb-test.cern.ch:8080/browse/TOF/Calib/ITOFC. The file size seems 60kb for 11 seconds

@matthias-kleiner
Copy link
Contributor Author

Example plot for around 3 minutes for Run 523141
22m_Run523141

@chiarazampolli
Copy link
Collaborator

Hello @matthias-kleiner ,

Thanks! We currently don’t do calibration from grid jobs since we have no aggregator, so we need to use the option to store to local files, right?

Cheers,

Chiara

@noferini
Copy link
Collaborator

Dear @matthias-kleiner,
I have a couple of (minor) comments concerning the workflow you reported.

In your tof-workflow config you have
o2-tof-reco-workflow --input-type compressed-clusters-ctf --output-type "clusters,disable-writer"

The input-type you are asking is not defined. It works because ctf already provides digits but it is misleading.
I would put "--input-type none" for clarity

Also disable-writer in the output-type doesn't have any meaning. You have --disable-root-output and it is enough (in any case for data tof-workflow is already defined in O2DPG scripts so you will inherit it from the global process)

I also did't understand if and how this is supposed to run in async reco.

@alibuild
Copy link
Collaborator

alibuild commented Jan 22, 2023

Error while checking build/O2/fullCI for 3d89a4d at 2023-01-22 12:15:

## sw/BUILD/o2checkcode-latest/log
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/Common/test/testGPUsortCUDA.cu:22:10: error: 'boost/test/unit_test.hpp' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUTracking/TRDTracking/GPUTRDTracker.cxx:37:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUTracking/Base/GPUReconstruction.cxx:37:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUTracking/Base/GPUReconstructionCPU.cxx:45:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUTracking/display/GPUDisplay.cxx:36:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUTracking/Base/cuda/GPUReconstructionCUDAGenRTC.cu:16:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/cuda/../Shared/Utils.h:26:10: error: 'boost/program_options.hpp' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/cuda/../Shared/Utils.h:26:10: error: 'boost/program_options.hpp' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/Framework/Logger/include/Framework/Logger.h:14:10: error: 'fairlogger/Logger.h' file not found [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:520:12: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:1059:69: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:1175:5: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:1852:16: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:2276:18: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:4336:16: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/sm_20_atomic_functions.h:89:39: error: redefinition of 'atomicAdd' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/Framework/Logger/include/Framework/Logger.h:14:10: error: 'fairlogger/Logger.h' file not found [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:520:12: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:1059:69: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:1175:5: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:1852:16: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:2276:18: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:4336:16: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/sm_20_atomic_functions.h:89:39: error: redefinition of 'atomicAdd' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/../Shared/Utils.h:146:34: error: use of undeclared identifier 'int4'; did you mean 'int'? [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/benchmark.hip.cxx:199:35: error: use of undeclared identifier 'int4'; did you mean 'int'? [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/../Shared/Utils.h:146:34: error: use of undeclared identifier 'int4'; did you mean 'int'? [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:64:8: error: unknown type name '__host__' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:64:27: error: expected ';' after top level declarator [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:64:33: error: overloaded 'operator+=' must have at least one parameter of class or enumeration type [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:64:44: error: unknown type name 'int4'; did you mean 'int'? [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:64:53: error: unknown type name 'int4'; did you mean 'int'? [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:66:4: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:66:11: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:67:4: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:67:11: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:68:4: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:68:11: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:69:4: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:69:11: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:85:1: error: unknown type name '__global__' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:90:19: error: use of undeclared identifier 'blockIdx' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:90:32: error: use of undeclared identifier 'blockDim' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:90:45: error: use of undeclared identifier 'threadIdx' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:90:78: error: use of undeclared identifier 'blockDim' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/Detectors/EMCAL/calibration/include/EMCALCalibration/EMCALCalibExtractor.h:36:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/Detectors/EMCAL/calibration/include/EMCALCalibration/EMCALCalibExtractor.h:36:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/Detectors/EMCAL/calibration/include/EMCALCalibration/EMCALCalibExtractor.h:36:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/Detectors/TOF/calibration/src/TOFChannelCalibrator.cxx:23:10: error: 'omp.h' file not found [clang-diagnostic-error]

Full log here.

@matthias-kleiner
Copy link
Contributor Author

Dear @matthias-kleiner, I have a couple of (minor) comments concerning the workflow you reported.

In your tof-workflow config you have o2-tof-reco-workflow --input-type compressed-clusters-ctf --output-type "clusters,disable-writer"

The input-type you are asking is not defined. It works because ctf already provides digits but it is misleading. I would put "--input-type none" for clarity

Also disable-writer in the output-type doesn't have any meaning. You have --disable-root-output and it is enough (in any case for data tof-workflow is already defined in O2DPG scripts so you will inherit it from the global process)

I also did't understand if and how this is supposed to run in async reco.

Hello @noferini
thanks for your comments. I havent really used the TOF workflows before, so I am not to familiar with them.

I also did't understand if and how this is supposed to run in async reco.

I am not sure how exactly the async reco is running, but I suppose if an input list of ctfs are used which are ordered in time then it should be fine? We want to run it for the apass 3 to have the currents which we can use for our space-charge distortions studies, but maybe we can also just run it on the GSI and produce the files before apass3.
I think the procedure would be run in a similar way as the space-charge correction map workflows are running, but @chiarazampolli can comment maybe better how it could run during the async reco or if there are potential problems, which I do not see yet.

@noferini
Copy link
Collaborator

Dear @matthias-kleiner, I have a couple of (minor) comments concerning the workflow you reported.
In your tof-workflow config you have o2-tof-reco-workflow --input-type compressed-clusters-ctf --output-type "clusters,disable-writer"
The input-type you are asking is not defined. It works because ctf already provides digits but it is misleading. I would put "--input-type none" for clarity
Also disable-writer in the output-type doesn't have any meaning. You have --disable-root-output and it is enough (in any case for data tof-workflow is already defined in O2DPG scripts so you will inherit it from the global process)
I also did't understand if and how this is supposed to run in async reco.

Hello @noferini thanks for your comments. I havent really used the TOF workflows before, so I am not to familiar with them.

I also did't understand if and how this is supposed to run in async reco.

I am not sure how exactly the async reco is running, but I suppose if an input list of ctfs are used which are ordered in time then it should be fine? We want to run it for the apass 3 to have the currents which we can use for our space-charge distortions studies, but maybe we can also just run it on the GSI and produce the files before apass3. I think the procedure would be run in a similar way as the space-charge correction map workflows are running, but @chiarazampolli can comment maybe better how it could run during the async reco or if there are potential problems, which I do not see yet.

Dear @matthias-kleiner,
if you want to merge and then run the calibrator task with timeslots a posteriori you need to set also a reader which is able to inject the time info in the proper format as stored in o2_tfidinfo.root.
For TOF aasync calibration I encoded tfinfo also in out output object so that it is merged with the calibration infos.

- renaming variable
- changing std::pow(10, -9) -> 1.E-9
@alibuild
Copy link
Collaborator

Error while checking build/O2/fullCI for ab773d0 at 2023-01-22 18:06:

## sw/BUILD/o2checkcode-latest/log
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/Common/test/testGPUsortCUDA.cu:22:10: error: 'boost/test/unit_test.hpp' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUTracking/TRDTracking/GPUTRDTracker.cxx:37:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUTracking/Base/GPUReconstruction.cxx:37:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUTracking/Base/GPUReconstructionCPU.cxx:45:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUTracking/display/GPUDisplay.cxx:36:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUTracking/Base/cuda/GPUReconstructionCUDAGenRTC.cu:16:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/cuda/../Shared/Utils.h:26:10: error: 'boost/program_options.hpp' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/cuda/../Shared/Utils.h:26:10: error: 'boost/program_options.hpp' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/Framework/Logger/include/Framework/Logger.h:14:10: error: 'fairlogger/Logger.h' file not found [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:520:12: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:1059:69: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:1175:5: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:1852:16: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:2276:18: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:4336:16: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/sm_20_atomic_functions.h:89:39: error: redefinition of 'atomicAdd' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/Framework/Logger/include/Framework/Logger.h:14:10: error: 'fairlogger/Logger.h' file not found [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:520:12: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:1059:69: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:1175:5: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:1852:16: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:2276:18: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:4336:16: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/sm_20_atomic_functions.h:89:39: error: redefinition of 'atomicAdd' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/../Shared/Utils.h:146:34: error: use of undeclared identifier 'int4'; did you mean 'int'? [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:64:8: error: unknown type name '__host__' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:64:27: error: expected ';' after top level declarator [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:64:33: error: overloaded 'operator+=' must have at least one parameter of class or enumeration type [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:64:44: error: unknown type name 'int4'; did you mean 'int'? [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:64:53: error: unknown type name 'int4'; did you mean 'int'? [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:66:4: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:66:11: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:67:4: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:67:11: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:68:4: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:68:11: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:69:4: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:69:11: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:85:1: error: unknown type name '__global__' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:90:19: error: use of undeclared identifier 'blockIdx' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:90:32: error: use of undeclared identifier 'blockDim' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:90:45: error: use of undeclared identifier 'threadIdx' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:90:78: error: use of undeclared identifier 'blockDim' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/../Shared/Utils.h:146:34: error: use of undeclared identifier 'int4'; did you mean 'int'? [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/benchmark.hip.cxx:199:35: error: use of undeclared identifier 'int4'; did you mean 'int'? [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/Detectors/EMCAL/calibration/include/EMCALCalibration/EMCALCalibExtractor.h:36:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/Detectors/EMCAL/calibration/include/EMCALCalibration/EMCALCalibExtractor.h:36:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/Detectors/EMCAL/calibration/include/EMCALCalibration/EMCALCalibExtractor.h:36:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/Detectors/TOF/calibration/src/TOFChannelCalibrator.cxx:23:10: error: 'omp.h' file not found [clang-diagnostic-error]

Full log here.

@matthias-kleiner
Copy link
Contributor Author

@chiarazampolli @noferini
I added a writer device, so we are able to merge the currents afterwards with the o2_tfidinfo.root manually.
I think for the async it would be then sufficient to run with

o2-ctf-reader-workflow --copy-cmd no-copy --onlyDet TOF --ctf-input "ctfs.list" --severity warning \
| o2-tof-reco-workflow --input-type none --output-type "clusters" --disable-mc --disable-root-output \
| o2-tof-integrate-cluster-workflow -b

@noferini
Copy link
Collaborator

@chiarazampolli @noferini I added a writer device, so we are able to merge the currents afterwards with the o2_tfidinfo.root manually. I think for the async it would be then sufficient to run with

o2-ctf-reader-workflow --copy-cmd no-copy --onlyDet TOF --ctf-input "ctfs.list" --severity warning \
| o2-tof-reco-workflow --input-type none --output-type "clusters" --disable-mc --disable-root-output \
| o2-tof-integrate-cluster-workflow -b

Hi @matthias-kleiner ,
it is very good to habe a writer as separate spec. Thanks for providing it.
Merging o2_tfidinfo.root will be not very comfortable for you since it doesn't scale very well to large stats.

Just in case it can help for TOF we do the following:

  • adding TFIDInfo to the calibration object (see DataFormats/Detectors/TOF/include/DataFormatsTOF/Diagnostic.h)
  • filling it in the spec O2/Detectors/TOF/workflow/src/EntropyDecoderSpec.cxx (TFIDInfo is provided by the framework) : lines 80-82
  • create a calib reader injecting both calib data and TFIDInfo: O2/Detectors/TOF/workflowIO/src/CalibInfoReaderSpec.cxx lines 54 and 82-87 for TFIDInfo

This allows us to merge all calib info as any root file and then just running on it with the reader + the workflow as in sync

@alibuild
Copy link
Collaborator

Error while checking build/O2/fullCI for 858a822 at 2023-01-23 20:14:

## sw/BUILD/o2checkcode-latest/log
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/Common/test/testGPUsortCUDA.cu:22:10: error: 'boost/test/unit_test.hpp' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUTracking/TRDTracking/GPUTRDTracker.cxx:37:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUTracking/Base/GPUReconstructionCPU.cxx:45:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUTracking/Base/GPUReconstruction.cxx:37:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUTracking/display/GPUDisplay.cxx:36:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUTracking/Base/cuda/GPUReconstructionCUDAGenRTC.cu:16:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/cuda/../Shared/Utils.h:26:10: error: 'boost/program_options.hpp' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/cuda/../Shared/Utils.h:26:10: error: 'boost/program_options.hpp' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/Framework/Logger/include/Framework/Logger.h:14:10: error: 'fairlogger/Logger.h' file not found [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:520:12: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:1059:69: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:1175:5: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:1852:16: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:2276:18: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:4336:16: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/sm_20_atomic_functions.h:89:39: error: redefinition of 'atomicAdd' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/Framework/Logger/include/Framework/Logger.h:14:10: error: 'fairlogger/Logger.h' file not found [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:520:12: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:1059:69: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:1175:5: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:1852:16: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:2276:18: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:4336:16: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/sm_20_atomic_functions.h:89:39: error: redefinition of 'atomicAdd' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/../Shared/Utils.h:146:34: error: use of undeclared identifier 'int4'; did you mean 'int'? [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:64:8: error: unknown type name '__host__' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:64:27: error: expected ';' after top level declarator [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:64:33: error: overloaded 'operator+=' must have at least one parameter of class or enumeration type [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:64:44: error: unknown type name 'int4'; did you mean 'int'? [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:64:53: error: unknown type name 'int4'; did you mean 'int'? [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:66:4: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:66:11: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:67:4: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:67:11: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:68:4: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:68:11: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:69:4: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:69:11: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:85:1: error: unknown type name '__global__' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:90:19: error: use of undeclared identifier 'blockIdx' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:90:32: error: use of undeclared identifier 'blockDim' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:90:45: error: use of undeclared identifier 'threadIdx' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:90:78: error: use of undeclared identifier 'blockDim' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/../Shared/Utils.h:146:34: error: use of undeclared identifier 'int4'; did you mean 'int'? [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/benchmark.hip.cxx:199:35: error: use of undeclared identifier 'int4'; did you mean 'int'? [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/Detectors/EMCAL/calibration/include/EMCALCalibration/EMCALCalibExtractor.h:36:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/Detectors/EMCAL/calibration/include/EMCALCalibration/EMCALCalibExtractor.h:36:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/Detectors/EMCAL/calibration/include/EMCALCalibration/EMCALCalibExtractor.h:36:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/Detectors/TOF/calibration/src/TOFChannelCalibrator.cxx:23:10: error: 'omp.h' file not found [clang-diagnostic-error]

Full log here.

@matthias-kleiner
Copy link
Contributor Author

@chiarazampolli @noferini I added a writer device, so we are able to merge the currents afterwards with the o2_tfidinfo.root manually. I think for the async it would be then sufficient to run with

o2-ctf-reader-workflow --copy-cmd no-copy --onlyDet TOF --ctf-input "ctfs.list" --severity warning \
| o2-tof-reco-workflow --input-type none --output-type "clusters" --disable-mc --disable-root-output \
| o2-tof-integrate-cluster-workflow -b

Hi @matthias-kleiner , it is very good to habe a writer as separate spec. Thanks for providing it. Merging o2_tfidinfo.root will be not very comfortable for you since it doesn't scale very well to large stats.

Just in case it can help for TOF we do the following:

* adding TFIDInfo to the calibration object (see DataFormats/Detectors/TOF/include/DataFormatsTOF/Diagnostic.h)

* filling it in the spec O2/Detectors/TOF/workflow/src/EntropyDecoderSpec.cxx (TFIDInfo is provided by the framework)  : lines   80-82

* create a calib reader injecting both calib data and TFIDInfo: O2/Detectors/TOF/workflowIO/src/CalibInfoReaderSpec.cxx  lines 54 and  82-87 for TFIDInfo

This allows us to merge all calib info as any root file and then just running on it with the reader + the workflow as in sync

@noferini Many thanks for your help. I am currently trying to implement the reader, but I am struggling to inject the TFIDInfo data. I am doing it like here

timingInfo.firstTForbit = info.firstTForbit;
, but the o2-tof-merge-integrate-cluster-workflow which receives the data gets for each run call only the same TFInfos i.e. only the first value I injected in the loop. Is there something I am missing, like some update method or something?

I was also looking how it is done for the HBFUtilsInitializer and they are setting some CallbacksPolicy:

void HBFUtilsInitializer::addNewTimeSliceCallback(std::vector<o2::framework::CallbacksPolicy>& policies)

I was testing and implemented some dummy CallbacksPolicy which seems to work and correctly updates the TFInfo for each run call, but I am not sure if something like this would be the appropriate solution for injecting the TFInfos

void customize(std::vector<o2::framework::CallbacksPolicy>& policies)
{
  // o2::raw::HBFUtilsInitializer::addNewTimeSliceCallback(policies);
  policies.push_back(o2::framework::CallbacksPolicy{
    [](o2::framework::DeviceSpec const& spec, o2::framework::ConfigContext const& context) -> bool {
      return true;
    },
    [](o2::framework::CallbackService& service, o2::framework::InitContext& context) {
      uint32_t delay = 10;
      service.set(o2::framework::CallbackService::Id::NewTimeslice,
                  [offset = 10, startTime = 20, orbitFirst = 30, runNumber = 40, delay](o2::header::DataHeader& dh, o2::framework::DataProcessingHeader& dph) {
                    int increment = 10;
                    dh.firstTForbit = offset + increment * dh.tfCounter;
                    dh.runNumber = runNumber;
                    dph.creation = startTime + (dh.firstTForbit - orbitFirst);
                    usleep(delay);
                  });
    }});
}

@matthias-kleiner
Copy link
Contributor Author

I think the problem is, that I was sending several messages per run function. I will try later with only one message (entry in the TTree) per run call. I assume then it will work

- writing TFIDInfo to TTree
- moving writer to workflowIO
@matthias-kleiner
Copy link
Contributor Author

Hello @noferini I added the reader and tested it.
So for the async it would be something like
o2-ctf-reader-workflow --copy-cmd no-copy --onlyDet TOF --ctf-input list.txt --severity warning | o2-tof-reco-workflow --input-type none --output-type "clusters" --disable-mc --disable-root-output | o2-tof-integrate-cluster-workflow -b

and for merging the output files
o2-tof-integrate-cluster-reader-workflow --tofcurrents-infiles list.txt | o2-tof-merge-integrate-cluster-workflow --debug true -b

I think this would be fine? Do you have any more suggestions?

Copy link
Collaborator

@noferini noferini left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @matthias-kleiner ,
many thanks!
You were very fast.
Cheers,
Francesco

@alibuild
Copy link
Collaborator

Error while checking build/O2/fullCI for 773b62b at 2023-01-24 22:44:

## sw/BUILD/o2checkcode-latest/log
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/Common/test/testGPUsortCUDA.cu:22:10: error: 'boost/test/unit_test.hpp' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUTracking/TRDTracking/GPUTRDTracker.cxx:37:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUTracking/Base/GPUReconstruction.cxx:37:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUTracking/Base/GPUReconstructionCPU.cxx:45:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUTracking/display/GPUDisplay.cxx:36:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUTracking/Base/cuda/GPUReconstructionCUDAGenRTC.cu:16:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/cuda/../Shared/Utils.h:26:10: error: 'boost/program_options.hpp' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/cuda/../Shared/Utils.h:26:10: error: 'boost/program_options.hpp' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/Framework/Logger/include/Framework/Logger.h:14:10: error: 'fairlogger/Logger.h' file not found [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:520:12: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:1059:69: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:1175:5: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:1852:16: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:2276:18: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:4336:16: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/sm_20_atomic_functions.h:89:39: error: redefinition of 'atomicAdd' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/Framework/Logger/include/Framework/Logger.h:14:10: error: 'fairlogger/Logger.h' file not found [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:520:12: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:1059:69: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:1175:5: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:1852:16: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:2276:18: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/cuda/std/detail/libcxx/include/type_traits:4336:16: error: CUDA device code does not support variadic functions [clang-diagnostic-error]
/usr/local/cuda-11.7/include/sm_20_atomic_functions.h:89:39: error: redefinition of 'atomicAdd' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/../Shared/Utils.h:146:34: error: use of undeclared identifier 'int4'; did you mean 'int'? [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/benchmark.hip.cxx:199:35: error: use of undeclared identifier 'int4'; did you mean 'int'? [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/../Shared/Utils.h:146:34: error: use of undeclared identifier 'int4'; did you mean 'int'? [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:64:8: error: unknown type name '__host__' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:64:27: error: expected ';' after top level declarator [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:64:33: error: overloaded 'operator+=' must have at least one parameter of class or enumeration type [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:64:44: error: unknown type name 'int4'; did you mean 'int'? [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:64:53: error: unknown type name 'int4'; did you mean 'int'? [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:66:4: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:66:11: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:67:4: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:67:11: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:68:4: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:68:11: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:69:4: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:69:11: error: member reference base type 'int' is not a structure or union [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:85:1: error: unknown type name '__global__' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:90:19: error: use of undeclared identifier 'blockIdx' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:90:32: error: use of undeclared identifier 'blockDim' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:90:45: error: use of undeclared identifier 'threadIdx' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:90:78: error: use of undeclared identifier 'blockDim' [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/Detectors/EMCAL/calibration/include/EMCALCalibration/EMCALCalibExtractor.h:36:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/Detectors/EMCAL/calibration/include/EMCALCalibration/EMCALCalibExtractor.h:36:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/Detectors/EMCAL/calibration/include/EMCALCalibration/EMCALCalibExtractor.h:36:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10608-slc8_x86-64/0/Detectors/TOF/calibration/src/TOFChannelCalibrator.cxx:23:10: error: 'omp.h' file not found [clang-diagnostic-error]

Full log here.

@matthias-kleiner
Copy link
Contributor Author

Hi @matthias-kleiner , many thanks! You were very fast. Cheers, Francesco

Hi @noferini okay thanks. Should I squash the commits or is it fine like it is?

@noferini
Copy link
Collaborator

Hi @matthias-kleiner , it is fine with me.

FullCI fails with the error
[ERROR] pid 30048 (internal-dpl-ccdb-backend) crashed with 128

I think this is not related to this PR... pinging @shahor02 and @ktf . Can you merge it?

@matthias-kleiner
Copy link
Contributor Author

Hello @shahor02 @ktf can you merge this PR?

@shahor02 shahor02 merged commit 7a34dfc into AliceO2Group:dev Jan 26, 2023
matthias-kleiner added a commit to matthias-kleiner/AliceO2 that referenced this pull request Feb 1, 2023
FT0,FV0,TPC: The workflows for the integrated currents are analog to the worfklows for the TOF (integration of the cluster, writing of the clusters to file, reading in the clusters and merging the clusters to contigous intervals)
- integrated currents can be stored in the CCDB or in local files
- see for the TOF PR for further details AliceO2Group#10608
- examples of the integrated currents and use case for FT0,FV0,TOF,TPC https://indico.cern.ch/event/1237926/contributions/5251727/attachments/2585970/4461305/ATO-615O2%20Multiplicity%20counters%20-%20normalization%20and%20interactive%20visualization-3.pdf

TOF
- templating TOFIntegratedClusterCalibrator to be able to use the same calibratior for different detectors
- Adding filtering of noise during integration of currents
- Add option to store calibration objects to local files

TPC:
- IDCFactorization: parallelising writing of files for speed up
- removing unneded code for integrated clusters which was in the IDC chain
- Integrated cluster processing can be done in 1D (faster, less memory consumption, outliers e.g. out-of-sync FECs are not taken into account) or in 3D (outliers taken into account)

Running the workflows for all the currents from list of input files:

ARGS_ALL="--shm-segment-size 50000000000"
o2-ctf-reader-workflow --copy-cmd no-copy  --onlyDet FT0,FV0,TOF,TPC --ctf-input "list.txt" --severity warning $ARGS_ALL \
| o2-ft0-reco-workflow --disable-mc --disable-root-input --disable-root-output \
| o2-ft0-integrate-cluster-workflow --disable-root-output \
| o2-fv0-reco-workflow --disable-mc --disable-root-input --disable-root-output \
| o2-fv0-integrate-cluster-workflow --disable-root-output \
| o2-ft0-merge-integrate-cluster-workflow --dump-calib-data --meta-output-dir none \
| o2-fv0-merge-integrate-cluster-workflow --dump-calib-data --meta-output-dir none \
| o2-tof-reco-workflow --input-type none --output-type "clusters" --disable-mc --disable-root-output $ARGS_ALL \
| o2-tof-integrate-cluster-workflow --disable-root-output \
| o2-tof-merge-integrate-cluster-workflow --dump-calib-data --meta-output-dir none \
| o2-tpc-reco-workflow --input-type compressed-clusters-ctf --output-type "clusters,disable-writer" --disable-mc \
| o2-tpc-integrate-cluster-workflow $ARGS_ALL --disable-root-output \
| o2-tpc-merge-integrate-cluster-workflow --dump-calib-data --meta-output-dir none --nthreads 32 --enableWritingPadStatusMap -b
matthias-kleiner added a commit to matthias-kleiner/AliceO2 that referenced this pull request Feb 3, 2023
FT0,FV0,TPC: The workflows for the integrated currents are analog to the worfklows for the TOF (integration of the cluster, writing of the clusters to file, reading in the clusters and merging the clusters to contigous intervals)
- integrated currents can be stored in the CCDB or in local files
- see for the TOF PR for further details AliceO2Group#10608
- examples of the integrated currents and use case for FT0,FV0,TOF,TPC https://indico.cern.ch/event/1237926/contributions/5251727/attachments/2585970/4461305/ATO-615O2%20Multiplicity%20counters%20-%20normalization%20and%20interactive%20visualization-3.pdf

TOF
- templating TOFIntegratedClusterCalibrator to be able to use the same calibratior for different detectors
- Adding filtering of noise during integration of currents
- Add option to store calibration objects to local files

TPC:
- IDCFactorization: parallelising writing of files for speed up
- removing unneded code for integrated clusters which was in the IDC chain
- Integrated cluster processing can be done in 1D (faster, less memory consumption, outliers e.g. out-of-sync FECs are not taken into account) or in 3D (outliers taken into account)

Running the workflows for all the currents from list of input files:

ARGS_ALL="--shm-segment-size 50000000000"
o2-ctf-reader-workflow --copy-cmd no-copy  --onlyDet FT0,FV0,TOF,TPC --ctf-input "list.txt" --severity warning $ARGS_ALL \
| o2-ft0-reco-workflow --disable-mc --disable-root-input --disable-root-output \
| o2-ft0-integrate-cluster-workflow --disable-root-output \
| o2-fv0-reco-workflow --disable-mc --disable-root-input --disable-root-output \
| o2-fv0-integrate-cluster-workflow --disable-root-output \
| o2-ft0-merge-integrate-cluster-workflow --dump-calib-data --meta-output-dir none \
| o2-fv0-merge-integrate-cluster-workflow --dump-calib-data --meta-output-dir none \
| o2-tof-reco-workflow --input-type none --output-type "clusters" --disable-mc --disable-root-output $ARGS_ALL \
| o2-tof-integrate-cluster-workflow --disable-root-output \
| o2-tof-merge-integrate-cluster-workflow --dump-calib-data --meta-output-dir none \
| o2-tpc-reco-workflow --input-type compressed-clusters-ctf --output-type "clusters,disable-writer" --disable-mc \
| o2-tpc-integrate-cluster-workflow $ARGS_ALL --disable-root-output \
| o2-tpc-merge-integrate-cluster-workflow --dump-calib-data --meta-output-dir none --nthreads 32 --enableWritingPadStatusMap -b
davidrohr pushed a commit that referenced this pull request Feb 4, 2023
* FT0/FV0/TPC: adding workflows for integrated currents

FT0,FV0,TPC: The workflows for the integrated currents are analog to the worfklows for the TOF (integration of the cluster, writing of the clusters to file, reading in the clusters and merging the clusters to contigous intervals)
- integrated currents can be stored in the CCDB or in local files
- see for the TOF PR for further details #10608
- examples of the integrated currents and use case for FT0,FV0,TOF,TPC https://indico.cern.ch/event/1237926/contributions/5251727/attachments/2585970/4461305/ATO-615O2%20Multiplicity%20counters%20-%20normalization%20and%20interactive%20visualization-3.pdf

TOF
- templating TOFIntegratedClusterCalibrator to be able to use the same calibratior for different detectors
- Adding filtering of noise during integration of currents
- Add option to store calibration objects to local files

TPC:
- IDCFactorization: parallelising writing of files for speed up
- removing unneded code for integrated clusters which was in the IDC chain
- Integrated cluster processing can be done in 1D (faster, less memory consumption, outliers e.g. out-of-sync FECs are not taken into account) or in 3D (outliers taken into account)

Running the workflows for all the currents from list of input files:

ARGS_ALL="--shm-segment-size 50000000000"
o2-ctf-reader-workflow --copy-cmd no-copy  --onlyDet FT0,FV0,TOF,TPC --ctf-input "list.txt" --severity warning $ARGS_ALL \
| o2-ft0-reco-workflow --disable-mc --disable-root-input --disable-root-output \
| o2-ft0-integrate-cluster-workflow --disable-root-output \
| o2-fv0-reco-workflow --disable-mc --disable-root-input --disable-root-output \
| o2-fv0-integrate-cluster-workflow --disable-root-output \
| o2-ft0-merge-integrate-cluster-workflow --dump-calib-data --meta-output-dir none \
| o2-fv0-merge-integrate-cluster-workflow --dump-calib-data --meta-output-dir none \
| o2-tof-reco-workflow --input-type none --output-type "clusters" --disable-mc --disable-root-output $ARGS_ALL \
| o2-tof-integrate-cluster-workflow --disable-root-output \
| o2-tof-merge-integrate-cluster-workflow --dump-calib-data --meta-output-dir none \
| o2-tpc-reco-workflow --input-type compressed-clusters-ctf --output-type "clusters,disable-writer" --disable-mc \
| o2-tpc-integrate-cluster-workflow $ARGS_ALL --disable-root-output \
| o2-tpc-merge-integrate-cluster-workflow --dump-calib-data --meta-output-dir none --nthreads 32 --enableWritingPadStatusMap -b

* Fixing clang-format, wrong copyright notice

* Moving TOFIntegratedClusterCalibrator to DetectorsCalibration/IntegratedClusterCalibrator
aphecetche pushed a commit to aphecetche/AliceO2 that referenced this pull request Feb 4, 2023
…0663)

* FT0/FV0/TPC: adding workflows for integrated currents

FT0,FV0,TPC: The workflows for the integrated currents are analog to the worfklows for the TOF (integration of the cluster, writing of the clusters to file, reading in the clusters and merging the clusters to contigous intervals)
- integrated currents can be stored in the CCDB or in local files
- see for the TOF PR for further details AliceO2Group#10608
- examples of the integrated currents and use case for FT0,FV0,TOF,TPC https://indico.cern.ch/event/1237926/contributions/5251727/attachments/2585970/4461305/ATO-615O2%20Multiplicity%20counters%20-%20normalization%20and%20interactive%20visualization-3.pdf

TOF
- templating TOFIntegratedClusterCalibrator to be able to use the same calibratior for different detectors
- Adding filtering of noise during integration of currents
- Add option to store calibration objects to local files

TPC:
- IDCFactorization: parallelising writing of files for speed up
- removing unneded code for integrated clusters which was in the IDC chain
- Integrated cluster processing can be done in 1D (faster, less memory consumption, outliers e.g. out-of-sync FECs are not taken into account) or in 3D (outliers taken into account)

Running the workflows for all the currents from list of input files:

ARGS_ALL="--shm-segment-size 50000000000"
o2-ctf-reader-workflow --copy-cmd no-copy  --onlyDet FT0,FV0,TOF,TPC --ctf-input "list.txt" --severity warning $ARGS_ALL \
| o2-ft0-reco-workflow --disable-mc --disable-root-input --disable-root-output \
| o2-ft0-integrate-cluster-workflow --disable-root-output \
| o2-fv0-reco-workflow --disable-mc --disable-root-input --disable-root-output \
| o2-fv0-integrate-cluster-workflow --disable-root-output \
| o2-ft0-merge-integrate-cluster-workflow --dump-calib-data --meta-output-dir none \
| o2-fv0-merge-integrate-cluster-workflow --dump-calib-data --meta-output-dir none \
| o2-tof-reco-workflow --input-type none --output-type "clusters" --disable-mc --disable-root-output $ARGS_ALL \
| o2-tof-integrate-cluster-workflow --disable-root-output \
| o2-tof-merge-integrate-cluster-workflow --dump-calib-data --meta-output-dir none \
| o2-tpc-reco-workflow --input-type compressed-clusters-ctf --output-type "clusters,disable-writer" --disable-mc \
| o2-tpc-integrate-cluster-workflow $ARGS_ALL --disable-root-output \
| o2-tpc-merge-integrate-cluster-workflow --dump-calib-data --meta-output-dir none --nthreads 32 --enableWritingPadStatusMap -b

* Fixing clang-format, wrong copyright notice

* Moving TOFIntegratedClusterCalibrator to DetectorsCalibration/IntegratedClusterCalibrator
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

5 participants