Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
f41cbc6
[PWGCF] Add pt getters to lite femto tables (#17209)
ariedel-cern Jul 27, 2026
09f2268
[PWGLF] Fix histogram name (#17218)
abmodak Jul 27, 2026
77adbd6
[PWGLF] kstar histogram now filling, solved several linter issues (#1…
GiorgioAlbertoLucia Jul 27, 2026
f09298b
[PWGUD] add various gap option for POI and Ol region (#17212)
miedema-11 Jul 27, 2026
85847df
[PWGEM] add switchable crossed-pair (leg-swap) veto with QA (#17215)
Steffimro Jul 27, 2026
c33f338
[PWGLF] remove daughter indices (#17224)
mpuccio Jul 27, 2026
8b24142
[PWGLF] added LOCC (#17226)
prottayCMT Jul 27, 2026
f48d2a1
[PWGLF] To add the THnSparse for MC closure (#17217)
navneetkumar231295 Jul 27, 2026
746e6d7
[PWGLF] New developments in h-Strangeness analysis (#17220)
lhusova Jul 27, 2026
f8565ec
[PWGLF,PWGMM] Update for the latest data model (#17221)
aalkin Jul 28, 2026
d95df40
[PWGLF] Updated the Table producer and Task for uncertainty analysis …
15071832337 Jul 28, 2026
ec2c083
[PWGJE] remove unused MC jet angularity histograms (#17225)
monamelop Jul 28, 2026
76ce3c0
[PWGLF] lambda1520analysisinpp: Implement manual calibration for cent…
hkoley Jul 28, 2026
e3a0518
[PWGCF] Add q2-group QA histograms to flow ESE task (#17211)
CyF1rmiana Jul 28, 2026
a3556ab
[PWGCF] Add addition axis for NUA; Add pt range for POI (#17227)
huinaibing Jul 28, 2026
72664a5
[PWGEM] add adjustable QA settings + qinv gate for mixed pairs + fix …
Steffimro Jul 28, 2026
78b02ea
[PWGLF] Add flattenicity response (#17231)
gbencedi Jul 28, 2026
4de5503
[PWGCF] Small fixes in pair cleaner (#17234)
ariedel-cern Jul 28, 2026
e89b3de
[ALICE3] Fix JSON cut usage (#17235)
axti98 Jul 28, 2026
8b0b48a
[PWGLF] phi1020analysis: Change combination policy to UpperIndexPolic…
hkoley Jul 28, 2026
f93e4e1
[PWGCF] FemtoUniverse: Add additional cuts in V0 task (#17223)
alicja-pp Jul 28, 2026
1151e25
[PWGHF] Fix mismatch between axes definition and filling of THnSparse…
fgrosa Jul 28, 2026
dddd07e
[PWGLF] Efficiency studies for Sigma kink + Event Mixing in L1405 tas…
Marcellocosti Jul 28, 2026
83a780b
[PWGEM] fix MC truth information + cross-pair ratio (#17236)
Steffimro Jul 28, 2026
eb1043c
[PWGEM] emcalPhotonMcTask overhaul TruthClass (#17239)
mhemmer-cern Jul 28, 2026
a39145a
[PWGCF] Fix DCA selections of daughter tracks (#17240)
ariedel-cern Jul 28, 2026
534c83d
[PWGDQ] add match attempts in ML training data producer (#17216)
aferrero2707 Jul 29, 2026
26b3bc5
[PWGDQ] add event mixing for Dalitz selection (#17165)
glegras Jul 29, 2026
c5313c8
[PWGLF] Add GoodITSLayersAll event cut and adjust myTrackSelection cu…
PaolaVT Jul 29, 2026
78c1280
[PWGLF] changes in the tree creator for cluster size studies (#17237)
GiorgioAlbertoLucia Jul 29, 2026
23dbf70
[PWGCF] Add kKstarVsKtVsCent histogram to pairHistManager (#17247)
allesgrau Jul 29, 2026
8049196
[PWGLF] Bug Fix in h-Strangeness analysis (#17243)
kcui1 Jul 29, 2026
e041e77
[PWGLF] Remove stale duplicate nucleitpcpbpb.cxx index entry (#17232)
mpuccio Jul 29, 2026
ff1ec04
[PWGLF] Add a workflow for (anti)triton analysis (#17151)
AnalitikGnid Jul 29, 2026
1da3606
[PWGLF] fixed typo in histogram names (#17250)
GiorgioAlbertoLucia Jul 29, 2026
9df1729
[PWGLF] Fix selection based on ctau of cascades (#17249)
ChiaraDeMartin95 Jul 29, 2026
6b23fc4
[PWGEM] remove eta Cut + add new track distance cut (#17251)
Steffimro Jul 29, 2026
cebee0d
[PWGLF] Updated mixing (#17258)
prottayCMT Jul 29, 2026
399f23c
[ALICE3] Fix ALICE 3 DQ datamodel naming (#17252)
axti98 Jul 29, 2026
fc680f6
[PWGJE] adding fix for DQ jet tables (#17244)
nzardosh Jul 29, 2026
3f5c239
[PWGDQ] Apply phi-dependent correction to track rotation (#17245)
ayatsujiringo Jul 30, 2026
932361b
[PWGCF] FemtoUniverse: Add kaon and pion Nsigma rejection in proton s…
alicja-pp Jul 30, 2026
ff34c72
[PWGCF] FemtoUniverse D0 task: adding function for purity estimation …
kgwizdzi Jul 30, 2026
c8c6eb7
[PWGCF] Fix V0V0 processing in femto framework (#17255)
ariedel-cern Jul 30, 2026
6c5b8e6
[PWGHF] Xic0, Updated output table columns produced by treeCreatorToX…
jinhyunni Jul 30, 2026
aa64e13
[PWGDQ] Add post-prefilter single-track QA task and fill electron-leg…
Shunsuke-Kurita Jul 30, 2026
4a82301
[PWGCF] Added multiplicity study & pt correlations (#17261)
MaximVirta Jul 30, 2026
3204913
[DPG] HMPID: new method to select primaries (#17248)
rliotino99 Jul 30, 2026
32257cb
[PWGDQ] add some fgVarNamesMap related to A2 analysis (#17127)
ypwangg Jul 30, 2026
287abed
[PWGJE] Add UPC jet QA task (#17161)
JaehyeokRyu Jul 30, 2026
624b326
[PWGCF] Add pi-triton femto in HadNucleiFemto.cxx and a new workflow …
blacwovie Jul 30, 2026
6f14fea
[PWGLF] Fix filling H3L absorption point (#17268)
mpuccio Jul 30, 2026
8b434a4
[PWGLF] Add custom DCA selection + fix track selection in MC (#17270)
gbencedi Jul 30, 2026
fbbe848
[Common et all] Fix includes (#17263)
vkucera Jul 30, 2026
8e899a6
[PWGUD] add zdc time cut (#17259)
miedema-11 Jul 31, 2026
b459571
[PWGCF] Added bootsrapping, improved linter errors (#17264)
MaximVirta Jul 31, 2026
cb9b748
[PWGCF] Femto: Add D0 meson support to the femto framework (#17253)
IgorPtak Jul 31, 2026
9c84039
[PWGCF] FemtoUniverse - Track-Phi - new PID for Phi (#17265)
zchochul Jul 31, 2026
a70296c
[PWGCF] Small fixes in femto framework (#17275)
ariedel-cern Jul 31, 2026
31c9e5d
[PWGEM] Add option to separate EMCal and DCal cluster pairing for flo…
mhemmer-cern Jul 31, 2026
4d0c041
[PWGHF] Add event mixing on data in correlatorDMesonPairs.cxx (#17214)
atavirag Jul 31, 2026
dcc8d10
[PWGUD] fix ptdiff (#17274)
miedema-11 Jul 31, 2026
5ae5f86
[PWGCF] Add MC closure test (#17277)
huinaibing Jul 31, 2026
0f56e6d
[PWGLF] Fix place of histogram filling (#17279)
gbencedi Jul 31, 2026
9447803
[PWGLF] Fix MC mask bug hStrangeCorrelation.cxx (#17278)
kcui1 Jul 31, 2026
7372216
[PWGLF] Adds MC QA hists. + selection on particle vertex (#17280)
omvazque Aug 1, 2026
9c8d91e
[PWGLF] adding info for centrality cloures (#17267)
lietava Aug 1, 2026
c869cd3
[Common] Adding function in fwdtrackUtilities to correct for 3D PV sh…
mcoquet642 Aug 1, 2026
fb91ce8
[PWGDQ] Add and fix configurable tag options for optimize memory issu…
dmallick2 Aug 1, 2026
87069ec
updated version for mc
miedema-11 Aug 1, 2026
f1e5fd6
Please consider the following formatting changes
alibuild Aug 1, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
335 changes: 335 additions & 0 deletions ALICE3/DataModel/ReducedTablesAlice3.h

Large diffs are not rendered by default.

73 changes: 34 additions & 39 deletions ALICE3/TableProducer/alice3-dq-table-maker.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@
#include "PWGDQ/Core/MCSignal.h"
#include "PWGDQ/Core/MCSignalLibrary.h"
#include "PWGDQ/Core/VarManager.h"
#include "PWGDQ/DataModel/ReducedTablesAlice3.h"

#include "ALICE3/DataModel/OTFRICH.h"
#include "ALICE3/DataModel/OTFTOF.h"
#include "ALICE3/DataModel/ReducedTablesAlice3.h"
#include "ALICE3/DataModel/collisionAlice3.h"
#include "ALICE3/DataModel/tracksAlice3.h"
#include "Common/CCDB/EventSelectionParams.h"
Expand Down Expand Up @@ -74,16 +74,14 @@ constexpr static uint32_t gkTrackFillMapWithCov = VarManager::ObjTypes::Track |

struct Alice3DQTableMaker {

Produces<ReducedA3MCEvents> eventMC;
Produces<ReducedA3MCTracks> trackMC;
Produces<ReA3MCEvents> eventMC;
Produces<ReA3MCTracks> trackMC;

Produces<ReducedA3Events> event;
Produces<ReA3Events> event;
Produces<ReducedA3EventsVtxCov> eventVtxCov;
Produces<ReducedA3EventsInfo> eventInfo;
Produces<ReducedA3MCEventLabels> eventMClabels;

Produces<ReducedA3TracksBarrelInfo> trackBarrelInfo;
Produces<ReducedA3Tracks> trackBasic;
Produces<ReA3Tracks> trackBasic;
Produces<ReducedA3TracksBarrel> trackBarrel;
Produces<ReducedA3TracksBarrelCov> trackBarrelCov;
Produces<ReducedA3TracksAssoc> trackBarrelAssoc;
Expand All @@ -96,7 +94,7 @@ struct Alice3DQTableMaker {
OutputObj<THashList> fOutputList{"output"};
OutputObj<TList> fStatsList{"Statistics"}; //! skimming statistics

HistogramManager* fHistMan;
HistogramManager* fHistMan = nullptr;

// Event and track AnalysisCut configurables
struct : ConfigurableGroup {
Expand All @@ -120,9 +118,8 @@ struct Alice3DQTableMaker {
Configurable<std::string> fConfigAddJSONHistograms{"cfgAddJSONHistograms", "", "Histograms in JSON format"};
} fConfigHistOutput;

AnalysisCompositeCut* fEventCut; //! Event selection cut
AnalysisCompositeCut* fEventCut = nullptr; //! Event selection cut
std::vector<AnalysisCompositeCut*> fTrackCuts; //! Barrel track cuts
std::vector<AnalysisCompositeCut*> fMuonCuts; //! Muon track cuts

bool fDoDetailedQA = false;

Expand Down Expand Up @@ -290,38 +287,38 @@ struct Alice3DQTableMaker {
}
}

// create statistics histograms (event, tracks, muons, MCsignals)
// create statistics histograms (event, tracks, MCsignals)
fStatsList.setObject(new TList());
fStatsList->SetOwner(true);
std::vector<TString> eventLabels{"Collisions before filtering", "Before cuts", "After cuts"};
TH2I* histEvents = new TH2I("EventStats", "Event statistics", eventLabels.size(), -0.5, eventLabels.size() - 0.5, o2::aod::evsel::kNsel + 1, -0.5, (float)o2::aod::evsel::kNsel + 0.5);
int ib = 1;
for (auto label = eventLabels.begin(); label != eventLabels.end(); label++, ib++) {
histEvents->GetXaxis()->SetBinLabel(ib, (*label).Data());
int ibX = 1;
for (auto label = eventLabels.begin(); label != eventLabels.end(); label++, ibX++) {
histEvents->GetXaxis()->SetBinLabel(ibX, (*label).Data());
}
for (int ib = 1; ib <= o2::aod::evsel::kNsel; ib++) {
histEvents->GetYaxis()->SetBinLabel(ib, o2::aod::evsel::selectionLabels[ib - 1]);
for (int ibY = 1; ibY <= o2::aod::evsel::kNsel; ibY++) {
histEvents->GetYaxis()->SetBinLabel(ibY, o2::aod::evsel::selectionLabels[ibY - 1]);
}
histEvents->GetYaxis()->SetBinLabel(o2::aod::evsel::kNsel + 1, "Total");
fStatsList->Add(histEvents);

// Track statistics: one bin for each track selection and 5 bins for V0 tags (gamma, K0s, Lambda, anti-Lambda, Omega)
TH1I* histTracks = new TH1I("TrackStats", "Track statistics", fTrackCuts.size() + 5.0, -0.5, fTrackCuts.size() - 0.5 + 5.0);
ib = 1;
for (auto cut = fTrackCuts.begin(); cut != fTrackCuts.end(); cut++, ib++) {
histTracks->GetXaxis()->SetBinLabel(ib, (*cut)->GetName());
ibX = 1;
for (auto cut = fTrackCuts.begin(); cut != fTrackCuts.end(); cut++, ibX++) {
histTracks->GetXaxis()->SetBinLabel(ibX, (*cut)->GetName());
}
constexpr int nV0Tags = 5;
const char* v0TagNames[nV0Tags] = {"Photon conversion", "K^{0}_{s}", "#Lambda", "#bar{#Lambda}", "#Omega"};
for (int ib = 0; ib < nV0Tags; ib++) {
histTracks->GetXaxis()->SetBinLabel(fTrackCuts.size() + 1 + ib, v0TagNames[ib]);
for (int ibY = 0; ibY < nV0Tags; ibY++) {
histTracks->GetXaxis()->SetBinLabel(fTrackCuts.size() + 1 + ibY, v0TagNames[ibY]);
}
fStatsList->Add(histTracks);

TH1I* histMCsignals = new TH1I("MCsignals", "MC signals", fMCSignals.size() + 1, -0.5, fMCSignals.size() - 0.5 + 1.0);
ib = 1;
for (auto signal = fMCSignals.begin(); signal != fMCSignals.end(); signal++, ib++) {
histMCsignals->GetXaxis()->SetBinLabel(ib, (*signal)->GetName());
ibX = 1;
for (auto signal = fMCSignals.begin(); signal != fMCSignals.end(); signal++, ibX++) {
histMCsignals->GetXaxis()->SetBinLabel(ibX, (*signal)->GetName());
}
histMCsignals->GetXaxis()->SetBinLabel(fMCSignals.size() + 1, "Others (matched to reco tracks)");
fStatsList->Add(histMCsignals);
Expand Down Expand Up @@ -384,19 +381,22 @@ struct Alice3DQTableMaker {
}

// If this MC track was not already added to the map, add it now
if (fLabelsMap.find(mctrack.globalIndex()) == fLabelsMap.end()) {
fLabelsMap[mctrack.globalIndex()] = trackCounter;
fLabelsMapReversed[trackCounter] = mctrack.globalIndex();
fMCFlags[mctrack.globalIndex()] = mcflags;
trackCounter++;
const auto mcTrackIndex = mctrack.globalIndex();
const bool inserted = fLabelsMap.try_emplace(mcTrackIndex, trackCounter).second;

if (inserted) {
fLabelsMapReversed.try_emplace(trackCounter, mcTrackIndex);
fMCFlags.try_emplace(mcTrackIndex, mcflags);
++trackCounter;

// fill histograms for each of the signals, if found
if (fConfigHistOutput.fConfigQA) {
VarManager::FillTrackMC(mcTracks, mctrack);
auto mcCollision = mctrack.template mcCollision_as<MyEventsMC>();
VarManager::FillEvent<gkEventMcFillMap>(mcCollision);

int j = 0;
for (auto signal = fMCSignals.begin(); signal != fMCSignals.end(); signal++, j++) {
for (auto signal = fMCSignals.begin(); signal != fMCSignals.end(); ++signal, ++j) {
if (mcflags & (static_cast<uint16_t>(1) << j)) {
fHistMan->FillHistClass(Form("MCTruth_%s", (*signal)->GetName()), VarManager::fgValues);
}
Expand Down Expand Up @@ -444,7 +444,6 @@ struct Alice3DQTableMaker {

eventVtxCov(collision.covXX(), collision.covXY(), collision.covXZ(), collision.covYY(), collision.covYZ(), collision.covZZ(), collision.chi2());
eventMClabels(collision.mcCollisionId(), collision.mcMask());
eventInfo(collision.globalIndex());

// add an element for this collision into the map
fCollIndexMap[collision.globalIndex()] = event.lastIndex();
Expand Down Expand Up @@ -484,14 +483,14 @@ struct Alice3DQTableMaker {
fHistMan->FillHistClass("TrackBarrel_BeforeCuts", VarManager::fgValues);
}

int i = 0;
for (auto cut = fTrackCuts.begin(); cut != fTrackCuts.end(); cut++, i++) {
int n = 0;
for (auto cut = fTrackCuts.begin(); cut != fTrackCuts.end(); cut++, n++) {
if ((*cut)->IsSelected(VarManager::fgValues)) {
trackTempFilterMap |= (static_cast<uint32_t>(1) << i);
trackTempFilterMap |= (static_cast<uint32_t>(1) << n);
if (fConfigHistOutput.fConfigQA) {
fHistMan->FillHistClass(Form("TrackBarrel_%s", (*cut)->GetName()), VarManager::fgValues);
}
(reinterpret_cast<TH1I*>(fStatsList->At(1)))->Fill(static_cast<float>(i));
(reinterpret_cast<TH1I*>(fStatsList->At(1)))->Fill(static_cast<float>(n));
}
}
if (!trackTempFilterMap) {
Expand All @@ -512,9 +511,6 @@ struct Alice3DQTableMaker {
// In the case of Run2-like analysis, there will be no associations, so this ID will be the one originally assigned in the AO2Ds (updated for the skims)
uint32_t reducedEventIdx = fCollIndexMap[track.collisionId()];

// NOTE: trackBarrelInfo stores the index of the collision as in AO2D (for use in some cases where the analysis on skims is done
// in workflows where the original AO2Ds are also present)
// trackBarrelInfo(track.collisionId(), collision.posX(), collision.posY(), collision.posZ(), track.globalIndex());
trackBasic(reducedEventIdx, trackFilteringTag, track.pt(), track.eta(), track.phi(), track.sign(), 0);

trackBarrel(track.x(), track.alpha(), track.y(), track.z(), track.snp(), track.tgl(), track.signed1Pt(),
Expand Down Expand Up @@ -612,7 +608,6 @@ struct Alice3DQTableMaker {
event.reserve(collisions.size());
eventVtxCov.reserve(collisions.size());
eventMClabels.reserve(collisions.size());
eventInfo.reserve(collisions.size());

skimCollisions(collisions);

Expand Down
9 changes: 6 additions & 3 deletions ALICE3/Tasks/alice3-dilepton.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,18 @@
#include <CommonConstants/PhysicsConstants.h>
#include <Framework/ASoAHelpers.h>
#include <Framework/AnalysisDataModel.h>
#include <Framework/AnalysisHelpers.h>
#include <Framework/AnalysisTask.h>
#include <Framework/Configurable.h>
#include <Framework/HistogramRegistry.h>
#include <Framework/HistogramSpec.h>
#include <Framework/InitContext.h>
#include <Framework/O2DatabasePDGPlugin.h>
#include <Framework/OutputObjHeader.h>
#include <Framework/runDataProcessing.h>

#include <Math/Vector4D.h>
#include <TH1F.h>
#include <TH2F.h>
#include <Math/Vector4D.h> // IWYU pragma: keep (do not replace with Math/Vector4Dfwd.h)
#include <Math/Vector4Dfwd.h>
#include <THnSparse.h>
#include <TMath.h>
#include <TPDGCode.h>
Expand Down
Loading