Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
324 commits
Select commit Hold shift + click to select a range
36cee8c
GPU TPC: Send TPC trigger words with orbit information
davidrohr Sep 20, 2023
a77717b
GPU TPC: Always send TPC TRIGGERWORD in gpu-reconstruction, sending e…
davidrohr Sep 20, 2023
94930f4
GPU TPC: always enable triggerHandling in tpc-reco workflow and in gp…
davidrohr Sep 20, 2023
4a8cbc3
GPU: Use double-pipeline within DPL
davidrohr Aug 28, 2020
4d5aea8
GPU Workflow: Workaround for multi-threaded pipeline step 1: alternat…
davidrohr Sep 19, 2023
5c1f7f3
DPL: inject missing data (#11925)
ktf Sep 21, 2023
2b5eb93
Fix TRD pile-up information (#11924)
martenole Sep 21, 2023
d66f715
TPC: Add DCAr histograms to TPC QC Tracks component (#11909)
wiechula Sep 21, 2023
53942dc
Fix missing include
davidrohr Sep 20, 2023
eeea684
Add TPC trigger info to CTF
shahor02 Sep 20, 2023
b52ba0a
Add TPC trigger reader/writer
shahor02 Sep 20, 2023
94a5ff0
gpu-reco request tpc-trigger outputs only with raw input
shahor02 Sep 21, 2023
8d60663
Fix disable output file writing of ED in FST
martenole Sep 21, 2023
241f893
LTF and CA tracking parameters refined (alignment considerations)
robincaron13 Sep 5, 2023
3a44d7b
Bump catch2 to 3.4.0 to try C++20 support (#11930)
ktf Sep 21, 2023
e45d592
Add CTP Lumi inputs to its CTF header (#11935)
shahor02 Sep 22, 2023
22e7fec
TRD raw stats add TFID info (#11888)
martenole Sep 22, 2023
641cd11
DPL: do not inject DISTSUBTIMEFRAME
ktf Sep 21, 2023
3b1cdc8
[EMCAL-795] Reject ALTRO bunches with impossible length and pages wit…
mfasDa Sep 21, 2023
1584d17
GPU: Clarify some function names
davidrohr Sep 21, 2023
8b51bf8
GPU TPC: Add option to downscale TPC dEdx computation
davidrohr Sep 21, 2023
4ff44d6
GPU Standalone Benchmark: fix enabling dEdx
davidrohr Sep 21, 2023
108a915
Add labelled string array
njacazio Jul 28, 2023
ef2e600
Fix TPC CTF in the linkdef
shahor02 Sep 22, 2023
3f0a200
DPL: Shorten and downscale message when injecting missing data
davidrohr Sep 21, 2023
c2c984f
Sync workflow: inject missing data at raw-proxy level, and don't expe…
davidrohr Sep 21, 2023
6b40ac4
DPL / TPC: Fix printing 0xDEADBEEF alarm when using RawPageSequencer
davidrohr Sep 22, 2023
586fe6e
GPU: Fix initialization of the 2 GPUReconstruction instances for doub…
davidrohr Sep 22, 2023
42adc0b
GPU: Add gpu-reconstruction-prepare device, forwarding the pointers t…
davidrohr Sep 22, 2023
4987c98
GPU: Implement out-of-band message from prepare device to GPU device …
davidrohr Sep 22, 2023
605b2e7
GPU: Make receiving from out-of-band channel asynchronous
davidrohr Sep 23, 2023
aa2a783
GPU Standalone multi-threading: handle end-of-stream over out-of-band…
davidrohr Sep 23, 2023
c2ef83c
TPC: Support callback in SectorCompletionPolicy that defines an ordering
davidrohr Sep 23, 2023
a595585
GPU: Ensure that gpu-prepare-workflow and gpu-workflow process time f…
davidrohr Sep 23, 2023
cd9d179
GPU: Make setting updated calib objects / applying them thread-safe
davidrohr Sep 24, 2023
594bb32
GPU Workflow: Run 2 threads for the async pipelines, and dispatch the…
davidrohr Sep 24, 2023
909ff1b
GPU: Combine consecutive calib updates if not applied meanwhile
davidrohr Sep 24, 2023
a08adda
GPU TPC: Cache TPC triggers internally for some time, and output them…
davidrohr Sep 24, 2023
966b5fb
GPU: Add optional callback to wait for update of inputs (and outputs)…
davidrohr Sep 24, 2023
64e93d4
GPU: Finalize double-pipeline processing earlier, to prevent deadlock…
davidrohr Sep 24, 2023
b716c75
dpl-workflow: do not event display on MI100 nodes in online operation
davidrohr Sep 24, 2023
f665780
Revert TOF CTF precompressed timeTDCInc to uint16_t
shahor02 Sep 24, 2023
199a1db
DPL: Rename reworkEnv to reworkTimeslicePlaceholder and apply it also…
davidrohr Sep 24, 2023
c4d7bbd
GPU: Support standalone multi-threading with more than 1 GPU per work…
davidrohr Sep 24, 2023
c0a075e
GPU Interface: Support a callback for providing final set of inputs a…
davidrohr Sep 24, 2023
b3e4aae
GPU Interface: meanwhile we should be able to dump events in double-p…
davidrohr Sep 24, 2023
abea107
GPU Benchmark: Improve error message, since I had forgotten how it wo…
davidrohr Sep 24, 2023
e1bc691
GPU: Relaxed delayedOutput constraints
davidrohr Sep 24, 2023
db6adf3
GPU Workflow: start processing early asynchronously if possible, upda…
davidrohr Sep 24, 2023
0dbaaad
dev: get lhc filling from LHC IF
lietava Sep 13, 2023
f8e9bb2
clang
lietava Sep 13, 2023
13b0b42
fix: in CTPsaclers det counts are replaced by input counts needed for…
lietava Sep 24, 2023
916568c
clang
lietava Sep 24, 2023
2a158cd
Increment ClassDefs
shahor02 Sep 25, 2023
d06f15b
dpl-workflow: Limit number of nodes in multiplicity computation to 23…
davidrohr Sep 25, 2023
d27c4f8
Extract both lumis from CTP CTF
shahor02 Sep 22, 2023
f290030
Add options to rescale CTP lumi and select its source used for TPC co…
shahor02 Sep 22, 2023
f9711ba
o2-sim: Better VMC shutdown (via plugin code)
sawenzel Sep 21, 2023
ef02480
GPU: Reduce verbosity
davidrohr Sep 25, 2023
875d0d6
GPU: Improve scheduling of synchronization of finalization of output …
davidrohr Sep 25, 2023
d8c51aa
GPU double-pipeline: Do calib updates during last sectors of clusteri…
davidrohr Sep 25, 2023
08bba36
Denote deadbeef error to warning
martenole Sep 25, 2023
52ddf8d
DPL: inject firstTForbit and tfCounter when missing (#11953)
ktf Sep 25, 2023
8f8fea6
FST: Make DD wait time configurable
davidrohr Sep 25, 2023
2189c87
GPU: Clean up multi-threading, fix START/STOP/START for the future, d…
davidrohr Sep 25, 2023
b3e10d2
GPU QA: Use single GPU QA instance for double-pipeline
davidrohr Sep 25, 2023
d40d422
GPU SA MultiThreading: transfer SHM region id per pointer not per TF
davidrohr Sep 25, 2023
f3b4206
Suppres duplicate matches from ITS track clones on sector edges (#11958)
shahor02 Sep 26, 2023
15be311
[EMCAL-1044] Sort towers in DDL according to FEC ID
mfasDa Sep 25, 2023
3b6525c
Add the noise map clear function in Detectors/ITSMFT/MFT/condition/sr…
syano0822 Sep 26, 2023
702e470
Removing overlaps of carbon plates
Sep 20, 2023
c72c4ef
Update HeatExchanger.cxx
frmanso Sep 21, 2023
e314a90
adjusting TOF calib info alignment to BC
noferini Sep 13, 2023
0b24762
dpl-workflow: With NUMAGPUIDS, we expect 5 region callbacks not 4
davidrohr Sep 26, 2023
aa60d49
DPL: fix race condition with the delivery of region events (#11961)
ktf Sep 26, 2023
99aaf3a
DPL: Do not inject at EndOfStream
davidrohr Sep 26, 2023
a29f636
GPU SA MultiThreading: Run async receiveThread only once DPL invoked …
davidrohr Sep 26, 2023
78e0835
GPU: Bugfix for GPU QA in double-pipeline mode
davidrohr Sep 26, 2023
68e16f2
DPL Analysis: unified getter for a group of simple-typed columns (#11…
aalkin Sep 27, 2023
64244eb
Avoid crashes when CTP is not loaded
fmazzasc Sep 26, 2023
1dbb1b5
Fix namespace pollution from `std` and `o2::constants` (#11851)
vkucera Sep 27, 2023
04683d7
adjust TS size for TOF sync calib
noferini Sep 27, 2023
d9ad5d8
GPU: Fix standalone multithreading, policy order check was not enabled
davidrohr Sep 27, 2023
90b11c9
GPU: Delay only processing of async message not receiving, to fill co…
davidrohr Sep 27, 2023
1035649
TPC: Fix SectorCompletionPolicy, should retry instead of wait if all …
davidrohr Sep 27, 2023
9f8614b
svertexer: bug fix for tpc-only tracks
f3sch Sep 28, 2023
81786f2
ctpdevL input scalers (#11970)
lietava Sep 28, 2023
8f1c9bb
Disable strangeness tracking in pbpb (on in pp) by default
shahor02 Sep 27, 2023
89a58a4
AODProducer: Code cleanup and optimization
sawenzel Sep 27, 2023
f7de0aa
[EMCAL-918] Handling corrupted trailer words
mfasDa May 9, 2023
396d881
[EMCAL-1045] Skip FMQ payload in case of corrupted RDH
mfasDa Sep 28, 2023
19633b4
[EMCAL-534] Remove message about missing trailer word from AltroDecoder
mfasDa Sep 28, 2023
befad7d
[EMCAL-834] Discard only events instead of TF in link checker
mfasDa Sep 28, 2023
ecc6f70
fix in TOF matcher for calib
noferini Sep 29, 2023
5278410
[ITS3] Implement small fixes for ITS3 geometry
fgrosa Sep 28, 2023
b3c76ba
Disable simulation shared mem on APPLE
sawenzel Sep 27, 2023
3097678
added getPitch for DEDigitizer calc.
mwinn2 Jan 6, 2023
651d27f
Stop CTFreader asap to avoid empty run cycle
shahor02 Sep 29, 2023
3df9451
Strangeness tracking: tighter cut on grid granularity (#11979)
fmazzasc Sep 30, 2023
dad2a17
Fix CTP entropy encoder to handle dummy lumi inputs
shahor02 Sep 30, 2023
0d25396
Protect CorrectionMapsLoader against dummy LumiInfo
shahor02 Sep 30, 2023
340cfa5
Protect RecoContainer against empty LumiInfo input
shahor02 Sep 30, 2023
2ff6fbf
ALPIDE event decoding: added FLUSHED_INCOMPLETE and STROBE_EXTENDED …
freidt Sep 30, 2023
27ad4d8
add tpc-triggers to tpc-reco when root output is requested
shahor02 Sep 30, 2023
8259cd3
TPC: add option to not sample first n TFs
matthias-kleiner Sep 29, 2023
0e048b7
TrackStudy should process only selected sources
shahor02 Sep 30, 2023
d7f3b03
GPU Workflow: Fix refactoring of input processing
davidrohr Sep 29, 2023
701fc29
GPU: Clean up deletion of old calib objects
davidrohr Sep 30, 2023
24d5c9c
GPU: Fix merging of calib updates
davidrohr Sep 30, 2023
a29a880
[EMCAL-1046] Swap HG and LG at overflow cut
mfasDa Sep 29, 2023
51bc3fa
Check if FileFetcher is done for early stop on empty queue (fix for P…
shahor02 Oct 1, 2023
3eaa11b
dpl-workflow: make GPU double-pipeline the default for EPN and FST
davidrohr Oct 1, 2023
c626978
[ITS3] Improve transformation of coordinates and digitisation (#11965)
fgrosa Oct 2, 2023
6d3ffd0
Fix: CTPinputs from prev BC were filled for BCs w/o CTP input
shahor02 Oct 2, 2023
de977ea
ctpinputs-decoding-ctf to ignore-ctpinputs-decoding-ctf
lietava Oct 2, 2023
6e6c10e
Transfer all lumi scaling settings between alternating CorrectionMaps…
shahor02 Oct 2, 2023
0f7aec1
Make TRD raw reader more fault tolerant, allow fixing n time bins
martenole Oct 2, 2023
e1229ac
Avoid injecting data unexpectedly (#11995)
ktf Oct 3, 2023
81a4232
check fill scheme to clean FT0 BC in TOF calibs
noferini Oct 3, 2023
c3355cd
MCTrack: Generalize hit bit property
sawenzel Sep 14, 2023
258f604
Fix macro tests when using boost 1.82 / 1.83 (#12007)
ktf Oct 3, 2023
a0699f1
Add Alice3 absorber
jmunozme Oct 2, 2023
4d396f1
Fix deprecation warning (#12006)
ktf Oct 4, 2023
d6fa38b
Decrease max error count, err->warn for *Wrong order/duplication*
shahor02 Oct 3, 2023
0d766df
TRD PH calib send dummy message even if STOP requested
martenole Oct 3, 2023
db84bf6
[rANS] Enforce Consistent Histograms
MichaelLettrich Oct 2, 2023
42d1c81
[rANS] Fix Compiler Warnings
MichaelLettrich Oct 3, 2023
c83bd66
MID: Downscale InfoLogger errors temporarily
davidrohr Oct 4, 2023
cbb534b
DPL: Fix typo, should be != (#12017)
davidrohr Oct 4, 2023
77d2c79
DPL: improve message for missing data
ktf Oct 3, 2023
9e28193
o2-eve: HMPID display, fix in display configuration file read (#11997)
jmyrcha Oct 4, 2023
d87093b
ITS DCS parser: added configurable url to retrieve RCT headers (#11978)
iravasen Oct 4, 2023
9df4e93
[EMCAL-1048] Treat faulty memory size reported by RDH
mfasDa Oct 3, 2023
8c5e0ec
DPL: drop ReadoutAdapter (#12016)
ktf Oct 4, 2023
9bc3e88
Fill N nearest neighbours in T and Z for vtx study.
shahor02 Oct 4, 2023
cf1b805
Revert "[rANS] Fix Compiler Warnings"
shahor02 Oct 4, 2023
a15d56b
Revert "[rANS] Enforce Consistent Histograms"
shahor02 Oct 4, 2023
525ab83
DPL: protect against multiple additions of 0xccdb queries (#12020)
ktf Oct 5, 2023
0f08c54
[SVertexer] Sort tracks by their decayRef when nthreads>1 (#12003)
fmazzasc Oct 5, 2023
6a220b4
fine tuning TOF calib with FT0
noferini Oct 4, 2023
9c736a3
Adding plots to ITSTPC matching QC
chiarazampolli Sep 27, 2023
7c88135
uniform disable-strangeness-tracker opt., enable str.tracker by default
shahor02 Oct 5, 2023
cd75d2c
Dont send CCDB if not calculated
Oct 5, 2023
adeb943
GPU: Fix compiler warning
davidrohr Oct 5, 2023
8bb8e7b
DPL: Fix: move allfound optimization to correct loop
davidrohr Oct 5, 2023
756c0cc
DPL: Add option to raw-proxy to print input sizes per spec
davidrohr Oct 5, 2023
4be135c
CTF: Print also the total size in size report
davidrohr Oct 5, 2023
a729551
dpl-workflow: enable size-report for raw-proxy, and downscale in onli…
davidrohr Oct 5, 2023
c476aee
DPL: Fix injectMissingData not always marking all inactive pipelines …
davidrohr Oct 5, 2023
78a350c
[EMCAL-1048] Consistent check fo RCU trailer and channel header integ…
mfasDa Oct 5, 2023
9331ea3
SVertexer: use mean vertex
f3sch Oct 5, 2023
e027deb
[EMCAL-791] Require CCDB access for EMCAL digitizer
mfasDa Oct 5, 2023
d286ca7
ITS3: Add macros for Cluster Size, Hits and Digits (#11835)
f3sch Oct 6, 2023
7ac84e5
DPL: change ExpirationHandler::Creator to use services
ktf Oct 4, 2023
f855f6f
[EMCAL-791] Require CCDB access for EMCAL by default
mfasDa Oct 5, 2023
faf0f90
[EMCAL-791] Remove attic fields in the SimParams
mfasDa Oct 6, 2023
cea8ac1
Adding aluminium absorbers in front to chambers 2 and 4
gvolpe79 Oct 2, 2023
88914b8
MCH: fix bad-channels-ccdb metadata default type
aphecetche Sep 19, 2023
9441d82
Add tracks time to trackStudy output
shahor02 Oct 6, 2023
e330a32
[rANS] Enforce Consistent Histograms
MichaelLettrich Oct 2, 2023
e9267ed
[rANS] Fix Compiler Warnings
MichaelLettrich Oct 3, 2023
a06788f
Fix in the Close method
shahor02 Oct 6, 2023
40020ff
Store TFIDInfo TTree together with the vector
shahor02 Oct 6, 2023
6394595
TOF: add flag to compressor to skip large payloads (#12040)
noferini Oct 7, 2023
6cb31bd
TRD raw reader update
martenole Oct 6, 2023
90a1558
Fix condition to trigger FATAL in ITSTPC matching QC
chiarazampolli Oct 7, 2023
f832a9c
Make sure the ROF IR is decoded, otherwise abort link data
shahor02 Oct 8, 2023
453604e
TPC: adding material type for dedx calibration as parameter
matthias-kleiner Oct 1, 2023
eb498a5
Enable fetching matLUT only if needed
matthias-kleiner Oct 4, 2023
84f1e1d
FST: should use new CTF coding scheme
davidrohr Oct 9, 2023
6aa56c0
Rewind input proxy (#12015)
ktf Oct 9, 2023
0a7db9e
added a wait time of 30s between consecutive pushes to ccdb
iravasen Oct 9, 2023
a41a0d0
DPL: When enumeration timeframe was rewinded, don't send a newer olde…
davidrohr Oct 10, 2023
1260cdc
Warn about CTF/rawTF readers waiting for remote data to be copied
shahor02 Oct 9, 2023
7fe8504
Relax type check for old dictionaries in compat mode, warn only.
shahor02 Oct 10, 2023
22b89a3
Flag if propation has failed in DCAFitterN
shahor02 Oct 6, 2023
0e722d0
Reduce peak memory usage of TrackerTraits::findTracks (#12046)
ktf Oct 10, 2023
cb41d67
MatLUT: Option for fast layer lookup (#12009)
sawenzel Oct 10, 2023
00a6e17
EMCAL: Downscale raw parser error messages
davidrohr Oct 10, 2023
9f22c6b
TPC: Adding workflow for integrated DCAs for corrections and QC (#11984)
matthias-kleiner Oct 11, 2023
705b8bf
DPL: If in OnlineMode, input proxies should only send EoS if they rec…
davidrohr Oct 10, 2023
80963c9
DPL: Should not set newRun flag with incoming runNumber 0, as is the …
davidrohr Oct 10, 2023
d932b1f
Protection against bogus TRD PH values
martenole Oct 11, 2023
d19409f
DPL Analysis: correctly account for extended table version with aod-s…
aalkin Oct 13, 2023
0053e56
adding paranoid flag in tof-compressor on epn
noferini Oct 12, 2023
451c92c
ZDC Small fixes and improved printout in waveform calibration (#11900)
cortesep Oct 13, 2023
b4204f0
Macro to query or upload MID CCDB objects (#12025)
dstocco Oct 13, 2023
6245e6e
[MatchITSTPCQC] Skip invalid MC labels
Oct 12, 2023
0655825
Add CTP Lumi to rawTF-reader outputs
shahor02 Oct 13, 2023
392dfed
DPL: cleanup DataAllocator
ktf Sep 21, 2023
ba8d89d
DPL: add support for converting various containers to vectors
ktf Oct 10, 2023
9a3a522
TRD most probably track time is trigger time
martenole Oct 13, 2023
8a2502b
Debug streamer: add sampling by weight
matthias-kleiner Aug 31, 2023
cf8ed93
adding protection in tof-compressor
noferini Oct 13, 2023
550263c
fix FEE mismatch in tof-compressor
noferini Oct 14, 2023
adbdea8
add protections in tof-compressor
noferini Oct 15, 2023
ef472d6
Avoid copy of tracks
ktf Oct 15, 2023
1c89505
DPL: If we receive only the EoS for that run, we need to add to the c…
davidrohr Oct 15, 2023
607495d
Fix getTime... methodes in the RecoContainer
shahor02 Oct 7, 2023
abd6457
Improve FT0 interaction tag, use for TRD pileup
shahor02 Oct 14, 2023
c45d372
remove unnecessary include
shahor02 Oct 11, 2023
acc1785
Optimize ITS/TPC mathing memory usage
shahor02 Oct 11, 2023
3236727
GPU: Minor optimization
davidrohr Oct 12, 2023
e248932
dpl-workflow: Use new CTF coding by default on EPNs
davidrohr Oct 15, 2023
1ca06c9
ITS-Study: create pt resolution, add efficiency of sec study (#11763)
Roberta-Ferioli Oct 17, 2023
50fd489
DPL: test matcher behaviour
ktf Oct 9, 2023
57bfcc6
DPL Analysis: make sure slice index with start==end is tested
aalkin Oct 16, 2023
0a95a6f
GPU: CMake enable_language(HIP) (#11860)
mconcas Oct 17, 2023
1daca29
Set Maurice as a codewonwer of MFT
shahor02 Oct 17, 2023
f58fcba
Integrated currents: Adding check if any data has been received
matthias-kleiner Oct 13, 2023
1ab5d42
Fix various codechecker issues
ktf Oct 18, 2023
6c5fcab
[Strangeness Tracking] Fix cascade invariant masses (#12091)
fmazzasc Oct 18, 2023
4e9772a
DPL: Check for EoS on all channels before invoking control->endOfStre…
davidrohr Oct 16, 2023
b2358d8
Revert "DPL: If in OnlineMode, input proxies should only send EoS if …
davidrohr Oct 16, 2023
c5b9e8a
DPL: add finaliseOutputs callback for services
ktf Oct 16, 2023
a234955
DPL: add injected CCDB messages in finaliseOutputs
ktf Oct 16, 2023
f55e776
Make sure we notify DPL about non-DPL message sending
ktf Oct 18, 2023
2fe05e4
Add protection for passing a root file as a list of files
ktf Oct 18, 2023
c1c5050
Adding cluster size to track extra (#12044)
fmazzasc Oct 19, 2023
705005b
Remove obsolete TRD compressor files (#12102)
martenole Oct 19, 2023
b82807b
Using http to access CCDB
chiarazampolli Oct 19, 2023
1ea72d9
TPC: Using PropagateToXBxByBz for residual gain map extraction
matthias-kleiner Oct 16, 2023
ee141f3
DPL: Fix new run detection in input proxy
davidrohr Oct 19, 2023
7ac0b52
Drop obsolete flag
ktf Oct 19, 2023
3d52ff0
DPL: change InjectorFunction to return a bool
ktf Oct 19, 2023
79f2be2
DPL: notify DPL about out of band data being sent by input proxy
ktf Oct 19, 2023
d3e3bf2
Port the same fix we have in the Run3 code (#12104)
ktf Oct 19, 2023
fa5b990
GPU: Fix HIP compilation with modern system LLVM present
davidrohr Oct 19, 2023
4c59497
Fix typo in subGenerator check
fcatalan92 Oct 18, 2023
e322401
TRD Kr cluster writing to EOS (#12113)
martenole Oct 20, 2023
085907d
hooks and configuration for POWHEG
amorsch Oct 19, 2023
c5ca385
ITS tracker: Reserve output buffers (#12089)
mconcas Oct 20, 2023
ba4e300
ITS: process hits from different MEBs + bug fix for scurve dump (#12110)
iravasen Oct 20, 2023
b6c2329
Adding also detector list
chiarazampolli Oct 19, 2023
5e1301c
TOF: fetching GRPECS for correct number of orbits per TF
matthias-kleiner Oct 19, 2023
d9035ae
CPV,PHS: modernize cell, digit and cluster readers (#12060)
sevdokim Oct 20, 2023
d56ac3c
Add EOV functionality
wiechula Oct 12, 2023
55b7e33
TPC IDC: Adding check for default GPECS object
matthias-kleiner Oct 13, 2023
96d1dbb
RawFileReader: Fix triggering CCDB message
davidrohr Oct 20, 2023
6ec304a
Several upgrades for Event-Generators (#12032)
Oct 20, 2023
9566b53
MatLUT: faster phi-sector determination; reduction of divisions (#12030)
sawenzel Oct 20, 2023
8597798
Debug streamer: Add downsampling by tsalis (#12112)
matthias-kleiner Oct 20, 2023
03833f6
Add methods to get beam energy in GeV, make getSqrtS to return GeV/nu…
shahor02 Oct 20, 2023
8882226
DPL: Should always check if we sent something before sending CCDB mes…
davidrohr Oct 19, 2023
f68863b
DPL: Take runNumber and timeSlice for CCDB message from timingInfo, i…
davidrohr Oct 19, 2023
031dd8a
Flatten cell neighbours structure (#12121)
mpuccio Oct 22, 2023
41e504d
Protect MatLut against dZ=0 (#12124)
shahor02 Oct 22, 2023
2751f04
Update CODEOWNERS for upgrades (#12125)
mconcas Oct 23, 2023
14f0c2f
Revert "Protect MatLut against dZ=0 (#12124)"
ddobrigk Oct 23, 2023
ef65346
Revert "MatLUT: faster phi-sector determination; reduction of divisio…
shahor02 Oct 23, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 0 additions & 2 deletions CCDB/include/CCDB/CCDBDownloader.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,6 @@ typedef struct uv_signal_s uv_signal_t;
typedef struct uv_async_s uv_async_t;
typedef struct uv_handle_s uv_handle_t;

using namespace std;

namespace o2::ccdb
{

Expand Down
15 changes: 11 additions & 4 deletions CCDB/src/CcdbApi.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -562,6 +562,7 @@ size_t header_map_callback(char* buffer, size_t size, size_t nitems, void* userd
if (index != std::string::npos) {
const auto key = boost::algorithm::trim_copy(header.substr(0, index));
const auto value = boost::algorithm::trim_copy(header.substr(index + 1));
LOGP(debug, "Adding #{} {} -> {}", headers->size(), key, value);
headers->insert(std::make_pair(key, value));
}
return size * nitems;
Expand Down Expand Up @@ -1539,12 +1540,10 @@ void CcdbApi::loadFileToMemory(o2::pmr::vector<char>& dest, std::string const& p

curl_slist* options_list = nullptr;
initCurlHTTPHeaderOptionsForRetrieve(curl_handle, options_list, timestamp, headers, etag, createdNotAfter, createdNotBefore);

navigateURLsAndLoadFileToMemory(dest, curl_handle, fullUrl, headers);

for (size_t hostIndex = 1; hostIndex < hostsPool.size() && isMemoryFileInvalid(dest); hostIndex++) {
fullUrl = getFullUrlForRetrieval(curl_handle, path, metadata, timestamp, hostIndex);
loadFileToMemory(dest, fullUrl, headers); // headers loaded from the file in case of the snapshot reading only
navigateURLsAndLoadFileToMemory(dest, curl_handle, fullUrl, headers); // headers loaded from the file in case of the snapshot reading only
}
curl_slist_free_all(options_list);
curl_easy_cleanup(curl_handle);
Expand Down Expand Up @@ -1586,9 +1585,17 @@ void CcdbApi::navigateURLsAndLoadFileToMemory(o2::pmr::vector<char>& dest, CURL*
if (url.find("alien:/", 0) != std::string::npos) {
return loadFileToMemory(dest, url, nullptr); // headers loaded from the file in case of the snapshot reading only
}
if ((url.find("file:/", 0) != std::string::npos)) {
std::string path = url.substr(7);
if (std::filesystem::exists(path)) {
return loadFileToMemory(dest, path, nullptr);
} else {
return;
}
}
// otherwise make an HTTP/CURL request
struct HeaderObjectPair_t {
std::map<std::string, std::string> header;
std::multimap<std::string, std::string> header;
o2::pmr::vector<char>* object = nullptr;
int counter = 0;
} hoPair{{}, &dest, 0};
Expand Down
4 changes: 3 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

# Preamble

cmake_minimum_required(VERSION 3.19 FATAL_ERROR)
cmake_minimum_required(VERSION 3.21.1 FATAL_ERROR)

# it's important to specify accurately the list of languages. for instance C and
# C++ as we _do_ have some C files to compile explicitely as C (e.g. gl3w.c)
Expand Down Expand Up @@ -93,6 +93,8 @@ include(O2DataFile)
include(O2TargetManPage)
include(O2AddWorkflow)
include(O2SetROOTPCMDependencies)
include(O2AddHipifiedExecutable)
include(O2AddHipifiedLibrary)

# Main targets of the project in various subdirectories. Order matters.
add_subdirectory(Common)
Expand Down
8 changes: 4 additions & 4 deletions CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,14 @@
/DataFormats/Detectors/GlobalTracking @shahor02
/DataFormats/Detectors/GlobalTrackingWorkflow @shahor02
/DataFormats/Detectors/HMPID @gvolpe79
/DataFormats/Detectors/ITSMFT @iouribelikov @robincaron13 @mconcas @shahor02
/DataFormats/Detectors/ITSMFT @mcoquet642 @mconcas @shahor02
/DataFormats/Detectors/MUON @AliceO2Group/muon-experts
/DataFormats/Detectors/PHOS @peressounko @kharlov
/DataFormats/Detectors/Passive @sawenzel @benedikt-voelkel
/DataFormats/Detectors/TOF @noferini
/DataFormats/Detectors/TPC @davidrohr @wiechula @shahor02
/DataFormats/Detectors/TRD @f3sch @bazinski @martenole
/DataFormats/Detectors/Upgrades @qgp @marcovanleeuwen @mconcas
/DataFormats/Detectors/Upgrades @mconcas
/DataFormats/Detectors/Upgrades/ITS3 @fgrosa @arossi81
/DataFormats/Detectors/ZDC @coppedis

Expand All @@ -65,14 +65,14 @@
/Detectors/GlobalTracking @shahor02
/Detectors/GlobalTrackingWorkflow @shahor02
/Detectors/HMPID @gvolpe79
/Detectors/ITSMFT @iouribelikov @robincaron13 @mconcas @shahor02
/Detectors/ITSMFT @mcoquet642 @mconcas @shahor02
/Detectors/MUON @AliceO2Group/muon-experts
/Detectors/PHOS @peressounko @kharlov
/Detectors/Passive @sawenzel @benedikt-voelkel
/Detectors/TOF @noferini
/Detectors/TPC @davidrohr @wiechula @shahor02
/Detectors/TRD @f3sch @bazinski @martenole
/Detectors/Upgrades @qgp @mconcas
/Detectors/Upgrades @mconcas
/Detectors/Upgrades/ITS3 @fgrosa @arossi81 @mconcas
/Detectors/ZDC @coppedis
/Detectors/CTF @shahor02
Expand Down
39 changes: 28 additions & 11 deletions Common/DCAFitter/include/DCAFitter/DCAFitterN.h
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,9 @@ class DCAFitterN
///< check if propagation of tracks to candidate vertex was done
bool isPropagateTracksToVertexDone(int cand = 0) const { return mTrPropDone[mOrder[cand]]; }

///< check if propagation of tracks to candidate vertex was done
bool isPropagationFailure(int cand = 0) const { return mPropFailed[mOrder[cand]]; }

///< track param propagated to V0 candidate (no check for the candidate validity)
/// propagateTracksToVertex must be called in advance
Track& getTrack(int i, int cand = 0)
Expand All @@ -150,7 +153,7 @@ class DCAFitterN
o2::track::TrackPar createParentTrackPar(int cand = 0, bool sectorAlpha = true) const;

///< calculate on the fly track param (no cov mat) at candidate, check isValid to make sure propagation was successful
o2::track::TrackPar getTrackParamAtPCA(int i, int cand = 0) const;
o2::track::TrackPar getTrackParamAtPCA(int i, int cand = 0);

///< recalculate PCA as a cov-matrix weighted mean, even if absDCA method was used
bool recalculatePCAWithErrors(int cand = 0);
Expand Down Expand Up @@ -232,8 +235,8 @@ class DCAFitterN
bool minimizeChi2NoErr();
bool roughDZCut() const;
bool closerToAlternative() const;
bool propagateToX(o2::track::TrackParCov& t, float x) const;
bool propagateParamToX(o2::track::TrackPar& t, float x) const;
bool propagateToX(o2::track::TrackParCov& t, float x);
bool propagateParamToX(o2::track::TrackPar& t, float x);

static double getAbsMax(const VecND& v);
///< track param positions at V0 candidate (no check for the candidate validity)
Expand Down Expand Up @@ -308,7 +311,8 @@ class DCAFitterN
std::array<Vec3D, MAXHYP> mPCA; // PCA for each vertex candidate
std::array<float, MAXHYP> mChi2 = {0}; // Chi2 at PCA candidate
std::array<int, MAXHYP> mNIters; // number of iterations for each seed
std::array<bool, MAXHYP> mTrPropDone; // Flag that the tracks are fully propagated to PCA
std::array<bool, MAXHYP> mTrPropDone{}; // Flag that the tracks are fully propagated to PCA
std::array<bool, MAXHYP> mPropFailed{}; // Flag that some propagation failed for this PCA candidate
MatSym3D mWeightInv; // inverse weight of single track, [sum{M^T E M}]^-1 in EQ.T
std::array<int, MAXHYP> mOrder{0};
int mCurHyp = 0;
Expand Down Expand Up @@ -354,6 +358,9 @@ int DCAFitterN<N, Args...>::process(const Tr&... args)
if (!mCrossings.set(mTrAux[0], *mOrigTrPtr[0], mTrAux[1], *mOrigTrPtr[1], mMaxDXYIni)) { // even for N>2 it should be enough to test just 1 loop
return 0; // no crossing
}
for (int ih = 0; ih < MAXHYP; ih++) {
mPropFailed[ih] = false;
}
if (mUseAbsDCA) {
calcRMatrices(); // needed for fast residuals derivatives calculation in case of abs. distance minimization
}
Expand Down Expand Up @@ -825,7 +832,7 @@ bool DCAFitterN<N, Args...>::propagateTracksToVertex(int icand)

//___________________________________________________________________
template <int N, typename... Args>
inline o2::track::TrackPar DCAFitterN<N, Args...>::getTrackParamAtPCA(int i, int icand) const
inline o2::track::TrackPar DCAFitterN<N, Args...>::getTrackParamAtPCA(int i, int icand)
{
// propagate tracks param only to current vertex (if not already done)
int ord = mOrder[icand];
Expand Down Expand Up @@ -1058,24 +1065,34 @@ o2::track::TrackPar DCAFitterN<N, Args...>::createParentTrackPar(int cand, bool

//___________________________________________________________________
template <int N, typename... Args>
inline bool DCAFitterN<N, Args...>::propagateParamToX(o2::track::TrackPar& t, float x) const
inline bool DCAFitterN<N, Args...>::propagateParamToX(o2::track::TrackPar& t, float x)
{
bool res = true;
if (mUsePropagator || mMatCorr != o2::base::Propagator::MatCorrType::USEMatCorrNONE) {
return o2::base::Propagator::Instance()->PropagateToXBxByBz(t, x, mMaxSnp, mMaxStep, mMatCorr);
res = o2::base::Propagator::Instance()->PropagateToXBxByBz(t, x, mMaxSnp, mMaxStep, mMatCorr);
} else {
return t.propagateParamTo(x, mBz);
res = t.propagateParamTo(x, mBz);
}
if (!res) {
mPropFailed[mCurHyp] = true;
}
return res;
}

//___________________________________________________________________
template <int N, typename... Args>
inline bool DCAFitterN<N, Args...>::propagateToX(o2::track::TrackParCov& t, float x) const
inline bool DCAFitterN<N, Args...>::propagateToX(o2::track::TrackParCov& t, float x)
{
bool res = true;
if (mUsePropagator || mMatCorr != o2::base::Propagator::MatCorrType::USEMatCorrNONE) {
return o2::base::Propagator::Instance()->PropagateToXBxByBz(t, x, mMaxSnp, mMaxStep, mMatCorr);
res = o2::base::Propagator::Instance()->PropagateToXBxByBz(t, x, mMaxSnp, mMaxStep, mMatCorr);
} else {
return t.propagateTo(x, mBz);
res = t.propagateTo(x, mBz);
}
if (!res) {
mPropFailed[mCurHyp] = true;
}
return res;
}

using DCAFitter2 = DCAFitterN<2, o2::track::TrackParCov>;
Expand Down
3 changes: 2 additions & 1 deletion Common/SimConfig/src/SimConfig.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -93,11 +93,12 @@ void SimConfig::determineActiveModules(std::vector<std::string> const& inputargs
#ifdef ENABLE_UPGRADES
if (mIsRun5) {
for (int d = DetID::First; d <= DetID::Last; ++d) {
if (d == DetID::IT3 || d == DetID::TRK || d == DetID::FT3 || d == DetID::FCT) {
if (d == DetID::TRK || d == DetID::FT3 || d == DetID::FCT) {
activeModules.emplace_back(DetID::getName(d));
}
}
activeModules.emplace_back("A3IP");
activeModules.emplace_back("A3ABSO");
} else {
#endif
// add passive components manually (make a PassiveDetID for them!)
Expand Down
1 change: 1 addition & 0 deletions Common/Utils/include/CommonUtils/ConfigurableParam.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
#define COMMON_SIMCONFIG_INCLUDE_SIMCONFIG_CONFIGURABLEPARAM_H_

#include <vector>
#include <cassert>
#include <map>
#include <unordered_map>
#include <boost/property_tree/ptree.hpp>
Expand Down
53 changes: 43 additions & 10 deletions Common/Utils/include/CommonUtils/DebugStreamer.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,22 +30,27 @@ namespace o2::utils

/// struct defining the flags which can be used to check if a certain debug streamer is used
enum StreamFlags {
streamdEdx = 1 << 0, ///< stream corrections and cluster properties used for the dE/dx
streamDigitFolding = 1 << 1, ///< stream ion tail and saturatio information
streamDigits = 1 << 2, ///< stream digit information
streamFastTransform = 1 << 3, ///< stream tpc fast transform
streamITCorr = 1 << 4, ///< stream ion tail correction information
streamDistortionsSC = 1 << 5, ///< stream distortions applied in the TPC space-charge class (used for example in the tpc digitizer)
streamUpdateTrack = 1 << 6, ///< stream update track informations
streamRejectCluster = 1 << 7, ///< stream cluster rejection informations
streamFlagsCount = 8 ///< total number of streamers
streamdEdx = 1 << 0, ///< stream corrections and cluster properties used for the dE/dx
streamDigitFolding = 1 << 1, ///< stream ion tail and saturatio information
streamDigits = 1 << 2, ///< stream digit information
streamFastTransform = 1 << 3, ///< stream tpc fast transform
streamITCorr = 1 << 4, ///< stream ion tail correction information
streamDistortionsSC = 1 << 5, ///< stream distortions applied in the TPC space-charge class (used for example in the tpc digitizer)
streamUpdateTrack = 1 << 6, ///< stream update track informations
streamRejectCluster = 1 << 7, ///< stream cluster rejection informations
streamMergeBorderTracksBest = 1 << 8, ///< stream MergeBorderTracks best track
streamTimeSeries = 1 << 9, ///< stream tpc DCA debug tree
streamMergeBorderTracksAll = 1 << 10, ///< stream MergeBorderTracks all tracks
streamFlagsCount = 11 ///< total number of streamers
};

enum SamplingTypes {
sampleAll = 0, ///< use all data (default)
sampleRandom = 1, ///< sample randomly every n points
sampleID = 2, ///< sample every n IDs (per example track)
sampleIDGlobal = 3, ///< in case different streamers have access to the same IDs use this gloabl ID
sampleWeights = 4, ///< perform sampling on weights, defined where the streamer is called
sampleTsalis = 5, ///< perform sampling on tsalis pdf
};

#if !defined(GPUCA_GPUCODE) && !defined(GPUCA_STANDALONE)
Expand Down Expand Up @@ -121,6 +126,9 @@ class DebugStreamer
/// \return returns sampling type and sampling frequency for given streamer
static std::pair<SamplingTypes, float> getSamplingTypeFrequency(const StreamFlags streamFlag);

/// \return returns sampling type and sampling frequency for given streamer
static float getSamplingFrequency(const StreamFlags streamFlag) { return getSamplingTypeFrequency(streamFlag).second; }

///< return returns unique ID for each CPU thread to give each thread an own output file
static size_t getCPUID();

Expand All @@ -144,7 +152,8 @@ class DebugStreamer

/// check if streamer for specific flag is enabled
/// \param samplingID optional index of the data which is streamed in to perform sampling on this index
static bool checkStream(const StreamFlags streamFlag, const size_t samplingID = -1);
/// \param weight weight which can be used to perform some weightes sampling
static bool checkStream(const StreamFlags streamFlag, const size_t samplingID = -1, const float weight = 1);

/// merge trees with the same content structure, but different naming
/// \param inpFile input file containing several trees with the same content
Expand All @@ -155,10 +164,34 @@ class DebugStreamer
/// \return returns integer index for given streamer flag
static int getIndex(const StreamFlags streamFlag);

/// Random downsampling trigger function using Tsalis/Hagedorn spectra fit (sqrt(s) = 62.4 GeV to 13 TeV) as in https://iopscience.iop.org/article/10.1088/2399-6528/aab00f/pdf
/// \return flat q/pt trigger
/// \param pt pat of particle
/// \param factorPt defines the sampling
/// \param sqrts centre of mass energy
/// \param weight weight which is internally calculated
/// \param rnd random value between (0->1) used to check for sampling
/// \param mass particles mass (use pion if not known)
static bool downsampleTsalisCharged(float pt, float factorPt, float sqrts, float& weight, float rnd, float mass = 0.13957);

/// get random value between min and max
static float getRandom(float min = 0, float max = 1);

private:
using StreamersPerFlag = tbb::concurrent_unordered_map<size_t, std::unique_ptr<o2::utils::TreeStreamRedirector>>;
StreamersPerFlag mTreeStreamer; ///< streamer which is used for the debugging

/// Tsalis/Hagedorn function describing charged pt spectra (m s = 62.4 GeV to 13 TeV) as in https://iopscience.iop.org/article/10.1088/2399-6528/aab00f/pdf
/// https://github.com/alisw/AliPhysics/blob/523f2dc8b45d913e9b7fda9b27e746819cbe5b09/PWGPP/AliAnalysisTaskFilteredTree.h#L145
/// \param pt - transverse momentum
/// \param mass - mass of particle
/// \param sqrts - centre of mass energy
/// \return - invariant yields of the charged particle *pt
/// n(sqrts)= a + b/sqrt(s) - formula 6
/// T(sqrts)= c + d/sqrt(s) - formula 7
/// a = 6.81 ± 0.06 and b = 59.24 ± 3.53 GeV - for charged particles page 3
/// c = 0.082 ± 0.002 GeV and d = 0.151 ± 0.048 (GeV) - for charged particles page 4
static float tsalisCharged(float pt, float mass, float sqrts);
#else

// empty implementation of the class for GPU or when the debug streamer is not build for CPU
Expand Down
6 changes: 5 additions & 1 deletion Common/Utils/include/CommonUtils/ShmManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,12 @@
#include <cstddef>
#include <atomic>

#if !defined(__CINT__) && !defined(__MAKECINT__) && !defined(__ROOTCLING__) && !defined(__CLING__)
#include <boost/interprocess/managed_external_buffer.hpp>
#include <boost/interprocess/allocators/allocator.hpp>
#endif

#if !defined(__CINT__) && !defined(__MAKECINT__) && !defined(__ROOTCLING__) && !defined(__CLING__)
#if !defined(__CINT__) && !defined(__MAKECINT__) && !defined(__ROOTCLING__) && !defined(__CLING__) && !defined(__APPLE__)
// this shared mem mode is meant for compiled stuff in o2-sim; not for ROOT sessions
#define USESHM 1
#endif
Expand Down Expand Up @@ -116,8 +118,10 @@ class ShmManager
void* tryAttach(bool& success);
size_t getPointerOffset(void* ptr) const { return (size_t)((char*)ptr - (char*)mBufferPtr); }

#if !defined(__CINT__) && !defined(__MAKECINT__) && !defined(__ROOTCLING__) && !defined(__CLING__)
boost::interprocess::wmanaged_external_buffer* boostmanagedbuffer;
boost::interprocess::allocator<char, boost::interprocess::wmanaged_external_buffer::segment_manager>* boostallocator;
#endif
};

} // namespace utils
Expand Down
Loading