@@ -269,7 +269,7 @@ struct PiKpRAA {
269269 Configurable<bool > rctCheckZDC{" rctCheckZDC" , false , " RCT flag to check whether the ZDC is present or not" };
270270 Configurable<bool > rctTreatLimitedAcceptanceAsBad{" rctTreatLimitedAcceptanceAsBad" , false , " RCT flag to reject events with limited acceptance for selected detectors" };
271271 Configurable<bool > requireGoodRct{" requireGoodRct" , true , " RCT flag to reject events with limited acceptance for selected detectors" };
272- Configurable<bool > requireGoodPIDRct{ " requireGoodPIDRct " , true , " RCT flag to reject events with limited acceptance for selected detectors" };
272+ Configurable<bool > requireBCRct{ " requireBCRct " , true , " RCT flag to reject events with limited acceptance for selected detectors" };
273273
274274 // RCT Checker instance
275275 RCTFlagsChecker rctChecker;
@@ -403,9 +403,10 @@ struct PiKpRAA {
403403 registry.add (" HasBCVsFT0VsTVXVsEvSel" , " Alls=1 | BC=2 | FT0=3 | TVX=4 | EvSel=5;;" , kTH1F , {{5 , 0.5 , 5.5 }});
404404 registry.add (" zPos" , " With Event Selection;;Entries;" , kTH1F , {axisZpos});
405405 registry.add (" T0Ccent" , " ;;Entries" , kTH1F , {axisCent});
406+ registry.add (" RCTSel" , " Event accepted if flag=false: All=1 | RTC sel=2;;;" , kTH1F , {{2 , 0.5 , 2.5 }});
407+ registry.add (" T0CcentVsRCTSel" , " Event accepted if flag=false;;RCT Status;" , kTH2F , {{{axisCent}, {9 , 0.5 , 9.5 }}});
406408 registry.add (" T0CcentVsFoundFT0" , " Found(=1.5) NOT Found(=0.5);;Status;" , kTH2F , {{{axisCent}, {2 , 0 , 2 }}});
407409 registry.add (" T0CcentVsBCVsFT0VsTVXVsEvSel" , " All=1 | BC=2 | FT0=3 | TVX=4 | EvSel=5;;Status;" , kTH2F , {{axisCent}, {5 , 0.5 , 5.5 }});
408- // registry.add("T0CcentVsFoundFT0AndTVX", "Found(=1.5) NOT Found(=0.5);;Status;", kTH2F, {{{axisCent}, {2, 0, 2}}});
409410 registry.add (" NchVsCent" , " Measured Nch v.s. Centrality (At least Once Rec. Coll. + Sel. criteria);;Nch" , kTH2F , {{axisCent, {nBinsNch, minNch, maxNch}}});
410411 registry.add (" NclVsEtaPID" , " ;#eta;Ncl used for PID" , kTH2F , {{{axisEta}, {161 , -0.5 , 160.5 }}});
411412 registry.add (" NclVsEtaPIDp" , " ;#eta;#LTNcl#GT used for PID" , kTProfile , {axisEta});
@@ -435,8 +436,19 @@ struct PiKpRAA {
435436 x->SetBinLabel (19 , " Nch Sel." );
436437 x->SetBinLabel (20 , " INEL > 0" );
437438
439+ auto hrct = registry.get <TH2>(HIST (" T0CcentVsRCTSel" ));
440+ auto * y = hrct->GetYaxis ();
441+ y->SetBinLabel (1 , " All" );
442+ y->SetBinLabel (2 , " kFT0Bad" );
443+ y->SetBinLabel (3 , " kITSBad" );
444+ y->SetBinLabel (4 , " kITSLimAccMCRepr" );
445+ y->SetBinLabel (5 , " kTOFBad" );
446+ y->SetBinLabel (6 , " kTOFLimAccMCRepr" );
447+ y->SetBinLabel (7 , " kTPCBadTracking" );
448+ y->SetBinLabel (8 , " kTPCBadPID" );
449+ y->SetBinLabel (9 , " kTPCLimAccMCRepr" );
450+
438451 if (doprocessCalibrationAndV0s) {
439- registry.add (" T0CcentVsRCTSel" , " Bad RCT(=0.5) Good RCT(=1.5) Good RCT & Good PID RCT(=2.5);;RCT Status;" , kTH2F , {{{axisCent}, {3 , 0 , 3 }}});
440452 registry.add (" NchVsNPV" , " ;Nch; NPV;" , kTH2F , {{{nBinsNPV, minNpv, maxNpv}, {nBinsNch, minNch, maxNch}}});
441453 registry.add (" ExcludedEvtVsNch" , " ;Nch;Entries;" , kTH1F , {{nBinsNch, minNch, maxNch}});
442454 registry.add (" ExcludedEvtVsNPV" , " ;NPV;Entries;" , kTH1F , {{nBinsNPV, minNpv, maxNpv}});
@@ -673,16 +685,52 @@ struct PiKpRAA {
673685 // Table's size: " << collisions.tableSize() << "\n";
674686 // LOG(info) << "Run number: " << foundBC.runNumber() << "\n";
675687
676- if (!isEventSelected (collision)) {
677- return ;
678- }
679-
680688 const auto & foundBC = collision.foundBC_as <BCsRun3>();
681689 const uint64_t timeStamp{foundBC.timestamp ()};
682690 const int magField{getMagneticField (timeStamp)};
683691 const double nPV{collision.multNTracksPVeta1 () / 1 .};
684692 const float centrality{isT0Ccent ? collision.centFT0C () : collision.centFT0M ()};
685693
694+ // Apply RCT selection?
695+ if (requireGoodRct) {
696+ // Checks if collisions passes RCT selection
697+ const bool isFT0Bad{requireBCRct ? foundBC.rct_bit (kFT0Bad ) : collision.rct_bit (kFT0Bad )};
698+ const bool isITSBad{requireBCRct ? foundBC.rct_bit (kITSBad ) : collision.rct_bit (kITSBad )};
699+ const bool isITSLimAcc{requireBCRct ? foundBC.rct_bit (kITSLimAccMCRepr ) : collision.rct_bit (kITSLimAccMCRepr )};
700+ const bool isTOFBad{requireBCRct ? foundBC.rct_bit (kTOFBad ) : collision.rct_bit (kTOFBad )};
701+ const bool isTOFLimAcc{requireBCRct ? foundBC.rct_bit (kTOFLimAccMCRepr ) : collision.rct_bit (kTOFLimAccMCRepr )};
702+ const bool isTPCTrackingBad{requireBCRct ? foundBC.rct_bit (kTPCBadTracking ) : collision.rct_bit (kTPCBadTracking )};
703+ const bool isTPCPIDBad{requireBCRct ? foundBC.rct_bit (kTPCBadPID ) : collision.rct_bit (kTPCBadPID )};
704+ const bool isTPCLimAcc{requireBCRct ? foundBC.rct_bit (kTPCLimAccMCRepr ) : collision.rct_bit (kTPCLimAccMCRepr )};
705+
706+ registry.fill (HIST (" T0CcentVsRCTSel" ), centrality, 1.0 );
707+ if (!isFT0Bad)
708+ registry.fill (HIST (" T0CcentVsRCTSel" ), centrality, 2.0 );
709+ if (!isITSBad)
710+ registry.fill (HIST (" T0CcentVsRCTSel" ), centrality, 3.0 );
711+ if (!isITSLimAcc)
712+ registry.fill (HIST (" T0CcentVsRCTSel" ), centrality, 4.0 );
713+ if (!isTOFBad)
714+ registry.fill (HIST (" T0CcentVsRCTSel" ), centrality, 5.0 );
715+ if (!isTOFLimAcc)
716+ registry.fill (HIST (" T0CcentVsRCTSel" ), centrality, 6.0 );
717+ if (!isTPCTrackingBad)
718+ registry.fill (HIST (" T0CcentVsRCTSel" ), centrality, 7.0 );
719+ if (!isTPCPIDBad)
720+ registry.fill (HIST (" T0CcentVsRCTSel" ), centrality, 8.0 );
721+ if (!isTPCLimAcc)
722+ registry.fill (HIST (" T0CcentVsRCTSel" ), centrality, 9.0 );
723+
724+ registry.fill (HIST (" RCTSel" ), 1.0 );
725+ if (!rctChecker (collision))
726+ return ;
727+
728+ registry.fill (HIST (" RCTSel" ), 2.0 );
729+ }
730+
731+ if (!isEventSelected (collision))
732+ return ;
733+
686734 // ---------------------------
687735 // Control histogram
688736 // ---------------------------
@@ -691,23 +739,6 @@ struct PiKpRAA {
691739 }
692740 registry.fill (HIST (" T0CcentVsFoundFT0" ), centrality, 1.5 );
693741
694- // Apply RCT selection?
695- if (requireGoodRct) {
696-
697- // Checks if collisions passes RCT selection
698- if (!rctChecker (*collision)) {
699- registry.fill (HIST (" T0CcentVsRCTSel" ), centrality, 0.5 );
700- return ;
701- }
702-
703- registry.fill (HIST (" T0CcentVsRCTSel" ), centrality, 1.5 );
704- // Checks if collisions passes good PID RCT status
705- if (requireGoodPIDRct && collision.rct_bit (kTPCBadPID )) {
706- return ;
707- }
708- registry.fill (HIST (" T0CcentVsRCTSel" ), centrality, 2.5 );
709- }
710-
711742 if (applyNchSel) {
712743 const int nextRunNumber{foundBC.runNumber ()};
713744 if (currentRunNumberNchSel != nextRunNumber) {
@@ -1404,6 +1435,45 @@ struct PiKpRAA {
14041435 registry.fill (HIST (" HasBCVsFT0VsTVXVsEvSel" ), 4.0 );
14051436 }
14061437
1438+ // ---------------------------
1439+ // RCT Selection
1440+ // ---------------------------
1441+ if (requireGoodRct) {
1442+ // Checks if collisions passes RCT selection
1443+ const bool isFT0Bad{requireBCRct ? foundBC.rct_bit (kFT0Bad ) : collision.rct_bit (kFT0Bad )};
1444+ const bool isITSBad{requireBCRct ? foundBC.rct_bit (kITSBad ) : collision.rct_bit (kITSBad )};
1445+ const bool isITSLimAcc{requireBCRct ? foundBC.rct_bit (kITSLimAccMCRepr ) : collision.rct_bit (kITSLimAccMCRepr )};
1446+ const bool isTOFBad{requireBCRct ? foundBC.rct_bit (kTOFBad ) : collision.rct_bit (kTOFBad )};
1447+ const bool isTOFLimAcc{requireBCRct ? foundBC.rct_bit (kTOFLimAccMCRepr ) : collision.rct_bit (kTOFLimAccMCRepr )};
1448+ const bool isTPCTrackingBad{requireBCRct ? foundBC.rct_bit (kTPCBadTracking ) : collision.rct_bit (kTPCBadTracking )};
1449+ const bool isTPCPIDBad{requireBCRct ? foundBC.rct_bit (kTPCBadPID ) : collision.rct_bit (kTPCBadPID )};
1450+ const bool isTPCLimAcc{requireBCRct ? foundBC.rct_bit (kTPCLimAccMCRepr ) : collision.rct_bit (kTPCLimAccMCRepr )};
1451+
1452+ registry.fill (HIST (" T0CcentVsRCTSel" ), centrality, 1.0 );
1453+ if (!isFT0Bad)
1454+ registry.fill (HIST (" T0CcentVsRCTSel" ), centrality, 2.0 );
1455+ if (!isITSBad)
1456+ registry.fill (HIST (" T0CcentVsRCTSel" ), centrality, 3.0 );
1457+ if (!isITSLimAcc)
1458+ registry.fill (HIST (" T0CcentVsRCTSel" ), centrality, 4.0 );
1459+ if (!isTOFBad)
1460+ registry.fill (HIST (" T0CcentVsRCTSel" ), centrality, 5.0 );
1461+ if (!isTOFLimAcc)
1462+ registry.fill (HIST (" T0CcentVsRCTSel" ), centrality, 6.0 );
1463+ if (!isTPCTrackingBad)
1464+ registry.fill (HIST (" T0CcentVsRCTSel" ), centrality, 7.0 );
1465+ if (!isTPCPIDBad)
1466+ registry.fill (HIST (" T0CcentVsRCTSel" ), centrality, 8.0 );
1467+ if (!isTPCLimAcc)
1468+ registry.fill (HIST (" T0CcentVsRCTSel" ), centrality, 9.0 );
1469+
1470+ registry.fill (HIST (" RCTSel" ), 1.0 );
1471+ if (!rctChecker (collision))
1472+ return ;
1473+
1474+ registry.fill (HIST (" RCTSel" ), 2.0 );
1475+ }
1476+
14071477 // ---------------------------
14081478 // Event Selection
14091479 // ---------------------------
0 commit comments