Skip to content

Commit 4bc7f94

Browse files
sashingovkucera
andauthored
[PWGHF] Added additional parameters in Z->ee QA histograms (#12983)
Co-authored-by: Vít Kučera <vit.kucera@cern.ch>
1 parent 76d80e1 commit 4bc7f94

File tree

1 file changed

+45
-16
lines changed

1 file changed

+45
-16
lines changed

PWGHF/HFL/Tasks/taskElectronWeakBoson.cxx

Lines changed: 45 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -136,13 +136,15 @@ struct HfTaskElectronWeakBoson {
136136

137137
// QA for Z->ee
138138
Configurable<bool> enableZeeRecoQA{"enableZeeRecoQA", false, "Enable QA for Z->ee reconstruction"};
139+
Configurable<float> massZMinQA{"massZMinQA", 0.1, "minimum mass cut for Zee Reco QA"};
139140
// CCDB service object
140141
Service<o2::ccdb::BasicCCDBManager> ccdb;
141142

142143
struct HfElectronCandidate {
143-
float pt, eta, phi, eop, energyIso, momIso, ntrackIso;
144-
HfElectronCandidate(float ptr, float e, float ph, float ep, float eiso, float piso, int ntrkiso)
145-
: pt(ptr), eta(e), phi(ph), eop(ep), energyIso(eiso), momIso(piso), ntrackIso(ntrkiso) {}
144+
float pt, eta, phi, dcaxyTrk, dcazTrk, eop, energyIso, momIso;
145+
int ntrackIso, nclusterTPC, nclusterITS;
146+
HfElectronCandidate(float ptr, float e, float ph, float dcaxy, float dcaz, float ep, float eiso, float piso, int ntrkiso, int nclstpc, int nclsits)
147+
: pt(ptr), eta(e), phi(ph), dcaxyTrk(dcaxy), dcazTrk(dcaz), eop(ep), energyIso(eiso), momIso(piso), ntrackIso(ntrkiso), nclusterTPC(nclstpc), nclusterITS(nclsits) {}
146148
};
147149
std::vector<HfElectronCandidate> selectedElectronsIso;
148150
std::vector<HfElectronCandidate> selectedPositronsIso;
@@ -212,8 +214,18 @@ struct HfTaskElectronWeakBoson {
212214
const AxisSpec axisEta{20, -1.0, 1.0, "#eta"};
213215
const AxisSpec axisPt{nBinsPt, 0, binPtmax, "p_{T}"};
214216
const AxisSpec axisPtZee{60, 20, 80, "p_{T}"};
215-
const AxisSpec axisPtZele{60, 20, 80, "p_{T,ele} (GeV/c)"};
217+
const AxisSpec axisPtZneg{60, 20, 80, "p_{T,neg} (GeV/c)"};
216218
const AxisSpec axisPtZpos{60, 20, 80, "p_{T,pos} (GeV/c)"};
219+
const AxisSpec axisDCAxyneg{150, 0, 0.3, "DCAxy_{neg}"};
220+
const AxisSpec axisDCAxypos{150, 0, 0.3, "DCAxy_{pos}"};
221+
const AxisSpec axisDCAzneg{150, 0, 0.3, "DCAz_{neg}"};
222+
const AxisSpec axisDCAzpos{150, 0, 0.3, "DCAz_{neg}"};
223+
const AxisSpec axisNclsTPCneg{20, 79.5, 159.5, "nClsTpc_{neg}"};
224+
const AxisSpec axisNclsTPCpos{20, 79.5, 159.5, "nClsTpc_{neg}"};
225+
const AxisSpec axisNclsITSneg{9, -0.5, 8.5, "nClsIts_{neg}"};
226+
const AxisSpec axisNclsITSpos{9, -0.5, 8.5, "nClsIts_{neg}"};
227+
const AxisSpec axisSectorTPCneg{360, 0, 18, "TPCsector_{neg}"};
228+
const AxisSpec axisSectorTPCpos{360, 0, 18, "TPCsector_{pos}"};
217229
const AxisSpec axisNsigma{100, -5, 5, "N#sigma"};
218230
const AxisSpec axisDedx{150, 0, 150, "dEdx"};
219231
const AxisSpec axisE{nBinsE, 0, binEmax, "Energy"};
@@ -224,20 +236,20 @@ struct HfTaskElectronWeakBoson {
224236
const AxisSpec axisNcell{50, 0.0, 50.0, "Ncell"};
225237
const AxisSpec axisPhi{350, 0, 7, "Phi"};
226238
const AxisSpec axisEop{200, 0, 2, "E/p"};
227-
const AxisSpec axisEopZele{200, 0, 2, "E/p electon"};
228-
const AxisSpec axisEopZpos{200, 0, 2, "E/p positron"};
239+
const AxisSpec axisEopZneg{200, 0, 2, "E/p neg"};
240+
const AxisSpec axisEopZpos{200, 0, 2, "E/p pos"};
229241
const AxisSpec axisChi2{250, 0.0, 25.0, "#chi^{2}"};
230242
const AxisSpec axisCluster{100, 0.0, 200.0, "counts"};
231243
const AxisSpec axisITSNCls{10, 0.0, 10, "counts"};
232244
const AxisSpec axisEMCtime{100, -50.0, 50, "EMC time"};
233245
const AxisSpec axisIsoEnergy{100, 0, 1.0, "E_{iso}"};
234-
const AxisSpec axisIsoEnergyZele{100, 0, 1.0, "E_{iso,ele}"};
246+
const AxisSpec axisIsoEnergyZneg{100, 0, 1.0, "E_{iso,neg}"};
235247
const AxisSpec axisIsoEnergyZpos{100, 0, 1.0, "E_{iso,pos}"};
236248
const AxisSpec axisIsoMomentum{100, 0, 10.0, "Isolation momentum(GeV/C)"};
237-
const AxisSpec axisIsoMomentumZele{100, 0, 10.0, "p_{iso,ele}"};
249+
const AxisSpec axisIsoMomentumZneg{100, 0, 10.0, "p_{iso,neg}"};
238250
const AxisSpec axisIsoMomentumZpos{100, 0, 10.0, "p_{iso,pos}"};
239251
const AxisSpec axisIsoTrack{25, -0.5, 24.5, "Isolation Track"};
240-
const AxisSpec axisIsoTrackZele{25, -0.5, 24.5, "N_{isotrk,ele}"};
252+
const AxisSpec axisIsoTrackZneg{25, -0.5, 24.5, "N_{isotrk,neg}"};
241253
const AxisSpec axisIsoTrackZpos{25, -0.5, 24.5, "N_{isotrk,pos}"};
242254
const AxisSpec axisInvMassZgamma{150, 0, 150, "M_{ee} (GeV/c^{2})"};
243255
const AxisSpec axisInvMassZ{130, 20, 150, "M_{ee} (GeV/c^{2})"};
@@ -276,7 +288,7 @@ struct HfTaskElectronWeakBoson {
276288
registry.add("hIsolationEnergy", "Isolation Energy", kTH2F, {{axisE}, {axisIsoEnergy}});
277289
registry.add("hInvMassZee", "invariant mass for Z ULS pair", HistType::kTHnSparseF, {axisCentrality, axisSign, axisPt, axisInvMassZgamma});
278290
registry.add("hKfInvMassZee", "invariant mass for Z ULS pair KFp", HistType::kTHnSparseF, {axisCentrality, axisSign, axisPt, axisInvMassZgamma});
279-
registry.add("hInvMassZeeQA", "QA for invariant mass for Z", HistType::kTHnSparseF, {axisInvMassZ, axisPtZele, axisPtZpos, axisEopZele, axisEopZpos, axisIsoEnergyZele, axisIsoEnergyZpos, axisIsoMomentumZele, axisIsoMomentumZpos, axisIsoTrackZele, axisIsoTrackZpos});
291+
registry.add("hInvMassZeeQA", "QA for invariant mass for Z", HistType::kTHnSparseF, {axisInvMassZ, axisPtZneg, axisPtZpos, axisDCAxyneg, axisDCAxypos, axisDCAzpos, axisNclsTPCneg, axisNclsTPCpos, axisNclsITSneg, axisNclsITSpos, axisSectorTPCneg, axisSectorTPCneg, axisEopZneg, axisEopZpos, axisIsoEnergyZneg, axisIsoEnergyZpos, axisIsoMomentumZneg, axisIsoMomentumZpos, axisIsoTrackZneg, axisIsoTrackZpos});
280292
registry.add("hTHnElectrons", "electron info", HistType::kTHnSparseF, {axisPt, axisNsigma, axisM02, axisEop, axisIsoEnergy, axisIsoTrack, axisEta, axisDedx});
281293
registry.add("hTHnTrMatch", "Track EMC Match", HistType::kTHnSparseF, {axisPt, axisdPhi, axisdEta});
282294

@@ -539,10 +551,14 @@ struct HfTaskElectronWeakBoson {
539551
track.pt(),
540552
track.eta(),
541553
track.phi(),
554+
track.dcaXY(),
555+
track.dcaZ(),
542556
eop,
543557
isoEnergy,
544558
isoMomentum,
545-
trackCount);
559+
trackCount,
560+
track.tpcNClsCrossedRows(),
561+
track.itsNCls());
546562
}
547563

548564
if (track.pt() < ptMin) {
@@ -663,19 +679,27 @@ struct HfTaskElectronWeakBoson {
663679
track.pt(),
664680
track.eta(),
665681
track.phi(),
682+
track.dcaXY(),
683+
track.dcaZ(),
666684
eop,
667685
isoEnergy,
668686
isoMomentum,
669-
trackCount);
687+
trackCount,
688+
track.tpcNClsFound(),
689+
track.itsNCls());
670690
} else {
671691
selectedPositronsIso.emplace_back(
672692
track.pt(),
673693
track.eta(),
674694
track.phi(),
695+
track.dcaXY(),
696+
track.dcaZ(),
675697
eop,
676698
isoEnergy,
677699
isoMomentum,
678-
trackCount);
700+
trackCount,
701+
track.tpcNClsFound(),
702+
track.itsNCls());
679703
}
680704
}
681705

