@@ -65,6 +65,7 @@ struct DetectorOccupancyQaTask {
6565 Configurable<bool > confFlagUseNoHighMultCollInPrevRof{" FlagUseNoHighMultCollInPrevRof" , false , " Suppress high-multiplicity prev-ROF events for occupancy historams" }; // o2-linter: disable=name/configurable (temporary fix)
6666 Configurable<bool > confFlagCentralityIsAvailable{" FlagCentralityIsAvailable" , true , " Fill centrality-related historams" }; // o2-linter: disable=name/configurable (temporary fix)
6767 Configurable<bool > confFlagManyHeavyHistos{" FlagManyHeavyHistos" , true , " Fill more TH2, TH3, THn historams" }; // o2-linter: disable=name/configurable (temporary fix)
68+ Configurable<bool > confFlagIsTOFIsTRDdtStudy{" FlagIsTOFIsTRDdtStudy" , true , " Fill THn dt historams with isTOF and isTRD condition" }; // o2-linter: disable=name/configurable (temporary fix)
6869
6970 // configuration for small time binning
7071 Configurable<float > confTimeIntervalForSmallBins{" TimeIntervalForSmallBins" , 100 , " Time interval for TPC occupancy calculation in small bins, +/-, us" }; // o2-linter: disable=name/configurable (temporary fix)
@@ -328,6 +329,10 @@ struct DetectorOccupancyQaTask {
328329 histos.add (" occupancyInTimeBins_nITS567_vs_FT0thisCol_occupByFT0_kNoCollInTimeRangeNarrow" , " ;time bin (#mus);FT0C this collision, this collision;n ITS567cls tracks, this collision;sum FT0 in time window" , kTHnF , {axisTimeBins, {nBins3D, 0 , kMaxThisEv * 100000 }, {nBinsY, 0 , kMaxThisEv * 4000 }, {nBins3DoccupancyAxis, 0 , kMaxOccup * 100000 }});
329330 histos.add (" occupancyInTimeBins_nITS567_vs_FT0thisCol_occupByFT0_kNoCollInTimeRangeNarrow_NoCollInRofStrict" , " ;time bin (#mus);FT0C this collision, this collision;n ITS567cls tracks, this collision;sum FT0 in time window" , kTHnF , {axisTimeBins, {nBins3D, 0 , kMaxThisEv * 100000 }, {nBinsY, 0 , kMaxThisEv * 4000 }, {nBins3DoccupancyAxis, 0 , kMaxOccup * 100000 }});
330331 }
332+ if (confFlagIsTOFIsTRDdtStudy) {
333+ histos.add (" occupancyInTimeBins_nITSTOF_vs_FT0thisCol_kNoCollInTimeRangeNarrow" , " ;time bin (#mus);FT0C this collision, this collision;n ITSTOF tracks, this collision;ITS tracks with 5,6,7 cls in time window" , kTHnF , {axisTimeBins, {nBins3D, 0 , kMaxThisEv * 100000 }, {nBinsY, 0 , kMaxThisEv * 4000 }, {nBins3DoccupancyAxis, 0 , kMaxOccup * 10000 }});
334+ histos.add (" occupancyInTimeBins_nITSTRD_vs_FT0thisCol_kNoCollInTimeRangeNarrow" , " ;time bin (#mus);FT0C this collision, this collision;n ITSTRD tracks, this collision;ITS tracks with 5,6,7 cls in time window" , kTHnF , {axisTimeBins, {nBins3D, 0 , kMaxThisEv * 100000 }, {nBinsY, 0 , kMaxThisEv * 4000 }, {nBins3DoccupancyAxis, 0 , kMaxOccup * 10000 }});
335+ }
331336
332337 histos.add (" thisEventITStracksInTimeBins" , " ;time bin (#mus);n tracks" , kTH1F , {axisTimeBins});
333338 histos.add (" thisEventITSTPCtracksInTimeBins" , " ;time bin (#mus);n tracks" , kTH1F , {axisTimeBins});
@@ -462,6 +467,8 @@ struct DetectorOccupancyQaTask {
462467 std::vector<int > vTracksGlobalPerCollPtEtaCuts (cols.size (), 0 ); // counter of tracks per found bc for occupancy studies
463468 std::vector<int > vTracksITSTPCperColl (cols.size (), 0 ); // counter of tracks per found bc for occupancy studies
464469 std::vector<int > vTracksITSTPCperCollPtEtaCuts (cols.size (), 0 ); // counter of tracks per found bc for occupancy studies
470+ std::vector<int > vTracksITSTOFperCollPtEtaCuts (cols.size (), 0 ); // counter of tracks per found bc for occupancy studies
471+ std::vector<int > vTracksITSTRDperCollPtEtaCuts (cols.size (), 0 ); // counter of tracks per found bc for occupancy studies
465472 std::vector<float > vAmpFT0CperColl (cols.size (), 0 ); // amplitude FT0C per collision
466473
467474 std::vector<int > vTFids (cols.size (), 0 );
@@ -482,15 +489,21 @@ struct DetectorOccupancyQaTask {
482489 int nGlobalPtEtaCuts = 0 ;
483490 int nITSTPCtracks = 0 ;
484491 int nITSTPCtracksPtEtaCuts = 0 ;
492+ int nITSTOFtracksPtEtaCuts = 0 ;
493+ int nITSTRDtracksPtEtaCuts = 0 ;
485494 int nTOFtracks = 0 ;
486495 // int nTRDtracks = 0;
487496 auto tracksGrouped = tracks.sliceBy (perCollision, col.globalIndex ());
488497 for (const auto & track : tracksGrouped) {
489498 if (!track.isPVContributor ()) {
490499 continue ;
491500 }
492- if (track.itsNCls () >= 5 )
493- nITS567cls++;
501+ // if (track.itsNCls() >= 5)
502+ // nITS567cls++;
503+ if (track.itsNCls () < 5 )
504+ continue ;
505+ nITS567cls++;
506+
494507 nITSTPCtracks += track.hasITS () && track.hasTPC ();
495508 nTOFtracks += track.hasTOF ();
496509 // nTRDtracks += track.hasTRD();
@@ -500,15 +513,18 @@ struct DetectorOccupancyQaTask {
500513 if (track.eta () < confCutEtaMinTracksThisEvent || track.eta () > confCutEtaMaxTracksThisEvent)
501514 continue ;
502515
503- if (track.itsNCls () >= 5 )
504- nITS567clsPtEtaCuts++;
516+ // if (track.itsNCls() >= 5)
517+ nITS567clsPtEtaCuts++;
518+
519+ nITSTOFtracksPtEtaCuts += track.hasITS () && track.hasTOF ();
520+ nITSTRDtracksPtEtaCuts += track.hasITS () && track.hasTRD ();
505521
506522 if (track.tpcNClsFound () < confCutMinTPCcls)
507523 continue ;
508524 nITSTPCtracksPtEtaCuts += track.hasITS () && track.hasTPC ();
509525
510- if (track.itsNCls () >= 5 )
511- nGlobalPtEtaCuts += track.isGlobalTrack ();
526+ // if (track.itsNCls() >= 5)
527+ nGlobalPtEtaCuts += track.isGlobalTrack ();
512528 }
513529
514530 int32_t foundBC = bc.globalIndex ();
@@ -522,12 +538,14 @@ struct DetectorOccupancyQaTask {
522538
523539 vIsVertexTOFmatched[colIndex] = nTOFtracks > 0 ;
524540
525- vTracksITS567perColl[colIndex] + = nITS567cls;
526- vTracksITS567perCollPtEtaCuts[colIndex] + = nITS567clsPtEtaCuts;
527- vTracksGlobalPerCollPtEtaCuts[colIndex] + = nGlobalPtEtaCuts;
541+ vTracksITS567perColl[colIndex] = nITS567cls;
542+ vTracksITS567perCollPtEtaCuts[colIndex] = nITS567clsPtEtaCuts;
543+ vTracksGlobalPerCollPtEtaCuts[colIndex] = nGlobalPtEtaCuts;
528544
529- vTracksITSTPCperColl[colIndex] += nITSTPCtracks;
530- vTracksITSTPCperCollPtEtaCuts[colIndex] += nITSTPCtracksPtEtaCuts;
545+ vTracksITSTPCperColl[colIndex] = nITSTPCtracks;
546+ vTracksITSTPCperCollPtEtaCuts[colIndex] = nITSTPCtracksPtEtaCuts;
547+ vTracksITSTOFperCollPtEtaCuts[colIndex] = nITSTOFtracksPtEtaCuts;
548+ vTracksITSTRDperCollPtEtaCuts[colIndex] = nITSTRDtracksPtEtaCuts;
531549
532550 // TF ids within a given cols table
533551 int tfId = (bc.globalBC () - bcSOR) / nBCsPerTF;
@@ -815,6 +833,10 @@ struct DetectorOccupancyQaTask {
815833 if (col.selection_bit (kNoCollInTimeRangeNarrow )) {
816834 histos.fill (HIST (" occupancyInTimeBins_vs_FT0thisCol_kNoCollInTimeRangeNarrow" ), dt, vAmpFT0CperColl[colIndex], confFlagUseGlobalTracks ? vTracksGlobalPerCollPtEtaCuts[colIndex] : vTracksITSTPCperCollPtEtaCuts[colIndex], nITStrInTimeBin);
817835 histos.fill (HIST (" occupancyInTimeBins_nITS567_vs_FT0thisCol_kNoCollInTimeRangeNarrow" ), dt, vAmpFT0CperColl[colIndex], vTracksITS567perCollPtEtaCuts[colIndex], nITStrInTimeBin);
836+ if (confFlagIsTOFIsTRDdtStudy) {
837+ histos.fill (HIST (" occupancyInTimeBins_nITSTOF_vs_FT0thisCol_kNoCollInTimeRangeNarrow" ), dt, vAmpFT0CperColl[colIndex], vTracksITSTOFperCollPtEtaCuts[colIndex], nITStrInTimeBin);
838+ histos.fill (HIST (" occupancyInTimeBins_nITSTRD_vs_FT0thisCol_kNoCollInTimeRangeNarrow" ), dt, vAmpFT0CperColl[colIndex], vTracksITSTRDperCollPtEtaCuts[colIndex], nITStrInTimeBin);
839+ }
818840 if (confFlagManyHeavyHistos) {
819841 histos.fill (HIST (" occupancyInTimeBins_occupByFT0_kNoCollInTimeRangeNarrow" ), dt, vTracksITS567perCollPtEtaCuts[colIndex], confFlagUseGlobalTracks ? vTracksGlobalPerCollPtEtaCuts[colIndex] : vTracksITSTPCperCollPtEtaCuts[colIndex], nFT0CInTimeBin);
820842 histos.fill (HIST (" occupancyInTimeBins_vs_FT0thisCol_occupByFT0_kNoCollInTimeRangeNarrow" ), dt, vAmpFT0CperColl[colIndex], confFlagUseGlobalTracks ? vTracksGlobalPerCollPtEtaCuts[colIndex] : vTracksITSTPCperCollPtEtaCuts[colIndex], nFT0CInTimeBin);
0 commit comments