@@ -424,6 +424,12 @@ struct FlowGfwV02 {
424424 registry.add (" analysis/charged/ptA" , " " , {HistType::kTProfile3D , {bsAxis, centAxis, nchAxis}});
425425 registry.add (" analysis/charged/ptB" , " " , {HistType::kTProfile3D , {bsAxis, centAxis, nchAxis}});
426426 registry.add (" analysis/charged/ptAB" , " " , {HistType::kTProfile3D , {bsAxis, centAxis, nchAxis}});
427+ if (cfgUseMultiplicityFracWeights){
428+ registry.add (" analysis/charged/nchA2pc" , " " , {HistType::kTProfile3D , {bsAxis, ptAxis, centAxis}});
429+ registry.add (" analysis/charged/nchB2pc" , " " , {HistType::kTProfile3D , {bsAxis, ptAxis, centAxis}});
430+ registry.add (" analysis/charged/ptA2pc" , " " , {HistType::kTProfile3D , {bsAxis, centAxis, nchAxis}});
431+ registry.add (" analysis/charged/ptB2pc" , " " , {HistType::kTProfile3D , {bsAxis, centAxis, nchAxis}});
432+ }
427433
428434 registry.addClone (" analysis/charged/" , " analysis/pion/" );
429435 registry.addClone (" analysis/charged/" , " analysis/kaon/" );
@@ -888,60 +894,98 @@ struct FlowGfwV02 {
888894 if (!(pidStates.hPtForward [normIndex]->Integral () > 0 ) || !(pidStates.hPtBackward [normIndex]->Integral () > 0 )) {
889895 continue ; // Forward or backward pT distribution is not defined
890896 }
897+ double WeightA = 1.0 ;
898+ double WeightB = 1.0 ;
899+ if (cfgUseMultiplicityFracWeights) {
900+ WeightA = pidStates.hPtForward [PidCharged]->Integral ();
901+ WeightB = pidStates.hPtBackward [PidCharged]->Integral ();
902+ }
891903 for (int i = 1 ; i <= fSecondAxis ->GetNbins (); i++) {
892904 ptFractionForward = pidStates.hPtForward [pid]->GetBinContent (i) / pidStates.hPtForward [normIndex]->Integral ();
893905 ptFractionBackward = pidStates.hPtBackward [pid]->GetBinContent (i) / pidStates.hPtBackward [normIndex]->Integral ();
894906 v0corrAB = ptFractionForward * ptMeanBackward;
895907 v0corrBA = ptFractionBackward * ptMeanForward;
896908 switch (pid) {
897909 case PidCharged:
898- registry.fill (HIST (" analysis/charged/v0AB" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, v0corrAB);
899- registry.fill (HIST (" analysis/charged/v0BA" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, v0corrBA);
900- registry.fill (HIST (" analysis/charged/nchA" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, ptFractionForward);
901- registry.fill (HIST (" analysis/charged/nchB" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, ptFractionBackward);
910+ registry.fill (HIST (" analysis/charged/v0AB" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, v0corrAB, WeightA * WeightB);
911+ registry.fill (HIST (" analysis/charged/v0BA" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, v0corrBA, WeightA * WeightB);
912+ registry.fill (HIST (" analysis/charged/nchA" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, ptFractionForward, WeightA);
913+ registry.fill (HIST (" analysis/charged/nchB" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, ptFractionBackward, WeightB);
914+ if (cfgUseMultiplicityFracWeights) {
915+ registry.fill (HIST (" analysis/charged/nchA2pc" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, ptFractionForward, WeightA * WeightB);
916+ registry.fill (HIST (" analysis/charged/nchB2pc" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, ptFractionBackward, WeightA * WeightB);
917+ }
902918 break ;
903919 case PidPions:
904- registry.fill (HIST (" analysis/pion/v0AB" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, v0corrAB);
905- registry.fill (HIST (" analysis/pion/v0BA" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, v0corrBA);
906- registry.fill (HIST (" analysis/pion/nchA" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, ptFractionForward);
907- registry.fill (HIST (" analysis/pion/nchB" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, ptFractionBackward);
920+ registry.fill (HIST (" analysis/pion/v0AB" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, v0corrAB, WeightA * WeightB);
921+ registry.fill (HIST (" analysis/pion/v0BA" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, v0corrBA, WeightA * WeightB);
922+ registry.fill (HIST (" analysis/pion/nchA" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, ptFractionForward, WeightA);
923+ registry.fill (HIST (" analysis/pion/nchB" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, ptFractionBackward, WeightB);
924+ if (cfgUseMultiplicityFracWeights) {
925+ registry.fill (HIST (" analysis/pion/nchA2pc" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, ptFractionForward, WeightA * WeightB);
926+ registry.fill (HIST (" analysis/pion/nchB2pc" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, ptFractionBackward, WeightA * WeightB);
927+ }
908928 break ;
909929 case PidKaons:
910- registry.fill (HIST (" analysis/kaon/v0AB" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, v0corrAB);
911- registry.fill (HIST (" analysis/kaon/v0BA" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, v0corrBA);
912- registry.fill (HIST (" analysis/kaon/nchA" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, ptFractionForward);
913- registry.fill (HIST (" analysis/kaon/nchB" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, ptFractionBackward);
930+ registry.fill (HIST (" analysis/kaon/v0AB" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, v0corrAB, WeightA * WeightB);
931+ registry.fill (HIST (" analysis/kaon/v0BA" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, v0corrBA, WeightA * WeightB);
932+ registry.fill (HIST (" analysis/kaon/nchA" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, ptFractionForward, WeightA);
933+ registry.fill (HIST (" analysis/kaon/nchB" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, ptFractionBackward, WeightB);
934+ if (cfgUseMultiplicityFracWeights) {
935+ registry.fill (HIST (" analysis/kaon/nchA2pc" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, ptFractionForward, WeightA * WeightB);
936+ registry.fill (HIST (" analysis/kaon/nchB2pc" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, ptFractionBackward, WeightA * WeightB);
937+ }
914938 break ;
915939 case PidProtons:
916- registry.fill (HIST (" analysis/proton/v0AB" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, v0corrAB);
917- registry.fill (HIST (" analysis/proton/v0BA" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, v0corrBA);
918- registry.fill (HIST (" analysis/proton/nchA" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, ptFractionForward);
919- registry.fill (HIST (" analysis/proton/nchB" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, ptFractionBackward);
940+ registry.fill (HIST (" analysis/proton/v0AB" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, v0corrAB, WeightA * WeightB);
941+ registry.fill (HIST (" analysis/proton/v0BA" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, v0corrBA, WeightA * WeightB);
942+ registry.fill (HIST (" analysis/proton/nchA" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, ptFractionForward, WeightA);
943+ registry.fill (HIST (" analysis/proton/nchB" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, ptFractionBackward, WeightB);
944+ if (cfgUseMultiplicityFracWeights) {
945+ registry.fill (HIST (" analysis/proton/nchA2pc" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, ptFractionForward, WeightA * WeightB);
946+ registry.fill (HIST (" analysis/proton/nchB2pc" ), bootstrap, fSecondAxis ->GetBinCenter (i), centmult, ptFractionBackward, WeightA * WeightB);
947+ }
920948 break ;
921949 default :
922950 break ;
923951 }
924952 }
925953 switch (pid) {
926954 case PidCharged:
927- registry.fill (HIST (" analysis/charged/ptA" ), bootstrap, centmult, multiplicity, ptMeanForward);
928- registry.fill (HIST (" analysis/charged/ptB" ), bootstrap, centmult, multiplicity, ptMeanBackward);
929- registry.fill (HIST (" analysis/charged/ptAB" ), bootstrap, centmult, multiplicity, ptMeanForward * ptMeanBackward);
955+ registry.fill (HIST (" analysis/charged/ptA" ), bootstrap, centmult, multiplicity, ptMeanForward, WeightA);
956+ registry.fill (HIST (" analysis/charged/ptB" ), bootstrap, centmult, multiplicity, ptMeanBackward, WeightB);
957+ if (cfgUseMultiplicityFracWeights) {
958+ registry.fill (HIST (" analysis/charged/ptA2pc" ), bootstrap, centmult, multiplicity, ptMeanForward, WeightA * WeightB);
959+ registry.fill (HIST (" analysis/charged/ptB2pc" ), bootstrap, centmult, multiplicity, ptMeanBackward, WeightA * WeightB);
960+ }
961+ registry.fill (HIST (" analysis/charged/ptAB" ), bootstrap, centmult, multiplicity, ptMeanForward * ptMeanBackward, WeightA * WeightB);
930962 break ;
931963 case PidPions:
932- registry.fill (HIST (" analysis/pion/ptA" ), bootstrap, centmult, multiplicity, ptMeanForward);
933- registry.fill (HIST (" analysis/pion/ptB" ), bootstrap, centmult, multiplicity, ptMeanBackward);
934- registry.fill (HIST (" analysis/pion/ptAB" ), bootstrap, centmult, multiplicity, ptMeanForward * ptMeanBackward);
964+ registry.fill (HIST (" analysis/pion/ptA" ), bootstrap, centmult, multiplicity, ptMeanForward, WeightA);
965+ registry.fill (HIST (" analysis/pion/ptB" ), bootstrap, centmult, multiplicity, ptMeanBackward, WeightB);
966+ if (cfgUseMultiplicityFracWeights) {
967+ registry.fill (HIST (" analysis/pion/ptA2pc" ), bootstrap, centmult, multiplicity, ptMeanForward, WeightA * WeightB);
968+ registry.fill (HIST (" analysis/pion/ptB2pc" ), bootstrap, centmult, multiplicity, ptMeanBackward, WeightA * WeightB);
969+ }
970+ registry.fill (HIST (" analysis/pion/ptAB" ), bootstrap, centmult, multiplicity, ptMeanForward * ptMeanBackward, WeightA * WeightB);
935971 break ;
936972 case PidKaons:
937- registry.fill (HIST (" analysis/kaon/ptA" ), bootstrap, centmult, multiplicity, ptMeanForward);
938- registry.fill (HIST (" analysis/kaon/ptB" ), bootstrap, centmult, multiplicity, ptMeanBackward);
939- registry.fill (HIST (" analysis/kaon/ptAB" ), bootstrap, centmult, multiplicity, ptMeanForward * ptMeanBackward);
973+ registry.fill (HIST (" analysis/kaon/ptA" ), bootstrap, centmult, multiplicity, ptMeanForward, WeightA);
974+ registry.fill (HIST (" analysis/kaon/ptB" ), bootstrap, centmult, multiplicity, ptMeanBackward, WeightB);
975+ if (cfgUseMultiplicityFracWeights) {
976+ registry.fill (HIST (" analysis/kaon/ptA2pc" ), bootstrap, centmult, multiplicity, ptMeanForward, WeightA * WeightB);
977+ registry.fill (HIST (" analysis/kaon/ptB2pc" ), bootstrap, centmult, multiplicity, ptMeanBackward, WeightA * WeightB);
978+ }
979+ registry.fill (HIST (" analysis/kaon/ptAB" ), bootstrap, centmult, multiplicity, ptMeanForward * ptMeanBackward, WeightA * WeightB);
940980 break ;
941981 case PidProtons:
942- registry.fill (HIST (" analysis/proton/ptA" ), bootstrap, centmult, multiplicity, ptMeanForward);
943- registry.fill (HIST (" analysis/proton/ptB" ), bootstrap, centmult, multiplicity, ptMeanBackward);
944- registry.fill (HIST (" analysis/proton/ptAB" ), bootstrap, centmult, multiplicity, ptMeanForward * ptMeanBackward);
982+ registry.fill (HIST (" analysis/proton/ptA" ), bootstrap, centmult, multiplicity, ptMeanForward, WeightA);
983+ registry.fill (HIST (" analysis/proton/ptB" ), bootstrap, centmult, multiplicity, ptMeanBackward, WeightB);
984+ if (cfgUseMultiplicityFracWeights) {
985+ registry.fill (HIST (" analysis/proton/ptA2pc" ), bootstrap, centmult, multiplicity, ptMeanForward, WeightA * WeightB);
986+ registry.fill (HIST (" analysis/proton/ptB2pc" ), bootstrap, centmult, multiplicity, ptMeanBackward, WeightA * WeightB);
987+ }
988+ registry.fill (HIST (" analysis/proton/ptAB" ), bootstrap, centmult, multiplicity, ptMeanForward * ptMeanBackward, WeightA * WeightB);
945989 break ;
946990 default :
947991 break ;
0 commit comments