@@ -710,13 +734,18 @@ struct HfTaskElectronWeakBoson {
710734
auto child1 = RecoDecayPtEtaPhi::pVector(trackEle.pt, trackEle.eta, trackEle.phi);
711735
auto child2 = RecoDecayPtEtaPhi::pVector(trackPos.pt, trackPos.eta, trackPos.phi);
712736
double invMass = RecoDecay::m(std::array{child1, child2}, std::array{o2::constants::physics::MassElectron, o2::constants::physics::MassElectron});
713-
registry.fill(HIST("hInvMassZeeQA"), invMass, trackEle.pt, trackPos.pt, trackEle.eop, trackPos.eop, trackEle.energyIso, trackPos.energyIso, trackEle.momIso, trackPos.momIso, trackEle.ntrackIso, trackPos.ntrackIso);
737+
if (invMass > massZMinQA) {
738+
float sectorneg = trackEle.phi / o2::constants::math::SectorSpanRad;
739+
float sectorpos = trackPos.phi / o2::constants::math::SectorSpanRad;
740+
// LOG(info) << "TPC sector= " << sectorneg << " ; " << sectorpos;
741+
registry.fill(HIST("hInvMassZeeQA"), invMass, trackEle.pt, trackPos.pt, trackEle.dcaxyTrk, trackPos.dcaxyTrk, trackPos.dcazTrk, trackEle.nclusterTPC, trackPos.nclusterTPC, trackEle.nclusterITS, trackPos.nclusterITS, sectorneg, sectorpos, trackEle.eop, trackPos.eop, trackEle.energyIso, trackPos.energyIso, trackEle.momIso, trackPos.momIso, trackEle.ntrackIso, trackPos.ntrackIso);
742+
}
714743
}
715744
}
716745
}
717746
} // end of Z->ee QA
718-
}
719-
};
747+
} // process
748+
}; // struct HfTaskElectronWeakBoson
720749

721750
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
722751
{

0 commit comments

Comments
 (0)