@@ -41,7 +41,8 @@ struct doublephimeson {
4141 HistogramRegistry histos{" histos" , {}, OutputObjHandlingPolicy::AnalysisObject};
4242
4343 Configurable<bool > fillRotation{" fillRotation" , 1 , " Fill rotation" };
44- Configurable<int > strategyPID{" strategyPID" , 0 , " PID strategy" };
44+ Configurable<int > strategyPID1{" strategyPID1" , 0 , " PID strategy 1" };
45+ Configurable<int > strategyPID2{" strategyPID2" , 0 , " PID strategy 2" };
4546 Configurable<float > minPhiMass{" minPhiMass" , 1.01 , " Minimum phi mass" };
4647 Configurable<float > maxPhiMass{" maxPhiMass" , 1.03 , " Maximum phi mass" };
4748 Configurable<bool > additionalEvsel{" additionalEvsel" , false , " Additional event selection" };
@@ -54,6 +55,7 @@ struct doublephimeson {
5455
5556 // THnsparse bining
5657 ConfigurableAxis configThnAxisInvMass{" configThnAxisInvMass" , {1500 , 2.0 , 3.5 }, " #it{M} (GeV/#it{c}^{2})" };
58+ ConfigurableAxis configThnAxisInvMassPhi{" configThnAxisInvMassPhi" , {20 , 1.01 , 1.03 }, " #it{M} (GeV/#it{c}^{2})" };
5759 ConfigurableAxis configThnAxisDaugherPt{" configThnAxisDaugherPt" , {25 , 0.0 , 50 .}, " #it{p}_{T} (GeV/#it{c})" };
5860 ConfigurableAxis configThnAxisPt{" configThnAxisPt" , {40 , 0.0 , 20 .}, " #it{p}_{T} (GeV/#it{c})" };
5961 // ConfigurableAxis configThnAxisKstar{"configThnAxisKstar", {50, 0.0, 0.5}, "#it{k}^{*} (GeV/#it{c})"};
@@ -70,6 +72,7 @@ struct doublephimeson {
7072 histos.add (" hPhid2Mass" , " hPhid2Mass" , kTH2F , {{40 , 1.0 , 1 .04f }, {100 , 0 .0f , 10 .0f }});
7173
7274 const AxisSpec thnAxisInvMass{configThnAxisInvMass, " #it{M} (GeV/#it{c}^{2})" };
75+ const AxisSpec thnAxisInvMassPhi{configThnAxisInvMassPhi, " #it{M} (GeV/#it{c}^{2})" };
7376 const AxisSpec thnAxisDaughterPt{configThnAxisDaugherPt, " #it{p}_{T} (GeV/#it{c})" };
7477 const AxisSpec thnAxisPt{configThnAxisPt, " #it{p}_{T} (GeV/#it{c})" };
7578 // const AxisSpec thnAxisKstar{configThnAxisKstar, "#it{k}^{*} (GeV/#it{c})"};
@@ -79,6 +82,7 @@ struct doublephimeson {
7982 histos.add (" SEMassUnlike" , " SEMassUnlike" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisDaughterPt, thnAxisDaughterPt, thnAxisDeltaR, thnAxisPhiMult});
8083 histos.add (" SEMassRot" , " SEMassRot" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisDaughterPt, thnAxisDaughterPt, thnAxisDeltaR, thnAxisPhiMult});
8184 histos.add (" MEMassUnlike" , " MEMassUnlike" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisDaughterPt, thnAxisDaughterPt, thnAxisDeltaR, thnAxisPhiMult});
85+ histos.add (" SEMass" , " SEMass" , HistType::kTHnSparseF , {thnAxisInvMassPhi, thnAxisInvMassPhi, thnAxisDaughterPt, thnAxisDaughterPt});
8286 }
8387
8488 // get kstar
@@ -200,13 +204,13 @@ struct doublephimeson {
200204 auto kaonplusd1pt = TMath::Sqrt (phitrackd1.phid1Px () * phitrackd1.phid1Px () + phitrackd1.phid1Py () * phitrackd1.phid1Py ());
201205 auto kaonminusd1pt = TMath::Sqrt (phitrackd1.phid2Px () * phitrackd1.phid2Px () + phitrackd1.phid2Py () * phitrackd1.phid2Py ());
202206
203- if (!selectionPID (phitrackd1.phid1TPC (), phitrackd1.phid1TOF (), phitrackd1.phid1TOFHit (), strategyPID , kaonplusd1pt)) {
207+ if (!selectionPID (phitrackd1.phid1TPC (), phitrackd1.phid1TOF (), phitrackd1.phid1TOFHit (), strategyPID1 , kaonplusd1pt)) {
204208 continue ;
205209 }
206- if (!selectionPID (phitrackd1.phid2TPC (), phitrackd1.phid2TOF (), phitrackd1.phid2TOFHit (), strategyPID , kaonminusd1pt)) {
210+ if (!selectionPID (phitrackd1.phid2TPC (), phitrackd1.phid2TOF (), phitrackd1.phid2TOFHit (), strategyPID1 , kaonminusd1pt)) {
207211 continue ;
208212 }
209-
213+ // LOGF(info, "pass TOF hit: (%d, %d)", phitrackd1.phid1TOFHit(), phitrackd1.phid2TOFHit());
210214 histos.fill (HIST (" hnsigmaTPCKaonPlus" ), phitrackd1.phid1TPC (), kaonplusd1pt);
211215 histos.fill (HIST (" hnsigmaTPCKaonMinus" ), phitrackd1.phid2TPC (), kaonminusd1pt);
212216 Phid1.SetXYZM (phitrackd1.phiPx (), phitrackd1.phiPy (), phitrackd1.phiPz (), phitrackd1.phiMass ());
@@ -223,10 +227,10 @@ struct doublephimeson {
223227 auto kaonplusd2pt = TMath::Sqrt (phitrackd2.phid1Px () * phitrackd2.phid1Px () + phitrackd2.phid1Py () * phitrackd2.phid1Py ());
224228 auto kaonminusd2pt = TMath::Sqrt (phitrackd2.phid2Px () * phitrackd2.phid2Px () + phitrackd2.phid2Py () * phitrackd2.phid2Py ());
225229
226- if (!selectionPID (phitrackd2.phid1TPC (), phitrackd2.phid1TOF (), phitrackd2.phid1TOFHit (), strategyPID , kaonplusd2pt)) {
230+ if (!selectionPID (phitrackd2.phid1TPC (), phitrackd2.phid1TOF (), phitrackd2.phid1TOFHit (), strategyPID2 , kaonplusd2pt)) {
227231 continue ;
228232 }
229- if (!selectionPID (phitrackd2.phid2TPC (), phitrackd2.phid2TOF (), phitrackd2.phid2TOFHit (), strategyPID , kaonminusd2pt)) {
233+ if (!selectionPID (phitrackd2.phid2TPC (), phitrackd2.phid2TOF (), phitrackd2.phid2TOFHit (), strategyPID2 , kaonminusd2pt)) {
230234 continue ;
231235 }
232236 if (phitrackd1.phid1Index () == phitrackd2.phid1Index ()) {
@@ -240,6 +244,7 @@ struct doublephimeson {
240244 // auto kstar = getkstar(Phid1, Phid2);
241245 auto deltaR = TMath::Sqrt (TMath::Power (Phid1.Phi () - Phid2.Phi (), 2.0 ) + TMath::Power (Phid1.Eta () - Phid2.Eta (), 2.0 ));
242246 histos.fill (HIST (" SEMassUnlike" ), exotic.M (), exotic.Pt (), Phid1.Pt (), Phid2.Pt (), deltaR, phimult);
247+ histos.fill (HIST (" SEMass" ), Phid1.M (), Phid2.M (), Phid1.Pt (), Phid2.Pt ());
243248 if (fillRotation) {
244249 for (int nrotbkg = 0 ; nrotbkg < 5 ; nrotbkg++) {
245250 auto anglestart = 5.0 * TMath::Pi () / 6.0 ;
@@ -289,17 +294,17 @@ struct doublephimeson {
289294 auto kaonminusd1pt = TMath::Sqrt (phitrackd1.phid2Px () * phitrackd1.phid2Px () + phitrackd1.phid2Py () * phitrackd1.phid2Py ());
290295 auto kaonplusd2pt = TMath::Sqrt (phitrackd2.phid1Px () * phitrackd2.phid1Px () + phitrackd2.phid1Py () * phitrackd2.phid1Py ());
291296 auto kaonminusd2pt = TMath::Sqrt (phitrackd2.phid2Px () * phitrackd2.phid2Px () + phitrackd2.phid2Py () * phitrackd2.phid2Py ());
292- if (!selectionPID (phitrackd1.phid1TPC (), phitrackd1.phid1TOF (), phitrackd1.phid1TOFHit (), strategyPID , kaonplusd1pt)) {
297+ if (!selectionPID (phitrackd1.phid1TPC (), phitrackd1.phid1TOF (), phitrackd1.phid1TOFHit (), strategyPID1 , kaonplusd1pt)) {
293298 continue ;
294299 }
295- if (!selectionPID (phitrackd1.phid2TPC (), phitrackd1.phid2TOF (), phitrackd1.phid2TOFHit (), strategyPID , kaonminusd1pt)) {
300+ if (!selectionPID (phitrackd1.phid2TPC (), phitrackd1.phid2TOF (), phitrackd1.phid2TOFHit (), strategyPID1 , kaonminusd1pt)) {
296301 continue ;
297302 }
298303 Phid1.SetXYZM (phitrackd1.phiPx (), phitrackd1.phiPy (), phitrackd1.phiPz (), phitrackd1.phiMass ());
299- if (!selectionPID (phitrackd2.phid1TPC (), phitrackd2.phid1TOF (), phitrackd2.phid1TOFHit (), strategyPID , kaonplusd2pt)) {
304+ if (!selectionPID (phitrackd2.phid1TPC (), phitrackd2.phid1TOF (), phitrackd2.phid1TOFHit (), strategyPID2 , kaonplusd2pt)) {
300305 continue ;
301306 }
302- if (!selectionPID (phitrackd2.phid2TPC (), phitrackd2.phid2TOF (), phitrackd2.phid2TOFHit (), strategyPID , kaonminusd2pt)) {
307+ if (!selectionPID (phitrackd2.phid2TPC (), phitrackd2.phid2TOF (), phitrackd2.phid2TOFHit (), strategyPID2 , kaonminusd2pt)) {
303308 continue ;
304309 }
305310 Phid2.SetXYZM (phitrackd2.phiPx (), phitrackd2.phiPy (), phitrackd2.phiPz (), phitrackd2.phiMass ());
@@ -310,7 +315,7 @@ struct doublephimeson {
310315 }
311316 }
312317 }
313- PROCESS_SWITCH (doublephimeson, processMixedEvent, " Process EventMixing for combinatorial background" , true );
318+ PROCESS_SWITCH (doublephimeson, processMixedEvent, " Process EventMixing for combinatorial background" , false );
314319};
315320
316321WorkflowSpec defineDataProcessing (ConfigContext const & cfgc) { return WorkflowSpec{adaptAnalysisTask<doublephimeson>(cfgc)}; }
0 commit comments