Skip to content

Commit affe38e

Browse files
authored
Merge branch 'AliceO2Group:master' into master
2 parents f1edf0b + 58ea12d commit affe38e

File tree

106 files changed

+3225
-3188
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

106 files changed

+3225
-3188
lines changed

.pre-commit-config.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ repos:
77
- id: trailing-whitespace
88
- id: end-of-file-fixer
99
- repo: https://github.com/pre-commit/mirrors-clang-format
10-
rev: v18.1.3 # clang-format version
10+
rev: v20.1.5 # clang-format version
1111
hooks:
1212
- id: clang-format
1313
- repo: https://github.com/cpplint/cpplint
14-
rev: 2.0.0
14+
rev: 2.0.2
1515
hooks:
1616
- id: cpplint

ALICE3/TableProducer/alice3-decayfinder.cxx

Lines changed: 91 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ struct alice3decayFinder {
7777
Configurable<float> magneticField{"magneticField", 20.0f, "Magnetic field (in kilogauss)"};
7878
Configurable<bool> doDCAplotsD{"doDCAplotsD", true, "do daughter prong DCA plots for D mesons"};
7979
Configurable<bool> doDCAplotsLc{"doDCAplotsLc", true, "do daughter prong DCA plots for Lc baryons"};
80+
Configurable<bool> doTopoPlotsForSAndB{"doTopoPlotsForSAndB", true, "do topological variable distributions for S and B separately"};
8081
Configurable<bool> mcSameMotherCheck{"mcSameMotherCheck", true, "check if tracks come from the same MC mother"};
8182
Configurable<float> dcaDaughtersSelection{"dcaDaughtersSelection", 1000.0f, "DCA between daughters (cm)"};
8283

@@ -92,11 +93,13 @@ struct alice3decayFinder {
9293
Configurable<float> DCosThetaStarLowPt{"DCosThetaStarLowPt", 0.8, "Cos theta; low pt"};
9394
Configurable<float> DCosThetaStarHighPt{"DCosThetaStarHighPt", 0.9, "Cos theta; high pt"};
9495
Configurable<float> DCosThetaStarVHighPt{"DCosThetaStarVHighPt", 1.0, "Cos theta; very high pt"};
96+
Configurable<float> DDecayLengthSquaredCut{"DDecayLengthSquaredCut", 0., "Flat component of squared decay length cut (only for LoI legacy)"};
9597
Configurable<float> DMinDecayLength{"DMinDecayLength", 0., "Minimum D decay length (3D)"};
9698
Configurable<float> DMaxDecayLength{"DMaxDecayLength", 10., "Maximum D decay length (3D)"};
9799
Configurable<float> DMinDecayLengthXY{"DMinDecayLengthXY", 0., "Minimum D decay length (xy)"};
98100
Configurable<float> DMaxDecayLengthXY{"DMaxDecayLengthXY", 10., "Maximum D decay length (xy)"};
99-
Configurable<float> DNormDecayLength{"DNormDecayLength", 3, "Minimum normalized decay length"};
101+
Configurable<float> DMinNormDecayLength{"DMinNormDecayLength", 3, "Minimum normalized decay length"};
102+
Configurable<float> DMaxNormDecayLength{"DMaxNormDecayLength", 3, "Maximum normalized decay length"};
100103
Configurable<float> minPtPi{"minPtPi", 0., "Minimum pT of daughter pion track"};
101104
Configurable<float> minPtK{"minPtK", 0., "Minimum pT of daughter kaon track"};
102105
Configurable<float> maxImpParPi{"maxImpParPi", 1., "Maximum impact paramter of daughter pion track"};
@@ -389,7 +392,7 @@ struct alice3decayFinder {
389392
histos.add("hDNormDecayLength", "hDNormDecayLength", kTH1F, {{100, 0, 10}});
390393
histos.add("hImpParPi", "hImpParPi", kTH1F, {{200, -0.4, 0.4}});
391394
histos.add("hImpParK", "hImpParK", kTH1F, {{200, -0.4, 0.4}});
392-
histos.add("hImpParProduct", "hImpParProduct", kTH1F, {{200, -0.04, 0.04}});
395+
histos.add("hImpParProduct", "hImpParProduct", kTH1F, {{400, -0.04, 0.04}});
393396

394397
histos.add("hDCosPA_Selected", "hDCosPA_Selected", kTH1F, {{800, -1, 1}});
395398
histos.add("hDCosPAxy_Selected", "hDCosPAxy_Selected", kTH1F, {{800, -1, 1}});
@@ -399,7 +402,28 @@ struct alice3decayFinder {
399402
histos.add("hDNormDecayLength_Selected", "hDNormDecayLength_Selected", kTH1F, {{100, 0, 10}});
400403
histos.add("hImpParPi_Selected", "hImpParPi_Selected", kTH1F, {{200, -0.4, 0.4}});
401404
histos.add("hImpParK_Selected", "hImpParK_Selected", kTH1F, {{200, -0.4, 0.4}});
402-
histos.add("hImpParProduct_Selected", "hImpParProduct_Selected", kTH1F, {{200, -0.04, 0.04}});
405+
histos.add("hImpParProduct_Selected", "hImpParProduct_Selected", kTH1F, {{400, -0.04, 0.04}});
406+
407+
if (doTopoPlotsForSAndB) {
408+
histos.add("hDCosPA_Signal", "hDCosPA_Signal", kTH1F, {{800, -1, 1}});
409+
histos.add("hDCosPAxy_Signal", "hDCosPAxy_Signal", kTH1F, {{800, -1, 1}});
410+
histos.add("hDCosThetaStar_Signal", "hDCosThetaStar_Signal", kTH1F, {{200, -1, 1}});
411+
histos.add("hDDecayLength_Signal", "hDDecayLength_Signal", kTH1F, {{100, 0, 0.5}});
412+
histos.add("hDDecayLengthXY_Signal", "hDDecayLengthXY_Signal", kTH1F, {{100, 0, 0.5}});
413+
histos.add("hDNormDecayLength_Signal", "hDNormDecayLength_Signal", kTH1F, {{100, 0, 10}});
414+
histos.add("hImpParPi_Signal", "hImpParPi_Signal", kTH1F, {{200, -0.4, 0.4}});
415+
histos.add("hImpParK_Signal", "hImpParK_Signal", kTH1F, {{200, -0.4, 0.4}});
416+
histos.add("hImpParProduct_Signal", "hImpParProduct_Signal", kTH1F, {{400, -0.04, 0.04}});
417+
histos.add("hDCosPA_Bkg", "hDCosPA_Bkg", kTH1F, {{800, -1, 1}});
418+
histos.add("hDCosPAxy_Bkg", "hDCosPAxy_Bkg", kTH1F, {{800, -1, 1}});
419+
histos.add("hDCosThetaStar_Bkg", "hDCosThetaStar_Bkg", kTH1F, {{200, -1, 1}});
420+
histos.add("hDDecayLength_Bkg", "hDDecayLength_Bkg", kTH1F, {{100, 0, 0.5}});
421+
histos.add("hDDecayLengthXY_Bkg", "hDDecayLengthXY_Bkg", kTH1F, {{100, 0, 0.5}});
422+
histos.add("hDNormDecayLength_Bkg", "hDNormDecayLength_Bkg", kTH1F, {{100, 0, 10}});
423+
histos.add("hImpParPi_Bkg", "hImpParPi_Bkg", kTH1F, {{200, -0.4, 0.4}});
424+
histos.add("hImpParK_Bkg", "hImpParK_Bkg", kTH1F, {{200, -0.4, 0.4}});
425+
histos.add("hImpParProduct_Bkg", "hImpParProduct_Bkg", kTH1F, {{400, -0.04, 0.04}});
426+
}
403427

404428
if (doDCAplotsD) {
405429
histos.add("hDCADDaughters", "hDCADDaughters", kTH1D, {axisDCADaughters});
@@ -502,10 +526,37 @@ struct alice3decayFinder {
502526
histos.fill(HIST("hDDecayLength"), decayLength);
503527
histos.fill(HIST("hDDecayLengthXY"), decayLengthXY);
504528
histos.fill(HIST("hDNormDecayLength"), dmeson.normalizedDecayLength);
505-
histos.fill(HIST("hDCADDaughters"), dmeson.dcaDau * 1e+4);
506529
histos.fill(HIST("hImpParPi"), impParXY_daugPos);
507530
histos.fill(HIST("hImpParK"), impParXY_daugNeg);
508531
histos.fill(HIST("hImpParProduct"), impParXY_daugPos * impParXY_daugNeg);
532+
if (doDCAplotsD)
533+
histos.fill(HIST("hDCADDaughters"), dmeson.dcaDau * 1e+4);
534+
535+
if (doTopoPlotsForSAndB) { // fill plots of topological variables for S and B separately (reflections not considered here)
536+
histos.fill(HIST("hDCosPA_Signal"), dmeson.cosPA);
537+
histos.fill(HIST("hDCosPAxy_Signal"), dmeson.cosPAxy);
538+
histos.fill(HIST("hDCosThetaStar_Signal"), dmeson.cosThetaStar);
539+
histos.fill(HIST("hDDecayLength_Signal"), decayLength);
540+
histos.fill(HIST("hDDecayLengthXY_Signal"), decayLengthXY);
541+
histos.fill(HIST("hDNormDecayLength_Signal"), dmeson.normalizedDecayLength);
542+
histos.fill(HIST("hImpParPi_Signal"), impParXY_daugPos);
543+
histos.fill(HIST("hImpParK_Signal"), impParXY_daugNeg);
544+
histos.fill(HIST("hImpParProduct_Signal"), impParXY_daugPos * impParXY_daugNeg);
545+
histos.fill(HIST("hDCosPA_Bkg"), dmeson.cosPA);
546+
histos.fill(HIST("hDCosPAxy_Bkg"), dmeson.cosPAxy);
547+
histos.fill(HIST("hDCosThetaStar_Bkg"), dmeson.cosThetaStar);
548+
histos.fill(HIST("hDDecayLength_Bkg"), decayLength);
549+
histos.fill(HIST("hDDecayLengthXY_Bkg"), decayLengthXY);
550+
histos.fill(HIST("hDNormDecayLength_Bkg"), dmeson.normalizedDecayLength);
551+
histos.fill(HIST("hDCADDaughters_Bkg"), dmeson.dcaDau * 1e+4);
552+
histos.fill(HIST("hImpParPi_Bkg"), impParXY_daugPos);
553+
histos.fill(HIST("hImpParK_Bkg"), impParXY_daugNeg);
554+
histos.fill(HIST("hImpParProduct_Bkg"), impParXY_daugPos * impParXY_daugNeg);
555+
if (doDCAplotsD) {
556+
histos.fill(HIST("hDCADDaughters_Signal"), dmeson.dcaDau * 1e+4);
557+
histos.fill(HIST("hDCADDaughters_Bkg"), dmeson.dcaDau * 1e+4);
558+
}
559+
}
509560

510561
if (dmeson.dcaDau > dcaDaughtersSelection)
511562
continue;
@@ -527,7 +578,7 @@ struct alice3decayFinder {
527578
else if (dmeson.pt > highPtDLimit && std::fabs(dmeson.cosThetaStar) > DCosThetaStarVHighPt)
528579
continue;
529580

530-
if (dmeson.normalizedDecayLength > DNormDecayLength)
581+
if (dmeson.normalizedDecayLength < DMinNormDecayLength || dmeson.normalizedDecayLength > DMaxNormDecayLength)
531582
continue;
532583

533584
if (dmeson.ptdaugPos < minPtPi) // track1 (positive) is the pion
@@ -546,6 +597,9 @@ struct alice3decayFinder {
546597
continue;
547598
if (decayLengthXY < DMinDecayLengthXY || decayLengthXY > DMaxDecayLengthXY)
548599
continue;
600+
auto decayLengthSquaredCut = std::min((std::hypot(dmeson.P[0], dmeson.P[1], dmeson.P[2]) * 0.0066) + 0.01, (double)DDecayLengthSquaredCut);
601+
if (decayLength * decayLength < decayLengthSquaredCut * decayLengthSquaredCut)
602+
continue;
549603

550604
// fill plots of topological variables after topological selection
551605
histos.fill(HIST("hDCosPA_Selected"), dmeson.cosPA);
@@ -554,10 +608,11 @@ struct alice3decayFinder {
554608
histos.fill(HIST("hDDecayLength_Selected"), decayLength);
555609
histos.fill(HIST("hDDecayLengthXY_Selected"), decayLengthXY);
556610
histos.fill(HIST("hDNormDecayLength_Selected"), dmeson.normalizedDecayLength);
557-
histos.fill(HIST("hDCADDaughters_Selected"), dmeson.dcaDau * 1e+4);
558611
histos.fill(HIST("hImpParPi_Selected"), impParXY_daugPos);
559612
histos.fill(HIST("hImpParK_Selected"), impParXY_daugNeg);
560613
histos.fill(HIST("hImpParProduct_Selected"), impParXY_daugPos * impParXY_daugNeg);
614+
if (doDCAplotsD)
615+
histos.fill(HIST("hDCADDaughters_Selected"), dmeson.dcaDau * 1e+4);
561616

562617
// filling of mass plots for selected candidates
563618
histos.fill(HIST("hMassD"), dmeson.mass);
@@ -620,6 +675,32 @@ struct alice3decayFinder {
620675
if (doDCAplotsD)
621676
histos.fill(HIST("hDCADbarDaughters"), dmeson.dcaDau * 1e+4);
622677

678+
if (doTopoPlotsForSAndB) { // fill plots of topological variables for S and B separately (reflections not considered here)
679+
histos.fill(HIST("hDCosPA_Signal"), dmeson.cosPA);
680+
histos.fill(HIST("hDCosPAxy_Signal"), dmeson.cosPAxy);
681+
histos.fill(HIST("hDCosThetaStar_Signal"), dmeson.cosThetaStar);
682+
histos.fill(HIST("hDDecayLength_Signal"), decayLength);
683+
histos.fill(HIST("hDDecayLengthXY_Signal"), decayLengthXY);
684+
histos.fill(HIST("hDNormDecayLength_Signal"), dmeson.normalizedDecayLength);
685+
histos.fill(HIST("hImpParPi_Signal"), impParXY_daugNeg);
686+
histos.fill(HIST("hImpParK_Signal"), impParXY_daugPos);
687+
histos.fill(HIST("hImpParProduct_Signal"), impParXY_daugPos * impParXY_daugNeg);
688+
histos.fill(HIST("hDCosPA_Bkg"), dmeson.cosPA);
689+
histos.fill(HIST("hDCosPAxy_Bkg"), dmeson.cosPAxy);
690+
histos.fill(HIST("hDCosThetaStar_Bkg"), dmeson.cosThetaStar);
691+
histos.fill(HIST("hDDecayLength_Bkg"), decayLength);
692+
histos.fill(HIST("hDDecayLengthXY_Bkg"), decayLengthXY);
693+
histos.fill(HIST("hDNormDecayLength_Bkg"), dmeson.normalizedDecayLength);
694+
histos.fill(HIST("hDCADDaughters_Bkg"), dmeson.dcaDau * 1e+4);
695+
histos.fill(HIST("hImpParPi_Bkg"), impParXY_daugNeg);
696+
histos.fill(HIST("hImpParK_Bkg"), impParXY_daugPos);
697+
histos.fill(HIST("hImpParProduct_Bkg"), impParXY_daugPos * impParXY_daugNeg);
698+
if (doDCAplotsD) {
699+
histos.fill(HIST("hDCADDaughters_Signal"), dmeson.dcaDau * 1e+4);
700+
histos.fill(HIST("hDCADDaughters_Bkg"), dmeson.dcaDau * 1e+4);
701+
}
702+
}
703+
623704
if (dmeson.dcaDau > dcaDaughtersSelection)
624705
continue;
625706

@@ -640,7 +721,7 @@ struct alice3decayFinder {
640721
else if (dmeson.pt > highPtDLimit && std::fabs(dmeson.cosThetaStar) > DCosThetaStarVHighPt)
641722
continue;
642723

643-
if (dmeson.normalizedDecayLength > DNormDecayLength)
724+
if (dmeson.normalizedDecayLength < DMinNormDecayLength || dmeson.normalizedDecayLength > DMaxNormDecayLength)
644725
continue;
645726

646727
if (dmeson.ptdaugPos < minPtK) // track1 is the kaon
@@ -659,6 +740,9 @@ struct alice3decayFinder {
659740
continue;
660741
if (decayLengthXY < DMinDecayLengthXY || decayLengthXY > DMaxDecayLengthXY)
661742
continue;
743+
auto decayLengthSquaredCut = std::min((std::hypot(dmeson.P[0], dmeson.P[1], dmeson.P[2]) * 0.0066) + 0.01, (double)DDecayLengthSquaredCut);
744+
if (decayLength * decayLength < decayLengthSquaredCut * decayLengthSquaredCut)
745+
continue;
662746

663747
// fill plots of topological variables after topological selection
664748
histos.fill(HIST("hDCosPA_Selected"), dmeson.cosPA);

CODEOWNERS

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@
4141
/PWGHF @alibuild @vkucera @fcolamar @fgrosa @fcatalan92 @mfaggin @mmazzilli @deepathoms @NicoleBastid @hahassan7 @jpxrk @apalasciano @zhangbiao-phy @gluparel
4242
# PWG-LF
4343
/PWGLF @alibuild @sustripathy @skundu692
44-
/PWGLF/Tasks/GlobalEventProperties @alibuild @sustripathy @skundu692 @gbencedi @abmodak
45-
/PWGLF/TableProducer/GlobalEventProperties @alibuild @sustripathy @skundu692 @gbencedi @abmodak
44+
/PWGLF/Tasks/GlobalEventProperties @alibuild @sustripathy @skundu692 @gbencedi @abmodak @omvazque
45+
/PWGLF/TableProducer/GlobalEventProperties @alibuild @sustripathy @skundu692 @gbencedi @abmodak @omvazque
4646
/PWGLF/Tasks/Nuspex @alibuild @sustripathy @skundu692 @fmazzasc @chiarapinto @maciacco
4747
/PWGLF/TableProducer/Nuspex @alibuild @sustripathy @skundu692 @fmazzasc @chiarapinto @maciacco
4848
/PWGLF/Tasks/Resonances @alibuild @sustripathy @skundu692 @dmallick2 @smaff92

PWGCF/Flow/Tasks/flowZdcTask.cxx

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,7 @@ struct FlowZdcTask {
322322
histos.add("ZEM2Vstdc", ";t_{ZEM2};ZEM2;", kTH2F, {{{30, -15., 15.}, {30, -0.5, 2000.5}}});
323323
histos.add("debunch", ";t_{ZDC}-t_{ZDA};t_{ZDC}+t_{ZDA}", kTH2F, {{{nBinsTDC, minTdc, maxTdc}, {nBinsTDC, minTdc, maxTdc}}});
324324

325+
histos.add("Nch", "Nch", kTH1F, {{nBinsNch, minNch, maxNch}});
325326
histos.add("NchVsFT0C", ";T0C (#times 1/100, -3.3 < #eta < -2.1);#it{N}_{ch} (|#eta|<0.8);", kTH2F, {{{nBinsAmpFT0, 0., 950.}, {nBinsNch, minNch, maxNch}}});
326327
histos.add("NchVsFT0M", ";T0A+T0C (#times 1/100, -3.3 < #eta < -2.1 and 3.5 < #eta < 4.9);#it{N}_{ch} (|#eta|<0.8);", kTH2F, {{{nBinsAmpFT0, 0., 3000.}, {nBinsNch, minNch, maxNch}}});
327328
histos.add("NchVsFT0A", ";T0A (#times 1/100, 3.5 < #eta < 4.9);#it{N}_{ch} (|#eta|<0.8);", kTH2F, {{{nBinsAmpFT0, 0., maxAmpFT0}, {nBinsNch, minNch, maxNch}}});
@@ -501,28 +502,28 @@ struct FlowZdcTask {
501502
}
502503
// Track Selection
503504
if (track.isGlobalTrack()) {
504-
glbTracks++;
505-
meanpt += track.pt();
506-
et += std::sqrt(std::pow(track.pt(), 2.) + std::pow(o2::constants::physics::MassPionCharged, 2.));
505+
continue;
507506
}
507+
glbTracks++;
508508
}
509509

510510
histos.fill(HIST("zPos"), collision.posZ());
511511
histos.fill(HIST("T0Ccent"), collision.centFT0C());
512512

513-
histos.fill(HIST("ZNCcvsZNCsum"), sumZNC / 2.81, zdc.energyCommonZNC() / 2.81);
514-
histos.fill(HIST("ZNAcvsZNAsum"), sumZNA / 2.81, zdc.energyCommonZNA() / 2.81);
515-
histos.fill(HIST("ZPCcvsZPCsum"), sumZPC / 2.81, zdc.energyCommonZPC() / 2.81);
516-
histos.fill(HIST("ZPAcvsZPAsum"), sumZPA / 2.81, zdc.energyCommonZPA() / 2.81);
513+
histos.fill(HIST("ZNCcvsZNCsum"), sumZNC / cfgCollisionEnergy, zdc.energyCommonZNC() / cfgCollisionEnergy);
514+
histos.fill(HIST("ZNAcvsZNAsum"), sumZNA / cfgCollisionEnergy, zdc.energyCommonZNA() / cfgCollisionEnergy);
515+
histos.fill(HIST("ZPCcvsZPCsum"), sumZPC / cfgCollisionEnergy, zdc.energyCommonZPC() / cfgCollisionEnergy);
516+
histos.fill(HIST("ZPAcvsZPAsum"), sumZPA / cfgCollisionEnergy, zdc.energyCommonZPA() / cfgCollisionEnergy);
517517

518+
histos.fill(HIST("Nch"), glbTracks);
518519
histos.fill(HIST("ZNA"), znA);
519520
histos.fill(HIST("ZNC"), znC);
520521
histos.fill(HIST("ZPA"), zpA);
521522
histos.fill(HIST("ZPC"), zpC);
522-
histos.fill(HIST("ZNASector"), sumZNA);
523-
histos.fill(HIST("ZNCSector"), sumZNC);
524-
histos.fill(HIST("ZPASector"), sumZPA);
525-
histos.fill(HIST("ZPCSector"), sumZPC);
523+
histos.fill(HIST("ZNASector"), sumZNA / cfgCollisionEnergy);
524+
histos.fill(HIST("ZNCSector"), sumZNC / cfgCollisionEnergy);
525+
histos.fill(HIST("ZPASector"), sumZPA / cfgCollisionEnergy);
526+
histos.fill(HIST("ZPCSector"), sumZPC / cfgCollisionEnergy);
526527
histos.fill(HIST("ZN"), znA + znC);
527528
histos.fill(HIST("ZNAVsZNC"), znC, znA);
528529
histos.fill(HIST("ZNAVsZPA"), zpA, znA);

0 commit comments

Comments
 (0)