@@ -118,6 +118,7 @@ struct Chk892Flow {
118118 ConfigurableAxis cfgBinsPtQA{" cfgBinsPtQA" , {VARIABLE_WIDTH, 0.0 , 0.2 , 0.4 , 0.6 , 0.8 , 1.0 , 1.2 , 1.4 , 1.6 , 1.8 , 2.0 , 2.2 , 2.4 , 2.6 , 2.8 , 3.0 , 3.2 , 3.4 , 3.6 , 3.8 , 4.0 , 4.2 , 4.4 , 4.6 , 4.8 , 5.0 , 5.2 , 5.4 , 5.6 , 5.8 , 6.0 , 6.2 , 6.4 , 6.6 , 6.8 , 7.0 , 7.2 , 7.4 , 7.6 , 7.8 , 8.0 , 8.2 , 8.4 , 8.6 , 8.8 , 9.0 , 9.2 , 9.4 , 9.6 , 9.8 , 10.0 }, " Binning of the pT axis" };
119119 ConfigurableAxis cfgBinsCent{" cfgBinsCent" , {VARIABLE_WIDTH, 0.0 , 1.0 , 5.0 , 10.0 , 20.0 , 30.0 , 40.0 , 50.0 , 60.0 , 70.0 , 80.0 , 90.0 , 100.0 , 110.0 }, " Binning of the centrality axis" };
120120 ConfigurableAxis cfgBinsVtxZ{" cfgBinsVtxZ" , {VARIABLE_WIDTH, -10.0 , -9.0 , -8.0 , -7.0 , -6.0 , -5.0 , -4.0 , -3.0 , -2.0 , -1.0 , 0.0 , 1.0 , 2.0 , 3.0 , 4.0 , 5.0 , 6.0 , 7.0 , 8.0 , 9.0 , 10.0 }, " Binning of the z-vertex axis" };
121+ ConfigurableAxis cfgBinsOccu{" cfgBinsOccu" , {VARIABLE_WIDTH, 0 , 500 , 1000 , 2500 , 9999 }, " Binning of the occupancy axis" };
121122 Configurable<int > cNbinsDiv{" cNbinsDiv" , 1 , " Integer to divide the number of bins" };
122123 Configurable<int > cNbinsDivQA{" cNbinsDivQA" , 1 , " Integer to divide the number of bins for QA" };
123124 ConfigurableAxis cfgAxisV2{" cfgAxisV2" , {200 , -1 , 1 }, " Binning of the v2 axis (+-1 for EP method)" };
@@ -136,8 +137,8 @@ struct Chk892Flow {
136137 o2::analysis::CollisonCuts colCuts;
137138 struct : ConfigurableGroup {
138139 Configurable<float > cfgEvtZvtx{" cfgEvtZvtx" , 10 .f , " Evt sel: Max. z-Vertex (cm)" };
139- Configurable<int > cfgEvtOccupancyInTimeRangeMax{" cfgEvtOccupancyInTimeRangeMax" , -1 , " Evt sel: maximum track occupancy" };
140- Configurable<int > cfgEvtOccupancyInTimeRangeMin{" cfgEvtOccupancyInTimeRangeMin" , -1 , " Evt sel: minimum track occupancy" };
140+ // Configurable<int> cfgEvtOccupancyInTimeRangeMax{"cfgEvtOccupancyInTimeRangeMax", -1, "Evt sel: maximum track occupancy"};
141+ // Configurable<int> cfgEvtOccupancyInTimeRangeMin{"cfgEvtOccupancyInTimeRangeMin", -1, "Evt sel: minimum track occupancy"};
141142 Configurable<bool > cfgEvtTriggerCheck{" cfgEvtTriggerCheck" , false , " Evt sel: check for trigger" };
142143 Configurable<bool > cfgEvtOfflineCheck{" cfgEvtOfflineCheck" , true , " Evt sel: check for offline selection" };
143144 Configurable<bool > cfgEvtTriggerTVXSel{" cfgEvtTriggerTVXSel" , false , " Evt sel: triggerTVX selection (MB)" };
@@ -257,7 +258,7 @@ struct Chk892Flow {
257258 {
258259 lCentrality = -999 ;
259260
260- colCuts.setCuts (EventCuts.cfgEvtZvtx , EventCuts.cfgEvtTriggerCheck , EventCuts.cfgEvtOfflineCheck , /* checkRun3*/ true , /* triggerTVXsel*/ false , EventCuts.cfgEvtOccupancyInTimeRangeMax , EventCuts.cfgEvtOccupancyInTimeRangeMin );
261+ colCuts.setCuts (EventCuts.cfgEvtZvtx , EventCuts.cfgEvtTriggerCheck , EventCuts.cfgEvtOfflineCheck , /* checkRun3*/ true , /* triggerTVXsel*/ false , /* EventCuts.cfgEvtOccupancyInTimeRangeMax*/ false , /* EventCuts.cfgEvtOccupancyInTimeRangeMin*/ false );
261262 colCuts.init (&histos);
262263 colCuts.setTriggerTVX (EventCuts.cfgEvtTriggerTVXSel );
263264 colCuts.setApplyTFBorderCut (EventCuts.cfgEvtTFBorderCut );
@@ -277,14 +278,15 @@ struct Chk892Flow {
277278 AxisSpec ptAxisQA = {AxisConfig.cfgBinsPtQA , " #it{p}_{T} (GeV/#it{c})" };
278279 AxisSpec v2Axis = {AxisConfig.cfgAxisV2 , " #v_{2}" };
279280 AxisSpec phiAxis = {AxisConfig.cfgAxisPhi , " 2(#phi-#Psi_{2})" };
281+ AxisSpec occuAxis = {AxisConfig.cfgBinsOccu , " Occupancy" };
280282 AxisSpec radiusAxis = {50 , 0 , 5 , " Radius (cm)" };
281283 AxisSpec cpaAxis = {30 , 0.97 , 1.0 , " CPA" };
282284 AxisSpec tauAxis = {250 , 0 , 25 , " Lifetime (cm)" };
283285 AxisSpec dcaAxis = {100 , 0 , 2 , " DCA (cm)" };
284286 AxisSpec dcaxyAxis = {100 , 0 , 1 , " DCA_{#it{xy}} (cm)" };
285287 AxisSpec dcazAxis = {200 , 0 , 2 , " DCA_{#it{z}} (cm)" };
286288 AxisSpec yAxis = {50 , -1 , 1 , " Rapidity" };
287- AxisSpec invMassAxisK0s = {400 / AxisConfig.cNbinsDiv , 0.3 , 0.7 , " Invariant Mass (GeV/#it{c}^2)" }; // K0s ~497.611
289+ AxisSpec invMassAxisK0s = {800 / AxisConfig.cNbinsDiv , 0.46 , 0.54 , " Invariant Mass (GeV/#it{c}^2)" }; // K0s ~497.611
288290 AxisSpec invMassAxisReso = {900 / AxisConfig.cNbinsDiv , 0 .5f , 1 .4f , " Invariant Mass (GeV/#it{c}^2)" }; // chK(892) ~892
289291 AxisSpec pidQAAxis = {130 / AxisConfig.cNbinsDivQA , -6.5 , 6.5 };
290292
@@ -296,7 +298,8 @@ struct Chk892Flow {
296298 histos.add (" QA/K0sCutCheck" , " Check K0s cut" , HistType::kTH1D , {AxisSpec{13 , -0.5 , 12.5 , " Check" }});
297299 }
298300 histos.add (" QA/before/CentDist" , " Centrality distribution" , {HistType::kTH1D , {centAxis}});
299- histos.add (" QA/before/VtxZ" , " Centrality distribution" , {HistType::kTH1D , {vtxzAxis}});
301+ histos.add (" QA/before/VtxZ" , " z-vertex distribution" , {HistType::kTH1D , {vtxzAxis}});
302+ histos.add (" QA/before/Occupancy" , " Occupancy distribution" , {HistType::kTH1D , {occuAxis}});
300303
301304 // EventPlane
302305 histos.add (" QA/EP/hEPDet" , " Event plane distribution of FT0C (Det = A)" , {HistType::kTH2D , {centAxis, epAxis}});
@@ -443,16 +446,16 @@ struct Chk892Flow {
443446
444447 // Invariant mass nSparse
445448 if (AnalysisConfig.cfgFillAdditionalAxis ) {
446- histos.add (" hInvmass_Kstar" , " Invariant mass of unlike-sign chK(892)" , HistType::kTHnSparseD , {axisType, centAxis, ptAxis, invMassAxisReso, v2Axis, phiAxis});
447- histos.add (" hInvmass_K0s" , " Invariant mass of unlike-sign K0s" , HistType::kTHnSparseD , {centAxis, ptAxis, invMassAxisK0s, v2Axis, phiAxis});
449+ histos.add (" hInvmass_Kstar" , " Invariant mass of unlike-sign chK(892)" , HistType::kTHnSparseD , {axisType, centAxis, ptAxis, invMassAxisReso, v2Axis, phiAxis, occuAxis });
450+ histos.add (" hInvmass_K0s" , " Invariant mass of unlike-sign K0s" , HistType::kTHnSparseD , {centAxis, ptAxis, invMassAxisK0s, v2Axis, phiAxis, occuAxis });
448451 if (doprocessMC) {
449- histos.add (" hInvmass_Kstar_MC" , " Invariant mass of unlike chK(892)" , HistType::kTHnSparseD , {axisType, centAxis, ptAxis, invMassAxisReso, v2Axis, phiAxis});
452+ histos.add (" hInvmass_Kstar_MC" , " Invariant mass of unlike chK(892)" , HistType::kTHnSparseD , {axisType, centAxis, ptAxis, invMassAxisReso, v2Axis, phiAxis, occuAxis });
450453 }
451454 } else {
452- histos.add (" hInvmass_Kstar" , " Invariant mass of unlike-sign chK(892)" , HistType::kTHnSparseD , {axisType, centAxis, ptAxis, invMassAxisReso, v2Axis});
453- histos.add (" hInvmass_K0s" , " Invariant mass of unlike-sign K0s" , HistType::kTHnSparseD , {centAxis, ptAxis, invMassAxisK0s, v2Axis});
455+ histos.add (" hInvmass_Kstar" , " Invariant mass of unlike-sign chK(892)" , HistType::kTHnSparseD , {axisType, centAxis, ptAxis, invMassAxisReso, v2Axis, occuAxis });
456+ histos.add (" hInvmass_K0s" , " Invariant mass of unlike-sign K0s" , HistType::kTHnSparseD , {centAxis, ptAxis, invMassAxisK0s, v2Axis, occuAxis });
454457 if (doprocessMC) {
455- histos.add (" hInvmass_Kstar_MC" , " Invariant mass of unlike chK(892)" , HistType::kTHnSparseD , {axisType, centAxis, ptAxis, invMassAxisReso, v2Axis});
458+ histos.add (" hInvmass_Kstar_MC" , " Invariant mass of unlike chK(892)" , HistType::kTHnSparseD , {axisType, centAxis, ptAxis, invMassAxisReso, v2Axis, occuAxis });
456459 }
457460 }
458461
@@ -520,9 +523,9 @@ struct Chk892Flow {
520523 histos.add (" QAMC/kstarv2vsinvmass_noKstar" , " Invariant mass vs v2 of unlike-sign no chK(892)" , HistType::kTH2D , {invMassAxisReso, v2Axis});
521524
522525 if (AnalysisConfig.cfgFillAdditionalAxis ) {
523- histos.add (" hInvmass_Kstar_MC" , " Invariant mass of unlike chK(892)" , HistType::kTHnSparseD , {axisType, centAxis, ptAxis, invMassAxisReso, v2Axis, phiAxis});
526+ histos.add (" hInvmass_Kstar_MC" , " Invariant mass of unlike chK(892)" , HistType::kTHnSparseD , {axisType, centAxis, ptAxis, invMassAxisReso, v2Axis, phiAxis, occuAxis });
524527 } else {
525- histos.add (" hInvmass_Kstar_MC" , " Invariant mass of unlike chK(892)" , HistType::kTHnSparseD , {axisType, centAxis, ptAxis, invMassAxisReso, v2Axis});
528+ histos.add (" hInvmass_Kstar_MC" , " Invariant mass of unlike chK(892)" , HistType::kTHnSparseD , {axisType, centAxis, ptAxis, invMassAxisReso, v2Axis, occuAxis });
526529 }
527530 }
528531
@@ -891,9 +894,15 @@ struct Chk892Flow {
891894 auto trkkPropTau = k0sCand.distovertotmom (collision.posX (), collision.posY (), collision.posZ ()) * MassK0Short;
892895 auto trkkMass = k0sCand.mK0Short ();
893896
894- lResoSecondary.SetXYZM (k0sCand.px (), k0sCand.py (), k0sCand.pz (), MassK0Short);
897+ // lResoSecondary.SetXYZM(k0sCand.px(), k0sCand.py(), k0sCand.pz(), MassK0Short);
898+ lResoSecondary.SetXYZM (k0sCand.px (), k0sCand.py (), k0sCand.pz (), trkkMass);
895899 auto lPhiMinusPsiK0s = RecoDecay::constrainAngle (lResoSecondary.Phi () - lEPDet, 0.0 , 2 ); // constrain angle to range 0, Pi
896- auto v2K0s = std::cos (static_cast <float >(nmode) * lPhiMinusPsiK0s);
900+ // auto v2K0s = std::cos(static_cast<float>(nmode) * lPhiMinusPsiK0s);
901+
902+ float cosNPhi_K0s = std::cos (static_cast <float >(nmode) * lResoSecondary.Phi ());
903+ float sinNPhi_K0s = std::sin (static_cast <float >(nmode) * lResoSecondary.Phi ());
904+
905+ auto v2K0s = cosNPhi_K0s * collision.qvecRe ()[lQvecDetInd] + sinNPhi_K0s * collision.qvecIm ()[lQvecDetInd];
897906 if constexpr (!IsMix) {
898907 if (AnalysisConfig.cfgFillQAPlots ) {
899908 // Seconddary QA plots
@@ -962,15 +971,15 @@ struct Chk892Flow {
962971
963972 histos.fill (HIST (" QA/after/k0sv2vsinvmass" ), lResoSecondary.M (), v2K0s);
964973 if (AnalysisConfig.cfgFillAdditionalAxis ) {
965- histos.fill (HIST (" hInvmass_K0s" ), lCentrality, lResoSecondary.Pt (), lResoSecondary.M (), v2K0s, static_cast <float >(nmode) * lPhiMinusPsiK0s);
974+ histos.fill (HIST (" hInvmass_K0s" ), lCentrality, lResoSecondary.Pt (), lResoSecondary.M (), v2K0s, static_cast <float >(nmode) * lPhiMinusPsiK0s, collision. trackOccupancyInTimeRange () );
966975 } else {
967- histos.fill (HIST (" hInvmass_K0s" ), lCentrality, lResoSecondary.Pt (), lResoSecondary.M (), v2K0s);
976+ histos.fill (HIST (" hInvmass_K0s" ), lCentrality, lResoSecondary.Pt (), lResoSecondary.M (), v2K0s, collision. trackOccupancyInTimeRange () );
968977 }
969978 }
970979 if (AnalysisConfig.cfgFillAdditionalAxis ) {
971- histos.fill (HIST (" hInvmass_K0s" ), lCentrality, lResoSecondary.Pt (), lResoSecondary.M (), v2K0s, static_cast <float >(nmode) * lPhiMinusPsiK0s);
980+ histos.fill (HIST (" hInvmass_K0s" ), lCentrality, lResoSecondary.Pt (), lResoSecondary.M (), v2K0s, static_cast <float >(nmode) * lPhiMinusPsiK0s, collision. trackOccupancyInTimeRange () );
972981 } else {
973- histos.fill (HIST (" hInvmass_K0s" ), lCentrality, lResoSecondary.Pt (), lResoSecondary.M (), v2K0s);
982+ histos.fill (HIST (" hInvmass_K0s" ), lCentrality, lResoSecondary.Pt (), lResoSecondary.M (), v2K0s, collision. trackOccupancyInTimeRange () );
974983 }
975984 k0sIndicies.push_back (k0sCand.index ());
976985 }
@@ -980,9 +989,11 @@ struct Chk892Flow {
980989 for (const auto & k0sIndex : k0sIndicies) {
981990 auto bTrack = dTracks1.rawIteratorAt (trackIndex);
982991 auto k0sCand = dTracks2.rawIteratorAt (k0sIndex);
992+ auto trkkMass = k0sCand.mK0Short ();
983993
984994 lDecayDaughter_bach.SetXYZM (bTrack.px (), bTrack.py (), bTrack.pz (), MassPionCharged);
985- lResoSecondary.SetXYZM (k0sCand.px (), k0sCand.py (), k0sCand.pz (), MassK0Short);
995+ // lResoSecondary.SetXYZM(k0sCand.px(), k0sCand.py(), k0sCand.pz(), MassK0Short);
996+ lResoSecondary.SetXYZM (k0sCand.px (), k0sCand.py (), k0sCand.pz (), trkkMass);
986997 lResoKstar = lResoSecondary + lDecayDaughter_bach;
987998 auto resoPhi = lResoKstar.Phi ();
988999 // EP method
@@ -1016,9 +1027,9 @@ struct Chk892Flow {
10161027 histos.fill (HIST (" QA/after/kstarv2vsinvmass" ), lResoKstar.M (), resoFlowValue);
10171028 }
10181029 if (AnalysisConfig.cfgFillAdditionalAxis ) {
1019- histos.fill (HIST (" hInvmass_Kstar" ), typeKstar, lCentrality, lResoKstar.Pt (), lResoKstar.M (), resoFlowValue, static_cast <float >(nmode) * lPhiMinusPsiKstar);
1030+ histos.fill (HIST (" hInvmass_Kstar" ), typeKstar, lCentrality, lResoKstar.Pt (), lResoKstar.M (), resoFlowValue, static_cast <float >(nmode) * lPhiMinusPsiKstar, collision. trackOccupancyInTimeRange () );
10201031 } else {
1021- histos.fill (HIST (" hInvmass_Kstar" ), typeKstar, lCentrality, lResoKstar.Pt (), lResoKstar.M (), resoFlowValue);
1032+ histos.fill (HIST (" hInvmass_Kstar" ), typeKstar, lCentrality, lResoKstar.Pt (), lResoKstar.M (), resoFlowValue, collision. trackOccupancyInTimeRange () );
10221033 }
10231034
10241035 if (BkgEstimationConfig.cfgFillRotBkg ) {
@@ -1046,9 +1057,9 @@ struct Chk892Flow {
10461057 }
10471058 typeKstar = bTrack.sign () > 0 ? BinType::kKstarP_Rot : BinType::kKstarN_Rot ;
10481059 if (AnalysisConfig.cfgFillAdditionalAxis ) {
1049- histos.fill (HIST (" hInvmass_Kstar" ), typeKstar, lCentrality, lResonanceRot.Pt (), lResonanceRot.M (), resoFlowValue, static_cast <float >(nmode) * lPhiMinusPsiKstar);
1060+ histos.fill (HIST (" hInvmass_Kstar" ), typeKstar, lCentrality, lResonanceRot.Pt (), lResonanceRot.M (), resoFlowValue, static_cast <float >(nmode) * lPhiMinusPsiKstar, collision. trackOccupancyInTimeRange () );
10501061 } else {
1051- histos.fill (HIST (" hInvmass_Kstar" ), typeKstar, lCentrality, lResonanceRot.Pt (), lResonanceRot.M (), resoFlowValue);
1062+ histos.fill (HIST (" hInvmass_Kstar" ), typeKstar, lCentrality, lResonanceRot.Pt (), lResonanceRot.M (), resoFlowValue, collision. trackOccupancyInTimeRange () );
10521063 }
10531064 }
10541065 }
0 commit comments