@@ -56,7 +56,9 @@ struct doublephimeson {
5656 ConfigurableAxis configThnAxisInvMass{" configThnAxisInvMass" , {1500 , 2.0 , 3.5 }, " #it{M} (GeV/#it{c}^{2})" };
5757 ConfigurableAxis configThnAxisDaugherPt{" configThnAxisDaugherPt" , {25 , 0.0 , 50 .}, " #it{p}_{T} (GeV/#it{c})" };
5858 ConfigurableAxis configThnAxisPt{" configThnAxisPt" , {40 , 0.0 , 20 .}, " #it{p}_{T} (GeV/#it{c})" };
59- ConfigurableAxis configThnAxisKstar{" configThnAxisKstar" , {50 , 0.0 , 0.5 }, " #it{k}^{*} (GeV/#it{c})" };
59+ // ConfigurableAxis configThnAxisKstar{"configThnAxisKstar", {50, 0.0, 0.5}, "#it{k}^{*} (GeV/#it{c})"};
60+ ConfigurableAxis configThnAxisDeltaR{" configThnAxisDeltaR" , {200 , 0.0 , 2.0 }, " #it{k}^{*} (GeV/#it{c})" };
61+ ConfigurableAxis configThnAxisPhiMult{" configThnAxisPhiMult" , {10 , 0.5 , 10.5 }, " #Phi Multiplicity" };
6062
6163 // Initialize the ananlysis task
6264 void init (o2::framework::InitContext&)
@@ -70,13 +72,13 @@ struct doublephimeson {
7072 const AxisSpec thnAxisInvMass{configThnAxisInvMass, " #it{M} (GeV/#it{c}^{2})" };
7173 const AxisSpec thnAxisDaughterPt{configThnAxisDaugherPt, " #it{p}_{T} (GeV/#it{c})" };
7274 const AxisSpec thnAxisPt{configThnAxisPt, " #it{p}_{T} (GeV/#it{c})" };
73- const AxisSpec thnAxisKstar{configThnAxisKstar, " #it{k}^{*} (GeV/#it{c})" };
75+ // const AxisSpec thnAxisKstar{configThnAxisKstar, "#it{k}^{*} (GeV/#it{c})"};
76+ const AxisSpec thnAxisDeltaR{configThnAxisDeltaR, " #Delta R)" };
77+ const AxisSpec thnAxisPhiMult{configThnAxisPhiMult, " #Phi Multiplicity)" };
7478
75- histos.add (" SEMassUnlike" , " SEMassUnlike" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisDaughterPt, thnAxisDaughterPt, thnAxisKstar});
76- histos.add (" SEMassRot" , " SEMassRot" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisDaughterPt, thnAxisDaughterPt, thnAxisKstar});
77-
78- histos.add (" MEMassUnlike" , " MEMassUnlike" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisDaughterPt, thnAxisDaughterPt, thnAxisKstar});
79- histos.add (" MEMassRot" , " MEMassRot" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisDaughterPt, thnAxisDaughterPt, thnAxisKstar});
79+ histos.add (" SEMassUnlike" , " SEMassUnlike" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisDaughterPt, thnAxisDaughterPt, thnAxisDeltaR, thnAxisPhiMult});
80+ histos.add (" SEMassRot" , " SEMassRot" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisDaughterPt, thnAxisDaughterPt, thnAxisDeltaR, thnAxisPhiMult});
81+ histos.add (" MEMassUnlike" , " MEMassUnlike" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisDaughterPt, thnAxisDaughterPt, thnAxisDeltaR, thnAxisPhiMult});
8082 }
8183
8284 // get kstar
@@ -189,6 +191,7 @@ struct doublephimeson {
189191 if (additionalEvsel && (collision.numPos () < 2 || collision.numNeg () < 2 )) {
190192 return ;
191193 }
194+ auto phimult = phitracks.size ();
192195 for (auto phitrackd1 : phitracks) {
193196 if (phitrackd1.phiMass () < minPhiMass || phitrackd1.phiMass () > maxPhiMass) {
194197 continue ;
@@ -234,10 +237,11 @@ struct doublephimeson {
234237 }
235238 Phid2.SetXYZM (phitrackd2.phiPx (), phitrackd2.phiPy (), phitrackd2.phiPz (), phitrackd2.phiMass ());
236239 exotic = Phid1 + Phid2;
237- auto kstar = getkstar (Phid1, Phid2);
238- histos.fill (HIST (" SEMassUnlike" ), exotic.M (), exotic.Pt (), Phid1.Pt (), Phid2.Pt (), kstar);
240+ // auto kstar = getkstar(Phid1, Phid2);
241+ auto deltaR = TMath::Sqrt (TMath::Power (Phid1.Phi () - Phid2.Phi (), 2.0 ) + TMath::Power (Phid1.Eta () - Phid2.Eta (), 2.0 ));
242+ histos.fill (HIST (" SEMassUnlike" ), exotic.M (), exotic.Pt (), Phid1.Pt (), Phid2.Pt (), deltaR, phimult);
239243 if (fillRotation) {
240- for (int nrotbkg = 0 ; nrotbkg < 9 ; nrotbkg++) {
244+ for (int nrotbkg = 0 ; nrotbkg < 5 ; nrotbkg++) {
241245 auto anglestart = 5.0 * TMath::Pi () / 6.0 ;
242246 auto angleend = 7.0 * TMath::Pi () / 6.0 ;
243247 auto anglestep = (angleend - anglestart) / (1.0 * (9.0 - 1.0 ));
@@ -246,8 +250,9 @@ struct doublephimeson {
246250 auto rotd1py = Phid1.Px () * std::sin (rotangle) + Phid1.Py () * std::cos (rotangle);
247251 Phid1Rot.SetXYZM (rotd1px, rotd1py, Phid1.Pz (), Phid1.M ());
248252 exoticRot = Phid1Rot + Phid2;
249- auto kstar_rot = getkstar (Phid1Rot, Phid2);
250- histos.fill (HIST (" SEMassRot" ), exoticRot.M (), exoticRot.Pt (), Phid1Rot.Pt (), Phid2.Pt (), kstar_rot);
253+ // auto kstar_rot = getkstar(Phid1Rot, Phid2);
254+ auto deltaR_rot = TMath::Sqrt (TMath::Power (Phid1Rot.Phi () - Phid2.Phi (), 2.0 ) + TMath::Power (Phid1Rot.Eta () - Phid2.Eta (), 2.0 ));
255+ histos.fill (HIST (" SEMassRot" ), exoticRot.M (), exoticRot.Pt (), Phid1Rot.Pt (), Phid2.Pt (), deltaR_rot, phimult);
251256 }
252257 }
253258 }
@@ -266,26 +271,31 @@ struct doublephimeson {
266271 if (collision1.index () == collision2.index ()) {
267272 continue ;
268273 }
274+ if (additionalEvsel && (collision1.numPos () < 2 || collision1.numNeg () < 2 )) {
275+ continue ;
276+ }
277+ if (additionalEvsel && (collision2.numPos () < 2 || collision2.numNeg () < 2 )) {
278+ continue ;
279+ }
280+ auto phimult = tracks1.size ();
269281 for (auto & [phitrackd1, phitrackd2] : o2::soa::combinations (o2::soa::CombinationsFullIndexPolicy (tracks1, tracks2))) {
270282 if (phitrackd1.phiMass () < minPhiMass || phitrackd1.phiMass () > maxPhiMass) {
271283 continue ;
272284 }
273-
285+ if (phitrackd2.phiMass () < minPhiMass || phitrackd2.phiMass () > maxPhiMass) {
286+ continue ;
287+ }
274288 auto kaonplusd1pt = TMath::Sqrt (phitrackd1.phid1Px () * phitrackd1.phid1Px () + phitrackd1.phid1Py () * phitrackd1.phid1Py ());
275289 auto kaonminusd1pt = TMath::Sqrt (phitrackd1.phid2Px () * phitrackd1.phid2Px () + phitrackd1.phid2Py () * phitrackd1.phid2Py ());
276290 auto kaonplusd2pt = TMath::Sqrt (phitrackd2.phid1Px () * phitrackd2.phid1Px () + phitrackd2.phid1Py () * phitrackd2.phid1Py ());
277291 auto kaonminusd2pt = TMath::Sqrt (phitrackd2.phid2Px () * phitrackd2.phid2Px () + phitrackd2.phid2Py () * phitrackd2.phid2Py ());
278-
279292 if (!selectionPID (phitrackd1.phid1TPC (), phitrackd1.phid1TOF (), phitrackd1.phid1TOFHit (), strategyPID, kaonplusd1pt)) {
280293 continue ;
281294 }
282295 if (!selectionPID (phitrackd1.phid2TPC (), phitrackd1.phid2TOF (), phitrackd1.phid2TOFHit (), strategyPID, kaonminusd1pt)) {
283296 continue ;
284297 }
285298 Phid1.SetXYZM (phitrackd1.phiPx (), phitrackd1.phiPy (), phitrackd1.phiPz (), phitrackd1.phiMass ());
286- if (phitrackd2.phiMass () < minPhiMass || phitrackd2.phiMass () > maxPhiMass) {
287- continue ;
288- }
289299 if (!selectionPID (phitrackd2.phid1TPC (), phitrackd2.phid1TOF (), phitrackd2.phid1TOFHit (), strategyPID, kaonplusd2pt)) {
290300 continue ;
291301 }
@@ -294,22 +304,9 @@ struct doublephimeson {
294304 }
295305 Phid2.SetXYZM (phitrackd2.phiPx (), phitrackd2.phiPy (), phitrackd2.phiPz (), phitrackd2.phiMass ());
296306 exotic = Phid1 + Phid2;
297- auto kstar = getkstar (Phid1, Phid2);
298- histos.fill (HIST (" MEMassUnlike" ), exotic.M (), exotic.Pt (), Phid1.Pt (), Phid2.Pt (), kstar);
299- if (fillRotation) {
300- for (int nrotbkg = 0 ; nrotbkg < 9 ; nrotbkg++) {
301- auto anglestart = 5.0 * TMath::Pi () / 6.0 ;
302- auto angleend = 7.0 * TMath::Pi () / 6.0 ;
303- auto anglestep = (angleend - anglestart) / (1.0 * (9.0 - 1.0 ));
304- auto rotangle = anglestart + nrotbkg * anglestep;
305- auto rotd1px = Phid1.Px () * std::cos (rotangle) - Phid1.Py () * std::sin (rotangle);
306- auto rotd1py = Phid1.Px () * std::sin (rotangle) + Phid1.Py () * std::cos (rotangle);
307- Phid1Rot.SetXYZM (rotd1px, rotd1py, Phid1.Pz (), Phid1.M ());
308- exoticRot = Phid1Rot + Phid2;
309- auto kstar_rot = getkstar (Phid1Rot, Phid2);
310- histos.fill (HIST (" MEMassRot" ), exoticRot.M (), exoticRot.Pt (), Phid1Rot.Pt (), Phid2.Pt (), kstar_rot);
311- }
312- }
307+ // auto kstar = getkstar(Phid1, Phid2);
308+ auto deltaR = TMath::Sqrt (TMath::Power (Phid1.Phi () - Phid2.Phi (), 2.0 ) + TMath::Power (Phid1.Eta () - Phid2.Eta (), 2.0 ));
309+ histos.fill (HIST (" MEMassUnlike" ), exotic.M (), exotic.Pt (), Phid1.Pt (), Phid2.Pt (), deltaR, phimult);
313310 }
314311 }
315312 }
0 commit comments