Skip to content

Commit 52faf42

Browse files
authored
[PWGEM/Dilepton] update DileptonProducer.h (#14010)
1 parent 13b6eaa commit 52faf42

File tree

1 file changed

+26
-20
lines changed

1 file changed

+26
-20
lines changed

PWGEM/Dilepton/Core/DileptonProducer.h

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@
4747
#include "MathUtils/Utils.h"
4848

4949
#include "Math/Vector4D.h"
50-
#include "TH1D.h"
5150
#include "TString.h"
5251

5352
#include <algorithm>
@@ -100,16 +99,18 @@ struct DileptonProducer {
10099
Configurable<int> cfgQvecEstimator{"cfgQvecEstimator", 0, "FT0M:0, FT0A:1, FT0C:2, BTot:3, BPos:4, BNeg:5"};
101100
Configurable<int> cfgCentEstimator{"cfgCentEstimator", 2, "FT0M:0, FT0A:1, FT0C:2"};
102101
Configurable<int> cfgOccupancyEstimator{"cfgOccupancyEstimator", 0, "FT0C:0, Track:1"};
103-
Configurable<float> cfgCentMin{"cfgCentMin", -1, "min. centrality"};
104-
Configurable<float> cfgCentMax{"cfgCentMax", 999.f, "max. centrality"};
105102
Configurable<bool> cfgApplyWeightTTCA{"cfgApplyWeightTTCA", false, "flag to apply weighting by 1/N"};
106103
Configurable<uint> cfgDCAType{"cfgDCAType", 0, "type of DCA for output. 0:3D, 1:XY, 2:Z, else:3D"};
104+
Configurable<bool> cfgStoreULS{"cfgStoreULS", true, "flag to store ULS pairs"};
105+
Configurable<bool> cfgStoreLS{"cfgStoreLS", true, "flag to store LS pairs"};
107106

108107
EMEventCut fEMEventCut;
109108
struct : ConfigurableGroup {
110109
std::string prefix = "eventcut_group";
111110
Configurable<float> cfgZvtxMin{"cfgZvtxMin", -10.f, "min. Zvtx"};
112111
Configurable<float> cfgZvtxMax{"cfgZvtxMax", +10.f, "max. Zvtx"};
112+
Configurable<float> cfgCentMin{"cfgCentMin", -1, "min. centrality"};
113+
Configurable<float> cfgCentMax{"cfgCentMax", 999.f, "max. centrality"};
113114
Configurable<bool> cfgRequireSel8{"cfgRequireSel8", true, "require sel8 in event cut"};
114115
Configurable<bool> cfgRequireFT0AND{"cfgRequireFT0AND", true, "require FT0AND in event cut"};
115116
Configurable<bool> cfgRequireNoTFB{"cfgRequireNoTFB", false, "require No time frame border in event cut"};
@@ -535,7 +536,7 @@ struct DileptonProducer {
535536
return true;
536537
}
537538

538-
Filter collisionFilter_centrality = (cfgCentMin < o2::aod::cent::centFT0M && o2::aod::cent::centFT0M < cfgCentMax) || (cfgCentMin < o2::aod::cent::centFT0A && o2::aod::cent::centFT0A < cfgCentMax) || (cfgCentMin < o2::aod::cent::centFT0C && o2::aod::cent::centFT0C < cfgCentMax);
539+
Filter collisionFilter_centrality = (eventcuts.cfgCentMin < o2::aod::cent::centFT0M && o2::aod::cent::centFT0M < eventcuts.cfgCentMax) || (eventcuts.cfgCentMin < o2::aod::cent::centFT0A && o2::aod::cent::centFT0A < eventcuts.cfgCentMax) || (eventcuts.cfgCentMin < o2::aod::cent::centFT0C && o2::aod::cent::centFT0C < eventcuts.cfgCentMax);
539540
// Filter collisionFilter_numContrib = cfgNumContribMin <= o2::aod::collision::numContrib && o2::aod::collision::numContrib < cfgNumContribMax;
540541
Filter collisionFilter_occupancy_track = eventcuts.cfgTrackOccupancyMin <= o2::aod::evsel::trackOccupancyInTimeRange && o2::aod::evsel::trackOccupancyInTimeRange < eventcuts.cfgTrackOccupancyMax;
541542
Filter collisionFilter_occupancy_ft0c = eventcuts.cfgFT0COccupancyMin <= o2::aod::evsel::ft0cOccupancyInTimeRange && o2::aod::evsel::ft0cOccupancyInTimeRange < eventcuts.cfgFT0COccupancyMax;
@@ -580,7 +581,7 @@ struct DileptonProducer {
580581
initCCDB(collision);
581582
const float centralities[3] = {collision.centFT0M(), collision.centFT0A(), collision.centFT0C()};
582583
// float centrality = centralities[cfgCentEstimator];
583-
if (centralities[cfgCentEstimator] < cfgCentMin || cfgCentMax < centralities[cfgCentEstimator]) {
584+
if (centralities[cfgCentEstimator] < eventcuts.cfgCentMin || eventcuts.cfgCentMax < centralities[cfgCentEstimator]) {
584585
continue;
585586
}
586587

@@ -598,22 +599,27 @@ struct DileptonProducer {
598599
auto negTracks_per_coll = negTracks.sliceByCached(perCollision, collision.globalIndex(), cache);
599600

600601
int nuls = 0, nlspp = 0, nlsmm = 0;
601-
for (const auto& [pos, neg] : combinations(CombinationsFullIndexPolicy(posTracks_per_coll, negTracks_per_coll))) { // ULS
602-
bool is_pair_ok = fillPairInfo(collision, pos, neg, cut, tracks);
603-
if (is_pair_ok) {
604-
nuls++;
602+
603+
if (cfgStoreULS) {
604+
for (const auto& [pos, neg] : combinations(CombinationsFullIndexPolicy(posTracks_per_coll, negTracks_per_coll))) { // ULS
605+
bool is_pair_ok = fillPairInfo(collision, pos, neg, cut, tracks);
606+
if (is_pair_ok) {
607+
nuls++;
608+
}
605609
}
606610
}
607-
for (const auto& [pos1, pos2] : combinations(CombinationsStrictlyUpperIndexPolicy(posTracks_per_coll, posTracks_per_coll))) { // LS++
608-
bool is_pair_ok = fillPairInfo(collision, pos1, pos2, cut, tracks);
609-
if (is_pair_ok) {
610-
nlspp++;
611+
if (cfgStoreLS) {
612+
for (const auto& [pos1, pos2] : combinations(CombinationsStrictlyUpperIndexPolicy(posTracks_per_coll, posTracks_per_coll))) { // LS++
613+
bool is_pair_ok = fillPairInfo(collision, pos1, pos2, cut, tracks);
614+
if (is_pair_ok) {
615+
nlspp++;
616+
}
611617
}
612-
}
613-
for (const auto& [neg1, neg2] : combinations(CombinationsStrictlyUpperIndexPolicy(negTracks_per_coll, negTracks_per_coll))) { // LS--
614-
bool is_pair_ok = fillPairInfo(collision, neg1, neg2, cut, tracks);
615-
if (is_pair_ok) {
616-
nlsmm++;
618+
for (const auto& [neg1, neg2] : combinations(CombinationsStrictlyUpperIndexPolicy(negTracks_per_coll, negTracks_per_coll))) { // LS--
619+
bool is_pair_ok = fillPairInfo(collision, neg1, neg2, cut, tracks);
620+
if (is_pair_ok) {
621+
nlsmm++;
622+
}
617623
}
618624
}
619625

@@ -671,7 +677,7 @@ struct DileptonProducer {
671677
for (const auto& collision : collisions) {
672678
initCCDB(collision);
673679
const float centralities[3] = {collision.centFT0M(), collision.centFT0A(), collision.centFT0C()};
674-
if (centralities[cfgCentEstimator] < cfgCentMin || cfgCentMax < centralities[cfgCentEstimator]) {
680+
if (centralities[cfgCentEstimator] < eventcuts.cfgCentMin || eventcuts.cfgCentMax < centralities[cfgCentEstimator]) {
675681
continue;
676682
}
677683

@@ -761,7 +767,7 @@ struct DileptonProducer {
761767
void processNorm(aod::EMEventNormInfos const& collisions)
762768
{
763769
for (const auto& collision : collisions) {
764-
if (collision.centFT0C() < cfgCentMin || cfgCentMax < collision.centFT0C()) {
770+
if (collision.centFT0C() < eventcuts.cfgCentMin || eventcuts.cfgCentMax < collision.centFT0C()) {
765771
continue;
766772
}
767773

0 commit comments

Comments
 (0)