3535
3636#include " TFile.h"
3737
38+ #include < algorithm>
3839#include < chrono>
3940#include < cmath>
4041#include < cstdint>
@@ -91,6 +92,7 @@ struct PseudorapidityDensityMFT {
9192 " max allowed Z difference for reconstructed collisions (cm)" };
9293
9394 Configurable<bool > usePhiCut{" usePhiCut" , true , " use azimuthal angle cut" };
95+ Configurable<bool > useDCAxyCut{" useDCAxyCut" , false , " use DCAxy cut" };
9496 Configurable<float > cfgPhiCut{" cfgPhiCut" , 0 .1f ,
9597 " Cut on azimuthal angle of MFT tracks" };
9698 Configurable<float > cfgPhiCut1{" cfgPhiCut1" , 0 .0f ,
@@ -108,6 +110,7 @@ struct PseudorapidityDensityMFT {
108110 Configurable<float > cfgnEta2{" cfgnEta2" , -1 .0f ,
109111 " Cut on eta1" };
110112 Configurable<float > cfgChi2NDFMax{" cfgChi2NDFMax" , 2000 .0f , " Max allowed chi2/NDF for MFT tracks" };
113+ Configurable<float > maxDCAxy{" maxDCAxy" , 2 .0f , " Cut on dcaXY" };
111114
112115 HistogramRegistry registry{
113116 " registry" ,
@@ -588,6 +591,11 @@ struct PseudorapidityDensityMFT {
588591 if ((phi <= 0.02 ) || ((phi >= 3.10 ) && (phi <= 3.23 )) || (phi >= 6.21 ))
589592 continue ;
590593 }
594+ float dcaxy_cut = retrack.bestDCAXY ();
595+ if (useDCAxyCut) {
596+ if (dcaxy_cut > maxDCAxy)
597+ continue ;
598+ }
591599 if ((cfgnEta1 < track.eta ()) && (track.eta () < cfgnEta2) && track.nClusters () >= cfgnCluster && retrack.ambDegree () > 0 && chi2ndf < cfgChi2NDFMax && (phi > cfgPhiCut1 && phi < cfgPhiCut2)) {
592600 registry.fill (HIST (" Tracks/2Danalysis/EtaZvtx" ), track.eta (), z);
593601 }
@@ -628,6 +636,11 @@ struct PseudorapidityDensityMFT {
628636 if ((phi <= 0.02 ) || ((phi >= 3.10 ) && (phi <= 3.23 )) || (phi >= 6.21 ))
629637 continue ;
630638 }
639+ float dcaxy_cut = retrack.bestDCAXY ();
640+ if (useDCAxyCut) {
641+ if (dcaxy_cut > maxDCAxy)
642+ continue ;
643+ }
631644 if ((cfgnEta1 < track.eta ()) && (track.eta () < cfgnEta2) && track.nClusters () >= cfgnCluster && retrack.ambDegree () > 0 && chi2ndf < cfgChi2NDFMax && (phi > cfgPhiCut1 && phi < cfgPhiCut2)) {
632645 registry.fill (HIST (" Tracks/Control/Chi2NDF" ), chi2ndf);
633646 registry.fill (HIST (" Tracks/2Danalysis/EtaZvtx_sel8" ), track.eta (), z);
@@ -646,12 +659,17 @@ struct PseudorapidityDensityMFT {
646659 float ndf = std::max (2 .0f * track.nClusters () - 5 .0f , 1 .0f );
647660 float chi2ndf = track.chi2 () / ndf;
648661 float phi = track.phi ();
662+ float dcaxy_cut = retrack.bestDCAXY ();
649663 o2::math_utils::bringTo02Pi (phi);
650664 if ((cfgnEta1 < track.eta ()) && (track.eta () < cfgnEta2) && track.nClusters () >= cfgnCluster && chi2ndf < cfgChi2NDFMax && (phi > cfgPhiCut1 && phi < cfgPhiCut2)) {
651665 if (usePhiCut) {
652666 if ((phi <= 0.02 ) || ((phi >= 3.10 ) && (phi <= 3.23 )) || (phi >= 6.21 ))
653667 continue ;
654668 }
669+ if (useDCAxyCut) {
670+ if (dcaxy_cut > maxDCAxy)
671+ continue ;
672+ }
655673 registry.fill (HIST (" TracksEtaZvtx" ), track.eta (), z);
656674 if (midtracks.size () > 0 && retrack.ambDegree () > 0 ) {
657675 registry.fill (HIST (" Tracks/EtaZvtx_gt0" ), track.eta (), z);
0 commit comments