Skip to content

Commit b388de4

Browse files
author
Preet Pati
committed
Fixed logic of multiplicity based selection in mixed events
1 parent 6069f9f commit b388de4

2 files changed

Lines changed: 50 additions & 226 deletions

File tree

PWGCF/TwoParticleCorrelations/Tasks/corrFit.cxx

Lines changed: 33 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ struct CorrFit {
7373

7474
O2_DEFINE_CONFIGURABLE(cfgUseAdditionalEventCut, bool, true, "Use additional event cut on mult correlations")
7575
O2_DEFINE_CONFIGURABLE(cfgZVtxCut, float, 10.0f, "Accepted z-vertex range")
76-
O2_DEFINE_CONFIGURABLE(cfgUseTransverseMomentum, bool, false, "Use transverse momentum for correlation container")
7776
O2_DEFINE_CONFIGURABLE(cfgQaCheck, bool, true, "Enable QA histograms for event selection")
7877
O2_DEFINE_CONFIGURABLE(cfgStrictTrackCounter, bool, false, "Strict track counter for multiplicity correlation cut, counts only tracks that pass all cuts and are used in the correlation")
7978
O2_DEFINE_CONFIGURABLE(cfgRefpTt, bool, false, "Apply upper pT cut on reference tracks")
@@ -82,6 +81,7 @@ struct CorrFit {
8281
O2_DEFINE_CONFIGURABLE(cfgMaxMultForCorrelations, int, 20, "maximum multiplicity for correlations")
8382
O2_DEFINE_CONFIGURABLE(cfgRefMultiplicity, bool, false, "Use multiplicity of reference tracks for multiplicity correlation cut instead of Nch")
8483
Configurable<std::vector<int>> cfgRunRemoveList{"cfgRunRemoveList", std::vector<int>{-1}, "excluded run numbers"};
84+
O2_DEFINE_CONFIGURABLE(cfgEvSelRCTflags, std::string, "", "keep empty to disable, usage: 'CentralBarrelTracking (CBT)', 'CBT_hadronPID' ")
8585

8686
struct : ConfigurableGroup{
8787
O2_DEFINE_CONFIGURABLE(cfgPtCutMin, float, 0.2f, "minimum accepted track pT")
@@ -110,7 +110,6 @@ struct CorrFit {
110110
O2_DEFINE_CONFIGURABLE(cfgCentralityWeight, std::string, "", "CCDB path to centrality weight object")
111111
O2_DEFINE_CONFIGURABLE(cfgLocalEfficiency, bool, false, "Use local efficiency object")
112112
O2_DEFINE_CONFIGURABLE(cfgLocalEfficiencyNch, bool, false, "Use local multiplicity dependent efficiency object");
113-
O2_DEFINE_CONFIGURABLE(cfgUseEventWeights, bool, false, "Use event weights for mixed event")
114113
O2_DEFINE_CONFIGURABLE(cfgCentEstimator, int, 0, "0:FT0C; 1:FT0CVariant1; 2:FT0M; 3:FT0A")
115114

116115
struct : ConfigurableGroup {
@@ -178,7 +177,7 @@ struct CorrFit {
178177
ConfigurableAxis axisMultMix{"axisMultMix", {VARIABLE_WIDTH, 0, 10, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260}, "multiplicity / centrality axis for mixed event histograms"};
179178
ConfigurableAxis axisSample{"axisSample", {cfgSampleSize, 0, cfgSampleSize}, "sample axis for histograms"};
180179
ConfigurableAxis axisParticle{"axisParticle", {4, 0, 4}, "particle axis for correlation container"};
181-
180+
ConfigurableAxis axisNch{"axisNch", {VARIABLE_WIDTH, 0, 5, 6, 7, 8, 9, 10, 12, 15, 20, 25, 30, 40, 50, 60, 80, 100}, "multiplicity axis for correlation container"};
182181
ConfigurableAxis axisVertexEfficiency{"axisVertexEfficiency", {10, -10, 10}, "vertex axis for efficiency histograms"};
183182
ConfigurableAxis axisEtaEfficiency{"axisEtaEfficiency", {20, -1.0, 1.0}, "eta axis for efficiency histograms"};
184183
ConfigurableAxis axisPtEfficiency{"axisPtEfficiency", {VARIABLE_WIDTH, 0.2, 0.5, 1, 1.5, 2, 3, 4, 6, 10}, "pt axis for efficiency histograms"};
@@ -500,6 +499,10 @@ struct CorrFit {
500499
mixedTPC.setObject(new CorrelationContainer("mixedEvent_TPC", "mixedEvent_TPC", corrAxisTPC, effAxis, userAxis));
501500
}
502501

502+
if (!cfgEvSelRCTflags.value.empty()) {
503+
rctChecker.init(cfgEvSelRCTflags.value.c_str()); // override initialzation
504+
}
505+
503506
LOGF(info, "End of init");
504507
}
505508

@@ -1191,14 +1194,12 @@ struct CorrFit {
11911194
if (system == SameEvent) {
11921195
if (corType == kFT0A) {
11931196
if (cfgQaCheck) {
1194-
registry.fill(HIST("Nch"), multiplicity);
11951197
registry.fill(HIST("Assoc_amp_same_TPC_FT0A"), chanelid, ampl);
11961198
registry.fill(HIST("deltaEta_deltaPhi_same_TPC_FT0A"), deltaPhi, deltaEta, ampl * eventWeight * triggerWeight);
11971199
}
11981200
sameTpcFt0a->getPairHist()->Fill(step, fSampleIndex, posZ, track1.pt(), multiplicity, deltaPhi, deltaEta, ampl * eventWeight * triggerWeight);
11991201
} else if (corType == kFT0C) {
12001202
if (cfgQaCheck) {
1201-
registry.fill(HIST("Nch"), multiplicity);
12021203
registry.fill(HIST("Assoc_amp_same_TPC_FT0C"), chanelid, ampl);
12031204
registry.fill(HIST("deltaEta_deltaPhi_same_TPC_FT0C"), deltaPhi, deltaEta, ampl * eventWeight * triggerWeight);
12041205
}
@@ -1228,9 +1229,6 @@ struct CorrFit {
12281229
{
12291230
int fSampleIndex = gRandom->Uniform(0, cfgSampleSize);
12301231

1231-
if (cfgQaCheck) {
1232-
registry.fill(HIST("Nch"), multiplicity);
1233-
}
12341232
float triggerWeight = 1.0f;
12351233
std::size_t channelASize = ft0Col1.channelA().size();
12361234
std::size_t channelCSize = ft0Col2.channelC().size();
@@ -1378,13 +1376,17 @@ struct CorrFit {
13781376

13791377
void processSameTpcFt0a(FilteredCollisions::iterator const& collision, FilteredTracks const& tracks, aod::FT0s const&, aod::BCsWithTimestamps const&)
13801378
{
1379+
registry.fill(HIST("hEventCount"), kFilteredEvents);
1380+
13811381
if (cfgQaCheck) {
13821382
eventSelectedIndividually(collision);
13831383
}
13841384

13851385
if (!collision.sel8())
13861386
return;
13871387

1388+
registry.fill(HIST("hEventCount"), kAfterSel8);
1389+
13881390
if (!eventRct(collision, true))
13891391
return;
13901392

@@ -1415,6 +1417,9 @@ struct CorrFit {
14151417

14161418
double multiplicity = tracks.size();
14171419

1420+
if (cfgQaCheck)
1421+
registry.fill(HIST("Nch"), multiplicity);
1422+
14181423
if (cfgStrictTrackCounter) {
14191424
trackCounter(tracks, multiplicity);
14201425
}
@@ -1470,7 +1475,7 @@ struct CorrFit {
14701475
int currentRunNumber = bc.runNumber();
14711476
if (!cfgRunRemoveList.value.empty()) {
14721477
if (!isGoodRun(currentRunNumber)) // Rejects runs if bad run number
1473-
return;
1478+
continue;
14741479
}
14751480

14761481
loadAlignParam(bc.timestamp());
@@ -1484,7 +1489,7 @@ struct CorrFit {
14841489
}
14851490

14861491
if (multiplicity > cfgMaxMultForCorrelations || multiplicity < cfgMinMultForCorrelations) {
1487-
return;
1492+
continue;
14881493
}
14891494

14901495
const auto& ft0 = collision2.foundFT0();
@@ -1495,6 +1500,7 @@ struct CorrFit {
14951500

14961501
void processSameTpcFt0c(FilteredCollisions::iterator const& collision, FilteredTracks const& tracks, aod::FT0s const&, aod::BCsWithTimestamps const&)
14971502
{
1503+
registry.fill(HIST("hEventCount"), kFilteredEvents);
14981504

14991505
if (cfgQaCheck) {
15001506
eventSelectedIndividually(collision);
@@ -1503,6 +1509,8 @@ struct CorrFit {
15031509
if (!collision.sel8())
15041510
return;
15051511

1512+
registry.fill(HIST("hEventCount"), kAfterSel8);
1513+
15061514
if (!eventRct(collision, true))
15071515
return;
15081516

@@ -1529,6 +1537,9 @@ struct CorrFit {
15291537

15301538
double multiplicity = tracks.size();
15311539

1540+
if (cfgQaCheck)
1541+
registry.fill(HIST("Nch"), multiplicity);
1542+
15321543
if (cfgStrictTrackCounter) {
15331544
trackCounter(tracks, multiplicity);
15341545
}
@@ -1582,7 +1593,7 @@ struct CorrFit {
15821593
int currentRunNumber = bc.runNumber();
15831594
if (!cfgRunRemoveList.value.empty()) {
15841595
if (!isGoodRun(currentRunNumber)) // Rejects runs if bad run number
1585-
return;
1596+
continue;
15861597
}
15871598
loadAlignParam(bc.timestamp());
15881599
loadCorrection(bc.timestamp());
@@ -1596,7 +1607,7 @@ struct CorrFit {
15961607
}
15971608

15981609
if (multiplicity > cfgMaxMultForCorrelations || multiplicity < cfgMinMultForCorrelations) {
1599-
return;
1610+
continue;
16001611
}
16011612

16021613
fillCorrelationsTPCFT0<CorrelationContainer::kCFStepReconstructed>(tracks1, ft0, collision1.posZ(), MixedEvent, multiplicity, kFT0C, eventWeight);
@@ -1606,6 +1617,7 @@ struct CorrFit {
16061617

16071618
void processSameFt0aFt0c(FilteredCollisions::iterator const& collision, FilteredTracks const& tracks, aod::FT0s const&, aod::BCsWithTimestamps const&)
16081619
{
1620+
registry.fill(HIST("hEventCount"), kFilteredEvents);
16091621

16101622
if (cfgQaCheck) {
16111623
eventSelectedIndividually(collision);
@@ -1614,6 +1626,8 @@ struct CorrFit {
16141626
if (!collision.sel8())
16151627
return;
16161628

1629+
registry.fill(HIST("hEventCount"), kAfterSel8);
1630+
16171631
if (!eventRct(collision, true))
16181632
return;
16191633

@@ -1643,6 +1657,9 @@ struct CorrFit {
16431657

16441658
double multiplicity = tracks.size();
16451659

1660+
if (cfgQaCheck)
1661+
registry.fill(HIST("Nch"), multiplicity);
1662+
16461663
if (cfgStrictTrackCounter) {
16471664
trackCounter(tracks, multiplicity);
16481665
}
@@ -1696,7 +1713,7 @@ struct CorrFit {
16961713
int currentRunNumber = bc.runNumber();
16971714
if (!cfgRunRemoveList.value.empty()) {
16981715
if (!isGoodRun(currentRunNumber)) // Rejects runs if bad run number
1699-
return;
1716+
continue;
17001717
}
17011718
loadAlignParam(bc.timestamp());
17021719
loadCorrection(bc.timestamp());
@@ -1712,7 +1729,7 @@ struct CorrFit {
17121729
}
17131730

17141731
if (multiplicity > cfgMaxMultForCorrelations || multiplicity < cfgMinMultForCorrelations) {
1715-
return;
1732+
continue;
17161733
}
17171734

17181735
registry.fill(HIST("eventcount"), MixedEvent); // fill the mixed event in the 3 bin
@@ -1802,7 +1819,7 @@ struct CorrFit {
18021819
int currentRunNumber = bc.runNumber();
18031820
if (!cfgRunRemoveList.value.empty()) {
18041821
if (!isGoodRun(currentRunNumber)) // Rejects runs if bad run number
1805-
return;
1822+
continue;
18061823
}
18071824

18081825
loadCorrection(bc.timestamp());
@@ -1814,7 +1831,7 @@ struct CorrFit {
18141831
}
18151832

18161833
if (multiplicity > cfgMaxMultForCorrelations || multiplicity < cfgMinMultForCorrelations) {
1817-
return;
1834+
continue;
18181835
}
18191836

18201837
fillCorrelations<CorrelationContainer::kCFStepReconstructed>(tracks1, tracks2, collision1.posZ(), MixedEvent, multiplicity, getMagneticField(collision1.bc_as<aod::BCsWithTimestamps>().timestamp()));

0 commit comments

Comments
 (0)