@@ -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
721750WorkflowSpec defineDataProcessing (ConfigContext const & cfgc)
722751{
0 commit comments