@@ -121,6 +121,7 @@ struct MultiplicityPt {
121121 Configurable<bool > requireIsGoodZvtxFT0vsPV{" requireIsGoodZvtxFT0vsPV" , false , " Require good Z vertex FT0 vs PV" };
122122 Configurable<bool > requireIsVertexITSTPC{" requireIsVertexITSTPC" , false , " Require vertex ITSTPC" };
123123 Configurable<bool > removeNoTimeFrameBorder{" removeNoTimeFrameBorder" , false , " Remove no time frame border" };
124+ Configurable<bool > nGoodITS{" nGoodITS" , true , " Numbers of inactive chips on all ITS layers are below maximum allowed values" };
124125
125126 // Gen-level event selection
126127 Configurable<bool > selTVXMC{" selTVXMC" , true , " Require TVX-equivalent at gen level" };
@@ -229,7 +230,8 @@ struct MultiplicityPt {
229230 kVtxZ ,
230231 kINELgt0 ,
231232 kRecoColl ,
232- kRecoSelected
233+ kGoodITS ,
234+ kRecoSelected ,
233235 };
234236
235237 // Particle species enum
@@ -252,14 +254,14 @@ struct MultiplicityPt {
252254 // Setup custom track cuts
253255 if (useCustomTrackCuts.value ) {
254256 customTrackCuts = getGlobalTrackSelectionRun3ITSMatch (itsPattern.value );
255- customTrackCuts.SetRequireITSRefit (requireITS.value );
256- customTrackCuts.SetRequireTPCRefit (requireTPC.value );
257+ // customTrackCuts.SetRequireITSRefit(requireITS.value);
258+ // customTrackCuts.SetRequireTPCRefit(requireTPC.value);
257259 customTrackCuts.SetMinNClustersITS (minITSnClusters.value );
258260 customTrackCuts.SetRequireGoldenChi2 (requireGoldenChi2.value );
259261 customTrackCuts.SetMaxChi2PerClusterTPC (maxChi2PerClusterTPC.value );
260262 customTrackCuts.SetMaxChi2PerClusterITS (maxChi2PerClusterITS.value );
261263 customTrackCuts.SetMinNCrossedRowsTPC (minNCrossedRowsTPC.value );
262- customTrackCuts.SetMinNCrossedRowsOverFindableClustersTPC (minNCrossedRowsOverFindableClustersTPC.value );
264+ // customTrackCuts.SetMinNCrossedRowsOverFindableClustersTPC(minNCrossedRowsOverFindableClustersTPC.value);
263265 customTrackCuts.SetMaxDcaXYPtDep ([](float /* pt*/ ) { return 10000 .f ; });
264266 // customTrackCuts.SetMaxDcaZ(maxDcaZ.value);
265267 }
@@ -305,14 +307,15 @@ struct MultiplicityPt {
305307 // ========================================================================
306308 // EVENT COUNTER AND BASIC HISTOGRAMS
307309 // ========================================================================
308- registry.add (" EventCounter" , " ;;Events" , kTH1F , {{8 , 0.5 , 8 .5 }});
310+ registry.add (" EventCounter" , " ;;Events" , kTH1F , {{9 , 0.5 , 9 .5 }});
309311 {
310312 auto h = registry.get <TH1 >(HIST (" EventCounter" ));
311313 h->GetXaxis ()->SetBinLabel (kAllGen , " All gen." );
312314 h->GetXaxis ()->SetBinLabel (kTVXequiv , " TVX-equiv." );
313315 h->GetXaxis ()->SetBinLabel (kVtxZ , " |Zvtx|<cut" );
314316 h->GetXaxis ()->SetBinLabel (kINELgt0 , " INEL>0" );
315317 h->GetXaxis ()->SetBinLabel (kRecoColl , " >=1 reco coll." );
318+ h->GetXaxis ()->SetBinLabel (kGoodITS , " GoodITSLayersAll" );
316319 h->GetXaxis ()->SetBinLabel (kRecoSelected , " >=1 reco+sel." );
317320 }
318321
@@ -967,7 +970,7 @@ struct MultiplicityPt {
967970 if (isZvtxPosSelMC.value && std::abs (mcCollision.posZ ()) > cfgCutVertex.value )
968971 return ;
969972 registry.fill (HIST (" EventCounter" ), kVtxZ );
970-
973+
971974 if (cfgINELCut.value == 1 && nChINEL == 0 )
972975 return ;
973976 if (cfgINELCut.value == INELgt1 && nChINEL < INELgt1)
@@ -1063,8 +1066,12 @@ struct MultiplicityPt {
10631066 continue ;
10641067 if (!isEventSelectedMC (collision))
10651068 continue ;
1066-
1067- registry.fill (HIST (" EventCounter" ), kRecoSelected );
1069+
1070+ if (nGoodITS.value && !collision.selection_bit (o2::aod::evsel::kIsGoodITSLayersAll ))
1071+ continue ;
1072+ registry.fill (HIST (" EventCounter" ), kGoodITS );
1073+
1074+ registry.fill (HIST (" EventCounter" ), kRecoSelected );
10681075
10691076 const float centrality = collision.centFT0M ();
10701077
0 commit comments