@@ -99,14 +99,12 @@ struct F0980pbpbanalysis {
9999 // Track Selection Configurables
100100 Configurable<float > cfgTrackPtMin{" cfgTrackPtMin" , 0.15 , " Minimum transverse momentum for charged track" };
101101 Configurable<float > cfgTrackEtaMax{" cfgTrackEtaMax" , 0.8 , " Maximum pseudorapidiy for charged track" };
102- Configurable<float > cfgTrackDCArToPVcutMax{" cfgTrackDCArToPVcutMax" , 0.5 , " Maximum transverse DCA" };
103- Configurable<float > cfgTrackDCAzToPVcutMax{" cfgTrackDCAzToPVcutMax" , 2.0 , " Maximum longitudinal DCA" };
104102 Configurable<float > cfgTrackRapMin{" cfgTrackRapMin" , -0.5 , " Minimum rapidity for pair" };
105103 Configurable<float > cfgTrackRapMax{" cfgTrackRapMax" , 0.5 , " Maximum rapidity for pair" };
106104
107- Configurable<bool > cfgTrackIsPrimaryTrack{" cfgTrackIsPrimaryTrack" , true , " Primary track selection" };
108- Configurable<bool > cfgTrackIsGlobalWoDCATrack{" cfgTrackIsGlobalWoDCATrack" , true , " Global track selection without DCA" };
109105 Configurable<bool > cfgTrackIsPVContributor{" cfgTrackIsPVContributor" , true , " PV contributor track selection" };
106+ Configurable<bool > cfgTrackIsGlobalWoDCATrack{" cfgTrackIsGlobalWoDCATrack" , true , " Global track selection without DCA" };
107+ Configurable<bool > cfgTrackIsPrimaryTrack{" cfgTrackIsPrimaryTrack" , true , " Primary track selection" };
110108
111109 Configurable<double > cfgTrackNTPCCrossedRows{" cfgTrackNTPCCrossedRows" , 70 , " nCrossed TPC Rows" };
112110 Configurable<double > cfgTrackNFindableTPCClusters{" cfgTrackNFindableTPCClusters" , 50 , " nFindable TPC Clusters" };
@@ -115,6 +113,17 @@ struct F0980pbpbanalysis {
115113
116114 Configurable<double > cfgTrackNITSChi2{" cfgTrackNITSChi2" , 36.0 , " nITS Chi2 per Cluster" };
117115
116+ Configurable<float > cfgTrackDCArToPVcutMax{" cfgTrackDCArToPVcutMax" , 0.5 , " Maximum transverse DCA" };
117+ Configurable<float > cfgTrackDCAzToPVcutMax{" cfgTrackDCAzToPVcutMax" , 2.0 , " Maximum longitudinal DCA" };
118+
119+ Configurable<bool > cfgTrackDCArDepPTSel{" cfgTrackDCArDepPTSel" , false , " Flag for pT dependent transverse DCA cut" }; // 7 - sigma cut
120+ Configurable<float > cfgTrackDCArDepPTP0{" cfgTrackDCArDepPTP0" , 0.004 , " Coeff. of transverse DCA for p0" };
121+ Configurable<float > cfgTrackDCArDepPTExp{" cfgTrackDCArDepPTExp" , 0.013 , " Coeff. of transverse DCA for power law term" };
122+
123+ Configurable<bool > cfgTrackDCAzDepPTSel{" cfgTrackDCAzDepPTSel" , false , " Flag for pT dependent longitudinal DCA cut" }; // 7 - sigma cut
124+ Configurable<float > cfgTrackDCAzDepPTP0{" cfgTrackDCAzDepPTP0" , 0.004 , " Coeff. of longitudinal DCA for p0" };
125+ Configurable<float > cfgTrackDCAzDepPTExp{" cfgTrackDCAzDepPTExp" , 0.013 , " Coeff. of longitudinal DCA for power law term" };
126+
118127 // PID Configurables
119128 Configurable<bool > cfgPIDUSETOF{" cfgPIDUSETOF" , true , " TOF usage" };
120129
@@ -294,6 +303,8 @@ struct F0980pbpbanalysis {
294303 if (!pass) {
295304 histos.fill (HIST (" TrackQA/DCArToPv_BC" ), obj.dcaXY ());
296305 histos.fill (HIST (" TrackQA/DCAzToPv_BC" ), obj.dcaZ ());
306+ histos.fill (HIST (" TrackQA/DCArVsPT_BC" ), obj.pt (), obj.dcaXY ());
307+ histos.fill (HIST (" TrackQA/DCAzVsPT_BC" ), obj.pt (), obj.dcaZ ());
297308 histos.fill (HIST (" TrackQA/IsPrim_BC" ), obj.isPrimaryTrack ());
298309 histos.fill (HIST (" TrackQA/IsGood_BC" ), obj.isGlobalTrackWoDCA ());
299310 histos.fill (HIST (" TrackQA/IsPrimCont_BC" ), obj.isPVContributor ());
@@ -304,6 +315,8 @@ struct F0980pbpbanalysis {
304315 } else {
305316 histos.fill (HIST (" TrackQA/DCArToPv_AC" ), obj.dcaXY ());
306317 histos.fill (HIST (" TrackQA/DCAzToPv_AC" ), obj.dcaZ ());
318+ histos.fill (HIST (" TrackQA/DCArVsPT_AC" ), obj.pt (), obj.dcaXY ());
319+ histos.fill (HIST (" TrackQA/DCAzVsPT_AC" ), obj.pt (), obj.dcaZ ());
307320 histos.fill (HIST (" TrackQA/IsPrim_AC" ), obj.isPrimaryTrack ());
308321 histos.fill (HIST (" TrackQA/IsGood_AC" ), obj.isGlobalTrackWoDCA ());
309322 histos.fill (HIST (" TrackQA/IsPrimCont_AC" ), obj.isPVContributor ());
@@ -417,34 +430,46 @@ struct F0980pbpbanalysis {
417430 if (std::abs (track.eta ()) > cfgTrackEtaMax) {
418431 return 0 ;
419432 }
420- if (std::abs ( track.dcaXY ()) > cfgTrackDCArToPVcutMax ) {
433+ if (cfgTrackIsPVContributor && ! track.isPVContributor () ) {
421434 return 0 ;
422435 }
423- if (std::abs ( track.dcaZ ()) > cfgTrackDCAzToPVcutMax ) {
436+ if (cfgTrackIsGlobalWoDCATrack && ! track.isGlobalTrackWoDCA () ) {
424437 return 0 ;
425438 }
426- if (cfgTrackIsPVContributor && ! track.isPVContributor () ) {
439+ if (cfgTrackNTPCCrossedRows > 0 && track.tpcNClsCrossedRows () < cfgTrackNTPCCrossedRows ) {
427440 return 0 ;
428441 }
429- if (cfgTrackIsPrimaryTrack && ! track.isPrimaryTrack () ) {
442+ if (cfgTrackNTPCChi2 > 0 && track.tpcChi2NCl () > cfgTrackNTPCChi2 ) {
430443 return 0 ;
431444 }
432- if (cfgTrackIsGlobalWoDCATrack && ! track.isGlobalTrackWoDCA () ) {
445+ if (cfgTrackNITSChi2 > 0 && track.itsChi2NCl () > cfgTrackNITSChi2 ) {
433446 return 0 ;
434447 }
435- if (cfgTrackNTPCCrossedRows > 0 && track.tpcNClsCrossedRows () < cfgTrackNTPCCrossedRows) {
436- return 0 ;
448+ if (cfgTrackDCArDepPTSel) {
449+ if (std::abs (track.dcaXY ()) > (cfgTrackDCArDepPTP0 + (cfgTrackDCArDepPTExp / track.pt ()))) {
450+ return 0 ;
451+ }
452+ } else {
453+ if (std::abs (track.dcaXY ()) > cfgTrackDCArToPVcutMax) {
454+ return 0 ;
455+ }
437456 }
438- if (cfgTrackNFindableTPCClusters > 0 && track.tpcNClsFindable () < cfgTrackNFindableTPCClusters) {
439- return 0 ;
457+ if (cfgTrackDCAzDepPTSel) {
458+ if (std::abs (track.dcaZ ()) > (cfgTrackDCAzDepPTP0 + (cfgTrackDCAzDepPTExp / track.pt ()))) {
459+ return 0 ;
460+ }
461+ } else {
462+ if (std::abs (track.dcaZ ()) > cfgTrackDCAzToPVcutMax) {
463+ return 0 ;
464+ }
440465 }
441- if (cfgTrackNRowsOverFindable > 0 && track.tpcCrossedRowsOverFindableCls () > cfgTrackNRowsOverFindable ) {
466+ if (cfgTrackIsPrimaryTrack && ! track.isPrimaryTrack () ) {
442467 return 0 ;
443468 }
444- if (cfgTrackNTPCChi2 > 0 && track.tpcChi2NCl () > cfgTrackNTPCChi2 ) {
469+ if (cfgTrackNFindableTPCClusters > 0 && track.tpcNClsFindable () < cfgTrackNFindableTPCClusters ) {
445470 return 0 ;
446471 }
447- if (cfgTrackNITSChi2 > 0 && track.itsChi2NCl () > cfgTrackNITSChi2 ) {
472+ if (cfgTrackNRowsOverFindable > 0 && track.tpcCrossedRowsOverFindableCls () > cfgTrackNRowsOverFindable ) {
448473 return 0 ;
449474 }
450475 return 1 ;
@@ -717,6 +742,8 @@ struct F0980pbpbanalysis {
717742 if (cfgQATrackCut) {
718743 histos.add (" TrackQA/DCArToPv_BC" , " " , {HistType::kTH1F , {histAxisDCAz}});
719744 histos.add (" TrackQA/DCAzToPv_BC" , " " , {HistType::kTH1F , {histAxisDCAz}});
745+ histos.add (" TrackQA/DCArVsPT_BC" , " " , {HistType::kTH2F , {qaPtAxis, histAxisDCAr}});
746+ histos.add (" TrackQA/DCAzVsPT_BC" , " " , {HistType::kTH2F , {qaPtAxis, histAxisDCAz}});
720747 histos.add (" TrackQA/IsPrim_BC" , " " , kTH1F , {{2 , -0.5 , 1.5 }});
721748 histos.add (" TrackQA/IsGood_BC" , " " , kTH1F , {{2 , -0.5 , 1.5 }});
722749 histos.add (" TrackQA/IsPrimCont_BC" , " " , kTH1F , {{2 , -0.5 , 1.5 }});
@@ -728,6 +755,8 @@ struct F0980pbpbanalysis {
728755 //
729756 histos.add (" TrackQA/DCArToPv_AC" , " " , {HistType::kTH1F , {histAxisDCAz}});
730757 histos.add (" TrackQA/DCAzToPv_AC" , " " , {HistType::kTH1F , {histAxisDCAz}});
758+ histos.add (" TrackQA/DCArVsPT_AC" , " " , {HistType::kTH2F , {qaPtAxis, histAxisDCAr}});
759+ histos.add (" TrackQA/DCAzVsPT_AC" , " " , {HistType::kTH2F , {qaPtAxis, histAxisDCAz}});
731760 histos.add (" TrackQA/IsPrim_AC" , " " , kTH1F , {{2 , -0.5 , 1.5 }});
732761 histos.add (" TrackQA/IsGood_AC" , " " , kTH1F , {{2 , -0.5 , 1.5 }});
733762 histos.add (" TrackQA/IsPrimCont_AC" , " " , kTH1F , {{2 , -0.5 , 1.5 }});
0 commit comments