Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
202 commits
Select commit Hold shift + click to select a range
37127e8
PWGEM/PhotonMeson: add cuts for eta < 1.2 for photons (#4326)
dsekihat Jan 15, 2024
3a5812b
Add tpcNCls and eta information for QA check (#4282)
chengtt0406 Jan 16, 2024
d4f6f80
PWGLF: Extra dev of derived V0 analysis (#4324)
ddobrigk Jan 16, 2024
f9786e5
PWGCF-FemtoUniverse: update for D0 in the producer (#4325)
kgwizdzi Jan 16, 2024
782f14c
Update Femto.md (#4322)
kgwizdzi Jan 16, 2024
131198c
PWGCF: Create directory structure in FemtoDream (#4323)
ariedel-cern Jan 16, 2024
d62260f
creating TPC TOF overlap (#4327)
alcaliva Jan 16, 2024
4b713b2
processfunctionMuonOnlyWithCovAndMults (#4315)
Jan 16, 2024
69e0d40
Update QAHistTask.cxx (#4328)
RafRaf11 Jan 16, 2024
f01d6a3
PWGEM+JE: Add vertexQA and absolute energy calibration scale pi0 task…
nstrangm Jan 16, 2024
35dc11b
final touch on validation via nested loops + further port from AliPhy…
abilandz Jan 16, 2024
9756a3f
PWGEM: Fix error in MCTemplate task, renaming (#4333)
feisenhu Jan 16, 2024
03687e2
Updating task to cope with reconstruction changes in ZDC (#4249)
coppedis Jan 16, 2024
c0478bb
PWGLF: Update lambda1520SpherocityAnalysis.cxx (#4337)
yashpatley Jan 16, 2024
e8aa7e0
PWGHF: Change in number of pT Bins and selection criteria for d0SoftP…
deependra170598 Jan 16, 2024
1f236e5
DPG/AOTTrack: add selection of tracks as global, without ITS IB (#4338)
fgrosa Jan 16, 2024
da73571
Introduce forward track propagation to UD (#4335)
nburmaso Jan 16, 2024
7363cbb
EventFiltering: add configurable for different BDT selection options …
fgrosa Jan 16, 2024
ac2597f
Phieffyv3 (#4342)
skundu692 Jan 17, 2024
490cf3a
check track timing for matching (#4334)
maciacco Jan 17, 2024
c33b3fe
PWGLF: add table extenders for stra derived ana (#4330)
ddobrigk Jan 17, 2024
2d35d9c
Add ML inference class for Lc->PKPi and related modifications to the …
gluparel Jan 17, 2024
f5941bf
[PWGDQ] Adding processFull with covariance and centrality in tableMak…
victorvalenciatorres Jan 17, 2024
abc42b3
PWGEM/PhotonMeson: update PCM cuts (#4348)
dsekihat Jan 17, 2024
6336bea
Addressing comments (#4332)
stefanopolitano Jan 17, 2024
76d6527
PWGJE: Add more differential absolute energy scale extraction (#4349)
nstrangm Jan 17, 2024
0026f18
PWGCF: Updating centrality bins and fix pid selection (#4344)
SwatiSaha-1997 Jan 17, 2024
548a29a
Update phosCalibration.cxx (#4340)
daveryan99 Jan 17, 2024
4fe340e
PWGCF: Mean pt fluc identified update2 (#4345)
TGahlaut1 Jan 17, 2024
9ea1358
Utility to get CTP rates (#4296)
mpuccio Jan 17, 2024
d74428b
bug fixed: table mismatch (#4353)
cterrevo Jan 17, 2024
dc330f6
PWGLF: Lambdakzerobuilder debug options added, better readability (#…
ddobrigk Jan 17, 2024
d8691b5
add task to study antideuteron-lambda fluctuations (#4356)
maciacco Jan 18, 2024
e38a5f7
PWGLF: new task (#4346)
lhusova Jan 18, 2024
916d318
Add table with event-plane Q vectors and centrality (#4352)
lbariogl Jan 18, 2024
41113f5
PWGEM/PhotonMeson: update RZ cut in material budget task (#4358)
dsekihat Jan 18, 2024
2752084
PWGLF: add QA histo's + autocorr check (#4354)
rspijkers Jan 18, 2024
b32deae
Updating event selection (#4357)
SwatiSaha-1997 Jan 18, 2024
983e899
PWGEM: MCTemplates.cxx add missing references (#4359)
feisenhu Jan 18, 2024
9d2aef2
support for randomization via Fisher-Yates algorithm (#4360)
abilandz Jan 18, 2024
08ea522
PWGEM: trigger with stronger pion rej. (#4365)
feisenhu Jan 18, 2024
94105be
Add TOF PID flags for match (#4287)
njacazio Jan 18, 2024
e69f946
Add flow information (#4363)
fmazzasc Jan 18, 2024
fb7ae48
CF 2-prong candidate filter and tables (#4362)
jaelpark Jan 18, 2024
c97f75d
First commit to add the possibility to study TPConly and ITSonly trac…
arossi81 Jan 18, 2024
587db7f
[EMCAL-1111] Enable absolute energy calib extraction per module type …
nstrangm Jan 18, 2024
0912984
PWGCF: R2P2 correlations for Identified particles (#4215)
R-Rohith Jan 18, 2024
b5060cd
PWGCF: FemtoUniverse - D0 analysis update (#4371)
kgwizdzi Jan 19, 2024
8db30f6
Temporary fix to account for rigidity (#4372)
fmazzasc Jan 19, 2024
f3c5c16
PWGHF: Add task for charm hadron polarisation studies (#4370)
fgrosa Jan 19, 2024
3176bbe
PWGCF: FemtoUniverse -- Change in MC Truth Producer (Phi doesn't need…
zchochul Jan 19, 2024
6a71c65
"Resonance:- Added break statement in multiplicity esitmator" (#4373)
nasirmehdimalik Jan 19, 2024
6c15bd5
Consolidate response histograms to reduce output size (#4375)
aalkin Jan 19, 2024
4fe75f4
[PWGDQ] Adding task to process MFT tracks for PID (#4377)
lucamicheletti93 Jan 19, 2024
1455334
Updating task to add centrality info (#4378)
sustripathy Jan 19, 2024
c640596
PWGCF: process switch MC without centrality (#4382)
gmantzar Jan 19, 2024
67cdce4
Fix table name (#4388)
lbariogl Jan 19, 2024
9b0f29a
change binning in QA histograms (#4389)
rspijkers Jan 19, 2024
837c0da
[EMCAL-1111] Introduce configurable eta and phi axis (#4391)
nstrangm Jan 19, 2024
6125b8d
CF:Identifiedparticles (#4305)
sweta29singh Jan 19, 2024
c6591f4
PWGEM/PhotonMeson: remove unnecessary propagation (#4393)
dsekihat Jan 20, 2024
e79d6d3
PWGEM/PhotonMeson: update skimming PCM (#4394)
dsekihat Jan 20, 2024
6651d31
Adding missing casting to the PDG code cut (#4396)
zchochul Jan 20, 2024
e4b3fda
Added workflow of charged flattenicity (#4385)
gbencedi Jan 20, 2024
a123851
[BATask-PWGLF] minor corrections and add histos for MC study (#4390)
rutuparnarath Jan 20, 2024
515cdf5
PWGHF: add Lc->pKpi channel to polarization task. (#4380)
mfaggin Jan 20, 2024
b1648da
add slim table for ML applications (#4376)
maciacco Jan 20, 2024
26c1bb5
Update NucleiHistTask.cxx (#4398)
RafRaf11 Jan 20, 2024
f774fa4
collision index added after updating O2 (#4401)
prottayCMT Jan 21, 2024
0e24971
PWGEM/PhotonMeson: update PCB (#4402)
dsekihat Jan 21, 2024
ceebe1c
PWGJE: Implementing background subtraction for jets into the framewor…
nzardosh Jan 21, 2024
7b95b21
Correcting sign cut for track in track-Phi task (#4403)
zchochul Jan 21, 2024
1fe8ca8
[PWGDQ] Adding process functions for MDT PID (#4405)
lucamicheletti93 Jan 21, 2024
ba1fb6a
PWGLF: Changes to derived V0 analysis task (#4404)
ddobrigk Jan 22, 2024
1033829
TOF: add QC check on good match (#4387)
njacazio Jan 22, 2024
17eb245
Keep bachelor if compatible with one of the two cascades (#4392)
fmazzasc Jan 22, 2024
e47ed03
PWGHF : Simplifying pz and P dynamic coloum expression for self conta…
nzardosh Jan 22, 2024
075c04e
PWGEM/PhotonMeson: improve event mixing (#4408)
dsekihat Jan 22, 2024
82ed3f0
PWGHF: adding a lite version of the LcpKpi tree (#4410)
DelloStritto Jan 22, 2024
9c9100f
Update K0 perf. with multidim. histograms (#4407)
njacazio Jan 22, 2024
c34782b
[EMCAL-1111] Fix pi0 rotation method for absolute energy calibration …
nstrangm Jan 22, 2024
7d5603a
Include selection on the muon track type (#4379)
zconesa Jan 22, 2024
92edd15
Adding missing variable to the data model (#4413)
lucamicheletti93 Jan 22, 2024
546e7b7
Add cut on min hyp pT (#4414)
fmazzasc Jan 22, 2024
76bb5b5
PWGMM: dndeta: fix process function naming (#4415)
aalkin Jan 22, 2024
f5f0271
support for triggers, ref. multiplicity, and centrality, part 1 (#4399)
abilandz Jan 22, 2024
4bf96a7
PWGJE : seperating matched and unmatched data jets in substructure ou…
nzardosh Jan 22, 2024
0ec81f5
TOF: fix tiny tables (#4418)
njacazio Jan 22, 2024
7c23c66
Clean filledMothers vector (#4419)
fmazzasc Jan 22, 2024
64c5258
[PWGLF] LightNucleiTask - Add DCA for TOF tracks (#4421)
giovannimalfattore Jan 22, 2024
2b916ff
adding vertex and cent. cuts to the table producer, fixing a bug with…
glromane Jan 22, 2024
a146de3
PWGHF: Fix types in selection flags for D* and Lc->pKpi (#4424)
fgrosa Jan 22, 2024
d313aff
corrected a bug for PbPb analysis (#4423)
prottayCMT Jan 22, 2024
f2ef06b
LF: split tasks in PAGs (#4411)
njacazio Jan 23, 2024
fe060dc
PWGEM/PhotonMeson: update pcb to remove bad quality photons (#4431)
dsekihat Jan 23, 2024
709d961
PWGJE : Adding all HF D0 tables to the dummy data producer (#4422)
nzardosh Jan 23, 2024
37db788
PWGHF: Extending mass axis and modify sideband values in D0-h correla…
samrangy Jan 23, 2024
ffb79cb
PWGEM/PhotonMeson: update pcb to reduce bkg (#4433)
dsekihat Jan 23, 2024
ef75b65
PWGMM: dndeta-hi: Suggestion reflected (#4432)
kimbyumkyu Jan 23, 2024
ccbc054
PWGJE: adding centrality to the QA tasks (#4437)
nzardosh Jan 23, 2024
2b9acaf
[PWGLF] LightNucleiTask - Fix bug in secondary selection (#4436)
giovannimalfattore Jan 23, 2024
4dba59d
Adding muon propgation to vertex to the filter-pp task (#4438)
vfeuilla Jan 23, 2024
9a44de6
Phi deep angle cut (#4439)
skundu692 Jan 23, 2024
c124eed
PWGCF: FemtoUniverse -- Adding randomness in making particle pairs (…
prchakra Jan 23, 2024
4571f4d
K0s track QC task update (#4442)
nepeivodaRS Jan 24, 2024
59a526e
PWGHF: Add temporary code for tests on D0-D0 correlations (#4367)
atavirag Jan 24, 2024
a86b822
Cleaned 3Body task (#4444)
lauraser Jan 24, 2024
f2a1f35
Fix QA histogram filling (#4446)
fmazzasc Jan 24, 2024
7fac359
Add task for nuclei flow (#4449)
lbariogl Jan 24, 2024
b4bfe49
PWGHF: handle DCAFitter exception in LfCascades struct trackIndexSkim…
ZFederica Jan 24, 2024
5656046
PWGJE: First implementation of V0 fragmentation for data (#4451)
GijsvWeelden Jan 24, 2024
286cc7d
PWGJE : Adding background related plots to the QA tasks (#4450)
nzardosh Jan 24, 2024
9358ec7
PWGHF: store coll. ID in separate table for Lc tree creator (lite). (…
mfaggin Jan 24, 2024
c34262e
ML: Better errors in case of misconfigurations + cleanup (#4453)
fcatalan92 Jan 24, 2024
737e417
PWGHF: remove abs value for cost* in polarisation task and change def…
fgrosa Jan 24, 2024
01eb84d
PWGHF: flags to fill only with signal or background in Lc tree creato…
mfaggin Jan 24, 2024
563b987
AOT: Fix K0perf (#4457)
njacazio Jan 24, 2024
52f3303
Include Masking to help with multiplicity distribution for three body…
lauraser Jan 25, 2024
52f1faf
Reverted back to stored nSigmaTOF (#4458)
Eloviyo Jan 25, 2024
cd7c880
PWGHF: update saved variables in toXiPi workflow (#4452)
ZFederica Jan 25, 2024
c19b9bd
DPG: Update TOF QA with good match (#4462)
njacazio Jan 25, 2024
1a60f82
mixing using FT0C centrality estimator for PbPb (#4459)
prottayCMT Jan 25, 2024
70a52c2
PWGJE : Adding QA plots to Hadron Recoil task (#4465)
dajones2 Jan 25, 2024
cd81e45
mc only task for on the fly generation (#4460)
jgrosseo Jan 25, 2024
a71d2be
UD task for central barrel tau analysis (#4469)
rolavick Jan 25, 2024
2ca1408
Add its cluster size to nuclei table (#4472)
lbariogl Jan 25, 2024
aa4b4c2
Implemented track V0 pair charge check (#4464)
Eloviyo Jan 25, 2024
a1c9c0a
PWGJE: Fixing bug in QA tasks (#4468)
nzardosh Jan 25, 2024
777fe09
PWGMM: dndeta: fix event efficiency histogram (#4473)
aalkin Jan 25, 2024
6862575
DPG/AOTTrack: add more information in output to study probe efficienc…
fgrosa Jan 25, 2024
7bd0e08
[EMCAL-1111] Add option for global cell scale in correction task (#4478)
jokonig Jan 25, 2024
6041220
PWGLF: Extras in strangeness derived data (#4475)
ddobrigk Jan 26, 2024
632e883
DPG: update the k0 perf for MC (#4461)
njacazio Jan 26, 2024
1ecc68d
add mc table + add downscaling + fix cuts (#4477)
maciacco Jan 26, 2024
130aba9
Add cut on minimum he rigidity (#4470)
fmazzasc Jan 26, 2024
8819585
PWGHF: allow the application of PID to the bachelor pion regardless t…
fgrosa Jan 26, 2024
b0f6d04
PWGLF: V0 analysis type switch for hyperloop subwagon use (#4480)
ddobrigk Jan 26, 2024
948a4b3
PWGHF: add sign of soft pion in D* table to avoid to access the track…
fgrosa Jan 26, 2024
b2c2452
CF: Improvements to pairs (#4440)
njacazio Jan 26, 2024
5cace1b
First version of TrackTuner for dca (and pt) smearing in MC (#4425)
mfaggin Jan 26, 2024
13959d3
DPG/AOTTrack: remove phi axis to avoid crash due to the excess of axe…
fgrosa Jan 26, 2024
12d0552
PWGCF: Add new binning policies in pair tasks (#4482)
ariedel-cern Jan 26, 2024
659ac76
fix V0 selection logic + dereferencing (#4483)
jezwilkinson Jan 26, 2024
61bfe74
LF: Add k0 with mixed event (#4490)
njacazio Jan 26, 2024
d3550a6
Add histograms for event-plane resolution (#4489)
lbariogl Jan 26, 2024
9fb6a35
PWGLF: Fix autodetect in strangeness builders (#4420)
rspijkers Jan 26, 2024
83f17d4
[EMCAL-1111] Enable more differential absolute energy calibration (#4…
nstrangm Jan 26, 2024
5ae6643
Cuts definition + mean ITS cluster size (#4488)
rbailhac Jan 27, 2024
4fd2d48
updated mixing condition (#4493)
prottayCMT Jan 27, 2024
02e6acd
PWGLF: extra changes for data volume reduction (#4492)
ddobrigk Jan 28, 2024
1ce6625
LF: Derived data cascade analysis (#4484)
lhusova Jan 29, 2024
376adab
[BaTask] MC pTshift correction histos for DantiD (#4495)
rutuparnarath Jan 29, 2024
4b38a97
PWGJE: Updating itsPattern cut in agreement with Track Selection (#4311)
alicecaluisi Jan 29, 2024
0c73539
New UPC analysis task on tau tau in 1+3 topology (electron+3pions) ad…
amatyja Jan 29, 2024
5bc92b5
Rename histogram to fix hash collision (#4498)
lbariogl Jan 29, 2024
ea1a412
Add one cut (#4500)
rbailhac Jan 29, 2024
5df2301
Restore processCovariance name. (#4496)
mfaggin Jan 29, 2024
223389b
Common: protect against underflow (#4502)
ddobrigk Jan 29, 2024
a4b01c1
[PWGDQ] Fixes for muon propagation (#4494)
mcoquet642 Jan 29, 2024
8100055
Use momenta at the secondary vertex (#4503)
mpuccio Jan 29, 2024
bd36cbc
calibrate tpc pid + add qa studies on deuteron (#4508)
maciacco Jan 29, 2024
2dc8ebc
PWGLF: optional proper lifetime at builder time, def off (#4499)
ddobrigk Jan 29, 2024
f90a19c
PWGHF: fix downsampling tree creator Lc. (#4511)
mfaggin Jan 29, 2024
9946e2f
PWGCF: add downsampling to femtodream (#4514)
ariedel-cern Jan 29, 2024
ee27eaf
Update for UPCCandidateProducer (#4504)
nburmaso Jan 30, 2024
7df604c
LF: Fix dereference (#4515)
njacazio Jan 30, 2024
4c6ac61
FT0CorrectedTable: hotfix for dummy time filtering (#4476)
afurs Jan 30, 2024
f7a831a
PWGLF: Add QC histograms for hypertriton 3-body decay analysis (#4512)
wang-yuanzhe Jan 30, 2024
cf6b686
[PWGLF] LightNucleiTask - Add analysis binning axis (#4516)
giovannimalfattore Jan 30, 2024
853befb
LF: Update ME K0s (#4519)
njacazio Jan 30, 2024
26d50af
Fix typo in TCE trigger luminosity (#4486)
nburmaso Jan 30, 2024
17438ed
Adding reduced ZDC info to UPCCandidateProducer (#4518)
nburmaso Jan 30, 2024
f64af44
PWGDQ: Add track cut on hasTOF (#4520)
sigurdnese Jan 30, 2024
c27ca9b
PWGHF: optimise HF combinatorial (#4513)
fgrosa Jan 30, 2024
8b22a6a
Add task for studying fake ITS-TPC matchings (#4525)
fmazzasc Jan 30, 2024
731e31f
Fix: PID selection for MC particle missing (#4521)
ariedel-cern Jan 30, 2024
c4515a4
PWGCF/FemtoUniverse : Adding centrality selection cuts (#4522)
prchakra Jan 30, 2024
7e0111a
check secondary efficiency + add eta axis (#4524)
maciacco Jan 30, 2024
b64cdd7
PWGHF: add Lc ML scores in Sc output. (#4523)
mfaggin Jan 30, 2024
f7ef636
PWG-UD: Implement and use FIT triggers for vetoing in DGCandProducer …
pbuehler Jan 30, 2024
4203f59
PWGCF correlations task 2-prong work (#4466)
jaelpark Jan 30, 2024
8812dc6
EventFiltering/PWGEM: update photon trigger (#4445)
dsekihat Jan 31, 2024
c36775a
PWGLF: min ITS clu length for QA studies (#4530)
ddobrigk Jan 31, 2024
7b95d90
PWGCF: trigger update (#4509)
ariedel-cern Jan 31, 2024
cbe3f5b
fixing index referencing and adding minor improvements and adjustment…
glromane Jan 31, 2024
258634f
PWGCF: Update MeanPtFlucIdentified.cxx (#4529)
TGahlaut1 Jan 31, 2024
7169614
new tasks for Lambda(1520) for pbpb (#4532)
nasirmehdimalik Jan 31, 2024
85041dd
PWGHF: add THnSparse to taskD0 to perform cut variation method (#4506)
atavirag Jan 31, 2024
c6a7d0b
PWGEM/PhotonMeson: update PCM analysis (#4533)
dsekihat Jan 31, 2024
70f31be
add chi2tof cut + test temporary cut on tpcinnerparam (#4536)
maciacco Jan 31, 2024
785a0da
PWGMM: Luminosity stability analysis. (#4479)
JosueMtzGar Jan 31, 2024
b0607c8
Update MeanPtFlucIdentified.cxx (#4534)
TGahlaut1 Jan 31, 2024
8d43855
[PWGJE] Fixing reduction factor and adding centrality axis for trackJ…
jloemker Feb 1, 2024
3168c8e
Add DCA monitoring (#4543)
fmazzasc Feb 1, 2024
e4c85d8
PWGLF: Change analysis procedure for hypertriton 3-body decay (#4538)
wang-yuanzhe Feb 1, 2024
5efa099
EventSelectionQA, Fix fetched BC type (#4531)
nburmaso Feb 1, 2024
64d6097
[Event Plane] Adding CCDB connection (#4542)
jikim1290 Feb 1, 2024
152b7af
PWGEM/PhotonMeson: quick fix for MC histograms (#4547)
dsekihat Feb 1, 2024
0accdd3
PWGMM: Mcgen new histos in multiplicityPbPb.cxx (#4545)
hhesouno Feb 1, 2024
375831a
PWGHF: Add more p t bin in selector cut (#4540)
deependra170598 Feb 1, 2024
a5c648c
Merge 08f9cf3e4809337c9c2b18f09f9decfced228b19 into 375831a1045c397b1…
thakurd3 Feb 1, 2024
8049c15
MegaLinter fixes
alibuild Feb 1, 2024
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: 2 additions & 0 deletions Common/CCDB/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,11 @@
o2physics_add_library(AnalysisCCDB
SOURCES EventSelectionParams.cxx
SOURCES TriggerAliases.cxx
SOURCES ctpRateFetcher.cxx
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore)

o2physics_target_root_dictionary(AnalysisCCDB
HEADERS EventSelectionParams.h
HEADERS TriggerAliases.h
HEADERS ctpRateFetcher.h
LINKDEF AnalysisCCDBLinkDef.h)
137 changes: 137 additions & 0 deletions Common/CCDB/ctpRateFetcher.cxx
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
// All rights not expressly granted are reserved.
//
// This software is distributed under the terms of the GNU General Public
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
//
// In applying this license CERN does not waive the privileges and immunities
// granted to it by virtue of its status as an Intergovernmental Organization
// or submit itself to any jurisdiction.

#include "ctpRateFetcher.h"

#include <map>
#include <vector>

#include "CommonConstants/LHCConstants.h"
#include "DataFormatsCTP/Configuration.h"
#include "DataFormatsCTP/Scalers.h"
#include "DataFormatsParameters/GRPLHCIFData.h"
#include "CCDB/BasicCCDBManager.h"

namespace o2
{

using framework::Service;

double ctpRateFetcher::fetch(Service<o2::ccdb::BasicCCDBManager>& ccdb, uint64_t timeStamp, int runNumber, std::string sourceName)
{
if (sourceName.find("ZNC") != std::string::npos) {
if (runNumber < 544448) {
return fetchCTPratesInputs(ccdb, timeStamp, runNumber, 26) / (sourceName.find("hadronic") != std::string::npos ? 28. : 1.);
} else {
return fetchCTPratesClasses(ccdb, timeStamp, runNumber, "C1ZNC-B-NOPF-CRU", 6) / (sourceName.find("hadronic") != std::string::npos ? 28. : 1.);
}
} else if (sourceName == "T0CE") {
return fetchCTPratesClasses(ccdb, timeStamp, runNumber, "CMTVXTCE-B-NOPF-CRU");
} else if (sourceName == "T0SC") {
return fetchCTPratesClasses(ccdb, timeStamp, runNumber, "CMTVXTSC-B-NOPF-CRU");
} else if (sourceName == "T0VTX") {
if (runNumber < 534202) {
return fetchCTPratesClasses(ccdb, timeStamp, runNumber, "minbias_TVX_L0"); // 2022
} else {
return fetchCTPratesClasses(ccdb, timeStamp, runNumber, "CMTVX-B-NOPF-CRU");
}
}
LOG(error) << "CTP rate for " << sourceName << " not available";
return -1.;
}

double ctpRateFetcher::fetchCTPratesClasses(Service<o2::ccdb::BasicCCDBManager>& ccdb, uint64_t timeStamp, int runNumber, std::string className, int inputType)
{
getCTPscalers(ccdb, timeStamp, runNumber);
getCTPconfig(ccdb, timeStamp, runNumber);

std::vector<ctp::CTPClass> ctpcls = mConfig->getCTPClasses();
std::vector<int> clslist = mConfig->getTriggerClassList();
int classIndex = -1;
for (size_t i = 0; i < clslist.size(); i++) {
if (ctpcls[i].name == className) {
classIndex = i;
break;
}
}
if (classIndex == -1) {
LOG(fatal) << "Trigger class " << className << " not found in CTPConfiguration";
}

auto rate{mScalers->getRateGivenT(timeStamp, classIndex, inputType)};

return pileUpCorrection(rate.second);
}

double ctpRateFetcher::fetchCTPratesInputs(Service<o2::ccdb::BasicCCDBManager>& ccdb, uint64_t timeStamp, int runNumber, int input)
{
getCTPscalers(ccdb, timeStamp, runNumber);
getLHCIFdata(ccdb, timeStamp, runNumber);

std::vector<ctp::CTPScalerRecordO2> recs = mScalers->getScalerRecordO2();
if (recs[0].scalersInps.size() == 48) {
return pileUpCorrection(mScalers->getRateGivenT(timeStamp, input, 7).second);
} else {
LOG(error) << "Inputs not available";
return -1.;
}
}

void ctpRateFetcher::getCTPscalers(Service<o2::ccdb::BasicCCDBManager>& ccdb, uint64_t timeStamp, int runNumber)
{
if (runNumber == mRunNumber && mScalers != nullptr) {
return;
}
std::map<string, string> metadata;
metadata["runNumber"] = std::to_string(runNumber);
mScalers = ccdb->getSpecific<ctp::CTPRunScalers>("CTP/Calib/Scalers", timeStamp, metadata);
if (mScalers == nullptr) {
LOG(fatal) << "CTPRunScalers not in database, timestamp:" << timeStamp;
}
mScalers->convertRawToO2();
}

void ctpRateFetcher::getLHCIFdata(Service<o2::ccdb::BasicCCDBManager>& ccdb, uint64_t timeStamp, int runNumber)
{
if (runNumber == mRunNumber && mLHCIFdata != nullptr) {
return;
}
std::map<string, string> metadata;
mLHCIFdata = ccdb->getSpecific<parameters::GRPLHCIFData>("GLO/Config/GRPLHCIF", timeStamp, metadata);
if (mLHCIFdata == nullptr) {
LOG(fatal) << "GRPLHCIFData not in database, timestamp:" << timeStamp;
}
}

void ctpRateFetcher::getCTPconfig(Service<o2::ccdb::BasicCCDBManager>& ccdb, uint64_t timeStamp, int runNumber)
{
if (runNumber == mRunNumber && mConfig != nullptr) {
return;
}
std::map<string, string> metadata;
metadata["runNumber"] = std::to_string(runNumber);
mConfig = ccdb->getSpecific<ctp::CTPConfiguration>("CTP/Config/Config", timeStamp, metadata);
if (mConfig == nullptr) {
LOG(fatal) << "CTPRunConfig not in database, timestamp:" << timeStamp;
}
}

double ctpRateFetcher::pileUpCorrection(double triggerRate)
{
auto bfilling = mLHCIFdata->getBunchFilling();
std::vector<int> bcs = bfilling.getFilledBCs();
double nbc = bcs.size();
double nTriggersPerFilledBC = triggerRate / nbc / constants::lhc::LHCRevFreq;
double mu = -std::log(1 - nTriggersPerFilledBC);
return mu * nbc * constants::lhc::LHCRevFreq;
}

} // namespace o2
55 changes: 55 additions & 0 deletions Common/CCDB/ctpRateFetcher.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
// All rights not expressly granted are reserved.
//
// This software is distributed under the terms of the GNU General Public
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
//
// In applying this license CERN does not waive the privileges and immunities
// granted to it by virtue of its status as an Intergovernmental Organization
// or submit itself to any jurisdiction.

#ifndef COMMON_CCDB_CTPRATEFETCHER_H_
#define COMMON_CCDB_CTPRATEFETCHER_H_

#include <string>

#include "CCDB/BasicCCDBManager.h"
#include "Framework/AnalysisHelpers.h"

namespace o2
{

namespace ctp
{
class CTPRunScalers;
class CTPConfiguration;
} // namespace ctp

namespace parameters
{
class GRPLHCIFData;
}

class ctpRateFetcher
{
public:
ctpRateFetcher() = default;
double fetch(framework::Service<o2::ccdb::BasicCCDBManager>& ccdb, uint64_t timeStamp, int runNumber, std::string sourceName);

private:
void getCTPconfig(framework::Service<o2::ccdb::BasicCCDBManager>& ccdb, uint64_t timeStamp, int runNumber);
void getCTPscalers(framework::Service<o2::ccdb::BasicCCDBManager>& ccdb, uint64_t timeStamp, int runNumber);
void getLHCIFdata(framework::Service<o2::ccdb::BasicCCDBManager>& ccdb, uint64_t timeStamp, int runNumber);
double fetchCTPratesInputs(framework::Service<o2::ccdb::BasicCCDBManager>& ccdb, uint64_t timeStamp, int runNumber, int input);
double fetchCTPratesClasses(framework::Service<o2::ccdb::BasicCCDBManager>& ccdb, uint64_t timeStamp, int runNumber, std::string className, int inputType = 1);
double pileUpCorrection(double rate);

int mRunNumber = -1;
ctp::CTPConfiguration* mConfig = nullptr;
ctp::CTPRunScalers* mScalers = nullptr;
parameters::GRPLHCIFData* mLHCIFdata = nullptr;
};
} // namespace o2

#endif // COMMON_CCDB_CTPRATEFETCHER_H_
2 changes: 1 addition & 1 deletion Common/Core/PID/PIDTOF.h
Original file line number Diff line number Diff line change
Expand Up @@ -323,7 +323,7 @@ class ExpTimes
/// Gets the number of sigmas with respect the expected time
/// \param parameters Detector response parameters
/// \param track Track of interest
static float GetSeparation(const TOFResoParamsV2& parameters, const TrackType& track) { return GetSeparation(parameters, track, track.tofEvTime(), track.tofEvTimeErr()); }
static float GetSeparation(const TOFResoParamsV2& parameters, const TrackType& track) { return GetSeparation(parameters, track, track.tofEvTime(), GetExpectedSigma(parameters, track)); }
};

/// \brief Class to convert the trackTime to the tofSignal used for PID
Expand Down
6 changes: 5 additions & 1 deletion Common/DataModel/PIDResponse.h
Original file line number Diff line number Diff line change
Expand Up @@ -388,7 +388,8 @@ enum PIDFlags : uint8_t {
};
}

DECLARE_SOA_COLUMN(TOFFlags, tofFlags, uint8_t); //! Flag for the complementary TOF PID information
DECLARE_SOA_COLUMN(GoodTOFMatch, goodTOFMatch, bool); //! Bool for the TOF PID information on the single track information
DECLARE_SOA_COLUMN(TOFFlags, tofFlags, uint8_t); //! Flag for the complementary TOF PID information for the event time
DECLARE_SOA_DYNAMIC_COLUMN(IsEvTimeDefined, isEvTimeDefined, //! True if the Event Time was computed with any method i.e. there is a usable event time
[](uint8_t flags) -> bool { return (flags > 0); });
DECLARE_SOA_DYNAMIC_COLUMN(IsEvTimeTOF, isEvTimeTOF, //! True if the Event Time was computed with the TOF
Expand Down Expand Up @@ -529,6 +530,9 @@ DEFINE_UNWRAP_NSIGMA_COLUMN(TOFNSigmaAl, tofNSigmaAl); //! Unwrapped (float) nsi
DECLARE_SOA_TABLE(TOFSignal, "AOD", "TOFSignal", //! Table of the TOF signal
pidtofsignal::TOFSignal);

DECLARE_SOA_TABLE(pidTOFFlags, "AOD", "pidTOFFlags", //! Table of the flags for TOF signal quality on the track level
pidflags::GoodTOFMatch);

DECLARE_SOA_TABLE(pidTOFbeta, "AOD", "pidTOFbeta", //! Table of the TOF beta
pidtofbeta::Beta, pidtofbeta::BetaError);

Expand Down
52 changes: 48 additions & 4 deletions Common/TableProducer/PID/pidTOFBase.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
#include "Common/DataModel/TrackSelectionTables.h"
#include "Common/DataModel/EventSelection.h"
#include "Common/DataModel/FT0Corrected.h"
#include "Common/DataModel/Multiplicity.h"
#include "TableHelper.h"
#include "pidTOFBase.h"

Expand All @@ -47,14 +48,36 @@ void customize(std::vector<o2::framework::ConfigParamSpec>& workflowOptions)

#include "Framework/runDataProcessing.h"

/// Selection criteria for tracks used for TOF event time
float trackDistanceForGoodMatch = 999.f;
float trackDistanceForGoodMatchLowMult = 999.f;
int multiplicityThreshold = 0;
using Run3Trks = o2::soa::Join<aod::TracksIU, aod::TracksExtra>;
using Run3Cols = o2::soa::Join<aod::Collisions, aod::PVMults>;
bool isTrackGoodMatchForTOFPID(const Run3Trks::iterator& tr, const Run3Cols& ev)
{
if (!tr.hasTOF()) {
return false;
}
if (tr.has_collision() && tr.collision_as<Run3Cols>().multNTracksPVeta1() < multiplicityThreshold) {
return tr.tofChi2() < trackDistanceForGoodMatchLowMult;
}
return tr.tofChi2() < trackDistanceForGoodMatch;
}

/// Task to produce the TOF signal from the trackTime information
struct tofSignal {
o2::framework::Produces<o2::aod::TOFSignal> table;
bool enableTable = false;
o2::framework::Produces<o2::aod::pidTOFFlags> tableFlags;
bool enableTable = false; // Flag to check if the TOF signal table is requested or not
bool enableTableFlags = false; // Flag to check if the TOF signal flags table is requested or not
// CCDB configuration
Configurable<std::string> url{"ccdb-url", "http://alice-ccdb.cern.ch", "url of the ccdb repository"};
Configurable<int64_t> timestamp{"ccdb-timestamp", -1, "timestamp of the object"};
Configurable<std::string> timeShiftCCDBPath{"timeShiftCCDBPath", "", "Path of the TOF time shift vs eta. If empty none is taken"};
Configurable<float> distanceForGoodMatch{"distanceForGoodMatch", 999.f, "Maximum distance to consider a good match"};
Configurable<float> distanceForGoodMatchLowMult{"distanceForGoodMatchLowMult", 999.f, "Maximum distance to consider a good match for low multiplicity events"};
Configurable<int> multThreshold{"multThreshold", 0, "Multiplicity threshold to consider a low multiplicity event"};

void init(o2::framework::InitContext& initContext)
{
Expand All @@ -70,16 +93,30 @@ struct tofSignal {
if (enableTable) {
LOG(info) << "Table TOFSignal enabled!";
}
enableTableFlags = isTableRequiredInWorkflow(initContext, "pidTOFFlags");
if (enableTableFlags) {
LOG(info) << "Table pidTOFFlags enabled!";
}
trackDistanceForGoodMatch = distanceForGoodMatch;
trackDistanceForGoodMatchLowMult = distanceForGoodMatchLowMult;
multiplicityThreshold = multThreshold;
LOG(info) << "Configuring selections for good match: " << trackDistanceForGoodMatch << " low mult " << trackDistanceForGoodMatchLowMult << " mult. threshold " << multiplicityThreshold;
}
using Trks = o2::soa::Join<aod::TracksIU, aod::TracksExtra>;
void processRun3(Trks const& tracks)
void processRun3(Run3Trks const& tracks, Run3Cols const& collisions)
{
if (!enableTable) {
return;
}
table.reserve(tracks.size());
if (enableTableFlags) {
tableFlags.reserve(tracks.size());
}
for (auto& t : tracks) {
table(o2::pid::tof::TOFSignal<Trks::iterator>::GetTOFSignal(t));
table(o2::pid::tof::TOFSignal<Run3Trks::iterator>::GetTOFSignal(t));
if (!enableTableFlags) {
continue;
}
tableFlags(isTrackGoodMatchForTOFPID(t, collisions));
}
}
PROCESS_SWITCH(tofSignal, processRun3, "Process Run3 data i.e. input is TrackIU", true);
Expand All @@ -91,8 +128,15 @@ struct tofSignal {
return;
}
table.reserve(tracks.size());
if (enableTableFlags) {
tableFlags.reserve(tracks.size());
}
for (auto& t : tracks) {
table(o2::pid::tof::TOFSignal<TrksRun2::iterator>::GetTOFSignal(t));
if (!enableTableFlags) {
continue;
}
tableFlags(true);
}
}
PROCESS_SWITCH(tofSignal, processRun2, "Process Run2 data i.e. input is Tracks", false);
Expand Down
4 changes: 2 additions & 2 deletions Common/TableProducer/eventSelection.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -308,10 +308,10 @@ struct BcSelectionTask {
float csZEM = isPP ? -1. : 415.2e6;
float csZNC = isPP ? -1. : 214.5e6;
if (run > 543437 && run < 543514) {
csTCE = 8.3;
csTCE = 8.3e6;
}
if (run >= 543514) {
csTCE = 3.97;
csTCE = 3.97e6;
}

// Fill TVX (T0 vertex) counters
Expand Down
17 changes: 9 additions & 8 deletions Common/TableProducer/ft0CorrectedTable.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,20 @@
// In applying this license CERN does not waive the privileges and immunities
// granted to it by virtue of its status as an Intergovernmental Organization
// or submit itself to any jurisdiction.
#include "Framework/ConfigParamSpec.h"

using namespace o2;
using namespace o2::framework;

#include <bitset>
#include "Common/DataModel/FT0Corrected.h"
#include "Framework/ConfigParamSpec.h"
#include "Framework/runDataProcessing.h"
#include "Framework/AnalysisTask.h"
#include "Common/DataModel/EventSelection.h"
#include "Framework/AnalysisDataModel.h"
#include "CommonConstants/LHCConstants.h"
#include "CommonConstants/PhysicsConstants.h"
#include "Common/DataModel/FT0Corrected.h"
#include "DataFormatsFT0/Digit.h"
#include <bitset>

using namespace o2;
using namespace o2::framework;

using namespace o2::aod;
struct FT0CorrectedTable {
Expand All @@ -36,17 +36,18 @@ struct FT0CorrectedTable {
float vertex_corr = vertexPV / o2::constants::physics::LightSpeedCm2NS;
float t0A = 1e10;
float t0C = 1e10;
constexpr float dummyTime = 30.; // Due to HW limitations time can be only within range (-25,25) ns, dummy time is around 32 ns
if (collision.has_foundFT0()) {
auto ft0 = collision.foundFT0();
std::bitset<8> triggers = ft0.triggerMask();
bool ora = triggers[o2::ft0::Triggers::bitA];
bool orc = triggers[o2::ft0::Triggers::bitC];
LOGF(debug, "triggers OrA %i OrC %i ", ora, orc);
LOGF(debug, " T0A = %f, T0C %f, vertex_corr %f", ft0.timeA(), ft0.timeC(), vertex_corr);
if (ora) {
if (ora && ft0.timeA() < dummyTime) {
t0A = ft0.timeA() + vertex_corr;
}
if (orc) {
if (orc && ft0.timeC() < dummyTime) {
t0C = ft0.timeC() - vertex_corr;
}
}
Expand Down
Loading