@@ -132,6 +132,8 @@ struct lambdapolarization {
132132 Configurable<bool > cfgEffCor{" cfgEffCor" , false , " flag to apply efficiency correction" };
133133 Configurable<std::string> cfgEffCorPath{" cfgEffCorPath" , " " , " path for pseudo efficiency correction" };
134134
135+ Configurable<bool > cfgCalcCum{" cfgCalcCum" , false , " flag to calculate cumulants" };
136+
135137 ConfigurableAxis massAxis{" massAxis" , {30 , 1.1 , 1.13 }, " Invariant mass axis" };
136138 ConfigurableAxis ptAxis{" ptAxis" , {VARIABLE_WIDTH, 0.2 , 0.5 , 1.0 , 1.5 , 2.0 , 2.5 , 3.0 , 4.0 , 5.0 , 6.5 , 8.0 , 10.0 , 100.0 }, " Transverse momentum bins" };
137139 ConfigurableAxis centAxis{" centAxis" , {VARIABLE_WIDTH, 0 , 5 , 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 100 }, " Centrality interval" };
@@ -150,6 +152,7 @@ struct lambdapolarization {
150152 float centrality;
151153
152154 double angle;
155+ double psi;
153156 double relphi;
154157
155158 int currentRunNumber = -999 ;
@@ -213,6 +216,40 @@ struct lambdapolarization {
213216 histos.add (" QA/ptspecCor_l" , " " , {HistType::kTH3F , {massAxis, ptAxis, centAxis}});
214217 histos.add (" QA/ptspecCor_al" , " " , {HistType::kTH3F , {massAxis, ptAxis, centAxis}});
215218
219+ if (cfgCalcCum) {
220+ histos.add (" psi2/QA/cosTheta_l" , " " , {HistType::kTHnSparseF , {massAxis, ptAxis, cosAxis, centAxis}});
221+ histos.add (" psi2/QA/cosPsi_l" , " " , {HistType::kTHnSparseF , {massAxis, ptAxis, cosAxis, centAxis}});
222+ histos.add (" psi2/QA/cosPhi_l" , " " , {HistType::kTHnSparseF , {massAxis, ptAxis, cosAxis, centAxis}});
223+
224+ histos.add (" psi2/QA/sinPsi_l" , " " , {HistType::kTHnSparseF , {massAxis, ptAxis, cosAxis, centAxis}});
225+ histos.add (" psi2/QA/sinPhi_l" , " " , {HistType::kTHnSparseF , {massAxis, ptAxis, cosAxis, centAxis}});
226+
227+ histos.add (" psi2/QA/cosTheta_cosPhi_l" , " " , {HistType::kTHnSparseF , {massAxis, ptAxis, cosAxis, centAxis}});
228+ histos.add (" psi2/QA/cosTheta_cosPsi_l" , " " , {HistType::kTHnSparseF , {massAxis, ptAxis, cosAxis, centAxis}});
229+
230+ histos.add (" psi2/QA/cosTheta_sinPhi_l" , " " , {HistType::kTHnSparseF , {massAxis, ptAxis, cosAxis, centAxis}});
231+ histos.add (" psi2/QA/cosTheta_sinPsi_l" , " " , {HistType::kTHnSparseF , {massAxis, ptAxis, cosAxis, centAxis}});
232+
233+ histos.add (" psi2/QA/cosPhi_sinPsi_l" , " " , {HistType::kTHnSparseF , {massAxis, ptAxis, cosAxis, centAxis}});
234+ histos.add (" psi2/QA/sinPhi_cosPsi_l" , " " , {HistType::kTHnSparseF , {massAxis, ptAxis, cosAxis, centAxis}});
235+
236+ histos.add (" psi2/QA/cosTheta_al" , " " , {HistType::kTHnSparseF , {massAxis, ptAxis, cosAxis, centAxis}});
237+ histos.add (" psi2/QA/cosPsi_al" , " " , {HistType::kTHnSparseF , {massAxis, ptAxis, cosAxis, centAxis}});
238+ histos.add (" psi2/QA/cosPhi_al" , " " , {HistType::kTHnSparseF , {massAxis, ptAxis, cosAxis, centAxis}});
239+
240+ histos.add (" psi2/QA/sinPsi_al" , " " , {HistType::kTHnSparseF , {massAxis, ptAxis, cosAxis, centAxis}});
241+ histos.add (" psi2/QA/sinPhi_al" , " " , {HistType::kTHnSparseF , {massAxis, ptAxis, cosAxis, centAxis}});
242+
243+ histos.add (" psi2/QA/cosTheta_cosPhi_al" , " " , {HistType::kTHnSparseF , {massAxis, ptAxis, cosAxis, centAxis}});
244+ histos.add (" psi2/QA/cosTheta_cosPsi_al" , " " , {HistType::kTHnSparseF , {massAxis, ptAxis, cosAxis, centAxis}});
245+
246+ histos.add (" psi2/QA/cosTheta_sinPhi_al" , " " , {HistType::kTHnSparseF , {massAxis, ptAxis, cosAxis, centAxis}});
247+ histos.add (" psi2/QA/cosTheta_sinPsi_al" , " " , {HistType::kTHnSparseF , {massAxis, ptAxis, cosAxis, centAxis}});
248+
249+ histos.add (" psi2/QA/cosPhi_sinPsi_al" , " " , {HistType::kTHnSparseF , {massAxis, ptAxis, cosAxis, centAxis}});
250+ histos.add (" psi2/QA/sinPhi_cosPsi_al" , " " , {HistType::kTHnSparseF , {massAxis, ptAxis, cosAxis, centAxis}});
251+ }
252+
216253 if (cfgQAv0) {
217254 histos.add (" QA/CentDist" , " " , {HistType::kTH1F , {centQaAxis}});
218255 histos.add (" QA/PVzDist" , " " , {HistType::kTH1F , {PVzQaAxis}});
@@ -538,7 +575,8 @@ struct lambdapolarization {
538575 ProtonBoostedVec = boost (ProtonVec);
539576
540577 angle = ProtonBoostedVec.Pz () / ProtonBoostedVec.P ();
541- relphi = TVector2::Phi_0_2pi (static_cast <float >(nmode) * (LambdaVec.Phi () - TMath::ATan2 (collision.qvecIm ()[QvecDetInd], collision.qvecRe ()[QvecDetInd]) / static_cast <float >(nmode)));
578+ psi = TMath::ATan2 (collision.qvecIm ()[QvecDetInd], collision.qvecRe ()[QvecDetInd]) / static_cast <float >(nmode);
579+ relphi = TVector2::Phi_0_2pi (static_cast <float >(nmode) * (LambdaVec.Phi () - psi));
542580
543581 if (cfgShiftCorr) {
544582 auto deltapsiFT0C = 0.0 ;
@@ -591,13 +629,49 @@ struct lambdapolarization {
591629 histos.fill (HIST (" psi2/h_lambda_cossin" ), v0.mLambda (), v0.pt (), angle * TMath::Sin (relphi), centrality, weight);
592630 histos.fill (HIST (" psi2/h_lambda_vncos" ), v0.mLambda (), v0.pt (), TMath::Cos (relphi), centrality, weight);
593631 histos.fill (HIST (" psi2/h_lambda_vnsin" ), v0.mLambda (), v0.pt (), TMath::Sin (relphi), centrality, weight);
632+
633+ if (cfgCalcCum) {
634+ histos.fill (HIST (" psi2/QA/cosTheta_l" ), v0.mLambda (), v0.pt (), angle, centrality);
635+ histos.fill (HIST (" psi2/QA/cosPsi_l" ), v0.mLambda (), v0.pt (), TMath::Cos (psi * 2.0 ), centrality);
636+ histos.fill (HIST (" psi2/QA/cosPhi_l" ), v0.mLambda (), v0.pt (), TMath::Cos (v0.phi () * 2.0 ), centrality);
637+
638+ histos.fill (HIST (" psi2/QA/sinPsi_l" ), v0.mLambda (), v0.pt (), TMath::Sin (psi * 2.0 ), centrality);
639+ histos.fill (HIST (" psi2/QA/sinPhi_l" ), v0.mLambda (), v0.pt (), TMath::Sin (v0.phi () * 2.0 ), centrality);
640+
641+ histos.fill (HIST (" psi2/QA/cosTheta_cosPhi_l" ), v0.mLambda (), v0.pt (), angle * TMath::Cos (v0.phi () * 2.0 ), centrality);
642+ histos.fill (HIST (" psi2/QA/cosTheta_cosPsi_l" ), v0.mLambda (), v0.pt (), angle * TMath::Cos (psi * 2.0 ), centrality);
643+
644+ histos.fill (HIST (" psi2/QA/cosTheta_sinPhi_l" ), v0.mLambda (), v0.pt (), angle * TMath::Sin (v0.phi () * 2.0 ), centrality);
645+ histos.fill (HIST (" psi2/QA/cosTheta_sinPsi_l" ), v0.mLambda (), v0.pt (), angle * TMath::Sin (psi * 2.0 ), centrality);
646+
647+ histos.fill (HIST (" psi2/QA/cosPhi_sinPsi_l" ), v0.mLambda (), v0.pt (), TMath::Cos (v0.phi () * 2.0 ) * TMath::Sin (psi * 2.0 ), centrality);
648+ histos.fill (HIST (" psi2/QA/sinPhi_cosPsi_l" ), v0.mLambda (), v0.pt (), TMath::Sin (v0.phi () * 2.0 ) * TMath::Cos (psi * 2.0 ), centrality);
649+ }
594650 }
595651 if (aLambdaTag) {
596652 histos.fill (HIST (" psi2/h_alambda_cos" ), v0.mAntiLambda (), v0.pt (), angle, centrality, relphi, weight);
597653 histos.fill (HIST (" psi2/h_alambda_cos2" ), v0.mAntiLambda (), v0.pt (), angle * angle, centrality, relphi, weight);
598654 histos.fill (HIST (" psi2/h_alambda_cossin" ), v0.mAntiLambda (), v0.pt (), angle * TMath::Sin (relphi), centrality, weight);
599655 histos.fill (HIST (" psi2/h_alambda_vncos" ), v0.mAntiLambda (), v0.pt (), TMath::Cos (relphi), centrality, weight);
600656 histos.fill (HIST (" psi2/h_alambda_vnsin" ), v0.mAntiLambda (), v0.pt (), TMath::Sin (relphi), centrality, weight);
657+
658+ if (cfgCalcCum) {
659+ histos.fill (HIST (" psi2/QA/cosTheta_al" ), v0.mLambda (), v0.pt (), angle, centrality);
660+ histos.fill (HIST (" psi2/QA/cosPsi_al" ), v0.mLambda (), v0.pt (), TMath::Cos (psi * 2.0 ), centrality);
661+ histos.fill (HIST (" psi2/QA/cosPhi_al" ), v0.mLambda (), v0.pt (), TMath::Cos (v0.phi () * 2.0 ), centrality);
662+
663+ histos.fill (HIST (" psi2/QA/sinPsi_al" ), v0.mLambda (), v0.pt (), TMath::Sin (psi * 2.0 ), centrality);
664+ histos.fill (HIST (" psi2/QA/sinPhi_al" ), v0.mLambda (), v0.pt (), TMath::Sin (v0.phi () * 2.0 ), centrality);
665+
666+ histos.fill (HIST (" psi2/QA/cosTheta_cosPhi_al" ), v0.mLambda (), v0.pt (), angle * TMath::Cos (v0.phi () * 2.0 ), centrality);
667+ histos.fill (HIST (" psi2/QA/cosTheta_cosPsi_al" ), v0.mLambda (), v0.pt (), angle * TMath::Cos (psi * 2.0 ), centrality);
668+
669+ histos.fill (HIST (" psi2/QA/cosTheta_sinPhi_al" ), v0.mLambda (), v0.pt (), angle * TMath::Sin (v0.phi () * 2.0 ), centrality);
670+ histos.fill (HIST (" psi2/QA/cosTheta_sinPsi_al" ), v0.mLambda (), v0.pt (), angle * TMath::Sin (psi * 2.0 ), centrality);
671+
672+ histos.fill (HIST (" psi2/QA/cosPhi_sinPsi_al" ), v0.mLambda (), v0.pt (), TMath::Cos (v0.phi () * 2.0 ) * TMath::Sin (psi * 2.0 ), centrality);
673+ histos.fill (HIST (" psi2/QA/sinPhi_cosPsi_al" ), v0.mLambda (), v0.pt (), TMath::Sin (v0.phi () * 2.0 ) * TMath::Cos (psi * 2.0 ), centrality);
674+ }
601675 }
602676 } else if (nmode == 3 ) {
603677 if (LambdaTag) {
0 commit comments