@@ -81,14 +81,14 @@ struct PseudorapidityDensityMFT {
8181 " eta range for INEL>0 sample definition" };
8282
8383 Configurable<bool > useEvSel{" useEvSel" , true , " use event selection" };
84- Configurable<bool > disableITSROFCut{" disableITSROFCut" , false , " Disable ITS ROC cut for event selection" };
84+ Configurable<bool > disableITSROFCut{" disableITSROFCut" , false , " Disable ITS ROF cut for event selection" };
8585 ConfigurableAxis multBinning{" multBinning" , {701 , -0.5 , 700.5 }, " " };
8686 ConfigurableAxis EtaAxis = {" etaBinning" , {18 , -4.6 , -1 .}, " " };
8787
8888 Configurable<bool > useZDiffCut{" useZDiffCut" , true , " use Z difference cut" };
8989 Configurable<float > maxZDiff{
9090 " maxZDiff" , 1 .0f ,
91- " max allowed Z difference for reconstruced collisions (cm)" };
91+ " max allowed Z difference for reconstructed collisions (cm)" };
9292
9393 Configurable<bool > usePhiCut{" usePhiCut" , false , " use azimuthal angle cut" };
9494 Configurable<float > cfgPhiCut{" cfgPhiCut" , 0 .1f ,
@@ -103,6 +103,8 @@ struct PseudorapidityDensityMFT {
103103 " Cut on eta1" };
104104 Configurable<float > cfgnEta2{" cfgnEta2" , -1 .0f ,
105105 " Cut on eta1" };
106+ Configurable<float > cfgChi2NDFMax{" cfgChi2NDFMax" , 2000 .0f , " Max allowed chi2/NDF for MFT tracks" };
107+
106108 HistogramRegistry registry{
107109 " registry" ,
108110 {
@@ -286,7 +288,9 @@ struct PseudorapidityDensityMFT {
286288 registry.add ({" Tracks/Control/notReassignedVertexCorr" ,
287289 " ; #it{z}_{vtx}^{orig} (cm); #it{z}_{vtx}^{re} (cm)" ,
288290 {HistType::kTH2F , {ZAxis, ZAxis}}});
289-
291+ registry.add ({" Tracks/Control/Chi2NDF" ,
292+ " ; #chi^{2}/ndf" ,
293+ {HistType::kTH1F , {{5000 , 0.0 , 5000.0 }}}});
290294 registry.add ({" Tracks/Control/amb/AmbTracksEtaZvtx" ,
291295 " ; #eta; #it{z}_{vtx} (cm); tracks" ,
292296 {HistType::kTH2F , {EtaAxis, ZAxis}}}); //
@@ -604,7 +608,10 @@ struct PseudorapidityDensityMFT {
604608 int64_t i = 0.0 , j = 0.0 , k = 0.0 ;
605609 for (const auto & retrack : retracks) {
606610 auto track = retrack.mfttrack ();
607- if ((cfgnEta1 < track.eta ()) && (track.eta () < cfgnEta2) && track.nClusters () >= cfgnCluster && retrack.ambDegree () > 0 ) {
611+ float ndf = std::max (2 .0f * track.nClusters () - 5 .0f , 1 .0f );
612+ float chi2ndf = track.chi2 () / ndf;
613+ if ((cfgnEta1 < track.eta ()) && (track.eta () < cfgnEta2) && track.nClusters () >= cfgnCluster && retrack.ambDegree () > 0 && chi2ndf < cfgChi2NDFMax) {
614+ registry.fill (HIST (" Tracks/Control/Chi2NDF" ), chi2ndf);
608615 registry.fill (HIST (" Tracks/2Danalysis/EtaZvtx_sel8" ), track.eta (), z);
609616 if (midtracks.size () > 0 && retrack.ambDegree () > 0 ) {
610617 registry.fill (HIST (" Tracks/2Danalysis/EtaZvtx_sel8_inelgt0" ), track.eta (), z);
@@ -618,8 +625,10 @@ struct PseudorapidityDensityMFT {
618625 }
619626 for (const auto & retrack : retracks) {
620627 auto track = retrack.mfttrack ();
628+ float ndf = std::max (2 .0f * track.nClusters () - 5 .0f , 1 .0f );
629+ float chi2ndf = track.chi2 () / ndf;
621630
622- if ((cfgnEta1 < track.eta ()) && (track.eta () < cfgnEta2) && track.nClusters () >= cfgnCluster) {
631+ if ((cfgnEta1 < track.eta ()) && (track.eta () < cfgnEta2) && track.nClusters () >= cfgnCluster && chi2ndf < cfgChi2NDFMax ) {
623632 registry.fill (HIST (" TracksEtaZvtx" ), track.eta (), z);
624633 if (midtracks.size () > 0 && retrack.ambDegree () > 0 ) {
625634 registry.fill (HIST (" Tracks/EtaZvtx_gt0" ), track.eta (), z);
0 commit comments