1313// / \brief Tasks that produces the track tables used for the pairing
1414// / \author Laura Serksnyte, TU München, laura.serksnyte@tum.de
1515
16- #include < CCDB/BasicCCDBManager.h>
17- #include < fairlogger/Logger.h>
18- #include < vector>
19- #include < string>
16+ #include " PWGCF/DataModel/FemtoDerived.h"
17+ #include " PWGCF/FemtoDream/Core/femtoDreamCascadeSelection.h"
18+ #include " PWGCF/FemtoDream/Core/femtoDreamCollisionSelection.h"
19+ #include " PWGCF/FemtoDream/Core/femtoDreamTrackSelection.h"
20+ #include " PWGCF/FemtoDream/Core/femtoDreamUtils.h"
21+ #include " PWGCF/FemtoDream/Core/femtoDreamV0Selection.h"
22+ #include " PWGLF/DataModel/LFStrangenessTables.h"
23+
2024#include " Common/Core/trackUtilities.h"
25+ #include " Common/DataModel/Centrality.h"
2126#include " Common/DataModel/EventSelection.h"
2227#include " Common/DataModel/Multiplicity.h"
23- #include " Common/DataModel/Centrality.h"
2428#include " Common/DataModel/PIDResponse.h"
2529#include " Common/DataModel/PIDResponseITS.h"
2630#include " Common/DataModel/TrackSelectionTables.h"
31+ #include " EventFiltering/Zorro.h"
32+
2733#include " DataFormatsParameters/GRPMagField.h"
2834#include " DataFormatsParameters/GRPObject.h"
29- #include " PWGCF/FemtoDream/Core/femtoDreamCollisionSelection.h"
30- #include " PWGCF/FemtoDream/Core/femtoDreamTrackSelection.h"
31- #include " PWGCF/FemtoDream/Core/femtoDreamV0Selection.h"
32- #include " PWGCF/FemtoDream/Core/femtoDreamCascadeSelection.h"
33- #include " PWGCF/FemtoDream/Core/femtoDreamUtils.h"
3435#include " Framework/ASoAHelpers.h"
3536#include " Framework/AnalysisDataModel.h"
3637#include " Framework/AnalysisTask.h"
3738#include " Framework/HistogramRegistry.h"
3839#include " Framework/runDataProcessing.h"
39- #include " EventFiltering/Zorro.h"
40- #include " PWGCF/DataModel/FemtoDerived.h"
41- #include " PWGLF/DataModel/LFStrangenessTables.h"
4240#include " ReconstructionDataFormats/Track.h"
43- #include " TMath.h"
41+ #include < CCDB/BasicCCDBManager.h>
42+
4443#include " Math/Vector4D.h"
44+ #include " TMath.h"
45+
46+ #include < fairlogger/Logger.h>
47+
48+ #include < string>
49+ #include < vector>
4550
4651using namespace o2 ;
4752using namespace o2 ::framework;
4853using namespace o2 ::framework::expressions;
54+ using namespace o2 ::aod::rctsel;
4955using namespace o2 ::analysis::femtoDream;
5056
5157namespace o2 ::aod
@@ -205,6 +211,12 @@ struct femtoDreamProducerTask {
205211
206212 } OptionTrackSpecialSelections;
207213
214+ struct : o2::framework::ConfigurableGroup {
215+ Configurable<bool > requireRCTFlagChecker{" requireRCTFlagChecker" , true , " Check event quality in run condition table" };
216+ Configurable<std::string> cfgEvtRCTFlagCheckerLabel{" cfgEvtRCTFlagCheckerLabel" , " CBT_hadronPID" , " Evt sel: RCT flag checker label" };
217+ Configurable<bool > cfgEvtRCTFlagCheckerLimitAcceptAsBad{" cfgEvtRCTFlagCheckerLimitAcceptAsBad" , true , " Evt sel: RCT flag checker treat Limited Acceptance As Bad" };
218+ } rctCut;
219+
208220 HistogramRegistry qaRegistry{" QAHistos" , {}, OutputObjHandlingPolicy::AnalysisObject};
209221 HistogramRegistry TrackRegistry{" Tracks" , {}, OutputObjHandlingPolicy::AnalysisObject};
210222 HistogramRegistry V0Registry{" V0" , {}, OutputObjHandlingPolicy::AnalysisObject};
@@ -214,6 +226,7 @@ struct femtoDreamProducerTask {
214226 float mMagField ;
215227 std::string zorroTriggerNames = " " ;
216228 Service<o2::ccdb::BasicCCDBManager> ccdb; // / Accessing the CCDB
229+ RCTFlagsChecker rctChecker;
217230
218231 void init (InitContext&)
219232 {
@@ -255,6 +268,8 @@ struct femtoDreamProducerTask {
255268 zorroTriggerNames.pop_back ();
256269 }
257270
271+ rctChecker.init (rctCut.cfgEvtRCTFlagCheckerLabel , false , rctCut.cfgEvtRCTFlagCheckerLimitAcceptAsBad );
272+
258273 colCuts.setCuts (ConfEvtZvtx.value , ConfEvtTriggerCheck.value , ConfEvtTriggerSel.value , ConfEvtOfflineCheck.value , ConfEvtAddOfflineCheck.value , ConfIsRun3.value );
259274 colCuts.init (&qaRegistry);
260275
@@ -568,6 +583,7 @@ struct femtoDreamProducerTask {
568583 if (!colCuts.isSelectedCollision (col)) {
569584 return ;
570585 }
586+
571587 if (ConfIsActivateV0.value ) {
572588 if (colCuts.isEmptyCollision (col, tracks, trackCuts) && colCuts.isEmptyCollision (col, fullV0s, v0Cuts, tracks)) {
573589 return ;
@@ -578,6 +594,10 @@ struct femtoDreamProducerTask {
578594 }
579595 }
580596
597+ if (rctCut.requireRCTFlagChecker && !rctChecker (col)) {
598+ return ;
599+ }
600+
581601 outputCollision (vtxZ, mult, multNtr, spher, mMagField );
582602 if constexpr (isMC) {
583603 fillMCCollision (col);
0 commit comments