@@ -64,6 +64,8 @@ struct singleTrackSelector {
6464 Configurable<float > _dcaXY{" dcaXY" , 1000 .f , " Maximum dca of track in xy" };
6565 Configurable<float > _dcaZ{" dcaZ" , 1000 .f , " Maximum dca of track in xy" };
6666 Configurable<float > _maxTofChi2{" maxTofChi2" , 10 .f , " Maximum TOF Chi2 value -> to remove mismatched tracks" };
67+ Configurable<float > _vertexZ{" VertexZ" , 15.0 , " abs vertexZ value limit" };
68+ Configurable<std::pair<float , float >> _centCut{" centCut" , std::pair<float , float >{0 .f , 100 .f }, " [min., max.] centrality range to keep events within" };
6769
6870 using Trks = soa::Join<aod::Tracks, aod::TracksExtra, aod::pidEvTimeFlags, aod::TracksDCA,
6971 aod::pidTPCFullEl, aod::pidTPCFullPi, aod::pidTPCFullKa,
@@ -83,7 +85,7 @@ struct singleTrackSelector {
8385 Filter eventFilter = (applyEvSel.node() == 0 ) ||
8486 ((applyEvSel.node() == 1 ) && (aod::evsel::sel7 == true )) ||
8587 ((applyEvSel.node() == 2 ) && (aod::evsel::sel8 == true ));
86- Filter vertexFilter = (( o2::aod::collision::posZ < 15 .f) && (o2::aod::collision::posZ > - 15 .f)) ;
88+ Filter vertexFilter = nabs( o2::aod::collision::posZ) < _vertexZ ;
8789 Filter trackFilter = ((o2::aod::track::itsChi2NCl <= 36 .f) && (o2::aod::track::itsChi2NCl >= 0 .f) && (o2::aod::track::tpcChi2NCl >= 0 .f) && (o2::aod::track::tpcChi2NCl <= 4 .f));
8890
8991 Filter pFilter = o2::aod::track::p > _min_P&& o2::aod::track::p < _max_P;
@@ -222,29 +224,33 @@ struct singleTrackSelector {
222224 auto bc = collision.bc_as <aod::BCsWithTimestamps>();
223225 initCCDB (bc);
224226
225- int multValue = -1 ;
227+ float centValue = collision.centRun2V0M ();
228+ if (centValue >= _centCut.value .first && centValue <= _centCut.value .second ) {
226229
227- switch (multTableToUse) {
228- case 0 :
229- multValue = collision.multTPC ();
230- break ;
231- case 1 :
232- multValue = collision.multNTracksPV ();
233- break ;
234- case 2 :
235- multValue = collision.multNTracksPVeta1 ();
236- break ;
237- default :
238- LOGF (fatal, " Invalid flag for mult. estimator has been choosen. Please check." );
239- break ;
240- }
230+ int multValue = -1 ;
231+
232+ switch (multTableToUse) {
233+ case 0 :
234+ multValue = collision.multTPC ();
235+ break ;
236+ case 1 :
237+ multValue = collision.multNTracksPV ();
238+ break ;
239+ case 2 :
240+ multValue = collision.multNTracksPVeta1 ();
241+ break ;
242+ default :
243+ LOGF (fatal, " Invalid flag for mult. estimator has been choosen. Please check." );
244+ break ;
245+ }
241246
242- tableRowColl (multValue,
243- collision. centRun2V0M () ,
244- collision.posZ (),
245- d_bz);
247+ tableRowColl (multValue,
248+ centValue ,
249+ collision.posZ (),
250+ d_bz);
246251
247- fillTrackTables<false >(tracks);
252+ fillTrackTables<false >(tracks);
253+ }
248254 }
249255 PROCESS_SWITCH (singleTrackSelector, processDataRun2, " process data Run2" , false );
250256
@@ -254,7 +260,6 @@ struct singleTrackSelector {
254260 initCCDB (bc);
255261
256262 float centValue = -100 .0f ;
257- int multValue = -1 ;
258263
259264 switch (centTableToUse) {
260265 case 0 :
@@ -279,28 +284,31 @@ struct singleTrackSelector {
279284 LOGF (fatal, " Invalid flag for cent./mult.perc. estimator has been choosen. Please check." );
280285 break ;
281286 }
287+ if (centValue >= _centCut.value .first && centValue <= _centCut.value .second ) {
288+ int multValue = -1 ;
282289
283- switch (multTableToUse) {
284- case 0 :
285- multValue = collision.multTPC ();
286- break ;
287- case 1 :
288- multValue = collision.multNTracksPV ();
289- break ;
290- case 2 :
291- multValue = collision.multNTracksPVeta1 ();
292- break ;
293- default :
294- LOGF (fatal, " Invalid flag for mult. estimator has been choosen. Please check." );
295- break ;
296- }
290+ switch (multTableToUse) {
291+ case 0 :
292+ multValue = collision.multTPC ();
293+ break ;
294+ case 1 :
295+ multValue = collision.multNTracksPV ();
296+ break ;
297+ case 2 :
298+ multValue = collision.multNTracksPVeta1 ();
299+ break ;
300+ default :
301+ LOGF (fatal, " Invalid flag for mult. estimator has been choosen. Please check." );
302+ break ;
303+ }
297304
298- tableRowColl (multValue,
299- centValue,
300- collision.posZ (),
301- d_bz);
305+ tableRowColl (multValue,
306+ centValue,
307+ collision.posZ (),
308+ d_bz);
302309
303- fillTrackTables<false >(tracks);
310+ fillTrackTables<false >(tracks);
311+ }
304312 }
305313 PROCESS_SWITCH (singleTrackSelector, processDataRun3, " process data Run3" , true );
306314
@@ -309,29 +317,32 @@ struct singleTrackSelector {
309317 auto bc = collision.bc_as <aod::BCsWithTimestamps>();
310318 initCCDB (bc);
311319
312- int multValue = -1 ;
320+ float centValue = collision.centRun2V0M ();
321+ if (centValue >= _centCut.value .first && centValue <= _centCut.value .second ) {
322+ int multValue = -1 ;
313323
314- switch (multTableToUse) {
315- case 0 :
316- multValue = collision.multTPC ();
317- break ;
318- case 1 :
319- multValue = collision.multNTracksPV ();
320- break ;
321- case 2 :
322- multValue = collision.multNTracksPVeta1 ();
323- break ;
324- default :
325- LOGF (fatal, " Invalid flag for mult. estimator has been choosen. Please check." );
326- break ;
327- }
324+ switch (multTableToUse) {
325+ case 0 :
326+ multValue = collision.multTPC ();
327+ break ;
328+ case 1 :
329+ multValue = collision.multNTracksPV ();
330+ break ;
331+ case 2 :
332+ multValue = collision.multNTracksPVeta1 ();
333+ break ;
334+ default :
335+ LOGF (fatal, " Invalid flag for mult. estimator has been choosen. Please check." );
336+ break ;
337+ }
328338
329- tableRowColl (multValue,
330- collision. centRun2V0M () ,
331- collision.posZ (),
332- d_bz);
339+ tableRowColl (multValue,
340+ centValue ,
341+ collision.posZ (),
342+ d_bz);
333343
334- fillTrackTables<true >(tracks);
344+ fillTrackTables<true >(tracks);
345+ }
335346 }
336347 PROCESS_SWITCH (singleTrackSelector, processMCRun2, " process MC Run2" , false );
337348
@@ -341,7 +352,6 @@ struct singleTrackSelector {
341352 initCCDB (bc);
342353
343354 float centValue = -100 .0f ;
344- int multValue = -1 ;
345355
346356 switch (centTableToUse) {
347357 case 0 :
@@ -367,27 +377,31 @@ struct singleTrackSelector {
367377 break ;
368378 }
369379
370- switch (multTableToUse) {
371- case 0 :
372- multValue = collision.multTPC ();
373- break ;
374- case 1 :
375- multValue = collision.multNTracksPV ();
376- break ;
377- case 2 :
378- multValue = collision.multNTracksPVeta1 ();
379- break ;
380- default :
381- LOGF (fatal, " Invalid flag for mult. estimator has been choosen. Please check." );
382- break ;
383- }
380+ if (centValue >= _centCut.value .first && centValue <= _centCut.value .second ) {
381+ int multValue = -1 ;
384382
385- tableRowColl (multValue,
386- centValue,
387- collision.posZ (),
388- d_bz);
383+ switch (multTableToUse) {
384+ case 0 :
385+ multValue = collision.multTPC ();
386+ break ;
387+ case 1 :
388+ multValue = collision.multNTracksPV ();
389+ break ;
390+ case 2 :
391+ multValue = collision.multNTracksPVeta1 ();
392+ break ;
393+ default :
394+ LOGF (fatal, " Invalid flag for mult. estimator has been choosen. Please check." );
395+ break ;
396+ }
397+
398+ tableRowColl (multValue,
399+ centValue,
400+ collision.posZ (),
401+ d_bz);
389402
390- fillTrackTables<true >(tracks);
403+ fillTrackTables<true >(tracks);
404+ }
391405 }
392406 PROCESS_SWITCH (singleTrackSelector, processMCRun3, " process MC Run3" , false );
393407};
0 commit comments