@@ -162,6 +162,7 @@ struct DetectorOccupancyQaTask {
162162 AxisSpec axisNtracks{nBinsTracks, -0.5 , nMaxTracks - 0.5 , " n tracks" };
163163 AxisSpec axisNtracksGlobal{nMaxGlobalTracks, -0.5 , nMaxGlobalTracks - 0.5 , " n tracks" };
164164 AxisSpec axisMultFw{nBinsMultFwd, 0 ., static_cast <float >(nMaxMultFwd), " mult Fwd" };
165+ AxisSpec axisOccupancy{60 , 0 ., 15000 , " occupancy (n ITS tracks weighted)" };
165166
166167 histos.add (" nTracksPV_vs_V0A_kNoHighOccupancyAgressive" , " nTracksPV_vs_V0A_kNoHighOccupancyAgressive" , kTH2F , {axisMultFw, axisNtracks});
167168 histos.add (" nTracksPV_vs_V0A_kNoHighOccupancyStrict" , " nTracksPV_vs_V0A_kNoHighOccupancyStrict" , kTH2F , {axisMultFw, axisNtracks});
@@ -200,6 +201,29 @@ struct DetectorOccupancyQaTask {
200201 histos.add (" nTracksGlobal_vs_V0A_occup_Minus1" , " nTracksGlobal_vs_V0A_occup_Minus1" , kTH2F , {axisMultFw, axisNtracksGlobal});
201202 histos.add (" nTracksGlobal_vs_V0A_AntiNoCollInTimeRangeStandard" , " nTracksGlobal_vs_V0A_AntiNoCollInTimeRangeStandard" , kTH2F , {axisMultFw, axisNtracksGlobal});
202203 histos.add (" nTracksGlobal_vs_V0A_AntiNoCollInTimeRangeNarrow" , " nTracksGlobal_vs_V0A_AntiNoCollInTimeRangeNarrow" , kTH2F , {axisMultFw, axisNtracksGlobal});
204+
205+ histos.add (" nTracksGlobal_vs_nPV_kNoHighOccupancyAgressive" , " nTracksGlobal_vs_nPV_kNoHighOccupancyAgressive" , kTH2F , {axisNtracks, axisNtracksGlobal});
206+ histos.add (" nTracksGlobal_vs_nPV_kNoHighOccupancyStrict" , " nTracksGlobal_vs_nPV_kNoHighOccupancyStrict" , kTH2F , {axisNtracks, axisNtracksGlobal});
207+ histos.add (" nTracksGlobal_vs_nPV_kNoHighOccupancyMedium" , " nTracksGlobal_vs_nPV_kNoHighOccupancyMedium" , kTH2F , {axisNtracks, axisNtracksGlobal});
208+ histos.add (" nTracksGlobal_vs_nPV_kNoHighOccupancyRelaxed" , " nTracksGlobal_vs_nPV_kNoHighOccupancyRelaxed" , kTH2F , {axisNtracks, axisNtracksGlobal});
209+ histos.add (" nTracksGlobal_vs_nPV_kNoHighOccupancyGentle" , " nTracksGlobal_vs_nPV_kNoHighOccupancyGentle" , kTH2F , {axisNtracks, axisNtracksGlobal});
210+ histos.add (" nTracksGlobal_vs_nPV_kNoCollInTimeRangeStandard" , " nTracksGlobal_vs_nPV_kNoCollInTimeRangeStandard" , kTH2F , {axisNtracks, axisNtracksGlobal});
211+ histos.add (" nTracksGlobal_vs_nPV_kNoCollInTimeRangeNarrow" , " nTracksGlobal_vs_nPV_kNoCollInTimeRangeNarrow" , kTH2F , {axisNtracks, axisNtracksGlobal});
212+ histos.add (" nTracksGlobal_vs_nPV_occup_0_250" , " nTracksGlobal_vs_nPV_occup_0_250" , kTH2F , {axisNtracks, axisNtracksGlobal});
213+ histos.add (" nTracksGlobal_vs_nPV_occup_0_500" , " nTracksGlobal_vs_nPV_occup_0_500" , kTH2F , {axisNtracks, axisNtracksGlobal});
214+ histos.add (" nTracksGlobal_vs_nPV_occup_0_750" , " nTracksGlobal_vs_nPV_occup_0_750" , kTH2F , {axisNtracks, axisNtracksGlobal});
215+ histos.add (" nTracksGlobal_vs_nPV_occup_0_500_kNoCollInTimeRangeStandard" , " nTracksGlobal_vs_nPV_occup_0_500_kNoCollInTimeRangeStandard" , kTH2F , {axisNtracks, axisNtracksGlobal});
216+ histos.add (" nTracksGlobal_vs_nPV_occup_0_500_kNoCollInTimeRangeNarrow" , " nTracksGlobal_vs_nPV_occup_0_500_kNoCollInTimeRangeNarrow" , kTH2F , {axisNtracks, axisNtracksGlobal});
217+ histos.add (" nTracksGlobal_vs_nPV_noOccupSel" , " nTracksGlobal_vs_nPV_noOccupSel" , kTH2F , {axisNtracks, axisNtracksGlobal});
218+ histos.add (" nTracksGlobal_vs_nPV_occup_0_500_kNoCollInTimeRangeStandard_extraCuts" , " nTracksGlobal_vs_nPV_occup_0_500_kNoCollInTimeRangeStandard_extraCuts" , kTH2F , {axisNtracks, axisNtracksGlobal});
219+ histos.add (" nTracksGlobal_vs_nPV_occup_ABOVE_750" , " nTracksGlobal_vs_nPV_occup_ABOVE_750" , kTH2F , {axisNtracks, axisNtracksGlobal});
220+ histos.add (" nTracksGlobal_vs_nPV_occup_Minus1" , " nTracksGlobal_vs_nPV_occup_Minus1" , kTH2F , {axisNtracks, axisNtracksGlobal});
221+ histos.add (" nTracksGlobal_vs_nPV_AntiNoCollInTimeRangeStandard" , " nTracksGlobal_vs_nPV_AntiNoCollInTimeRangeStandard" , kTH2F , {axisNtracks, axisNtracksGlobal});
222+ histos.add (" nTracksGlobal_vs_nPV_AntiNoCollInTimeRangeNarrow" , " nTracksGlobal_vs_nPV_AntiNoCollInTimeRangeNarrow" , kTH2F , {axisNtracks, axisNtracksGlobal});
223+
224+ histos.add (" nTracksGlobal_vs_nPV_vs_occup_pure" , " nTracksGlobal_vs_nPV_vs_occup_pure" , kTH3F , {axisNtracks, axisNtracksGlobal, axisOccupancy});
225+ histos.add (" nTracksGlobal_vs_nPV_vs_occup_kNoCollInTimeRangeStandard" , " nTracksGlobal_vs_nPV_vs_occup_kNoCollInTimeRangeStandard" , kTH3F , {axisNtracks, axisNtracksGlobal, axisOccupancy});
226+ histos.add (" nTracksGlobal_vs_nPV_vs_occup_kNoCollInTimeRangeNarrow" , " nTracksGlobal_vs_nPV_vs_occup_kNoCollInTimeRangeNarrow" , kTH3F , {axisNtracks, axisNtracksGlobal, axisOccupancy});
203227 }
204228 }
205229
@@ -565,76 +589,101 @@ struct DetectorOccupancyQaTask {
565589 // nPV tracks vs fwd amplitude
566590 histos.fill (HIST (" nTracksPV_vs_V0A_noOccupSel" ), multV0A, nPV);
567591 histos.fill (HIST (" nTracksGlobal_vs_V0A_noOccupSel" ), multV0A, nGlobalTracks);
592+ histos.fill (HIST (" nTracksGlobal_vs_nPV_noOccupSel" ), nPV, nGlobalTracks);
593+
594+ if (occupancy >= 0 )
595+ histos.fill (HIST (" nTracksGlobal_vs_nPV_vs_occup_pure" ), nPV, nGlobalTracks, occupancy);
568596
569597 if (col.selection_bit (o2::aod::evsel::kNoHighOccupancyAgressive )) {
570598 histos.fill (HIST (" nTracksPV_vs_V0A_kNoHighOccupancyAgressive" ), multV0A, nPV);
571599 histos.fill (HIST (" nTracksGlobal_vs_V0A_kNoHighOccupancyAgressive" ), multV0A, nGlobalTracks);
600+ histos.fill (HIST (" nTracksGlobal_vs_nPV_kNoHighOccupancyAgressive" ), nPV, nGlobalTracks);
572601 }
573602 if (col.selection_bit (o2::aod::evsel::kNoHighOccupancyStrict )) {
574603 histos.fill (HIST (" nTracksPV_vs_V0A_kNoHighOccupancyStrict" ), multV0A, nPV);
575604 histos.fill (HIST (" nTracksGlobal_vs_V0A_kNoHighOccupancyStrict" ), multV0A, nGlobalTracks);
605+ histos.fill (HIST (" nTracksGlobal_vs_nPV_kNoHighOccupancyStrict" ), nPV, nGlobalTracks);
576606 }
577607 if (col.selection_bit (o2::aod::evsel::kNoHighOccupancyMedium )) {
578608 histos.fill (HIST (" nTracksPV_vs_V0A_kNoHighOccupancyMedium" ), multV0A, nPV);
579609 histos.fill (HIST (" nTracksGlobal_vs_V0A_kNoHighOccupancyMedium" ), multV0A, nGlobalTracks);
610+ histos.fill (HIST (" nTracksGlobal_vs_nPV_kNoHighOccupancyMedium" ), nPV, nGlobalTracks);
580611 }
581612 if (col.selection_bit (o2::aod::evsel::kNoHighOccupancyRelaxed )) {
582613 histos.fill (HIST (" nTracksPV_vs_V0A_kNoHighOccupancyRelaxed" ), multV0A, nPV);
583614 histos.fill (HIST (" nTracksGlobal_vs_V0A_kNoHighOccupancyRelaxed" ), multV0A, nGlobalTracks);
615+ histos.fill (HIST (" nTracksGlobal_vs_nPV_kNoHighOccupancyRelaxed" ), nPV, nGlobalTracks);
584616 }
585617 if (col.selection_bit (o2::aod::evsel::kNoHighOccupancyGentle )) {
586618 histos.fill (HIST (" nTracksPV_vs_V0A_kNoHighOccupancyGentle" ), multV0A, nPV);
587619 histos.fill (HIST (" nTracksGlobal_vs_V0A_kNoHighOccupancyGentle" ), multV0A, nGlobalTracks);
620+ histos.fill (HIST (" nTracksGlobal_vs_nPV_kNoHighOccupancyGentle" ), nPV, nGlobalTracks);
588621 }
589622 if (col.selection_bit (o2::aod::evsel::kNoCollInTimeRangeStandard )) {
590623 histos.fill (HIST (" nTracksPV_vs_V0A_kNoCollInTimeRangeStandard" ), multV0A, nPV);
591624 histos.fill (HIST (" nTracksGlobal_vs_V0A_kNoCollInTimeRangeStandard" ), multV0A, nGlobalTracks);
625+ histos.fill (HIST (" nTracksGlobal_vs_nPV_kNoCollInTimeRangeStandard" ), nPV, nGlobalTracks);
626+ if (occupancy >= 0 )
627+ histos.fill (HIST (" nTracksGlobal_vs_nPV_vs_occup_kNoCollInTimeRangeStandard" ), nPV, nGlobalTracks, occupancy);
592628 }
593629 if (col.selection_bit (o2::aod::evsel::kNoCollInTimeRangeNarrow )) {
594630 histos.fill (HIST (" nTracksPV_vs_V0A_kNoCollInTimeRangeNarrow" ), multV0A, nPV);
595631 histos.fill (HIST (" nTracksGlobal_vs_V0A_kNoCollInTimeRangeNarrow" ), multV0A, nGlobalTracks);
632+ histos.fill (HIST (" nTracksGlobal_vs_nPV_kNoCollInTimeRangeNarrow" ), nPV, nGlobalTracks);
633+ if (occupancy >= 0 )
634+ histos.fill (HIST (" nTracksGlobal_vs_nPV_vs_occup_kNoCollInTimeRangeNarrow" ), nPV, nGlobalTracks, occupancy);
596635 }
597636 if (occupancy >= 0 && occupancy < 250 ) {
598637 histos.fill (HIST (" nTracksPV_vs_V0A_occup_0_250" ), multV0A, nPV);
599638 histos.fill (HIST (" nTracksGlobal_vs_V0A_occup_0_250" ), multV0A, nGlobalTracks);
639+ histos.fill (HIST (" nTracksGlobal_vs_nPV_occup_0_250" ), nPV, nGlobalTracks);
600640 }
601641 if (occupancy >= 0 && occupancy < 500 ) {
602642 histos.fill (HIST (" nTracksPV_vs_V0A_occup_0_500" ), multV0A, nPV);
603643 histos.fill (HIST (" nTracksGlobal_vs_V0A_occup_0_500" ), multV0A, nGlobalTracks);
644+ histos.fill (HIST (" nTracksGlobal_vs_nPV_occup_0_500" ), nPV, nGlobalTracks);
604645 }
605646 if (occupancy >= 0 && occupancy < 750 ) {
606647 histos.fill (HIST (" nTracksPV_vs_V0A_occup_0_750" ), multV0A, nPV);
607648 histos.fill (HIST (" nTracksGlobal_vs_V0A_occup_0_750" ), multV0A, nGlobalTracks);
649+ histos.fill (HIST (" nTracksGlobal_vs_nPV_occup_0_750" ), nPV, nGlobalTracks);
608650 }
609651 if (occupancy >= 0 && occupancy < 500 && col.selection_bit (o2::aod::evsel::kNoCollInTimeRangeStandard )) {
610652 histos.fill (HIST (" nTracksPV_vs_V0A_occup_0_500_kNoCollInTimeRangeStandard" ), multV0A, nPV);
611653 histos.fill (HIST (" nTracksGlobal_vs_V0A_occup_0_500_kNoCollInTimeRangeStandard" ), multV0A, nGlobalTracks);
654+ histos.fill (HIST (" nTracksGlobal_vs_nPV_occup_0_500_kNoCollInTimeRangeStandard" ), nPV, nGlobalTracks);
612655 }
613656 if (occupancy >= 0 && occupancy < 500 && col.selection_bit (o2::aod::evsel::kNoCollInTimeRangeNarrow )) {
614657 histos.fill (HIST (" nTracksPV_vs_V0A_occup_0_500_kNoCollInTimeRangeNarrow" ), multV0A, nPV);
615658 histos.fill (HIST (" nTracksGlobal_vs_V0A_occup_0_500_kNoCollInTimeRangeNarrow" ), multV0A, nGlobalTracks);
659+ histos.fill (HIST (" nTracksGlobal_vs_nPV_occup_0_500_kNoCollInTimeRangeNarrow" ), nPV, nGlobalTracks);
616660 }
617661 if (occupancy >= 0 && occupancy < 500 && col.selection_bit (o2::aod::evsel::kNoCollInTimeRangeStandard ) && col.selection_bit (kNoSameBunchPileup ) && col.selection_bit (kIsGoodZvtxFT0vsPV )) {
618662 histos.fill (HIST (" nTracksPV_vs_V0A_occup_0_500_kNoCollInTimeRangeStandard_extraCuts" ), multV0A, nPV);
619663 histos.fill (HIST (" nTracksGlobal_vs_V0A_occup_0_500_kNoCollInTimeRangeStandard_extraCuts" ), multV0A, nGlobalTracks);
664+ histos.fill (HIST (" nTracksGlobal_vs_nPV_occup_0_500_kNoCollInTimeRangeStandard_extraCuts" ), nPV, nGlobalTracks);
620665 }
621666
622667 // more checks
623668 if (occupancy >= 750 ) {
624669 histos.fill (HIST (" nTracksPV_vs_V0A_occup_ABOVE_750" ), multV0A, nPV);
625670 histos.fill (HIST (" nTracksGlobal_vs_V0A_occup_ABOVE_750" ), multV0A, nGlobalTracks);
671+ histos.fill (HIST (" nTracksGlobal_vs_nPV_occup_ABOVE_750" ), nPV, nGlobalTracks);
626672 }
627673 if (occupancy == -1 ) {
628674 histos.fill (HIST (" nTracksPV_vs_V0A_occup_Minus1" ), multV0A, nPV);
629675 histos.fill (HIST (" nTracksGlobal_vs_V0A_occup_Minus1" ), multV0A, nGlobalTracks);
676+ histos.fill (HIST (" nTracksGlobal_vs_nPV_occup_Minus1" ), nPV, nGlobalTracks);
630677 }
631678 if (!col.selection_bit (o2::aod::evsel::kNoCollInTimeRangeStandard )) {
632679 histos.fill (HIST (" nTracksPV_vs_V0A_AntiNoCollInTimeRangeStandard" ), multV0A, nPV);
633680 histos.fill (HIST (" nTracksGlobal_vs_V0A_AntiNoCollInTimeRangeStandard" ), multV0A, nGlobalTracks);
681+ histos.fill (HIST (" nTracksGlobal_vs_nPV_AntiNoCollInTimeRangeStandard" ), nPV, nGlobalTracks);
634682 }
635683 if (!col.selection_bit (o2::aod::evsel::kNoCollInTimeRangeNarrow )) {
636684 histos.fill (HIST (" nTracksPV_vs_V0A_AntiNoCollInTimeRangeNarrow" ), multV0A, nPV);
637685 histos.fill (HIST (" nTracksGlobal_vs_V0A_AntiNoCollInTimeRangeNarrow" ), multV0A, nGlobalTracks);
686+ histos.fill (HIST (" nTracksGlobal_vs_nPV_AntiNoCollInTimeRangeNarrow" ), nPV, nGlobalTracks);
638687 }
639688 }
640689 }
0 commit comments