@@ -563,34 +563,34 @@ struct AntinucleiInJets {
563563 registryCorr.add (" q1p_square_fullEvent" , " q1p_square_fullEvent" , HistType::kTHnSparseD , {ptPerNucleonAxis, ptPerNucleonAxis, nBarP2Axis, multiplicityAxis, subsampleAxis});
564564 registryCorr.add (" q1d_q1p_fullEvent" , " q1d_q1p_fullEvent" , HistType::kTHnSparseD , {ptPerNucleonAxis, ptPerNucleonAxis, nBarDnBarPAxis, multiplicityAxis, subsampleAxis});
565565 }
566-
567- // Systematic uncertainties on correlation analysis
568- if (doprocessCorrSyst) {
569-
570- // Axes definitions for multidimensional histogram binning
571- const AxisSpec multiplicityAxis{100 , 0.0 , 100.0 , " multiplicity percentile" };
572- const AxisSpec ptPerNucleonAxis{5 , 0.4 , 0.9 , " {p}_{T}/A (GeV/#it{c})" };
573- const AxisSpec nAntideuteronsAxis{10 , 0.0 , 10.0 , " N_{#bar{d}}" };
574- const AxisSpec nAntiprotonsAxis{10 , 0.0 , 10.0 , " N_{#bar{p}}" };
575- const AxisSpec nBarD2Axis{100 , 0.0 , 100.0 , " N_{#bar{d}}^{i} #times N_{#bar{d}}^{j}" };
576- const AxisSpec nBarP2Axis{100 , 0.0 , 100.0 , " N_{#bar{p}}^{i} #times N_{#bar{p}}^{j}" };
577- const AxisSpec nBarDnBarPAxis{100 , 0.0 , 100.0 , " N_{#bar{d}}^{i} #times N_{#bar{p}}^{j}" };
578- const AxisSpec systAxis{nSyst, 0 , static_cast <double >(nSyst), " Systematic Variation Index" };
579-
580- registryCorr.add (" eventCounter_syst" , " number of events syst" , HistType::kTH1F , {{20 , 0 , 20 , " counter" }});
581- registryCorr.add (" eventCounter_centrality_fullEvent_syst" , " Number of events per centrality (Full Event) Syst" , HistType::kTH2F , {multiplicityAxis, systAxis});
582-
583- // Correlation histograms
584- registryCorr.add (" rho_fullEvent_syst" , " rho_fullEvent_syst" , HistType::kTHnSparseD , {nAntideuteronsAxis, nAntiprotonsAxis, multiplicityAxis, systAxis});
585- registryCorr.add (" rho_netP_netD_fullEvent_syst" , " rho_netP_netD_fullEvent_syst" , HistType::kTH3F , {nAntideuteronsAxis, nAntiprotonsAxis, systAxis});
586-
587- // Efficiency histograms full event
588- registryCorr.add (" q1d_fullEvent_syst" , " q1d_fullEvent_syst" , HistType::kTHnSparseD , {nAntideuteronsAxis, ptPerNucleonAxis, multiplicityAxis, systAxis});
589- registryCorr.add (" q1p_fullEvent_syst" , " q1p_fullEvent_syst" , HistType::kTHnSparseD , {nAntiprotonsAxis, ptPerNucleonAxis, multiplicityAxis, systAxis});
590- registryCorr.add (" q1d_square_fullEvent_syst" , " q1d_square_fullEvent_syst" , HistType::kTHnSparseD , {ptPerNucleonAxis, ptPerNucleonAxis, nBarD2Axis, multiplicityAxis, systAxis});
591- registryCorr.add (" q1p_square_fullEvent_syst" , " q1p_square_fullEvent_syst" , HistType::kTHnSparseD , {ptPerNucleonAxis, ptPerNucleonAxis, nBarP2Axis, multiplicityAxis, systAxis});
592- registryCorr.add (" q1d_q1p_fullEvent_syst" , " q1d_q1p_fullEvent_syst" , HistType::kTHnSparseD , {ptPerNucleonAxis, ptPerNucleonAxis, nBarDnBarPAxis, multiplicityAxis, systAxis});
593- }
566+
567+ // Systematic uncertainties on correlation analysis
568+ if (doprocessCorrSyst) {
569+
570+ // Axes definitions for multidimensional histogram binning
571+ const AxisSpec multiplicityAxis{100 , 0.0 , 100.0 , " multiplicity percentile" };
572+ const AxisSpec ptPerNucleonAxis{5 , 0.4 , 0.9 , " {p}_{T}/A (GeV/#it{c})" };
573+ const AxisSpec nAntideuteronsAxis{10 , 0.0 , 10.0 , " N_{#bar{d}}" };
574+ const AxisSpec nAntiprotonsAxis{10 , 0.0 , 10.0 , " N_{#bar{p}}" };
575+ const AxisSpec nBarD2Axis{100 , 0.0 , 100.0 , " N_{#bar{d}}^{i} #times N_{#bar{d}}^{j}" };
576+ const AxisSpec nBarP2Axis{100 , 0.0 , 100.0 , " N_{#bar{p}}^{i} #times N_{#bar{p}}^{j}" };
577+ const AxisSpec nBarDnBarPAxis{100 , 0.0 , 100.0 , " N_{#bar{d}}^{i} #times N_{#bar{p}}^{j}" };
578+ const AxisSpec systAxis{nSyst, 0 , static_cast <double >(nSyst), " Systematic Variation Index" };
579+
580+ registryCorr.add (" eventCounter_syst" , " number of events syst" , HistType::kTH1F , {{20 , 0 , 20 , " counter" }});
581+ registryCorr.add (" eventCounter_centrality_fullEvent_syst" , " Number of events per centrality (Full Event) Syst" , HistType::kTH2F , {multiplicityAxis, systAxis});
582+
583+ // Correlation histograms
584+ registryCorr.add (" rho_fullEvent_syst" , " rho_fullEvent_syst" , HistType::kTHnSparseD , {nAntideuteronsAxis, nAntiprotonsAxis, multiplicityAxis, systAxis});
585+ registryCorr.add (" rho_netP_netD_fullEvent_syst" , " rho_netP_netD_fullEvent_syst" , HistType::kTH3F , {nAntideuteronsAxis, nAntiprotonsAxis, systAxis});
586+
587+ // Efficiency histograms full event
588+ registryCorr.add (" q1d_fullEvent_syst" , " q1d_fullEvent_syst" , HistType::kTHnSparseD , {nAntideuteronsAxis, ptPerNucleonAxis, multiplicityAxis, systAxis});
589+ registryCorr.add (" q1p_fullEvent_syst" , " q1p_fullEvent_syst" , HistType::kTHnSparseD , {nAntiprotonsAxis, ptPerNucleonAxis, multiplicityAxis, systAxis});
590+ registryCorr.add (" q1d_square_fullEvent_syst" , " q1d_square_fullEvent_syst" , HistType::kTHnSparseD , {ptPerNucleonAxis, ptPerNucleonAxis, nBarD2Axis, multiplicityAxis, systAxis});
591+ registryCorr.add (" q1p_square_fullEvent_syst" , " q1p_square_fullEvent_syst" , HistType::kTHnSparseD , {ptPerNucleonAxis, ptPerNucleonAxis, nBarP2Axis, multiplicityAxis, systAxis});
592+ registryCorr.add (" q1d_q1p_fullEvent_syst" , " q1d_q1p_fullEvent_syst" , HistType::kTHnSparseD , {ptPerNucleonAxis, ptPerNucleonAxis, nBarDnBarPAxis, multiplicityAxis, systAxis});
593+ }
594594 }
595595
596596 void getReweightingHistograms (o2::framework::Service<o2::ccdb::BasicCCDBManager> const & ccdbObj, TString filepath, TString antip, TString antilambda, TString antisigma, TString antixi, TString antiomega, TString jet, TString ue)
@@ -1010,54 +1010,54 @@ struct AntinucleiInJets {
10101010 // High-pt: require valid TOF match and pass TOF PID
10111011 return (track.hasTOF () && std::abs (nsigmaTOF) < NsigmaMax);
10121012 }
1013-
1014- // Selection of (anti)protons with systematic variations
1015- template <typename ProtonTrack>
1016- bool isProtonSyst (const ProtonTrack& track, double minSigTPC, double maxSigTPC, double minSigTOF, double maxSigTOF)
1017- {
1018- // Constant
1019- static constexpr double kPtThreshold = 0.6 ;
1020-
1021- // PID variables and transverse momentum of the track
1022- const double nsigmaTPC = track.tpcNSigmaPr ();
1023- const double nsigmaTOF = track.tofNSigmaPr ();
1024- const double pt = track.pt ();
1025-
1026- // Apply TPC PID cut (with systematic variations)
1027- if (nsigmaTPC < minSigTPC || nsigmaTPC > maxSigTPC)
1028- return false ;
1029-
1030- // Low-pt: TPC PID is sufficient
1031- if (pt < kPtThreshold )
1032- return true ;
1033-
1034- // High-pt: require valid TOF match and pass TOF PID (with systematic variations)
1035- return (track.hasTOF () && nsigmaTOF > minSigTOF && nsigmaTOF < maxSigTOF);
1036- }
10371013
1038- // Selection of (anti)deuterons with systematic variations
1039- template <typename DeuteronTrack>
1040- bool isDeuteronSyst (const DeuteronTrack& track, double minSigTPC, double maxSigTPC, double minSigTOF, double maxSigTOF)
1041- {
1042- // Constant
1043- static constexpr double kPtThreshold = 1.0 ;
1044-
1045- // PID variables and transverse momentum of the track
1046- const double nsigmaTPC = track.tpcNSigmaDe ();
1047- const double nsigmaTOF = track.tofNSigmaDe ();
1048- const double pt = track.pt ();
1049-
1050- // Apply TPC PID cut (with systematic variations)
1051- if (nsigmaTPC < minSigTPC || nsigmaTPC > maxSigTPC)
1052- return false ;
1053-
1054- // Low-pt: TPC PID is sufficient
1055- if (pt < kPtThreshold )
1056- return true ;
1057-
1058- // High-pt: require valid TOF match and pass TOF PID (with systematic variations)
1059- return (track.hasTOF () && nsigmaTOF > minSigTOF && nsigmaTOF < maxSigTOF);
1060- }
1014+ // Selection of (anti)protons with systematic variations
1015+ template <typename ProtonTrack>
1016+ bool isProtonSyst (const ProtonTrack& track, double minSigTPC, double maxSigTPC, double minSigTOF, double maxSigTOF)
1017+ {
1018+ // Constant
1019+ static constexpr double kPtThreshold = 0.6 ;
1020+
1021+ // PID variables and transverse momentum of the track
1022+ const double nsigmaTPC = track.tpcNSigmaPr ();
1023+ const double nsigmaTOF = track.tofNSigmaPr ();
1024+ const double pt = track.pt ();
1025+
1026+ // Apply TPC PID cut (with systematic variations)
1027+ if (nsigmaTPC < minSigTPC || nsigmaTPC > maxSigTPC)
1028+ return false ;
1029+
1030+ // Low-pt: TPC PID is sufficient
1031+ if (pt < kPtThreshold )
1032+ return true ;
1033+
1034+ // High-pt: require valid TOF match and pass TOF PID (with systematic variations)
1035+ return (track.hasTOF () && nsigmaTOF > minSigTOF && nsigmaTOF < maxSigTOF);
1036+ }
1037+
1038+ // Selection of (anti)deuterons with systematic variations
1039+ template <typename DeuteronTrack>
1040+ bool isDeuteronSyst (const DeuteronTrack& track, double minSigTPC, double maxSigTPC, double minSigTOF, double maxSigTOF)
1041+ {
1042+ // Constant
1043+ static constexpr double kPtThreshold = 1.0 ;
1044+
1045+ // PID variables and transverse momentum of the track
1046+ const double nsigmaTPC = track.tpcNSigmaDe ();
1047+ const double nsigmaTOF = track.tofNSigmaDe ();
1048+ const double pt = track.pt ();
1049+
1050+ // Apply TPC PID cut (with systematic variations)
1051+ if (nsigmaTPC < minSigTPC || nsigmaTPC > maxSigTPC)
1052+ return false ;
1053+
1054+ // Low-pt: TPC PID is sufficient
1055+ if (pt < kPtThreshold )
1056+ return true ;
1057+
1058+ // High-pt: require valid TOF match and pass TOF PID (with systematic variations)
1059+ return (track.hasTOF () && nsigmaTOF > minSigTOF && nsigmaTOF < maxSigTOF);
1060+ }
10611061
10621062 // Process Data
10631063 void processData (SelectedCollisions::iterator const & collision, AntiNucleiTracks const & tracks, aod::BCsWithTimestamps const &)
0 commit comments