Skip to content

Commit 980b689

Browse files
committed
xi1530Analysis and ResoInit Update
1 parent 8a65ceb commit 980b689

File tree

3 files changed

+285
-103
lines changed

3 files changed

+285
-103
lines changed

PWGLF/DataModel/LFResonanceTables.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -874,7 +874,7 @@ using Reso2TracksMC = soa::Join<aod::FullTracks, McTrackLabels>;
874874
using Reso2TracksPID = soa::Join<aod::FullTracks, aod::pidTPCPi, aod::pidTPCKa, aod::pidTPCPr, aod::pidTOFPi, aod::pidTOFKa, aod::pidTOFPr>;
875875
using Reso2TracksPIDExt = soa::Join<Reso2TracksPID, aod::TracksDCA, aod::TrackSelection, aod::TrackSelectionExtension>; // Without Extra
876876

877-
using ResoCollisionCandidates = soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Ms, aod::CentFT0Cs, aod::CentFT0As, aod::Mults>;
877+
using ResoCollisionCandidates = soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Ms, aod::CentFT0Cs, aod::CentFT0As, aod::CentFV0As, aod::Mults>;
878878
using ResoRun2CollisionCandidates = soa::Join<aod::Collisions, aod::EvSels, aod::CentRun2V0Ms>;
879879
using ResoCollisionCandidatesMC = soa::Join<ResoCollisionCandidates, aod::McCollisionLabels>;
880880
using ResoRun2CollisionCandidatesMC = soa::Join<ResoRun2CollisionCandidates, aod::McCollisionLabels>;

PWGLF/TableProducer/Resonances/resonanceInitializer.cxx

