@@ -162,6 +162,16 @@ struct FlowSP {
162162 nEventSelections
163163 };
164164
165+ enum TrackSelections {
166+ trackSel_FilteredTracks,
167+ trackSel_NCls,
168+ trackSel_FshCls,
169+ trackSel_TPCBoundary,
170+ trackSel_ZeroCharge,
171+ trackSel_ParticleWeights,
172+ nTrackSelections
173+ };
174+
165175 enum ChargeType {
166176 kInclusive ,
167177 kPositive ,
@@ -190,6 +200,8 @@ struct FlowSP {
190200 AxisSpec t0cAxis = {70 , 0 , 70000 , " N_{ch} (T0C)" };
191201 AxisSpec t0aAxis = {200 , 0 , 200 , " N_{ch}" };
192202 AxisSpec multpvAxis = {4000 , 0 , 4000 , " N_{ch} (PV)" };
203+ AxisSpec shclAxis = {200 , 0 , 1 , " Fraction shared cl. TPC" };
204+ AxisSpec clAxis = {160 , 0 , 160 , " Number of cl. TPC" };
193205
194206 int ptbins = ptbinning.size () - 1 ;
195207
@@ -315,8 +327,10 @@ struct FlowSP {
315327 registry.add <TH1>(" incl/QA/hPhiCorrected" , " " , kTH1D , {axisPhi});
316328 registry.add <TH1>(" incl/QA/hEta" , " " , kTH1D , {axisEta});
317329 registry.add <TH3>(" incl/QA/hPhi_Eta_vz" , " " , kTH3D , {axisPhi, axisEta, axisVz});
318- registry.add <TH1>(" incl/QA/hDCAxy" , " " , kTH1D , {axisDCAxy});
319- registry.add <TH1>(" incl/QA/hDCAz" , " " , kTH1D , {axisDCAz});
330+ registry.add <TH2>(" incl/QA/hDCAxy_pt" , " " , kTH2D , {axisPt, axisDCAxy});
331+ registry.add <TH2>(" incl/QA/hDCAz_pt" , " " , kTH2D , {axisPt, axisDCAz});
332+ registry.add (" incl/QA/hSharedClusters_pt" , " " , {HistType::kTH2D , {axisPt, shclAxis}});
333+ registry.add (" incl/QA/hCrossedRows_pt" , " " , {HistType::kTH2D , {axisPt, clAxis}});
320334
321335 registry.addClone (" incl/" , " pos/" );
322336 registry.addClone (" incl/" , " neg/" );
@@ -340,6 +354,14 @@ struct FlowSP {
340354 registry.get <TH1>(HIST (" hEventCount" ))->GetXaxis ()->SetBinLabel (evSel_kIsGoodITSLayersAll + 1 , " kkIsGoodITSLayersAll" );
341355 registry.get <TH1>(HIST (" hEventCount" ))->GetXaxis ()->SetBinLabel (evSel_isSelectedZDC + 1 , " isSelected" );
342356
357+ registry.add (" hTrackCount" , " Number of Tracks; Cut; #Tracks Passed Cut" , {HistType::kTH1D , {{nTrackSelections, 0 , nTrackSelections}}});
358+ registry.get <TH1>(HIST (" hTrackCount" ))->GetXaxis ()->SetBinLabel (trackSel_FilteredTracks + 1 , " Filtered Track" );
359+ registry.get <TH1>(HIST (" hTrackCount" ))->GetXaxis ()->SetBinLabel (trackSel_NCls + 1 , " nClusters TPC" );
360+ registry.get <TH1>(HIST (" hTrackCount" ))->GetXaxis ()->SetBinLabel (trackSel_FshCls + 1 , " Frac. sh. Cls TPC" );
361+ registry.get <TH1>(HIST (" hTrackCount" ))->GetXaxis ()->SetBinLabel (trackSel_TPCBoundary + 1 , " TPC Boundary" );
362+ registry.get <TH1>(HIST (" hTrackCount" ))->GetXaxis ()->SetBinLabel (trackSel_ZeroCharge + 1 , " Only charged" );
363+ registry.get <TH1>(HIST (" hTrackCount" ))->GetXaxis ()->SetBinLabel (trackSel_ParticleWeights + 1 , " Apply weights" );
364+
343365 if (cfgUseAdditionalEventCut) {
344366 fMultPVCutLow = new TF1 (" fMultPVCutLow" , " [0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x - 3.5*([5]+[6]*x+[7]*x*x+[8]*x*x*x+[9]*x*x*x*x)" , 0 , 100 );
345367 fMultPVCutLow ->SetParameters (3257.29 , -121.848 , 1.98492 , -0.0172128 , 6.47528e-05 , 154.756 , -1.86072 , -0.0274713 , 0.000633499 , -3.37757e-06 );
@@ -535,9 +557,11 @@ struct FlowSP {
535557
536558 if (track.tpcNClsFound () < cfgNcls)
537559 return false ;
560+ registry.fill (HIST (" hTrackCount" ), trackSel_NCls);
538561
539- if (track.tpcFractionSharedCls () < cfgFshcls)
562+ if (track.tpcFractionSharedCls () > cfgFshcls)
540563 return false ;
564+ registry.fill (HIST (" hTrackCount" ), trackSel_FshCls);
541565
542566 double phimodn = track.phi ();
543567 if (field < 0 ) // for negative polarity field
@@ -556,6 +580,7 @@ struct FlowSP {
556580 return false ; // reject track
557581 }
558582 registry.fill (HIST (" QA/after/pt_phi" ), track.pt (), phimodn);
583+ registry.fill (HIST (" hTrackCount" ), trackSel_TPCBoundary);
559584 return true ;
560585 }
561586
@@ -679,8 +704,10 @@ struct FlowSP {
679704 registry.fill (HIST (Charge[ct]) + HIST (" QA/hPhiCorrected" ), track.phi (), wacc * weff);
680705 registry.fill (HIST (Charge[ct]) + HIST (" QA/hEta" ), track.eta ());
681706 registry.fill (HIST (Charge[ct]) + HIST (" QA/hPhi_Eta_vz" ), track.phi (), track.eta (), vz);
682- registry.fill (HIST (Charge[ct]) + HIST (" QA/hDCAxy" ), track.dcaXY ());
683- registry.fill (HIST (Charge[ct]) + HIST (" QA/hDCAz" ), track.dcaZ ());
707+ registry.fill (HIST (Charge[ct]) + HIST (" QA/hDCAxy_pt" ), track.pt (), track.dcaXY ());
708+ registry.fill (HIST (Charge[ct]) + HIST (" QA/hDCAz_pt" ), track.pt (), track.dcaZ ());
709+ registry.fill (HIST (Charge[ct]) + HIST (" QA/hSharedClusters_pt" ), track.pt (), track.tpcFractionSharedCls ());
710+ registry.fill (HIST (Charge[ct]) + HIST (" QA/hCrossedRows_pt" ), track.pt (), track.tpcNClsFound ());
684711 }
685712
686713 void processData (UsedCollisions::iterator const & collision, aod::BCsWithTimestamps const &, UsedTracks const & tracks)
@@ -785,6 +812,7 @@ struct FlowSP {
785812
786813 for (const auto & track : tracks) {
787814 registry.fill (HIST (" QA/before/hPt_inclusive" ), track.pt ());
815+ registry.fill (HIST (" hTrackCount" ), trackSel_FilteredTracks);
788816
789817 float weff = 1 , wacc = 1 ;
790818 float weffP = 1 , waccP = 1 ;
@@ -795,6 +823,7 @@ struct FlowSP {
795823
796824 if (track.sign () == 0.0 )
797825 return ;
826+ registry.fill (HIST (" hTrackCount" ), trackSel_ZeroCharge);
798827 bool pos = (track.sign () > 0 ) ? true : false ;
799828
800829 // Fill NUA weights
@@ -816,6 +845,8 @@ struct FlowSP {
816845 if (!pos && !setCurrentParticleWeights (kNegative , weffN, waccN, track.phi (), track.eta (), track.pt (), vtxz))
817846 return ;
818847
848+ registry.fill (HIST (" hTrackCount" ), trackSel_ParticleWeights);
849+
819850 registry.fill (HIST (" QA/after/hPt_inclusive" ), track.pt (), wacc * weff);
820851
821852 // // constrain angle to 0 -> [0,0+2pi]
0 commit comments