Skip to content

Commit 0d8dfbc

Browse files
authored
Merge branch 'master' into dev_HF_ML
2 parents 49b99c4 + 634bab9 commit 0d8dfbc

219 files changed

Lines changed: 11779 additions & 4020 deletions

File tree

Some content is hidden

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

ALICE3/Tasks/alice3-dilepton.cxx

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ struct Alice3Dilepton {
5555
Configurable<float> ptMax{"pt-max", 5.f, "Upper limit in pT"};
5656
Configurable<float> etaMin{"eta-min", -5.f, "Lower limit in eta"};
5757
Configurable<float> etaMax{"eta-max", 5.f, "Upper limit in eta"};
58+
Configurable<bool> useGen{"use-gen", false, "Use generated (true) or smeared/reconstructed (false) values for fiducial cuts"};
5859
Configurable<bool> selectReconstructed{"selectReconstructed", true, "Select only reconstructed tracks (true) or ghosts (false)"};
5960
Configurable<float> nSigmaEleCutOuterTOF{"nSigmaEleCutOuterTOF", 3., "Electron inclusion in outer TOF"};
6061
Configurable<float> nSigmaEleCutInnerTOF{"nSigmaEleCutInnerTOF", 3., "Electron inclusion in inner TOF"};
@@ -225,7 +226,7 @@ struct Alice3Dilepton {
225226
if (((400 < std::abs(mother1_pdg) && std::abs(mother1_pdg) < 499) || (4000 < std::abs(mother1_pdg) && std::abs(mother1_pdg) < 4999)) && ((400 < std::abs(mother2_pdg) && std::abs(mother2_pdg) < 499) || (4000 < std::abs(mother2_pdg) && std::abs(mother2_pdg) < 4999))) { // mother is charm
226227

227228
if (((500 < std::abs(grand_mother1_pdg) && std::abs(grand_mother1_pdg) < 599) || (5000 < std::abs(grand_mother1_pdg) && std::abs(grand_mother1_pdg) < 5999)) && ((500 < std::abs(grand_mother2_pdg) && std::abs(grand_mother2_pdg) < 599) || (5000 < std::abs(grand_mother2_pdg) && std::abs(grand_mother2_pdg) < 5999))) { // grand mother is beauty
228-
return kBCe_BCe; // b->c->e and b->c->e, decay type = 1
229+
return kBCe_BCe; // b->c->e and b->c->e, decay type = 1
229230
} else {
230231
return kCe_Ce; // prompt cc->ee, decay type = 0
231232
}
@@ -505,11 +506,12 @@ struct Alice3Dilepton {
505506
} // end of processGen
506507

507508
using MyTracksMC = soa::Join<aod::Tracks, aod::TracksCov, aod::TracksDCA, aod::McTrackLabels, aod::UpgradeTofs, aod::TracksAlice3>;
508-
Filter trackFilter = etaMin < o2::aod::track::eta &&
509-
o2::aod::track::eta < etaMax &&
510-
ptMin < o2::aod::track::pt &&
511-
o2::aod::track::pt < ptMax &&
512-
o2::aod::track_alice3::isReconstructed == selectReconstructed;
509+
// Filter trackFilter = etaMin < o2::aod::track::eta &&
510+
// o2::aod::track::eta < etaMax &&
511+
// ptMin < o2::aod::track::pt &&
512+
// o2::aod::track::pt < ptMax &&
513+
// o2::aod::track_alice3::isReconstructed == selectReconstructed;
514+
Filter trackFilter = o2::aod::track_alice3::isReconstructed == selectReconstructed;
513515
using MyFilteredTracksMC = soa::Filtered<MyTracksMC>;
514516
Preslice<MyFilteredTracksMC> perCollision = aod::track::collisionId;
515517
Partition<MyFilteredTracksMC> posTracks = o2::aod::track::signed1Pt > 0.f;
@@ -528,18 +530,30 @@ struct Alice3Dilepton {
528530

529531
auto tracks_coll = tracks.sliceBy(perCollision, collision.globalIndex());
530532
for (const auto& track : tracks_coll) {
531-
// if (!IsInAcceptance(neg) || !IsInAcceptance(pos)) {
532-
// continue;
533-
// }// filtered already
533+
if (!track.has_mcParticle()) {
534+
continue;
535+
}
536+
const auto mcParticle = track.mcParticle_as<aod::McParticles>();
537+
if (std::abs(mcParticle.pdgCode()) != pdg) {
538+
continue;
539+
}
540+
if (!mcParticle.isPhysicalPrimary()) {
541+
continue;
542+
}
543+
if (useGen) {
544+
if (!IsInAcceptance(mcParticle)) {
545+
continue;
546+
}
547+
} else {
548+
if (!IsInAcceptance(track)) {
549+
continue;
550+
}
551+
}
534552

535553
// if (fabs(track.nSigmaElectronOuterTOF())<3 ) {
536554
// continue;
537555
// }
538556

539-
if (!track.has_mcParticle()) {
540-
continue;
541-
}
542-
const auto mcParticle = track.mcParticle_as<aod::McParticles>();
543557
if (std::abs(mcParticle.pdgCode()) != pdg) {
544558
continue;
545559
}

Common/DataModel/EvtPlanes.h

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,22 +28,27 @@ namespace o2::aod
2828
namespace ep
2929
{
3030
DECLARE_SOA_COLUMN(Cent, cent, float); //! Centrality percentile.
31-
DECLARE_SOA_COLUMN(EvtPlFT0A, evtPlFT0A, float); //! Event plane for FT0A.
32-
DECLARE_SOA_COLUMN(EvtPlFT0C, evtPlFT0C, float); //! Event plane for FT0C.
33-
DECLARE_SOA_COLUMN(EvtPlFV0A, evtPlFV0A, float); //! Event plane for FV0A.
34-
DECLARE_SOA_COLUMN(EvtPlBPos, evtPlBPos, float); //! Event plane for the central barrel, positive pseudorapidity.
35-
DECLARE_SOA_COLUMN(EvtPlBNeg, evtPlBNeg, float); //! Event plane for the central barrel, negative pseudorapidity.
31+
DECLARE_SOA_COLUMN(EvtPlUncor, evtPlUncor, float);
32+
DECLARE_SOA_COLUMN(EvtPlRectr, evtPlRectr, float);
33+
DECLARE_SOA_COLUMN(EvtPlTwist, evtPlTwist, float);
34+
DECLARE_SOA_COLUMN(EvtPlFinal, evtPlFinal, float);
3635

37-
DECLARE_SOA_COLUMN(EvtPlFT0C_uncor, evtPlFT0C_uncor, float); //! Event plane for FT0C.
38-
DECLARE_SOA_COLUMN(EvtPlFT0C_rectr, evtPlFT0C_rectr, float); //! Event plane for FT0C.
39-
DECLARE_SOA_COLUMN(EvtPlFT0C_twist, evtPlFT0C_twist, float); //! Event plane for FT0C.
36+
DECLARE_SOA_COLUMN(EvtPlBPosUncor, evtPlBPosUncor, float);
37+
DECLARE_SOA_COLUMN(EvtPlBPosRectr, evtPlBPosRectr, float);
38+
DECLARE_SOA_COLUMN(EvtPlBPosTwist, evtPlBPosTwist, float);
39+
DECLARE_SOA_COLUMN(EvtPlBPosFinal, evtPlBPosFinal, float);
40+
41+
DECLARE_SOA_COLUMN(EvtPlBNegUncor, evtPlBNegUncor, float);
42+
DECLARE_SOA_COLUMN(EvtPlBNegRectr, evtPlBNegRectr, float);
43+
DECLARE_SOA_COLUMN(EvtPlBNegTwist, evtPlBNegTwist, float);
44+
DECLARE_SOA_COLUMN(EvtPlBNegFinal, evtPlBNegFinal, float);
4045

4146
} // namespace ep
4247
DECLARE_SOA_TABLE(EvtPlanes, "AOD", "EVTPLANES", //! Table with all event planes.
4348
ep::Cent,
44-
ep::EvtPlFT0A, ep::EvtPlFT0C, ep::EvtPlFV0A,
45-
ep::EvtPlBPos, ep::EvtPlBNeg,
46-
ep::EvtPlFT0C_uncor, ep::EvtPlFT0C_rectr, ep::EvtPlFT0C_twist);
49+
ep::EvtPlUncor, ep::EvtPlRectr, ep::EvtPlTwist, ep::EvtPlFinal,
50+
ep::EvtPlBPosUncor, ep::EvtPlBPosRectr, ep::EvtPlBPosTwist, ep::EvtPlBPosFinal,
51+
ep::EvtPlBNegUncor, ep::EvtPlBNegRectr, ep::EvtPlBNegTwist, ep::EvtPlBNegFinal);
4752
using EvtPlane = EvtPlanes::iterator;
4853
} // namespace o2::aod
4954

Common/DataModel/Qvectors.h

Lines changed: 32 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -28,36 +28,42 @@ namespace o2::aod
2828
namespace qvec
2929
{
3030
DECLARE_SOA_COLUMN(Cent, cent, float); //! Centrality percentile.
31-
DECLARE_SOA_COLUMN(QvecFT0ARe, qvecFT0ARe, float); //! Real part of Qvec in FT0A.
32-
DECLARE_SOA_COLUMN(QvecFT0AIm, qvecFT0AIm, float); //! Imaginary part for FT0A.
33-
DECLARE_SOA_COLUMN(QvecFT0CRe, qvecFT0CRe, float); //! Real part of Qvec in FT0C.
34-
DECLARE_SOA_COLUMN(QvecFT0CIm, qvecFT0CIm, float); //! Imaginary part for FT0C.
35-
DECLARE_SOA_COLUMN(QvecFV0ARe, qvecFV0ARe, float); //! Real part of Qvec in FV0A.
36-
DECLARE_SOA_COLUMN(QvecFV0AIm, qvecFV0AIm, float); //! Imaginary part for FV0A.
37-
DECLARE_SOA_COLUMN(QvecBPosRe, qvecBPosRe, float);
38-
DECLARE_SOA_COLUMN(QvecBPosIm, qvecBPosIm, float);
39-
DECLARE_SOA_COLUMN(QvecBNegRe, qvecBNegRe, float);
40-
DECLARE_SOA_COLUMN(QvecBNegIm, qvecBNegIm, float);
41-
DECLARE_SOA_COLUMN(QvecFT0CUncorRe, qvecFT0CUncorRe, float);
42-
DECLARE_SOA_COLUMN(QvecFT0CUncorIm, qvecFT0CUncorIm, float);
43-
DECLARE_SOA_COLUMN(QvecFT0CRectrRe, qvecFT0CRectrRe, float);
44-
DECLARE_SOA_COLUMN(QvecFT0CRectrIm, qvecFT0CRectrIm, float);
45-
DECLARE_SOA_COLUMN(QvecFT0CTwistRe, qvecFT0CTwistRe, float);
46-
DECLARE_SOA_COLUMN(QvecFT0CTwistIm, qvecFT0CTwistIm, float);
31+
DECLARE_SOA_COLUMN(CentBin, centBin, int);
32+
DECLARE_SOA_COLUMN(QvecUncorRe, qvecUncorRe, float);
33+
DECLARE_SOA_COLUMN(QvecUncorIm, qvecUncorIm, float);
34+
DECLARE_SOA_COLUMN(QvecRectrRe, qvecRectrRe, float);
35+
DECLARE_SOA_COLUMN(QvecRectrIm, qvecRectrIm, float);
36+
DECLARE_SOA_COLUMN(QvecTwistRe, qvecTwistRe, float);
37+
DECLARE_SOA_COLUMN(QvecTwistIm, qvecTwistIm, float);
38+
DECLARE_SOA_COLUMN(QvecFinalRe, qvecFinalRe, float);
39+
DECLARE_SOA_COLUMN(QvecFinalIm, qvecFinalIm, float);
40+
DECLARE_SOA_COLUMN(QvecBPosUncorRe, qvecBPosUncorRe, float);
41+
DECLARE_SOA_COLUMN(QvecBPosUncorIm, qvecBPosUncorIm, float);
42+
DECLARE_SOA_COLUMN(QvecBPosRectrRe, qvecBPosRectrRe, float);
43+
DECLARE_SOA_COLUMN(QvecBPosRectrIm, qvecBPosRectrIm, float);
44+
DECLARE_SOA_COLUMN(QvecBPosTwistRe, qvecBPosTwistRe, float);
45+
DECLARE_SOA_COLUMN(QvecBPosTwistIm, qvecBPosTwistIm, float);
46+
DECLARE_SOA_COLUMN(QvecBPosFinalRe, qvecBPosFinalRe, float);
47+
DECLARE_SOA_COLUMN(QvecBPosFinalIm, qvecBPosFinalIm, float);
48+
DECLARE_SOA_COLUMN(QvecBNegUncorRe, qvecBNegUncorRe, float);
49+
DECLARE_SOA_COLUMN(QvecBNegUncorIm, qvecBNegUncorIm, float);
50+
DECLARE_SOA_COLUMN(QvecBNegRectrRe, qvecBNegRectrRe, float);
51+
DECLARE_SOA_COLUMN(QvecBNegRectrIm, qvecBNegRectrIm, float);
52+
DECLARE_SOA_COLUMN(QvecBNegTwistRe, qvecBNegTwistRe, float);
53+
DECLARE_SOA_COLUMN(QvecBNegTwistIm, qvecBNegTwistIm, float);
54+
DECLARE_SOA_COLUMN(QvecBNegFinalRe, qvecBNegFinalRe, float);
55+
DECLARE_SOA_COLUMN(QvecBNegFinalIm, qvecBNegFinalIm, float);
4756
/// NOTE: Add here Qx,Qy for other systems.
4857
} // namespace qvec
4958

5059
DECLARE_SOA_TABLE(Qvectors, "AOD", "QVECTORS", //! Table with all Qvectors.
51-
qvec::Cent,
52-
qvec::QvecFT0ARe, qvec::QvecFT0AIm,
53-
qvec::QvecFT0CRe, qvec::QvecFT0CIm,
54-
qvec::QvecFV0ARe, qvec::QvecFV0AIm,
55-
qvec::QvecBPosRe, qvec::QvecBPosIm,
56-
qvec::QvecBNegRe, qvec::QvecBNegIm,
57-
qvec::QvecFT0CUncorRe, qvec::QvecFT0CUncorIm,
58-
qvec::QvecFT0CRectrRe, qvec::QvecFT0CRectrIm,
59-
qvec::QvecFT0CTwistRe, qvec::QvecFT0CTwistIm);
60-
60+
qvec::Cent, qvec::CentBin,
61+
qvec::QvecUncorRe, qvec::QvecUncorIm, qvec::QvecRectrRe, qvec::QvecRectrIm,
62+
qvec::QvecTwistRe, qvec::QvecTwistIm, qvec::QvecFinalRe, qvec::QvecFinalIm,
63+
qvec::QvecBPosUncorRe, qvec::QvecBPosUncorIm, qvec::QvecBPosRectrRe, qvec::QvecBPosRectrIm,
64+
qvec::QvecBPosTwistRe, qvec::QvecBPosTwistIm, qvec::QvecBPosFinalRe, qvec::QvecBPosFinalIm,
65+
qvec::QvecBNegUncorRe, qvec::QvecBNegUncorIm, qvec::QvecBNegRectrRe, qvec::QvecBNegRectrIm,
66+
qvec::QvecBNegTwistRe, qvec::QvecBNegTwistIm, qvec::QvecBNegFinalRe, qvec::QvecBNegFinalIm);
6167
using Qvector = Qvectors::iterator;
6268
} // namespace o2::aod
6369

Common/TableProducer/evtPlanesTable.cxx

Lines changed: 23 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -47,24 +47,7 @@
4747
using namespace o2;
4848
using namespace o2::framework;
4949

50-
namespace ep
51-
{
52-
static constexpr std::string_view centClasses[] = {
53-
"Centrality_0-5/", "Centrality_5-10/", "Centrality_10-20/", "Centrality_20-30/",
54-
"Centrality_30-40/", "Centrality_40-50/", "Centrality_50-60/", "Centrality_60-80/"};
55-
56-
static constexpr std::string_view detNames[] = {
57-
"FT0A", "FT0C", "FV0A", "BPos", "BNeg",
58-
"FT0CUC", "FT0CRC", "FT0CTW"};
59-
} // namespace ep
60-
6150
struct evtPlanesTable {
62-
// Configurables.
63-
Configurable<std::string> cfgCentEsti{"cfgCentEsti", // List from qVectorsTable.cxx
64-
"FT0C", "Centrality estimator (Run3): 0 = FT0M, 1 = FT0A, 2 = FT0C, 3 = FV0A"};
65-
Configurable<std::string> cfgCorrStep{"cfgCorrStep", // Used in the plotting.
66-
"Recentered", "Latest correction applied: Raw, Recentered, Twisted, Rescaled"};
67-
6851
// Table.
6952
Produces<aod::EvtPlanes> evPlane;
7053

@@ -77,89 +60,43 @@ struct evtPlanesTable {
7760

7861
void init(InitContext const&)
7962
{
80-
// Fill the registry with the needed objects.
81-
const AxisSpec axisCent{100, 0., 100., fmt::format("Centrality percentile ({})", (std::string)cfgCentEsti)};
82-
histosQA.add("histCentFull", "Centrality distribution for valid events",
83-
HistType::kTH1F, {axisCent});
84-
85-
const AxisSpec axisEP{200, -TMath::Pi() / 2., TMath::Pi() / 2.};
86-
87-
for (int i = 0; i < 8; i++) {
88-
histosQA.add(("Centrality_0-5/histEP" + (std::string)ep::detNames[i]).c_str(),
89-
("#Psi_{2} for " + (std::string)ep::detNames[i] + (std::string)cfgCorrStep).c_str(),
90-
HistType::kTH1F, {axisEP});
91-
}
92-
93-
for (int iBin = 1; iBin < 8; iBin++) {
94-
histosQA.addClone("Centrality_0-5/", ep::centClasses[iBin].data());
95-
}
96-
9763
} // void init(InitContext const&)
9864

99-
template <int cBin, int det, typename T>
100-
void fillHistosQA(const T& val)
101-
{
102-
histosQA.fill(HIST(ep::centClasses[cBin]) + HIST("histEP") + HIST(ep::detNames[det]),
103-
val[det]);
104-
}
105-
10665
void process(aod::Qvector const& qVec)
10766
{
10867
// Get the centrality bin, and fill the centrality distribution.
10968
int centBin = helperEP.GetCentBin(qVec.cent());
11069
if (centBin < 0 || centBin > 8) {
11170
return;
11271
}
113-
histosQA.fill(HIST("histCentFull"), qVec.cent());
114-
11572
// Calculate the event plane for each detector, then save them in the
11673
// corresponding distribution. The order is the same as in detNames[].
11774
// TODO: Update the calculation of the event plane for the central barrel.
118-
float evtPlaneValues[8] = {0.};
119-
evtPlaneValues[0] = helperEP.GetEventPlane(qVec.qvecFT0ARe(), qVec.qvecFT0AIm());
120-
evtPlaneValues[1] = helperEP.GetEventPlane(qVec.qvecFT0CRe(), qVec.qvecFT0CIm());
121-
evtPlaneValues[2] = helperEP.GetEventPlane(qVec.qvecFV0ARe(), qVec.qvecFV0AIm());
122-
evtPlaneValues[3] = helperEP.GetEventPlane(1., 2.);
123-
evtPlaneValues[4] = helperEP.GetEventPlane(2., 1.);
124-
125-
evtPlaneValues[5] = helperEP.GetEventPlane(qVec.qvecFT0CUncorRe(), qVec.qvecFT0CUncorIm());
126-
evtPlaneValues[6] = helperEP.GetEventPlane(qVec.qvecFT0CRectrRe(), qVec.qvecFT0CRectrIm());
127-
evtPlaneValues[7] = helperEP.GetEventPlane(qVec.qvecFT0CTwistRe(), qVec.qvecFT0CTwistIm());
128-
129-
static_for<0, 7>([&](auto iDet) {
130-
constexpr int indexDet = iDet.value;
131-
switch (centBin) {
132-
case 0:
133-
fillHistosQA<0, indexDet>(evtPlaneValues);
134-
break;
135-
case 1:
136-
fillHistosQA<1, indexDet>(evtPlaneValues);
137-
break;
138-
case 2:
139-
fillHistosQA<2, indexDet>(evtPlaneValues);
140-
break;
141-
case 3:
142-
fillHistosQA<3, indexDet>(evtPlaneValues);
143-
break;
144-
case 4:
145-
fillHistosQA<4, indexDet>(evtPlaneValues);
146-
break;
147-
case 5:
148-
fillHistosQA<5, indexDet>(evtPlaneValues);
149-
break;
150-
case 6:
151-
fillHistosQA<6, indexDet>(evtPlaneValues);
152-
break;
153-
case 7:
154-
fillHistosQA<7, indexDet>(evtPlaneValues);
155-
break;
156-
}
157-
});
75+
76+
float evtPlane[4];
77+
float evtPlaneBPos[4];
78+
float evtPlaneBNeg[4];
79+
80+
evtPlane[0] = helperEP.GetEventPlane(qVec.qvecUncorRe(), qVec.qvecUncorIm());
81+
evtPlane[1] = helperEP.GetEventPlane(qVec.qvecRectrRe(), qVec.qvecRectrIm());
82+
evtPlane[2] = helperEP.GetEventPlane(qVec.qvecTwistRe(), qVec.qvecTwistIm());
83+
evtPlane[3] = helperEP.GetEventPlane(qVec.qvecFinalRe(), qVec.qvecFinalIm());
84+
85+
evtPlaneBPos[0] = helperEP.GetEventPlane(qVec.qvecBPosUncorRe(), qVec.qvecBPosUncorIm());
86+
evtPlaneBPos[1] = helperEP.GetEventPlane(qVec.qvecBPosRectrRe(), qVec.qvecBPosRectrIm());
87+
evtPlaneBPos[2] = helperEP.GetEventPlane(qVec.qvecBPosTwistRe(), qVec.qvecBPosTwistIm());
88+
evtPlaneBPos[3] = helperEP.GetEventPlane(qVec.qvecBPosFinalRe(), qVec.qvecBPosFinalIm());
89+
90+
evtPlaneBNeg[0] = helperEP.GetEventPlane(qVec.qvecBNegUncorRe(), qVec.qvecBNegUncorIm());
91+
evtPlaneBNeg[1] = helperEP.GetEventPlane(qVec.qvecBNegRectrRe(), qVec.qvecBNegRectrIm());
92+
evtPlaneBNeg[2] = helperEP.GetEventPlane(qVec.qvecBNegTwistRe(), qVec.qvecBNegTwistIm());
93+
evtPlaneBNeg[3] = helperEP.GetEventPlane(qVec.qvecBNegFinalRe(), qVec.qvecBNegFinalIm());
94+
15895
// Fill the columns of the evtPlane table.
15996
evPlane(qVec.cent(),
160-
evtPlaneValues[0], evtPlaneValues[1], evtPlaneValues[2],
161-
evtPlaneValues[3], evtPlaneValues[4],
162-
evtPlaneValues[5], evtPlaneValues[6], evtPlaneValues[7]);
97+
evtPlane[0], evtPlane[1], evtPlane[2], evtPlane[3],
98+
evtPlaneBPos[0], evtPlaneBPos[1], evtPlaneBPos[2], evtPlaneBPos[3],
99+
evtPlaneBNeg[0], evtPlaneBNeg[1], evtPlaneBNeg[2], evtPlaneBNeg[3]);
163100
} // void process(aod::Qvector const& qVec)
164101
};
165102

0 commit comments

Comments
 (0)