Skip to content

Commit 65a876a

Browse files
Preet-BhanjanPreet Pati
andauthored
[PWGCF] Fixed bugs and addition of event and track selections (#10491)
Co-authored-by: Preet Pati <preet@Mac.home>
1 parent 05e3cb5 commit 65a876a

File tree

2 files changed

+44
-16
lines changed

2 files changed

+44
-16
lines changed

PWGCF/Flow/Tasks/flowPbpbPikp.cxx

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,10 @@ struct FlowPbpbPikp {
8585
O2_DEFINE_CONFIGURABLE(cfgCutDCAxy, float, 2.0f, "DCAxy range for tracks")
8686
O2_DEFINE_CONFIGURABLE(cfgCutDCAz, float, 2.0f, "DCAz range for tracks")
8787

88+
O2_DEFINE_CONFIGURABLE(cfgCutOccupancy, int, 3000, "Occupancy cut")
89+
O2_DEFINE_CONFIGURABLE(cfgUseGlobalTrack, bool, true, "use Global track")
90+
O2_DEFINE_CONFIGURABLE(cfgITScluster, int, 0, "Number of ITS cluster")
91+
8892
ConfigurableAxis axisVertex{"axisVertex", {20, -10, 10}, "vertex axis for histograms"};
8993
ConfigurableAxis axisPhi{"axisPhi", {60, 0.0, constants::math::TwoPI}, "phi axis for histograms"};
9094
ConfigurableAxis axisEta{"axisEta", {40, -1., 1.}, "eta axis for histograms"};
@@ -256,6 +260,18 @@ struct FlowPbpbPikp {
256260
PROTONS
257261
};
258262

263+
template <typename TTrack>
264+
bool selectionTrack(const TTrack& track)
265+
{
266+
if (cfgUseGlobalTrack && !(track.isGlobalTrack() && track.isPVContributor() && track.itsNCls() > cfgITScluster && track.tpcNClsFound() > cfgTpcCluster && track.hasTPC())) {
267+
return false;
268+
}
269+
if (!cfgUseGlobalTrack && !(track.isPVContributor() && track.itsNCls() > cfgITScluster && track.hasTPC())) {
270+
return false;
271+
}
272+
return true;
273+
}
274+
259275
template <typename TTrack>
260276
int getNsigmaPID(TTrack track)
261277
{
@@ -476,7 +492,12 @@ struct FlowPbpbPikp {
476492
int nTot = tracks.size();
477493
if (nTot < 1)
478494
return;
479-
if (!collision.sel8())
495+
496+
if (!collision.sel8() || !collision.selection_bit(aod::evsel::kNoTimeFrameBorder) || !collision.selection_bit(aod::evsel::kNoITSROFrameBorder) || !collision.selection_bit(aod::evsel::kNoSameBunchPileup) || !collision.selection_bit(aod::evsel::kIsGoodZvtxFT0vsPV) || !collision.selection_bit(o2::aod::evsel::kNoCollInTimeRangeStandard))
497+
return;
498+
499+
int occupancy = collision.trackOccupancyInTimeRange();
500+
if (occupancy > cfgCutOccupancy)
480501
return;
481502

482503
float lRandom = fRndm->Rndm();
@@ -495,14 +516,16 @@ struct FlowPbpbPikp {
495516

496517
histos.fill(HIST("hVtxZ"), vtxz);
497518
histos.fill(HIST("hMult"), nTot);
498-
histos.fill(HIST("hCent"), collision.centFT0C());
519+
histos.fill(HIST("hCent"), cent);
499520
fGFW->Clear();
500521

501522
float weff = 1;
502523
int pidIndex;
503-
loadCorrections(bc);
524+
loadCorrections(bc); // load corrections for the each event
504525

505526
for (auto const& track : tracks) {
527+
if (!selectionTrack(track))
528+
continue;
506529
double pt = track.pt();
507530
histos.fill(HIST("hPhi"), track.phi());
508531
histos.fill(HIST("hEta"), track.eta());

PWGCF/Flow/Tasks/resonancesGfwFlow.cxx

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -114,9 +114,9 @@ struct ResonancesGfwFlow {
114114
O2_DEFINE_CONFIGURABLE(cfgUseMCCLambda, bool, false, "Use mass cross check for lambda")
115115
O2_DEFINE_CONFIGURABLE(cfgUseMCCK0, bool, false, "Use mass cross check for K0")
116116

117-
O2_DEFINE_CONFIGURABLE(cfgNPhiMassBins, int, 70, "Invasriant mass bins for phi")
118-
O2_DEFINE_CONFIGURABLE(cfgNK0MassBins, int, 120, "Invasriant mass bins for K0")
119-
O2_DEFINE_CONFIGURABLE(cfgNLambdaMassBins, int, 70, "Invasriant mass bins for lambda")
117+
O2_DEFINE_CONFIGURABLE(cfgNPhiMassBins, double, 70, "Invasriant mass bins for phi")
118+
O2_DEFINE_CONFIGURABLE(cfgNK0MassBins, double, 70, "Invasriant mass bins for K0")
119+
O2_DEFINE_CONFIGURABLE(cfgNLambdaMassBins, double, 70, "Invasriant mass bins for lambda")
120120

121121
// Defining configurable axis
122122
ConfigurableAxis axisVertex{"axisVertex", {20, -10, 10}, "vertex axis for histograms"};
@@ -127,14 +127,14 @@ struct ResonancesGfwFlow {
127127
ConfigurableAxis axisNsigmaTPC{"axisNsigmaTPC", {80, -5, 5}, "nsigmaTPC axis"};
128128
ConfigurableAxis axisNsigmaTOF{"axisNsigmaTOF", {80, -5, 5}, "nsigmaTOF axis"};
129129
ConfigurableAxis axisParticles{"axisParticles", {3, 0, 3}, "axis for different hadrons"};
130-
ConfigurableAxis axisPhiMass{"axisPhiMass", {70, 0.99, 1.06}, "axis for invariant mass distibution for Phi"};
131-
ConfigurableAxis axisK0Mass{"axisK0Mass", {120, 0.44, 0.56}, "axis for invariant mass distibution for K0"};
132-
ConfigurableAxis axisLambdaMass{"axisLambdaMass", {70, 1.08, 1.15}, "axis for invariant mass distibution for Lambda"};
130+
ConfigurableAxis axisPhiMass{"axisPhiMass", {cfgNPhiMassBins, 0.99, 1.06}, "axis for invariant mass distibution for Phi"};
131+
ConfigurableAxis axisK0Mass{"axisK0Mass", {cfgNK0MassBins, cfgMassK0Min, cfgMassK0Max}, "axis for invariant mass distibution for K0"};
132+
ConfigurableAxis axisLambdaMass{"axisLambdaMass", {cfgNLambdaMassBins, cfgMassLambdaMin, cfgMassLambdaMax}, "axis for invariant mass distibution for Lambda"};
133133
ConfigurableAxis axisTPCsignal{"axisTPCsignal", {10000, 0, 1000}, "axis for TPC signal"};
134134
ConfigurableAxis axisTOFsignal{"axisTOFsignal", {10000, 0, 1000}, "axis for TOF signal"};
135135

136136
Filter collisionFilter = nabs(aod::collision::posZ) < cfgCutVertex;
137-
Filter trackFilter = (nabs(aod::track::dcaXY) < cfgCutDCAxy) && (nabs(aod::track::dcaZ) < cfgCutDCAz) && (nabs(aod::track::eta) < cfgCutEta) && (aod::track::pt > cfgCutPtPOIMin) && (aod::track::pt < cfgCutPtPOIMax);
137+
Filter trackFilter = (nabs(aod::track::dcaXY) < cfgCutDCAxy) && (nabs(aod::track::dcaZ) < cfgCutDCAz) && (nabs(aod::track::eta) < cfgCutEta) && (aod::track::pt > cfgCutPtPOIMin) && (aod::track::pt < cfgCutPtPOIMax) && ((requireGlobalTrackInFilter()) || (aod::track::isGlobalTrackSDD == (uint8_t) true)) && (aod::track::tpcChi2NCl < cfgCutChi2prTPCcls);
138138

139139
using AodCollisions = soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::FT0Mults, aod::FV0Mults, aod::TPCMults, aod::CentFV0As, aod::CentFT0Ms, aod::CentFT0Cs, aod::CentFT0As, aod::Mults>>;
140140
using AodTracksWithoutBayes = soa::Filtered<soa::Join<aod::Tracks, aod::TrackSelection, aod::TracksExtra, aod::TracksDCA, aod::pidTPCFullPi, aod::pidTPCFullKa, aod::pidTPCFullPr, aod::pidTOFbeta, aod::pidTOFFullPi, aod::pidTOFFullKa, aod::pidTOFFullPr>>;
@@ -225,8 +225,8 @@ struct ResonancesGfwFlow {
225225
fPtAxis = new TAxis(nPtBins, ptBins);
226226

227227
fPhiMassAxis = new TAxis(cfgNPhiMassBins, 0.99, 1.06);
228-
fK0MassAxis = new TAxis(cfgNK0MassBins, 0.44, 0.56);
229-
fLambdaMassAxis = new TAxis(cfgNLambdaMassBins, 1.08, 1.15);
228+
fK0MassAxis = new TAxis(cfgNK0MassBins, cfgMassK0Min, cfgMassK0Max);
229+
fLambdaMassAxis = new TAxis(cfgNLambdaMassBins, cfgMassLambdaMin, cfgMassLambdaMax);
230230

231231
int nPhisPtMassBins = nPtBins * cfgNPhiMassBins;
232232
int nK0sPtMassBins = nPtBins * cfgNK0MassBins;
@@ -253,7 +253,7 @@ struct ResonancesGfwFlow {
253253
fGFW->AddRegion("poiNantilam", -0.8, -0.4, 1 + nLambdasPtMassBins, 16);
254254
fGFW->AddRegion("olNantilam", -0.8, -0.4, 1 + nLambdasPtMassBins, 256);
255255

256-
//********** Defining the correlations **********
256+
//********** Defining the correlations ************
257257
// reference particles
258258
corrconfigs.push_back(fGFW->GetCorrelatorConfig("refN08 {2} refP08 {-2}", "Phi08Gap22", kFALSE));
259259
corrconfigs.push_back(fGFW->GetCorrelatorConfig("refN08 {2} refP08 {-2}", "Ks08Gap22", kFALSE));
@@ -569,9 +569,9 @@ struct ResonancesGfwFlow {
569569
return false;
570570

571571
// Mass cross check
572-
if (cfgUseMCCK0 && std::abs(massK0Short - 1.11568) < 0.005)
572+
if (cfgUseMCCK0 && std::abs(massLambda - 1.11568) < 0.005)
573573
return false;
574-
if (cfgUseMCCK0 && std::abs(massK0Short - 1.11568) < 0.005)
574+
if (cfgUseMCCK0 && std::abs(massLambda - 1.11568) < 0.005)
575575
return false;
576576

577577
bool withinPtPOI = (cfgCutPtPOIMin < candidate.pt()) && (candidate.pt() < cfgCutPtPOIMax); // within POI pT range
@@ -601,6 +601,10 @@ struct ResonancesGfwFlow {
601601

602602
void process(AodCollisions::iterator const& collision, aod::BCsWithTimestamps const&, AodTracksWithoutBayes const& tracks, aod::V0Datas const& V0s)
603603
{
604+
int nTot = tracks.size();
605+
if (nTot < 1)
606+
return;
607+
604608
if (!collision.sel8() || !collision.selection_bit(aod::evsel::kNoTimeFrameBorder) || !collision.selection_bit(aod::evsel::kNoITSROFrameBorder) || !collision.selection_bit(aod::evsel::kNoSameBunchPileup) || !collision.selection_bit(aod::evsel::kIsGoodZvtxFT0vsPV) || !collision.selection_bit(o2::aod::evsel::kNoCollInTimeRangeStandard))
605609
return;
606610

@@ -609,7 +613,6 @@ struct ResonancesGfwFlow {
609613
return;
610614

611615
const auto cent = collision.centFT0C();
612-
int nTot = tracks.size();
613616
float vtxz = collision.posZ();
614617

615618
histos.fill(HIST("hVtxZ"), vtxz);
@@ -620,6 +623,8 @@ struct ResonancesGfwFlow {
620623
float weff = 1, wacc = 1;
621624

622625
for (auto const& track : tracks) {
626+
if (!selectionTrack(track))
627+
continue;
623628
double pt = track.pt();
624629
bool withinPtRef = (cfgCutPtMin < pt) && (pt < cfgCutPtMax);
625630

0 commit comments

Comments
 (0)