Skip to content

Commit eb0a1c0

Browse files
committed
use ConfigureAxis and fixed the algorism for like-sign pair calculation
1 parent d3aa8cf commit eb0a1c0

File tree

1 file changed

+48
-51
lines changed

1 file changed

+48
-51
lines changed

PWGHF/HFL/Tasks/taskElectronWeakBoson.cxx

Lines changed: 48 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -69,29 +69,28 @@ struct HfTaskElectronWeakBoson {
6969
// configurable parameters
7070
Configurable<int> nBinsPt{"nBinsPt", 100, "N bins in pt registry"};
7171
Configurable<float> binPtmax{"binPtmax", 100.0, "maximum pt registry"};
72-
Configurable<int> nBinsPtZee{"nBinsPtZee", 60, "N bins in pt Zee registry"};
73-
Configurable<float> binPtZeemin{"binPtZeemin", 20.0, "minimum pt Zee registry"};
74-
Configurable<float> binPtZeemax{"binPtZeemax", 80.0, "maximum pt Zee registry"};
7572
Configurable<int> nBinsE{"nBinsE", 100, "N bins in E registry"};
7673
Configurable<float> binEmax{"binEmax", 100.0, "maximum E registry"};
77-
Configurable<int> nBinsEop{"nBinsEop", 300, "N bins in E/p registry"};
78-
Configurable<float> binEopmin{"binEopmin", -0.01, "minimum E/p registry"};
79-
Configurable<float> binEopmax{"binEopmax", 1.49, "maximum E/p registry"};
80-
Configurable<int> nBinsEiso{"nBinsEiso", 255, "N bins in Eiso registry"};
81-
Configurable<float> binEisomin{"binEisomin", 0, "minimum Eiso registry"};
82-
Configurable<float> binEisomax{"binEisomax", 2.0, "maximum Eiso registry"};
83-
Configurable<int> nBinsPiso{"nBinsPiso", 255, "N bins in mom. isolation registry"};
84-
Configurable<float> binPisomin{"binPisomin", 0, "minimum mom. isolation registry"};
85-
Configurable<float> binPisomax{"binPisomax", 1.5, "maximum mom. isolation registry"};
86-
Configurable<int> nBinsTriso{"nBinsTriso", 25, "N bins in Track isolation registry"};
87-
Configurable<float> binTrisomin{"binTrisomin", -0.5, "minimum Track isolation registry"};
88-
Configurable<float> binTrisomax{"binTrisomax", 24.5, "maximum Track isolation registry"};
89-
Configurable<int> nBinsMassZg{"nBinsMassZg", 150, "N bins in Mass Zgamma registry"};
90-
Configurable<float> binMassZgmax{"binMassZgmax", 150, "maximum Mass Zgamma registry"};
91-
Configurable<int> nBinsMassZ{"nBinsMassZ", 130, "N bins in Mass Z registry"};
92-
Configurable<float> binMassZmin{"binMassZmin", 20, "minimum Mass Z registry"};
93-
Configurable<int> nBinsZfrag{"nBinsZfrag", 200, "N bins in Z frag registry"};
94-
Configurable<float> binZfragmin{"binZfragmin", 2, "maximum Z frag registry"};
74+
75+
ConfigurableAxis confaxisPt{"confaxisPt", {100, 0, 100}, "p_{T}"};
76+
ConfigurableAxis confaxisPtZee{"confaxisPtZee", {60, 20, 80}, "p_{T}"};
77+
ConfigurableAxis confaxisPtZneg{"confaxisPtZneg", {60, 20, 80}, "p_{T,neg} (GeV/c)"};
78+
ConfigurableAxis confaxisPtZpos{"confaxisPtZpos", {60, 20, 80}, "p_{T,pos} (GeV/c)"};
79+
ConfigurableAxis confaxisEop{"confaxisEop", {300, -0.01, 1.49}, "E/p"};
80+
ConfigurableAxis confaxisEopZneg{"confaxisEopZneg", {300, -0.01, 1.49}, "E/p_{neg}"};
81+
ConfigurableAxis confaxisEopZpos{"confaxisEopZpos", {300, -0.01, 1.49}, "E/p_{pos}"};
82+
ConfigurableAxis confaxisIsoEnergy{"confaxisIsoEnergy", {255, 0, 2.0}, "E_{iso}"};
83+
ConfigurableAxis confaxisIsoEnergyZneg{"confaxisIsoEnergyZneg", {255, 0, 2.0}, "E_{iso,neg}"};
84+
ConfigurableAxis confaxisIsoEnergyZpos{"confaxisIsoEnergyZpos", {255, 0, 2.0}, "E_{iso,pos}"};
85+
ConfigurableAxis confaxisIsoMomentum{"confaxisIsoMomentum", {255, 0, 2.0}, "E_{iso}"};
86+
ConfigurableAxis confaxisIsoMomentumZneg{"confaxisIsoMomentumZneg", {255, 0, 1.5}, "E_{iso,neg}"};
87+
ConfigurableAxis confaxisIsoMomentumZpos{"confaxisIsoMomentumZpos", {255, 0, 1.5}, "E_{iso,pos}"};
88+
ConfigurableAxis confaxisIsoTrack{"confaxisIsoTrack", {25, -0.5, 24.5}, "Isolation Track"};
89+
ConfigurableAxis confaxisIsoTrackZneg{"confaxisIsoTrackZneg", {25, -0.5, 24.5}, "N_{isotrk,neg}"};
90+
ConfigurableAxis confaxisIsoTrackZpos{"confaxisIsoTrackZpos", {25, -0.5, 24.5}, "N_{isotrk,pos}"};
91+
ConfigurableAxis confaxisInvMassZgamma{"confaxisInvMassZgamma", {150, 0, 150}, "M_{ee} (GeV/c^{2})"};
92+
ConfigurableAxis confaxisInvMassZ{"confaxisInvMassZ", {130, 20, 150}, "M_{ee} (GeV/c^{2})"};
93+
ConfigurableAxis confaxisZfrag{"confaxisZfrag", {200, 0, 2.0}, "p_{T,h}/p_{T,Z}"};
9594

9695
Configurable<float> vtxZ{"vtxZ", 10.f, ""};
9796

@@ -234,10 +233,6 @@ struct HfTaskElectronWeakBoson {
234233
const AxisSpec axisZvtx{40, -20, 20, "Zvtx"};
235234
const AxisSpec axisCounter{1, 0, 1, "events"};
236235
const AxisSpec axisEta{20, -1.0, 1.0, "#eta"};
237-
const AxisSpec axisPt{nBinsPt, 0, binPtmax, "p_{T}"};
238-
const AxisSpec axisPtZee{nBinsPtZee, binPtZeemin, binPtZeemax, "p_{T}"};
239-
const AxisSpec axisPtZneg{nBinsPtZee, binPtZeemin, binPtZeemax, "p_{T,neg} (GeV/c)"};
240-
const AxisSpec axisPtZpos{nBinsPtZee, binPtZeemin, binPtZeemax, "p_{T,pos} (GeV/c)"};
241236
const AxisSpec axisDCAxyneg{150, 0, 0.3, "DCAxy_{neg}"};
242237
const AxisSpec axisDCAxypos{150, 0, 0.3, "DCAxy_{pos}"};
243238
const AxisSpec axisDCAzneg{150, 0, 0.3, "DCAz_{neg}"};
@@ -257,31 +252,35 @@ struct HfTaskElectronWeakBoson {
257252
const AxisSpec axisdR{20, 0.0, 0.2, "dR"};
258253
const AxisSpec axisNcell{50, 0.0, 50.0, "Ncell"};
259254
const AxisSpec axisPhi{350, 0, 7, "Phi"};
260-
const AxisSpec axisEop{nBinsEop, binEopmin, binEopmax, "E/p"};
261-
const AxisSpec axisEopZneg{nBinsEop, binEopmin, binEopmax, "E/p"};
262-
const AxisSpec axisEopZpos{nBinsEop, binEopmin, binEopmax, "E/p"};
263255
const AxisSpec axisChi2{250, 0.0, 25.0, "#chi^{2}"};
264256
const AxisSpec axisCluster{100, 0.0, 200.0, "counts"};
265257
const AxisSpec axisITSNCls{10, 0.0, 10, "counts"};
266258
const AxisSpec axisEMCtime{100, -50.0, 50, "EMC time"};
267-
const AxisSpec axisIsoEnergy{nBinsEiso, binEisomin, binEisomax, "E_{iso}"};
268-
const AxisSpec axisIsoEnergyZneg{nBinsEiso, binEisomin, binEisomax, "E_{iso}"};
269-
const AxisSpec axisIsoEnergyZpos{nBinsEiso, binEisomin, binEisomax, "E_{iso}"};
270-
const AxisSpec axisIsoMomentum{nBinsPiso, binPisomin, binPisomax, "Isolation momentum(GeV/C)"};
271-
const AxisSpec axisIsoMomentumZneg{nBinsPiso, binPisomin, binPisomax, "Isolation momentum(GeV/C)"};
272-
const AxisSpec axisIsoMomentumZpos{nBinsPiso, binPisomin, binPisomax, "Isolation momentum(GeV/C)"};
273-
const AxisSpec axisIsoTrack{nBinsTriso, binTrisomin, binTrisomax, "Isolation Track"};
274-
const AxisSpec axisIsoTrackZneg{nBinsTriso, binTrisomin, binTrisomax, "N_{isotrk,neg}"};
275-
const AxisSpec axisIsoTrackZpos{nBinsTriso, binTrisomin, binTrisomax, "N_{isotrk,pos}"};
276-
const AxisSpec axisInvMassZgamma{nBinsMassZg, 0, binMassZgmax, "M_{ee} (GeV/c^{2})"};
277-
const AxisSpec axisInvMassZ{nBinsMassZ, binMassZmin, binMassZgmax, "M_{ee} (GeV/c^{2})"};
278259
const AxisSpec axisTrigger{3, -0.5, 2.5, "Trigger status of zorro"};
279260
const AxisSpec axisDPhiZh{64, -o2::constants::math::PIHalf, 3 * o2::constants::math::PIHalf, "#Delta#phi(Z-h)"};
280261
const AxisSpec axisPtHadron{nBinsPt, 0, binPtmax, "p_{T,hadron} (GeV/c)"};
281262
const AxisSpec axisPtZ{nBinsPt, 0, binPtmax, "p_{T,Z} (GeV/c)"};
282263
const AxisSpec axisSign{2, -2, 2, "charge sign"};
283-
const AxisSpec axisCentrality{centralityBins};
284-
const AxisSpec axisZfrag{nBinsZfrag, 0, binZfragmin, "p_{T,h}/p_{T,Z}"};
264+
const AxisSpec axisCentrality{centralityBins, "centrality"};
265+
const AxisSpec axisEop{confaxisEop, "E/p"};
266+
const AxisSpec axisEopZneg{confaxisEopZneg, "E/p_{neg}"};
267+
const AxisSpec axisEopZpos{confaxisEopZpos, "E/p_{[pos}"};
268+
const AxisSpec axisPt{confaxisPt, "p_{T}"};
269+
const AxisSpec axisPtZee{confaxisPtZee, "p_{T}"};
270+
const AxisSpec axisPtZneg{confaxisPtZneg, "p_{T,neg} (GeV/c)"};
271+
const AxisSpec axisPtZpos{confaxisPtZpos, "p_{T,pos} (GeV/c)"};
272+
const AxisSpec axisIsoEnergy{confaxisIsoEnergy, "E_{iso}"};
273+
const AxisSpec axisIsoEnergyZneg{confaxisIsoEnergyZneg, "E_{iso}"};
274+
const AxisSpec axisIsoEnergyZpos{confaxisIsoEnergyZpos, "E_{iso}"};
275+
const AxisSpec axisIsoMomentum{confaxisIsoMomentum, "Isolation momentum(GeV/C)"};
276+
const AxisSpec axisIsoMomentumZneg{confaxisIsoMomentumZneg, "Isolation momentum(GeV/C)"};
277+
const AxisSpec axisIsoMomentumZpos{confaxisIsoMomentumZpos, "Isolation momentum(GeV/C)"};
278+
const AxisSpec axisIsoTrack{confaxisIsoTrack, "Isolation Track"};
279+
const AxisSpec axisIsoTrackZneg{confaxisIsoTrackZneg, "N_{isotrk,neg}"};
280+
const AxisSpec axisIsoTrackZpos{confaxisIsoTrackZpos, "N_{isotrk,pos}"};
281+
const AxisSpec axisInvMassZgamma{confaxisInvMassZgamma, "M_{ee} (GeV/c^{2})"};
282+
const AxisSpec axisInvMassZ{confaxisInvMassZ, "M_{ee} (GeV/c^{2})"};
283+
const AxisSpec axisZfrag{confaxisZfrag, "p_{T,h}/p_{T,Z}"};
285284

286285
// create registrygrams
287286
registry.add("hZvtx", "Z vertex", kTH1D, {axisZvtx});
@@ -770,11 +769,10 @@ struct HfTaskElectronWeakBoson {
770769
}
771770
}
772771
// bg e-e-
773-
for (const auto& trackEle : selectedElectronsIso) {
774-
for (const auto& trackEle2 : selectedElectronsIso) {
775-
if (&trackEle.pt == &trackEle2.pt) {
776-
continue;
777-
}
772+
for (size_t i = 0; i < selectedElectronsIso.size(); ++i) {
773+
for (size_t j = i + 1; j < selectedElectronsIso.size(); ++j) {
774+
const auto& trackEle = selectedElectronsIso[i];
775+
const auto& trackEle2 = selectedElectronsIso[j];
778776
auto child1 = RecoDecayPtEtaPhi::pVector(trackEle.pt, trackEle.eta, trackEle.phi);
779777
auto child2 = RecoDecayPtEtaPhi::pVector(trackEle2.pt, trackEle2.eta, trackEle2.phi);
780778
double invMass = RecoDecay::m(std::array{child1, child2}, std::array{o2::constants::physics::MassElectron, o2::constants::physics::MassElectron});
@@ -786,11 +784,10 @@ struct HfTaskElectronWeakBoson {
786784
}
787785
}
788786
// bg e+e+
789-
for (const auto& trackPos : selectedPositronsIso) {
790-
for (const auto& trackPos2 : selectedPositronsIso) {
791-
if (&trackPos.pt == &trackPos2.pt) {
792-
continue;
793-
}
787+
for (size_t i = 0; i < selectedPositronsIso.size(); ++i) {
788+
for (size_t j = i + 1; j < selectedPositronsIso.size(); ++j) {
789+
const auto& trackPos = selectedPositronsIso[i];
790+
const auto& trackPos2 = selectedPositronsIso[j];
794791
auto child1 = RecoDecayPtEtaPhi::pVector(trackPos.pt, trackPos.eta, trackPos.phi);
795792
auto child2 = RecoDecayPtEtaPhi::pVector(trackPos2.pt, trackPos2.eta, trackPos2.phi);
796793
double invMass = RecoDecay::m(std::array{child1, child2}, std::array{o2::constants::physics::MassElectron, o2::constants::physics::MassElectron});

0 commit comments

Comments
 (0)