Lines changed: 43 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ struct ResonanceInitializer {
139139

140140
// Pre-selection cuts
141141
Configurable<float> cfgCutEta{"cfgCutEta", 0.8f, "Eta range for tracks"};
142-
Configurable<float> pidnSigmaPreSelectionCut{"pidnSigmaPreSelectionCut", 5.0f, "TPC and TOF PID cut (loose, improve performance)"};
142+
Configurable<float> pidnSigmaPreSelectionCut{"pidnSigmaPreSelectionCut", 5.0f, "TPC PID cut (loose, improve performance)"};
143143
Configurable<int> mincrossedrows{"mincrossedrows", 70, "min crossed rows"};
144144

145145
/// DCA Selections for V0
@@ -181,6 +181,8 @@ struct ResonanceInitializer {
181181
Configurable<bool> cfgFillLambda0{"cfgFillLambda0", false, "Fill Lambda0"};
182182
Configurable<bool> cfgFillXi0{"cfgFillXi0", false, "Fill Xi0"};
183183
Configurable<bool> cfgFillOmega0{"cfgFillOmega0", false, "Fill Omega0"};
184+
Configurable<bool> cfgBypassNoPairCascades{"cfgBypassNoPairCascades", true, "Bypass track fill if no pair cascade with track"};
185+
Configurable<bool> cfgBypassNoPairV0s{"cfgBypassNoPairV0s", false, "Bypass if no pair V0 with track"};
184186
} FilterForDerivedTables;
185187

186188
// Secondary cuts
@@ -221,7 +223,8 @@ struct ResonanceInitializer {
221223
ConfigurableAxis impactParameterAxis{"impactParameterAxis", {500, 0, 50}, "IP (fm)"};
222224

223225
Configurable<bool> isDaughterCheck{"isDaughterCheck", 1, "Check if the mother has the correct daughters when it is considered"};
224-
Configurable<float> cfgRapidityCutGen{"cfgRapidityCutGen", 0.5, "Rapidity cut for the truth particle"};
226+
Configurable<float> cfgRapidityCutMinGen{"cfgRapidityCutMinGen", -0.5, "Rapidity cut for the truth particle"};
227+
Configurable<float> cfgRapidityCutMaxGen{"cfgRapidityCutMaxGen", 0.5, "Rapidity cut for the truth particle"};
225228
Configurable<int> pdgTruthMother{"pdgTruthMother", 3324, "pdgcode for the truth mother e.g. Xi(1530) (3324)"};
226229
Configurable<int> pdgTruthDaughter1{"pdgTruthDaughter1", 3312, "pdgcode for the daughter 1, e.g. Xi- 3312"};
227230
Configurable<int> pdgTruthDaughter2{"pdgTruthDaughter2", 211, "pdgcode for the daughter 2, e.g. pi+ 211"};
@@ -267,8 +270,8 @@ struct ResonanceInitializer {
267270
|| (nabs(aod::mcparticle::pdgCode) == 123314) // Xi(1820)0
268271
|| (nabs(aod::mcparticle::pdgCode) == 123324); // Xi(1820)-0
269272

270-
using ResoEvents = soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Ms, aod::CentFT0Cs, aod::CentFT0As, aod::Mults>;
271-
using ResoEvents001 = soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Ms, aod::CentFT0Cs, aod::CentFT0As, aod::Mults, aod::MultsExtra, aod::PVMults>;
273+
using ResoEvents = soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Ms, aod::CentFT0Cs, aod::CentFT0As, aod::CentFV0As, aod::Mults>;
274+
using ResoEvents001 = soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Ms, aod::CentFT0Cs, aod::CentFT0As, aod::CentFV0As, aod::Mults, aod::MultsExtra, aod::PVMults>;
272275
using ResoRun2Events = soa::Join<aod::Collisions, aod::EvSels, aod::CentRun2V0Ms>;
273276
using ResoEventsMC = soa::Join<ResoEvents, aod::McCollisionLabels>;
274277
using ResoRun2EventsMC = soa::Join<ResoEvents, aod::McCollisionLabels>;
@@ -381,7 +384,7 @@ struct ResonanceInitializer {
381384
return false;
382385
if (v0.qtarm() < SecondaryCuts.cfgSecondaryparamArmenterosCut * std::abs(v0.alpha()))
383386
return false;
384-
if (std::fabs(v0.mLambda() - MassLambda0) < SecondaryCuts.cfgSecondaryMassWindow)
387+
if (std::fabs(v0.mLambda() - MassLambda0) > SecondaryCuts.cfgSecondaryMassWindow)
385388
return false;
386389
if (SecondaryCuts.cfgSecondaryCrossMassHypothesisCut && (std::fabs(v0.mK0Short() - MassK0Short) < SecondaryCuts.cfgSecondaryCrossMassCutWindow))
387390
return false;
@@ -592,6 +595,9 @@ struct ResonanceInitializer {
592595
case 2:
593596
returnValue = ResoEvents.centFT0A();
594597
break;
598+
case 3:
599+
returnValue = ResoEvents.centFV0A();
600+
break;
595601
default:
596602
returnValue = ResoEvents.centFT0M();
597603
break;
@@ -1192,7 +1198,9 @@ struct ResonanceInitializer {
11921198
{
11931199
for (auto const& mcPart : mcParticles) {
11941200

1195-
if (std::abs(mcPart.pdgCode()) != GenCuts.pdgTruthMother || std::abs(mcPart.y()) >= GenCuts.cfgRapidityCutGen)
1201+
if (std::abs(mcPart.pdgCode()) != GenCuts.pdgTruthMother)
1202+
continue;
1203+
if((mcPart.y() >= GenCuts.cfgRapidityCutMaxGen) || (mcPart.y() <= GenCuts.cfgRapidityCutMinGen))
11961204
continue;
11971205
std::vector<int> daughterPDGs;
11981206
if (mcPart.has_daughters()) {
@@ -1279,15 +1287,15 @@ struct ResonanceInitializer {
12791287
{
12801288
mRunNumber = 0;
12811289
dBz = 0;
1282-
// Multiplicity estimator selection (0: FT0M, 1: FT0C, 2: FT0A, 99: FV0A)
1290+
// Multiplicity estimator selection (0: FT0M, 1: FT0C, 2: FT0A, 3: FV0A)
12831291
if (cfgMultName.value == "FT0M") {
12841292
multEstimator = 0;
12851293
} else if (cfgMultName.value == "FT0C") {
12861294
multEstimator = 1;
12871295
} else if (cfgMultName.value == "FT0A") {
12881296
multEstimator = 2;
12891297
} else if (cfgMultName.value == "FV0A") {
1290-
multEstimator = 99;
1298+
multEstimator = 3;
12911299
} else {
12921300
multEstimator = 0;
12931301
}
@@ -1337,6 +1345,7 @@ struct ResonanceInitializer {
13371345
AxisSpec idxMCAxis = {26, -0.5, 25.5, "Index"};
13381346
qaRegistry.add("Event/hMCEventIndices", "hMCEventIndices", kTH2D, {centAxis, idxMCAxis});
13391347
}
1348+
qaRegistry.add("Event/CentFV0A", "; FV0A Percentile; Entries", o2::framework::kTH1F, {{110, 0, 110}});
13401349
AxisSpec idxAxis = {8, 0, 8, "Index"};
13411350
if (cfgFillQA) {
13421351
qaRegistry.add("hGoodTrackIndices", "hGoodTrackIndices", kTH1F, {idxAxis});
@@ -1346,6 +1355,7 @@ struct ResonanceInitializer {
13461355
qaRegistry.add("hGoodCascIndices", "hGoodCascIndices", kTH1F, {idxAxis});
13471356
qaRegistry.add("hGoodMCCascIndices", "hGoodMCCascIndices", kTH1F, {idxAxis});
13481357
qaRegistry.add("Phi", "#phi distribution", kTH1F, {{65, -0.1, 6.4}});
1358+
13491359
}
13501360

13511361
TString hNEventsMCLabels[4] = {"All", "z vrtx", "INEL", "INEL>0"};
@@ -1513,6 +1523,9 @@ struct ResonanceInitializer {
15131523
}
15141524
resoSpheroCollisions(computeSpherocity(tracks, trackSphMin, trackSphDef));
15151525
resoEvtPlCollisions(0, 0, 0, 0);
1526+
if(FilterForDerivedTables.cfgBypassNoPairV0s && (V0s.size() <1)){
1527+
return;
1528+
}
15161529

15171530
fillTracks<false>(collision, tracks);
15181531
if (cfgFillMicroTracks) {
@@ -1572,6 +1585,14 @@ struct ResonanceInitializer {
15721585
}
15731586
resoSpheroCollisions(computeSpherocity(tracks, trackSphMin, trackSphDef));
15741587
resoEvtPlCollisions(0, 0, 0, 0);
1588+
if(cfgMultName.value == "FV0A")
1589+
qaRegistry.fill(HIST("Event/CentFV0A"),centEst(collision));
1590+
if(FilterForDerivedTables.cfgBypassNoPairV0s && (V0s.size() <1)){
1591+
return;
1592+
}
1593+
if(FilterForDerivedTables.cfgBypassNoPairCascades && (Cascades.size() <1)){
1594+
return;
1595+
}
15751596
fillTracks<false>(collision, tracks);
15761597
if (cfgFillMicroTracks) {
15771598
fillMicroTracks<false>(collision, tracks);
@@ -1718,6 +1739,9 @@ struct ResonanceInitializer {
17181739
fillMCCollision<false>(collision, mcParticles);
17191740

17201741
// Loop over tracks
1742+
if(FilterForDerivedTables.cfgBypassNoPairV0s && (V0s.size() <1)){
1743+
return;
1744+
}
17211745
fillTracks<true>(collision, tracks);
17221746
if (cfgFillMicroTracks) {
17231747
fillMicroTracks<true>(collision, tracks);
@@ -1782,6 +1806,8 @@ struct ResonanceInitializer {
17821806
Cent = mcCollision.centFT0M();
17831807
else
17841808
Cent = centEst(collision);
1809+
if(cfgMultName.value == "FV0A")
1810+
qaRegistry.fill(HIST("Event/CentFV0A"),centEst(collision));
17851811

17861812
bool isRecINELgt0 = 0;
17871813
if (checkIsRecINELgt0)
@@ -1802,6 +1828,12 @@ struct ResonanceInitializer {
18021828
fillMCCollision<false>(collision, mcParticles, impactpar, mult);
18031829

18041830
// Loop over tracks
1831+
if(FilterForDerivedTables.cfgBypassNoPairV0s && (V0s.size() <1)){
1832+
return;
1833+
}
1834+
if(FilterForDerivedTables.cfgBypassNoPairCascades && (Cascades.size() <1)){
1835+
return;
1836+
}
18051837
fillTracks<true>(collision, tracks);
18061838
if (cfgFillMicroTracks) {
18071839
fillMicroTracks<true>(collision, tracks);
@@ -1839,6 +1871,8 @@ struct ResonanceInitializer {
18391871
return col.centFT0C();
18401872
} else if (cfgMultName.value == "FT0A") {
18411873
return col.centFT0A();
1874+
} else if (cfgMultName.value == "FV0A") {
1875+
return col.centFV0A();
18421876
}
18431877
return 100.5f;
18441878
};
@@ -1875,7 +1909,7 @@ struct ResonanceInitializer {
18751909
for (const auto& collision : collisions) {
18761910
if (EventCuts.cfgEvtUseRCTFlagChecker && !rctChecker(collision))
18771911
continue;
1878-
if (!colCuts.isSelected(collision)) // Bug is appeared in colCuts-> double counting in event QA histo, will be fixed later
1912+
if (!colCuts.isSelected(collision,false)) // Bug is appeared in colCuts-> double counting in event QA histo, will be fixed later
18791913
continue;
18801914
if (biggestNContribs < collision.multPVTotalContributors()) {
18811915
biggestNContribs = collision.multPVTotalContributors();

0 commit comments

Comments
 (0)