Skip to content

Commit c303493

Browse files
author
Igor Altsybeev
committed
adding monitoring of trackAt85.valid() vs occupancy
1 parent 82845de commit c303493

1 file changed

Lines changed: 38 additions & 6 deletions

File tree

‎DPG/Tasks/AOTEvent/eventSelectionQa.cxx‎

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
#include <TMath.h>
4545
#include <TString.h>
4646

47+
#include "TrackTools/TrackGeometry.h"
4748
#include <sys/types.h>
4849

4950
#include <bitset>
@@ -390,6 +391,9 @@ struct EventSelectionQaTask {
390391
histos.add("occupancyQA/hNumTracksPVTPC_vs_V0A_vs_occupancy_StandardDeltaTimeCut", "", kTH3F, {axisMultV0AForOccup, axisNtracksPVTPC, axisOccupancyTracks});
391392
histos.add("occupancyQA/hNumTracksPV_vs_V0A_vs_occupancy_GoodITSLayersAllCut", "", kTH3F, {axisMultV0AForOccup, axisNtracksPV, axisOccupancyTracks});
392393
histos.add("occupancyQA/hNumTracksPVTPC_vs_V0A_vs_occupancy_GoodITSLayersAllCut", "", kTH3F, {axisMultV0AForOccup, axisNtracksPVTPC, axisOccupancyTracks});
394+
// check at R=85 cm (Oct 2026)
395+
histos.add("occupancyQA/hNumTracksITS_isValidAt85cm_EtaPtCuts_vs_V0A_vs_occupancy", "", kTH3F, {axisMultV0AForOccup, axisNtracksPVTPC, axisOccupancyTracks});
396+
histos.add("occupancyQA/hNumTracksPV_isValidAt85cm_EtaPtSel8VxCuts_vs_V0A_vs_occupancy", "", kTH3F, {axisMultV0AForOccup, axisNtracksPVTPC, axisOccupancyTracks});
393397
// requested by TPC experts: nTPConly tracks vs occupancy
394398
histos.add("occupancyQA/hNumTracksTPConly_vs_V0A_vs_occupancy", "", kTH3F, {axisMultV0AForOccup, axisNtracksTPConly, axisOccupancyTracks});
395399
histos.add("occupancyQA/hNumTracksTPConlyNoITS_vs_V0A_vs_occupancy", "", kTH3F, {axisMultV0AForOccup, axisNtracksTPConly, axisOccupancyTracks});
@@ -1185,6 +1189,8 @@ struct EventSelectionQaTask {
11851189

11861190
int nTracksITS = 0;
11871191
int nTracksITSTPC = 0;
1192+
int nTracksITSValidAt85cmAfterEtaPtCuts = 0;
1193+
int nContributorsAt85cmAfterEtaPtSel8VxCuts = 0;
11881194

11891195
bool isTVX = col.selection_bit(kIsTriggerTVX);
11901196

@@ -1202,11 +1208,27 @@ struct EventSelectionQaTask {
12021208
nTPConlyNoITS++;
12031209
}
12041210

1211+
// Oct 2026: test presence of track at 85 cm radius using new tools - https://github.com/AliceO2Group/AliceO2/tree/dev/Common/TrackTools
1212+
const float bzKG = 5.f;
1213+
const float radiusOfInterest = 85.f; // cm
1214+
auto trackParLocal = o2::recohelpers::makeTrackParFromLocalParameters(
1215+
track.x(),
1216+
track.alpha(),
1217+
track.y(),
1218+
track.z(),
1219+
track.snp(),
1220+
track.tgl(),
1221+
track.signed1Pt());
1222+
auto trackAt85 = o2::recohelpers::getParametersAtRadiusH(trackParLocal, radiusOfInterest, bzKG);
1223+
bool isTrackAt85 = trackAt85.valid();
1224+
12051225
if (std::fabs(track.eta()) < 0.8 && track.pt() > 0.2) {
12061226
if (track.hasITS()) {
12071227
nTracksITS++;
12081228
if (track.hasTPC())
12091229
nTracksITSTPC++;
1230+
if (isTrackAt85)
1231+
nTracksITSValidAt85cmAfterEtaPtCuts++;
12101232
}
12111233
}
12121234

@@ -1234,12 +1256,18 @@ struct EventSelectionQaTask {
12341256
histos.fill(HIST("occupancyQA/tpcNCrossedRows_vs_V0A_vs_occupancy"), multV0A, track.tpcNClsFindable() - tpcNClsFindableMinusCrossedRowsCorrected, occupancyByTracks);
12351257
}
12361258
} // end of hasTPC
1237-
if (col.sel8() && fabs(col.posZ()) < 10 && track.tpcNClsFound() > 50 && track.tpcNClsCrossedRows() > 80 && track.itsChi2NCl() < 36 && track.tpcChi2NCl() < 4) {
1238-
nContributorsAfterEtaTPCCuts++;
1239-
// ROF border QA
1240-
histos.fill(HIST("ITSROFborderQA/hFoundBC_kTVX_nITSlayers_for_ITSTPCtracks"), localBC, track.itsNCls());
1241-
histos.fill(HIST("ITSROFborderQA/hFoundBC_kTVX_counter_ITSTPCtracks"), localBC);
1242-
}
1259+
if (col.sel8() && fabs(col.posZ()) < 10) {
1260+
if (track.tpcNClsFound() > 50 && track.tpcNClsCrossedRows() > 80 && track.itsChi2NCl() < 36 && track.tpcChi2NCl() < 4) {
1261+
nContributorsAfterEtaTPCCuts++;
1262+
// ROF border QA
1263+
histos.fill(HIST("ITSROFborderQA/hFoundBC_kTVX_nITSlayers_for_ITSTPCtracks"), localBC, track.itsNCls());
1264+
histos.fill(HIST("ITSROFborderQA/hFoundBC_kTVX_counter_ITSTPCtracks"), localBC);
1265+
}
1266+
1267+
if (isTrackAt85) {
1268+
nContributorsAt85cmAfterEtaPtSel8VxCuts++;
1269+
}
1270+
} // end of sel8 and vZ cuts
12431271
}
12441272
if (!track.hasTPC())
12451273
histos.fill(HIST("hITStrackBcDiff"), trackBcDiff);
@@ -1268,6 +1296,10 @@ struct EventSelectionQaTask {
12681296
histos.fill(HIST("occupancyQA/hNumTracksPVTPCLooseCuts_vs_V0A_vs_occupancy"), multV0A, nContributorsAfterEtaTPCLooseCuts, occupancyByTracks);
12691297
histos.fill(HIST("occupancyQA/hNumTracksITS_vs_V0A_vs_occupancy"), multV0A, nTracksITS, occupancyByTracks);
12701298
histos.fill(HIST("occupancyQA/hNumTracksITSTPC_vs_V0A_vs_occupancy"), multV0A, nTracksITSTPC, occupancyByTracks);
1299+
1300+
histos.fill(HIST("occupancyQA/hNumTracksITS_isValidAt85cm_EtaPtCuts_vs_V0A_vs_occupancy"), multV0A, nTracksITSValidAt85cmAfterEtaPtCuts, occupancyByTracks);
1301+
histos.fill(HIST("occupancyQA/hNumTracksPV_isValidAt85cm_EtaPtSel8VxCuts_vs_V0A_vs_occupancy"), multV0A, nContributorsAt85cmAfterEtaPtSel8VxCuts, occupancyByTracks);
1302+
12711303
if (col.selection_bit(kNoCollInTimeRangeNarrow)) {
12721304
histos.fill(HIST("occupancyQA/hNumTracksPV_vs_V0A_vs_occupancy_NarrowDeltaTimeCut"), multV0A, nPV, occupancyByTracks);
12731305
histos.fill(HIST("occupancyQA/hNumTracksPVTPC_vs_V0A_vs_occupancy_NarrowDeltaTimeCut"), multV0A, nContributorsAfterEtaTPCCuts, occupancyByTracks);

0 commit comments

Comments
 (0)