AliceO2 icon indicating copy to clipboard operation
AliceO2 copied to clipboard

[MCH] add electronic noise and time response

Open pillot opened this issue 2 years ago • 2 comments

Improve the realism of the electronic response by:

  • adding electronic noise to physical signals
  • generating noise-only signals
  • adding dispersion of the effective ADC threshold
  • adding time dispersion of the response
  • handling signal pileup within the readout window

The last point is more a protection against the little probability of generating multiple digits on the same pad in nearby ROFs than a precise handling of overlapping signals. The latter, if needed, would require a complete simulation of the electronic response.

All this is parametrizable through configurable parameters in DigitizerParam.

I still need to perform a few tests and adjust the current parameters, so please to not merge this PR yet.

pillot avatar Oct 27 '22 12:10 pillot

Error while checking build/O2/fullCI for 10cd6b3a84a1ac82f1f011eb161f0401a27eaa3e at 2022-10-27 17:40:

## sw/BUILD/O2-latest/log
/sw/SOURCES/O2/10175-slc8_x86-64/0/Detectors/MUON/MCH/Simulation/test/testDigitizer.cxx:120:73: error: no matching function for call to 'max(long long int, int64_t)'
ninja: build stopped: subcommand failed.

Full log here.

alibuild avatar Oct 27 '22 15:10 alibuild

Error while checking build/O2/fullCI for 0b888b43ac9137701de12494a47bb4ed63dac955 at 2022-10-28 01:00:

## sw/BUILD/O2-latest/log
/sw/SOURCES/O2/10175-slc8_x86-64/0/Steer/DigitizerWorkflow/src/MCHDigitizerSpec.cxx:97:96: error: no matching function for call to 'max(long long int, int64_t)'
ninja: build stopped: subcommand failed.

Full log here.

alibuild avatar Oct 27 '22 23:10 alibuild

Error while checking build/O2/fullCI for af10ee094055d0865be1ec7b922ea2a790629dbc at 2022-10-28 12:59:

## sw/BUILD/o2checkcode-latest/log
/sw/SOURCES/O2/10175-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/10175-slc8_x86-64/0/GPU/GPUTracking/Base/GPUReconstruction.cxx:37:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10175-slc8_x86-64/0/GPU/GPUTracking/Base/GPUReconstructionCPU.cxx:45:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10175-slc8_x86-64/0/GPU/GPUTracking/TRDTracking/GPUTRDTracker.cxx:37:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10175-slc8_x86-64/0/GPU/GPUTracking/display/GPUDisplay.cxx:36:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10175-slc8_x86-64/0/GPU/GPUTracking/Base/cuda/GPUReconstructionCUDAGenRTC.cu:16:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10175-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/10175-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/10175-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/10175-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:64:8: error: unknown type name '__host__' [clang-diagnostic-error]
/sw/SOURCES/O2/10175-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:64:27: error: expected ';' after top level declarator [clang-diagnostic-error]
/sw/SOURCES/O2/10175-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/10175-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/10175-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/10175-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/10175-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/10175-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/10175-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/10175-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/10175-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/10175-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/10175-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/10175-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:85:1: error: unknown type name '__global__' [clang-diagnostic-error]
/sw/SOURCES/O2/10175-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:90:19: error: use of undeclared identifier 'blockIdx' [clang-diagnostic-error]
/sw/SOURCES/O2/10175-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:90:32: error: use of undeclared identifier 'blockDim' [clang-diagnostic-error]
/sw/SOURCES/O2/10175-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:90:45: error: use of undeclared identifier 'threadIdx' [clang-diagnostic-error]
/sw/SOURCES/O2/10175-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:90:78: error: use of undeclared identifier 'blockDim' [clang-diagnostic-error]
/sw/SOURCES/O2/10175-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/10175-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/10175-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/10175-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/10175-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/10175-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/10175-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/10175-slc8_x86-64/0/Detectors/TOF/calibration/src/TOFChannelCalibrator.cxx:23:10: error: 'omp.h' file not found [clang-diagnostic-error]

