@@ -82,6 +82,7 @@ struct PseudorapidityDensityMFT {
8282 " eta range for INEL>0 sample definition" };
8383
8484 Configurable<bool > useEvSel{" useEvSel" , true , " use event selection" };
85+ Configurable<bool > disableITSROFCut{" disableITSROFCut" , false , " Disable ITS ROC cut for event selection" };
8586 ConfigurableAxis multBinning{" multBinning" , {701 , -0.5 , 700.5 }, " " };
8687 ConfigurableAxis EtaAxis = {" etaBinning" , {18 , -4.6 , -1 .}, " " };
8788
@@ -145,15 +146,15 @@ struct PseudorapidityDensityMFT {
145146 auto hstat = registry.get <TH1>(HIST (" EventSelection" ));
146147 auto * x = hstat->GetXaxis ();
147148 x->SetBinLabel (1 , " All" );
148- x->SetBinLabel (2 , " Selected " );
149- x->SetBinLabel (3 , " Selected Vz Cut " );
150- x->SetBinLabel (4 , " Sel8+ Vz+INEL>0 " );
151- x->SetBinLabel (5 , " Sel INEL,INEL_fwd >0" );
152- x->SetBinLabel (6 , " Rejected " );
153- x->SetBinLabel (7 , " Good BCs " );
154- x->SetBinLabel (8 , " BCs with collisions " );
155- x->SetBinLabel (9 , " BCs with pile-up/splitting " );
156- x->SetBinLabel (10 , " midtracks>0 " );
149+ x->SetBinLabel (2 , " Vz " );
150+ x->SetBinLabel (3 , " Vz+ITSRof " );
151+ x->SetBinLabel (4 , " Vz+Selected " );
152+ x->SetBinLabel (5 , " Sel8+Vz+ INEL>0" );
153+ x->SetBinLabel (6 , " Sel INEL,INEL_fwd>0 " );
154+ x->SetBinLabel (7 , " Rejected " );
155+ x->SetBinLabel (8 , " Good BCs " );
156+ x->SetBinLabel (9 , " BCs with collisions " );
157+ x->SetBinLabel (10 , " BCs with pile-up/splitting " );
157158 x->SetBinLabel (11 , " percollisionSample>0" );
158159 x->SetBinLabel (12 , " midtracks+percollisionSample>0" );
159160 registry.add ({" EventsNtrkZvtx" ,
@@ -450,7 +451,7 @@ struct PseudorapidityDensityMFT {
450451 if (!useEvSel ||
451452 (useEvSel && ((bc.selection_bit (aod::evsel::kIsBBT0A ) &&
452453 bc.selection_bit (aod::evsel::kIsBBT0C )) != 0 ))) {
453- registry.fill (HIST (" EventSelection" ), 7 ); // added 5->12
454+ registry.fill (HIST (" EventSelection" ), 8 ); // added 5->12
454455 cols.clear ();
455456 for (auto & collision : collisions) {
456457 if (collision.has_foundBC ()) {
@@ -463,9 +464,9 @@ struct PseudorapidityDensityMFT {
463464 }
464465 LOGP (debug, " BC {} has {} collisions" , bc.globalBC (), cols.size ());
465466 if (!cols.empty ()) {
466- registry.fill (HIST (" EventSelection" ), 8 ); // added 6->13
467+ registry.fill (HIST (" EventSelection" ), 9 ); // added 6->13
467468 if (cols.size () > 1 ) {
468- registry.fill (HIST (" EventSelection" ), 9 ); // added 7->14
469+ registry.fill (HIST (" EventSelection" ), 10 ); // added 7->14
469470 }
470471 }
471472 }
@@ -569,25 +570,28 @@ struct PseudorapidityDensityMFT {
569570 registry.fill (HIST (" EventsNtrkZvtx" ), Ntrk, z);
570571 if ((z >= cfgVzCut1) && (z <= cfgVzCut2)) {
571572 registry.fill (HIST (" Tracks/2Danalysis/EventsNtrkZvtx_all" ), Ntrk, z);
573+ registry.fill (HIST (" EventSelection" ), 2 .);
572574 for (auto & retrack : retracks) {
573575 auto track = retrack.mfttrack ();
574576 if ((cfgnEta1 < track.eta ()) && (track.eta () < cfgnEta2) && track.nClusters () >= cfgnCluster && retrack.ambDegree () > 0 ) {
575577 registry.fill (HIST (" Tracks/2Danalysis/EtaZvtx" ), track.eta (), z);
576578 }
577579 }
578- if (!useEvSel || (useEvSel && collision.sel8 ())) {
579- registry.fill (HIST (" EventSelection" ), 2 .);
580+ if (!disableITSROFCut && !collision.selection_bit (aod::evsel::kNoITSROFrameBorder )) {
581+ return ;
582+ }
583+ registry.fill (HIST (" EventSelection" ), 3 .);
584+ if (!useEvSel || (useEvSel && collision.selection_bit (aod::evsel::kIsTriggerTVX ) && collision.selection_bit (aod::evsel::kNoTimeFrameBorder ))) {
585+ registry.fill (HIST (" EventSelection" ), 4 .);
580586 registry.fill (HIST (" Tracks/2Danalysis/EventsNtrkZvtx_sel8" ), Ntrk, z);
581- registry.fill (HIST (" EventSelection" ), 3 .);
582587 std::unordered_set<int > uniqueEvents;
583588 std::unordered_set<int > uniqueEventsAmb;
584589 std::unordered_set<int > uniqueCollisions;
585590 std::unordered_set<int > uniqueCollisionsAmb;
586591 std::unordered_set<int > eventsInelMFT;
587592 std::unordered_set<int > eventsInel;
588593 if (midtracks.size () > 0 ) {
589- registry.fill (HIST (" EventSelection" ), 4 .);
590- registry.fill (HIST (" EventSelection" ), 10 .);
594+ registry.fill (HIST (" EventSelection" ), 5 .);
591595 registry.fill (HIST (" EventsNtrkZvtx_gt0" ), Ntrk, z);
592596 registry.fill (HIST (" Tracks/2Danalysis/EventsNtrkZvtx_sel8_inelgt0" ), Ntrk, z);
593597 eventsInel.insert (collision.globalIndex ());
@@ -609,7 +613,7 @@ struct PseudorapidityDensityMFT {
609613 }
610614 }
611615 if (retracks.size () > 0 ) {
612- registry.fill (HIST (" EventSelection" ), 5 .);
616+ registry.fill (HIST (" EventSelection" ), 6 .);
613617 if (midtracks.size () > 0 ) {
614618 registry.fill (HIST (" Tracks/2Danalysis/EventsNtrkZvtx_sel8_inelfwdgt0" ), Ntrk, z);
615619 }
@@ -736,7 +740,7 @@ struct PseudorapidityDensityMFT {
736740 registry.fill (HIST (" hNumCollisions_Inel" ), 1 , eventsInel.size ());
737741 }
738742 } else {
739- registry.fill (HIST (" EventSelection" ), 6 );
743+ registry.fill (HIST (" EventSelection" ), 7 );
740744 }
741745 }
742746 PROCESS_SWITCH (PseudorapidityDensityMFT, processMultReassoc,
@@ -851,7 +855,10 @@ struct PseudorapidityDensityMFT {
851855 collisions.size ());
852856 for (auto & collision : collisions) {
853857 registry.fill (HIST (" EventEfficiency" ), 3 .);
854- if (!useEvSel || (useEvSel && collision.sel8 ())) {
858+ if (!disableITSROFCut && !collision.selection_bit (aod::evsel::kNoITSROFrameBorder )) {
859+ return ;
860+ }
861+ if (!useEvSel || (useEvSel && collision.selection_bit (aod::evsel::kIsTriggerTVX ) && collision.selection_bit (aod::evsel::kNoTimeFrameBorder ))) {
855862 atLeastOne = true ;
856863 auto perCollisionSample = sample->sliceByCached (
857864 o2::aod::fwdtrack::collisionId, collision.globalIndex (), cache);
0 commit comments