@@ -140,21 +140,23 @@ struct HfTaskElectronWeakBoson {
140140 Configurable<std::vector<double >> centralityBins{" centralityBins" , {0 , 20 , 60 , 100 }, " centrality bins" };
141141
142142 // QA for Z->ee
143- Configurable<bool > enableZeeRecoQA{" enableZeeRecoQA" , false , " Enable QA for Z->ee reconstruction" };
143+ Configurable<bool > enableZeeTrkRecoQA{" enableZeeTrkRecoQA" , false , " Enable QA for track info Z->ee reconstruction" };
144+ Configurable<bool > enableZeeEmcRecoQA{" enableZeeEmcRecoQA" , false , " Enable QA for Emc info Z->ee reconstruction" };
144145 Configurable<float > massZMinQA{" massZMinQA" , 0.1 , " minimum mass cut for Zee Reco QA" };
145- // CCDB service object
146- Service<o2::ccdb::BasicCCDBManager> ccdb{};
147146 // UE
148147 Configurable<int > nRandomCones{" nRandomCones" , 100 , " number of random cones" };
149148 Configurable<float > rcHardE{" rcHardE" , 5.0 , " hard cluster veto energy" };
150149 Configurable<float > rcVetoR{" rcVetoR" , 0.4 , " veto radius" };
151150 Configurable<bool > useUEsub{" useUEsub" , true , " apply UE subtraction in isolation" };
152151
152+ // CCDB service object
153+ Service<o2::ccdb::BasicCCDBManager> ccdb{};
154+
153155 struct HfElectronCandidate {
154- float pt, eta, phi, dcaxyTrk, dcazTrk, eop, energyIso, momIso;
156+ float pt, eta, phi, dcaxyTrk, dcazTrk, eop, energyIso, momIso, dedxTrk, m02Emc ;
155157 int ntrackIso, nclusterTPC, nclusterITS;
156- HfElectronCandidate (float ptr, float e, float ph, float dcaxy, float dcaz, float ep, float eiso, float piso, int ntrkiso, int nclstpc, int nclsits)
157- : pt(ptr), eta(e), phi(ph), dcaxyTrk(dcaxy), dcazTrk(dcaz), eop(ep), energyIso(eiso), momIso(piso), ntrackIso(ntrkiso), nclusterTPC(nclstpc), nclusterITS(nclsits) {}
158+ HfElectronCandidate (float ptr, float e, float ph, float dcaxy, float dcaz, float ep, float eiso, float piso, float dedx, float m02, int ntrkiso, int nclstpc, int nclsits)
159+ : pt(ptr), eta(e), phi(ph), dcaxyTrk(dcaxy), dcazTrk(dcaz), eop(ep), energyIso(eiso), momIso(piso), dedxTrk(dedx), m02Emc(m02), ntrackIso(ntrkiso), nclusterTPC(nclstpc), nclusterITS(nclsits) {}
158160 };
159161 std::vector<HfElectronCandidate> selectedElectronsIso;
160162 std::vector<HfElectronCandidate> selectedPositronsIso;
@@ -196,20 +198,13 @@ struct HfTaskElectronWeakBoson {
196198 ConfigurableAxis confaxisPtZneg{" confaxisPtZneg" , {60 , 20 , 80 }, " p_{T,neg} (GeV/c)" };
197199 ConfigurableAxis confaxisPtZpos{" confaxisPtZpos" , {60 , 20 , 80 }, " p_{T,pos} (GeV/c)" };
198200 ConfigurableAxis confaxisEop{" confaxisEop" , {300 , -0.01 , 1.49 }, " E/p" };
199- ConfigurableAxis confaxisEopZneg{" confaxisEopZneg" , {300 , -0.01 , 1.49 }, " E/p_{neg}" };
200- ConfigurableAxis confaxisEopZpos{" confaxisEopZpos" , {300 , -0.01 , 1.49 }, " E/p_{pos}" };
201201 ConfigurableAxis confaxisIsoEnergy{" confaxisIsoEnergy" , {255 , 0 , 2.0 }, " E_{iso}" };
202- ConfigurableAxis confaxisIsoEnergyZneg{" confaxisIsoEnergyZneg" , {255 , 0 , 2.0 }, " E_{iso,neg}" };
203- ConfigurableAxis confaxisIsoEnergyZpos{" confaxisIsoEnergyZpos" , {255 , 0 , 2.0 }, " E_{iso,pos}" };
204- ConfigurableAxis confaxisIsoMomentum{" confaxisIsoMomentum" , {255 , 0 , 2.0 }, " E_{iso}" };
205- ConfigurableAxis confaxisIsoMomentumZneg{" confaxisIsoMomentumZneg" , {255 , 0 , 1.5 }, " E_{iso,neg}" };
206- ConfigurableAxis confaxisIsoMomentumZpos{" confaxisIsoMomentumZpos" , {255 , 0 , 1.5 }, " E_{iso,pos}" };
202+ ConfigurableAxis confaxisIsoMomentum{" confaxisIsoMomentum" , {255 , 0 , 2.0 }, " p_{iso}" };
207203 ConfigurableAxis confaxisIsoTrack{" confaxisIsoTrack" , {25 , -0.5 , 24.5 }, " Isolation Track" };
208- ConfigurableAxis confaxisIsoTrackZneg{" confaxisIsoTrackZneg" , {25 , -0.5 , 24.5 }, " N_{isotrk,neg}" };
209- ConfigurableAxis confaxisIsoTrackZpos{" confaxisIsoTrackZpos" , {25 , -0.5 , 24.5 }, " N_{isotrk,pos}" };
210204 ConfigurableAxis confaxisInvMassZgamma{" confaxisInvMassZgamma" , {150 , 0 , 150 }, " M_{ee} (GeV/c^{2})" };
211205 ConfigurableAxis confaxisInvMassZ{" confaxisInvMassZ" , {130 , 20 , 150 }, " M_{ee} (GeV/c^{2})" };
212206 ConfigurableAxis confaxisZfrag{" confaxisZfrag" , {200 , 0 , 2.0 }, " p_{T,h}/p_{T,Z}" };
207+ ConfigurableAxis confaxisDEtaZh{" confaxisDEtaZh" , {200 , -4.0 , 4.0 }, " #Delta#eta" };
213208 ConfigurableAxis confaxisMultPV{" confaxisMultPV" , {200 , 0 , 200.0 }, " multiplicity" };
214209 ConfigurableAxis confaxisMultFT0{" confaxisMultFT0" , {1000 , 0 , 1000.0 }, " multiplicity" };
215210
@@ -262,9 +257,13 @@ struct HfTaskElectronWeakBoson {
262257 const AxisSpec axisSectorTPCneg{360 , 0 , 18 , " TPCsector_{neg}" };
263258 const AxisSpec axisSectorTPCpos{360 , 0 , 18 , " TPCsector_{pos}" };
264259 const AxisSpec axisNsigma{100 , -5 , 5 , " N#sigma" };
260+ const AxisSpec axisNsigmaZneg{100 , -5 , 5 , " N#sigma_{pos}" };
261+ const AxisSpec axisNsigmaZpos{100 , -5 , 5 , " N#sigma_{neg}" };
265262 const AxisSpec axisDedx{150 , 0 , 150 , " dEdx" };
266263 const AxisSpec axisE{nBinsE, 0 , binEmax, " Energy" };
267264 const AxisSpec axisM02{100 , 0 , 1 , " M02" };
265+ const AxisSpec axisM02neg{100 , 0 , 1 , " M02(neg)" };
266+ const AxisSpec axisM02pos{100 , 0 , 1 , " M02(pos)" };
268267 const AxisSpec axisdPhi{100 , -0.5 , 0.5 , " dPhi" };
269268 const AxisSpec axisdEta{100 , -0.5 , 0.5 , " dEta" };
270269 const AxisSpec axisdR{20 , 0.0 , 0.2 , " dR" };
@@ -276,26 +275,27 @@ struct HfTaskElectronWeakBoson {
276275 const AxisSpec axisEMCtime{100 , -50.0 , 50 , " EMC time" };
277276 const AxisSpec axisTrigger{3 , -0.5 , 2.5 , " Trigger status of zorro" };
278277 const AxisSpec axisDPhiZh{64 , -o2::constants::math::PIHalf, 3 * o2::constants::math::PIHalf, " #Delta#phi(Z-h)" };
278+ const AxisSpec axisDEtaZh{confaxisDEtaZh, " #Delta#Eta(Z-h)" };
279279 const AxisSpec axisPtHadron{nBinsPt, 0 , binPtmax, " p_{T,hadron} (GeV/c)" };
280280 const AxisSpec axisPtZ{nBinsPt, 0 , binPtmax, " p_{T,Z} (GeV/c)" };
281281 const AxisSpec axisSign{2 , -2 , 2 , " charge sign" };
282282 const AxisSpec axisCentrality{centralityBins, " centrality" };
283283 const AxisSpec axisEop{confaxisEop, " E/p" };
284- const AxisSpec axisEopZneg{confaxisEopZneg , " E/p_{neg}" };
285- const AxisSpec axisEopZpos{confaxisEopZpos , " E/p_{[pos}" };
284+ const AxisSpec axisEopZneg{confaxisEop , " E/p_{neg}" };
285+ const AxisSpec axisEopZpos{confaxisEop , " E/p_{[pos}" };
286286 const AxisSpec axisPt{confaxisPt, " p_{T}" };
287287 const AxisSpec axisPtZee{confaxisPtZee, " p_{T}" };
288288 const AxisSpec axisPtZneg{confaxisPtZneg, " p_{T,neg} (GeV/c)" };
289289 const AxisSpec axisPtZpos{confaxisPtZpos, " p_{T,pos} (GeV/c)" };
290290 const AxisSpec axisIsoEnergy{confaxisIsoEnergy, " E_{iso}" };
291- const AxisSpec axisIsoEnergyZneg{confaxisIsoEnergyZneg , " E_{iso} " };
292- const AxisSpec axisIsoEnergyZpos{confaxisIsoEnergyZpos , " E_{iso} " };
293- const AxisSpec axisIsoMomentum{confaxisIsoMomentum, " Isolation momentum (GeV/C)" };
294- const AxisSpec axisIsoMomentumZneg{confaxisIsoMomentumZneg , " Isolation momentum (GeV/C)" };
295- const AxisSpec axisIsoMomentumZpos{confaxisIsoMomentumZpos , " Isolation momentum (GeV/C)" };
291+ const AxisSpec axisIsoEnergyZneg{confaxisIsoEnergy , " E_{iso, neg} (GeV) " };
292+ const AxisSpec axisIsoEnergyZpos{confaxisIsoEnergy , " E_{iso, pos} (GeV) " };
293+ const AxisSpec axisIsoMomentum{confaxisIsoMomentum, " p_{iso} (GeV/C)" };
294+ const AxisSpec axisIsoMomentumZneg{confaxisIsoMomentum , " p_{iso, neg} (GeV/C)" };
295+ const AxisSpec axisIsoMomentumZpos{confaxisIsoMomentum , " p_{iso, pos} (GeV/C)" };
296296 const AxisSpec axisIsoTrack{confaxisIsoTrack, " Isolation Track" };
297- const AxisSpec axisIsoTrackZneg{confaxisIsoTrackZneg , " N_{isotrk,neg}" };
298- const AxisSpec axisIsoTrackZpos{confaxisIsoTrackZpos , " N_{isotrk,pos}" };
297+ const AxisSpec axisIsoTrackZneg{confaxisIsoTrack , " N_{isotrk,neg}" };
298+ const AxisSpec axisIsoTrackZpos{confaxisIsoTrack , " N_{isotrk,pos}" };
299299 const AxisSpec axisInvMassZgamma{confaxisInvMassZgamma, " M_{ee} (GeV/c^{2})" };
300300 const AxisSpec axisInvMassZ{confaxisInvMassZ, " M_{ee} (GeV/c^{2})" };
301301 const AxisSpec axisZfrag{confaxisZfrag, " p_{T,h}/p_{T,Z}" };
@@ -333,13 +333,15 @@ struct HfTaskElectronWeakBoson {
333333 registry.add (" hIsolationEnergy" , " Isolation Energy" , kTH2F , {{axisE}, {axisIsoEnergy}});
334334 registry.add (" hInvMassZee" , " invariant mass for Z ULS pair" , HistType::kTHnSparseF , {axisCentrality, axisSign, axisPt, axisInvMassZgamma});
335335 registry.add (" hKfInvMassZee" , " invariant mass for Z ULS pair KFp" , HistType::kTHnSparseF , {axisCentrality, axisSign, axisPt, axisInvMassZgamma});
336- 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});
337- registry.add (" hInvMassZeeQAbg" , " 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});
336+ registry.add (" hInvMassZeeTrkQA" , " Track 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});
337+ registry.add (" hInvMassZeeTrkQAbg" , " Track 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});
338+ registry.add (" hInvMassZeeEmcQA" , " EMCal QA for invariant mass for Z" , HistType::kTHnSparseF , {axisInvMassZ, axisPtZneg, axisPtZpos, axisEopZneg, axisEopZpos, axisM02neg, axisM02pos, axisNsigmaZneg, axisNsigmaZpos, axisIsoEnergyZneg, axisIsoEnergyZpos, axisIsoMomentumZneg, axisIsoMomentumZpos, axisIsoTrackZneg, axisIsoTrackZpos});
339+ registry.add (" hInvMassZeeEmcQAbg" , " EMCal QA for invariant mass for Z" , HistType::kTHnSparseF , {axisInvMassZ, axisPtZneg, axisPtZpos, axisEopZneg, axisEopZpos, axisM02neg, axisM02pos, axisNsigmaZneg, axisNsigmaZpos, axisIsoEnergyZneg, axisIsoEnergyZpos, axisIsoMomentumZneg, axisIsoMomentumZpos, axisIsoTrackZneg, axisIsoTrackZpos});
338340 registry.add (" hTHnElectrons" , " electron info" , HistType::kTHnSparseF , {axisPt, axisNsigma, axisM02, axisEop, axisIsoEnergy, axisIsoMomentum, axisIsoTrack, axisEta, axisDedx});
339341 registry.add (" hTHnTrMatch" , " Track EMC Match" , HistType::kTHnSparseF , {axisPt, axisdPhi, axisdEta});
340342
341343 // Z-hadron correlation histograms
342- registry.add (" hZHadronDphi" , " Z-hadron #Delta#phi correlation" , HistType::kTHnSparseF , {axisCentrality, axisSign, axisPtZ, axisDPhiZh, axisZfrag, axisPtHadron});
344+ registry.add (" hZHadronDphi" , " Z-hadron #Delta#phi correlation" , HistType::kTHnSparseF , {axisCentrality, axisSign, axisPtZ, axisDPhiZh, axisDEtaZh, axisZfrag, axisPtHadron});
343345 registry.add (" hZptSpectrum" , " Z boson p_{T} spectrum" , kTH2F , {{axisSign}, {axisPtZ}});
344346
345347 // hisotgram for EMCal trigger
@@ -356,7 +358,7 @@ struct HfTaskElectronWeakBoson {
356358 float energyUE)
357359 {
358360 double energySum = 0.0 ;
359- double energySum_excl = 0.0 ;
361+ double energySumExcl = 0.0 ;
360362 double isoEnergy = 10.0 ;
361363 double const etaAssCluster = cluster.eta ();
362364 double const phiAssCluster = cluster.phi ();
@@ -377,9 +379,9 @@ struct HfTaskElectronWeakBoson {
377379 energySum += associateCluster.energy ();
378380 }
379381 }
380- energySum_excl = energySum - cluster.energy ();
382+ energySumExcl = energySum - cluster.energy ();
381383 if (energySum > 0 ) {
382- isoEnergy = (energySum_excl - energyUE) / cluster.energy ();
384+ isoEnergy = (energySumExcl - energyUE) / cluster.energy ();
383385 }
384386
385387 // LOG(info) <<"clustE = " << cluster.energy() << " ; energySum = " << energySum << " ; nclust in Cone = " << nclustSum - 1 << " ; UE = " << energyUE << " ; isoEnergy = " << isoEnergy;
@@ -671,6 +673,7 @@ struct HfTaskElectronWeakBoson {
671673 registry.fill (HIST (" hTPCNsigma" ), track.p (), track.tpcNSigmaEl ());
672674
673675 float eop = -0.01 ;
676+ float m02 = -0.01 ;
674677 float isoEnergy = 99.0 ;
675678 // track isolation
676679 auto [trackCount, isoMomentum] = getIsolatedTrack (track.eta (), track.phi (), track.p (), tracks);
@@ -686,6 +689,8 @@ struct HfTaskElectronWeakBoson {
686689 eop,
687690 isoEnergy,
688691 isoMomentum,
692+ track.tpcNSigmaEl (),
693+ m02,
689694 trackCount,
690695 track.tpcNClsCrossedRows (),
691696 track.itsNCls ());
@@ -758,6 +763,7 @@ struct HfTaskElectronWeakBoson {
758763 const auto & cluster = match.emcalcluster_as <SelectedClusters>();
759764
760765 eop = energyEmc / match.track_as <TrackEle>().p ();
766+ m02 = m02Emc;
761767 // LOG(info) << "eop = " << eop;
762768
763769 isoEnergy = getIsolatedCluster (cluster, emcClusters, energyUE);
@@ -807,7 +813,7 @@ struct HfTaskElectronWeakBoson {
807813 // LOG(info) << "R mim = " << rMin;
808814 registry.fill (HIST (" hTrMatch_mim" ), dPhiMin, dEtaMin);
809815 }
810- if (enableZeeRecoQA && track.pt () > ptZeeMin) {
816+ if ((enableZeeTrkRecoQA || enableZeeEmcRecoQA) && track.pt () > ptZeeMin) {
811817 if (track.sign () < 0 ) {
812818 selectedElectronsIso.emplace_back (
813819 track.pt (),
@@ -818,6 +824,8 @@ struct HfTaskElectronWeakBoson {
818824 eop,
819825 isoEnergy,
820826 isoMomentum,
827+ track.tpcNSigmaEl (),
828+ m02,
821829 trackCount,
822830 track.tpcNClsFound (),
823831 track.itsNCls ());
@@ -831,6 +839,8 @@ struct HfTaskElectronWeakBoson {
831839 eop,
832840 isoEnergy,
833841 isoMomentum,
842+ track.tpcNSigmaEl (),
843+ m02,
834844 trackCount,
835845 track.tpcNClsFound (),
836846 track.itsNCls ());
@@ -856,12 +866,13 @@ struct HfTaskElectronWeakBoson {
856866 // calculate Z-h correlation
857867 double const deltaPhi = RecoDecay::constrainAngle (trackAss.phi - zBoson.phi , -o2::constants::math::PIHalf);
858868 double const ptRatio = trackAss.pt / zBoson.pt ;
859- registry.fill (HIST (" hZHadronDphi" ), centrality, zBoson.charge , zBoson.pt , deltaPhi, ptRatio, trackAss.pt );
869+ double const deltaEta = zBoson.eta - trackAss.eta ;
870+ registry.fill (HIST (" hZHadronDphi" ), centrality, zBoson.charge , zBoson.pt , deltaPhi, deltaEta, ptRatio, trackAss.pt );
860871 }
861872 }
862873 } // end of Z-hadron correlation
863874 // Z->ee QA
864- if (enableZeeRecoQA ) {
875+ if (enableZeeTrkRecoQA || enableZeeEmcRecoQA ) {
865876 if (!selectedElectronsIso.empty () && !selectedPositronsIso.empty ()) {
866877 // signal
867878 for (const auto & trackEle : selectedElectronsIso) {
@@ -872,7 +883,12 @@ struct HfTaskElectronWeakBoson {
872883 double const invMass = RecoDecay::m (std::array{child1, child2}, std::array{o2::constants::physics::MassElectron, o2::constants::physics::MassElectron});
873884 float const sectorpos = trackPos.phi / o2::constants::math::SectorSpanRad;
874885 if (invMass > massZMinQA) {
875- 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 );
886+ if (enableZeeTrkRecoQA) {
887+ registry.fill (HIST (" hInvMassZeeTrkQA" ), 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 );
888+ }
889+ if (enableZeeEmcRecoQA) {
890+ registry.fill (HIST (" hInvMassZeeEmcQA" ), invMass, trackEle.pt , trackPos.pt , trackEle.eop , trackPos.eop , trackEle.m02Emc , trackPos.m02Emc , trackEle.dedxTrk , trackPos.dedxTrk , trackEle.energyIso , trackPos.energyIso , trackEle.momIso , trackPos.momIso , trackEle.ntrackIso , trackPos.ntrackIso );
891+ }
876892 }
877893 }
878894 }
@@ -887,7 +903,12 @@ struct HfTaskElectronWeakBoson {
887903 float const sectorpos = trackEle2.phi / o2::constants::math::SectorSpanRad;
888904 double const invMass = RecoDecay::m (std::array{child1, child2}, std::array{o2::constants::physics::MassElectron, o2::constants::physics::MassElectron});
889905 if (invMass > massZMinQA) {
890- registry.fill (HIST (" hInvMassZeeQAbg" ), invMass, trackEle.pt , trackEle2.pt , trackEle.dcaxyTrk , trackEle2.dcaxyTrk , trackEle2.dcazTrk , trackEle.nclusterTPC , trackEle2.nclusterTPC , trackEle.nclusterITS , trackEle2.nclusterITS , sectorneg, sectorpos, trackEle.eop , trackEle2.eop , trackEle.energyIso , trackEle2.energyIso , trackEle.momIso , trackEle2.momIso , trackEle.ntrackIso , trackEle2.ntrackIso );
906+ if (enableZeeTrkRecoQA) {
907+ registry.fill (HIST (" hInvMassZeeTrkQAbg" ), invMass, trackEle.pt , trackEle2.pt , trackEle.dcaxyTrk , trackEle2.dcaxyTrk , trackEle2.dcazTrk , trackEle.nclusterTPC , trackEle2.nclusterTPC , trackEle.nclusterITS , trackEle2.nclusterITS , sectorneg, sectorpos, trackEle.eop , trackEle2.eop , trackEle.energyIso , trackEle2.energyIso , trackEle.momIso , trackEle2.momIso , trackEle.ntrackIso , trackEle2.ntrackIso );
908+ }
909+ if (enableZeeEmcRecoQA) {
910+ registry.fill (HIST (" hInvMassZeeEmcQAbg" ), invMass, trackEle.pt , trackEle2.pt , trackEle.eop , trackEle2.eop , trackEle.m02Emc , trackEle2.m02Emc , trackEle.dedxTrk , trackEle2.dedxTrk , trackEle.energyIso , trackEle2.energyIso , trackEle.momIso , trackEle2.momIso , trackEle.ntrackIso , trackEle2.ntrackIso );
911+ }
891912 }
892913 }
893914 }
@@ -902,10 +923,15 @@ struct HfTaskElectronWeakBoson {
902923 float const sectorpos = trackPos2.phi / o2::constants::math::SectorSpanRad;
903924 double const invMass = RecoDecay::m (std::array{child1, child2}, std::array{o2::constants::physics::MassElectron, o2::constants::physics::MassElectron});
904925 if (invMass > massZMinQA) {
905- registry.fill (HIST (" hInvMassZeeQAbg" ), invMass, trackPos.pt , trackPos2.pt , trackPos.dcaxyTrk , trackPos2.dcaxyTrk , trackPos2.dcazTrk , trackPos.nclusterTPC , trackPos2.nclusterTPC , trackPos.nclusterITS , trackPos2.nclusterITS , sectorneg, sectorpos, trackPos.eop , trackPos2.eop , trackPos.energyIso , trackPos2.energyIso , trackPos.momIso , trackPos2.momIso , trackPos.ntrackIso , trackPos2.ntrackIso );
926+ if (enableZeeTrkRecoQA) {
927+ registry.fill (HIST (" hInvMassZeeTrkQAbg" ), invMass, trackPos.pt , trackPos2.pt , trackPos.dcaxyTrk , trackPos2.dcaxyTrk , trackPos2.dcazTrk , trackPos.nclusterTPC , trackPos2.nclusterTPC , trackPos.nclusterITS , trackPos2.nclusterITS , sectorneg, sectorpos, trackPos.eop , trackPos2.eop , trackPos.energyIso , trackPos2.energyIso , trackPos.momIso , trackPos2.momIso , trackPos.ntrackIso , trackPos2.ntrackIso );
928+ }
929+ if (enableZeeEmcRecoQA) {
930+ registry.fill (HIST (" hInvMassZeeEmcQAbg" ), invMass, trackPos.pt , trackPos2.pt , trackPos.eop , trackPos2.eop , trackPos.m02Emc , trackPos2.m02Emc , trackPos.dedxTrk , trackPos2.dedxTrk , trackPos.energyIso , trackPos2.energyIso , trackPos.momIso , trackPos2.momIso , trackPos.ntrackIso , trackPos2.ntrackIso );
931+ }
906932 }
907933 }
908- }
934+ } // end of pos-pos paring
909935 } // check arrays aren't empty
910936 } // end of Z->ee QA
911937 } // process
0 commit comments