Full log here.

alibuild avatar Oct 28 '22 10:10 alibuild

The 2 build errors are unrelated so this PR is now ready for review. All parameters have been tuned to the data, except the time dispersion that is set to 0 for now because it requires some changes in the time clustering to be activated in MC (will be done later in a separate PR).

pillot avatar Nov 24 '22 08:11 pillot

Hi @shahor02, can you merge this PR please?

pillot avatar Nov 29 '22 13:11 pillot

Hi @sawenzel, can you merge this PR please?

pillot avatar Dec 01 '22 09:12 pillot

@shahor02 @sawenzel @benedikt-voelkel could someone please merge this one ? Thanks.

aphecetche avatar Dec 05 '22 14:12 aphecetche

@shahor02 @sawenzel @benedikt-voelkel this PR is (still) ready to be merged...

aphecetche avatar Dec 13 '22 10:12 aphecetche

Error while checking build/O2/fullCI for a3f66514b64fe5d74494b50320ebe3231e5cb430 at 2023-01-05 02:16:

## sw/BUILD/o2checkcode-latest/log
/sw/SOURCES/O2/10175-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/10175-slc8_x86-64/0/GPU/GPUTracking/TRDTracking/GPUTRDTracker.cxx:37:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10175-slc8_x86-64/0/GPU/GPUTracking/Base/GPUReconstruction.cxx:37:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10175-slc8_x86-64/0/GPU/GPUTracking/Base/GPUReconstructionCPU.cxx:45:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10175-slc8_x86-64/0/GPU/GPUTracking/display/GPUDisplay.cxx:36:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10175-slc8_x86-64/0/GPU/GPUTracking/Base/cuda/GPUReconstructionCUDAGenRTC.cu:16:10: error: 'omp.h' file not found [clang-diagnostic-error]
/sw/SOURCES/O2/10175-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/10175-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/10175-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/10175-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/10175-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/10175-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:64:8: error: unknown type name '__host__' [clang-diagnostic-error]
/sw/SOURCES/O2/10175-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:64:27: error: expected ';' after top level declarator [clang-diagnostic-error]
/sw/SOURCES/O2/10175-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/10175-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/10175-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/10175-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/10175-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/10175-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/10175-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/10175-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/10175-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/10175-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/10175-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/10175-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:85:1: error: unknown type name '__global__' [clang-diagnostic-error]
/sw/SOURCES/O2/10175-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:90:19: error: use of undeclared identifier 'blockIdx' [clang-diagnostic-error]
/sw/SOURCES/O2/10175-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:90:32: error: use of undeclared identifier 'blockDim' [clang-diagnostic-error]
/sw/SOURCES/O2/10175-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:90:45: error: use of undeclared identifier 'threadIdx' [clang-diagnostic-error]
/sw/SOURCES/O2/10175-slc8_x86-64/0/GPU/GPUbenchmark/hip/Kernels.hip.cxx:90:78: error: use of undeclared identifier 'blockDim' [clang-diagnostic-error]
/sw/SOURCES/O2/10175-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/10175-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/10175-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/10175-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/10175-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/10175-slc8_x86-64/0/Detectors/TOF/calibration/src/TOFChannelCalibrator.cxx:23:10: error: 'omp.h' file not found [clang-diagnostic-error]

Full log here.

alibuild avatar Jan 05 '23 01:01 alibuild

@sawenzel could you merge this one please ? It's been ready for merging for a long time, but I can't merge it myself (because of the change in Steer/DigitizerWorkflow/src/MCHDigitizerSpec.cxx I assume)

aphecetche avatar Jan 12 '23 14:01 aphecetche

@sawenzel : could you merge this PR please? I am developping improvements on top of this branch and I would like to do my PR soon as well.

mwinn2 avatar Jan 16 '23 09:01 mwinn2