@@ -95,17 +95,18 @@ struct HigherMassResonances {
9595 Configurable<bool > qAv0{" qAv0" , false , " qAv0" };
9696 Configurable<bool > qAPID{" qAPID" , true , " qAPID" };
9797 Configurable<bool > qAevents{" qAevents" , false , " QA of events" };
98- Configurable<bool > correlation2Dhist{" correlation2Dhist" , true , " Lamda K0 mass correlation" };
98+ Configurable<bool > qAcorrelation2Dhist{" qAcorrelation2Dhist" , true , " Lamda K0 mass correlation" };
99+ Configurable<bool > qAOptimisation{" qAOptimisation" , false , " QA for optimisation with multiple THnSparse Axes" };
99100 Configurable<bool > isApplyDCAv0topv{" isApplyDCAv0topv" , false , " DCA V0 to PV" };
100101 Configurable<bool > hasTPC{" hasTPC" , false , " TPC" };
101102 Configurable<bool > isselectTWOKsOnly{" isselectTWOKsOnly" , true , " Select only events with two K0s" };
102103 Configurable<bool > isapplyPairRapidityRec{" isapplyPairRapidityRec" , false , " Apply pair rapidity cut on reconstructed mother (after already applying rapidity cut on generated mother)" };
103104 Configurable<bool > isapplyPairRapidityGen{" isapplyPairRapidityGen" , false , " Apply pair rapidity cut on generated mother (before applying rapidity cut on reconstructed mother)" };
104105 Configurable<int > cSelectMultEstimator{" cSelectMultEstimator" , 0 , " Select multiplicity estimator: 0 - FT0M, 1 - FT0A, 2 - FT0C" };
105106 // Configurable<int> configOccCut{"configOccCut", 1000, "Occupancy cut"};
106- Configurable<bool > isVertexTOFMatched{" isVertexTOFMatched" , false , " Vertex TOF Matched" };
107- Configurable<bool > isNoCollInTimeRangeStandard{" isNoCollInTimeRangeStandard" , false , " No collision in time range standard" };
108- Configurable<bool > isSel8{" isSel8" , false , " Event Selection 8" };
107+ // Configurable<bool> isVertexTOFMatched{"isVertexTOFMatched", false, "Vertex TOF Matched"};
108+ // Configurable<bool> isNoCollInTimeRangeStandard{"isNoCollInTimeRangeStandard", false, "No collision in time range standard"};
109+ // Configurable<bool> isSel8{"isSel8", false, "Event Selection 8"};
109110
110111 // Configurables for event selection
111112 // Configurable<bool> isINELgt0{"isINELgt0", true, "INEL>0 selection"};
@@ -128,7 +129,7 @@ struct HigherMassResonances {
128129 Configurable<float > confV0PtMin{" confV0PtMin" , 0 .f , " Minimum transverse momentum of V0" };
129130 Configurable<float > confV0CPAMin{" confV0CPAMin" , 0 .97f , " Minimum CPA of V0" };
130131 Configurable<float > confV0TranRadV0Min{" confV0TranRadV0Min" , 0 .5f , " Minimum transverse radius" };
131- Configurable<float > confV0TranRadV0Max{" confV0TranRadV0Max" , 200 .f , " Maximum transverse radius" };
132+ // Configurable<float> confV0TranRadV0Max{"confV0TranRadV0Max", 200.f, "Maximum transverse radius"};
132133 Configurable<double > cMaxV0LifeTime{" cMaxV0LifeTime" , 15 , " Maximum V0 life time" };
133134 Configurable<double > cSigmaMassKs0{" cSigmaMassKs0" , 4 , " n Sigma cut on Ks0 mass (Mass (Ks) - cSigmaMassKs0*cWidthKs0)" };
134135 Configurable<double > cWidthKs0{" cWidthKs0" , 0.005 , " Width of KS0" };
@@ -146,7 +147,6 @@ struct HigherMassResonances {
146147 // Configurable for track selection and multiplicity
147148 Configurable<float > cfgPTcut{" cfgPTcut" , 0 .2f , " Track PT cut" };
148149 Configurable<int > cfgNmixedEvents{" cfgNmixedEvents" , 5 , " Number of mixed events" };
149- ConfigurableAxis binsCent{" binsCent" , {VARIABLE_WIDTH, 0 ., 5 ., 10 ., 30 ., 50 ., 70 ., 100 ., 110 ., 150 .}, " Binning of the centrality axis" };
150150
151151 // Configurable for MC
152152 // Configurable<bool> isMC{"isMC", false, "Is MC"};
@@ -169,14 +169,18 @@ struct HigherMassResonances {
169169 Configurable<float > competingcascrejlambda{" competingcascrejlambda" , 0.005 , " rejecting competing cascade lambda" };
170170 Configurable<int > tpcCrossedrows{" tpcCrossedrows" , 70 , " TPC crossed rows" };
171171 Configurable<float > tpcCrossedrowsOverfcls{" tpcCrossedrowsOverfcls" , 0.8 , " TPC crossed rows over findable clusters" };
172+ Configurable<int > rotationalCut{" rotationalCut" , 10 , " Cut value (Rotation angle pi - pi/cut and pi + pi/cut)" };
172173
173174 // // Mass and pT axis as configurables
174- Configurable< int > rotationalCut{ " rotationalCut " , 10 , " Cut value (Rotation angle pi - pi/cut and pi + pi/cut) " };
175+ ConfigurableAxis binsCent{ " binsCent " , {VARIABLE_WIDTH, 0 ., 5 ., 10 ., 30 ., 50 ., 70 ., 100 ., 110 ., 150 .}, " Binning of the centrality axis " };
175176 ConfigurableAxis configThnAxisPOL{" configThnAxisPOL" , {20 , -1.0 , 1.0 }, " Costheta axis" };
176177 ConfigurableAxis configThnAxisPhi{" configThnAxisPhi" , {70 , 0 .0f , 7 .0f }, " Phi axis" }; // 0 to 2pi
177178 ConfigurableAxis ksMassBins{" ksMassBins" , {200 , 0 .45f , 0 .55f }, " K0s invariant mass axis" };
178179 ConfigurableAxis cGlueMassBins{" cGlueMassBins" , {200 , 0 .9f , 3 .0f }, " Glueball invariant mass axis" };
179180 ConfigurableAxis cPtBins{" cPtBins" , {200 , 0 .0f , 20 .0f }, " Glueball pT axis" };
181+ ConfigurableAxis configAxisDeltaM{" configAxisDeltaM" , {80 , 0.0 , 0.08 }, " #it{M} (GeV/#it{c}^{2})" };
182+ ConfigurableAxis configAxisAngleSep{" configAngleSep" , {200 , 0.0 , 2.0 }, " Angular separation between V0s" };
183+ ConfigurableAxis configAxisPtCorr{" configAxisPtCorr" , {1000 , 0.0 , 100.0 }, " Pt correlation between two K0s" };
180184
181185 // fixed variables
182186 float rapidityMotherData = 0.5 ;
@@ -216,6 +220,9 @@ struct HigherMassResonances {
216220 AxisSpec multiplicityAxis = {config.binsCent , " Multiplicity Axis" };
217221 AxisSpec thnAxisPOL{config.configThnAxisPOL , " Configurabel theta axis" };
218222 AxisSpec thnAxisPhi = {config.configThnAxisPhi , " Configurabel phi axis" }; // 0 to 2pi
223+ AxisSpec deltaMAxis = {config.configAxisDeltaM , " #Delta M (GeV/#it{c}^{2})" };
224+ AxisSpec angleSepAxis = {config.configAxisAngleSep , " Angular separation between V0s" };
225+ AxisSpec ptCorrAxis = {config.configAxisPtCorr , " Pt correlation between two K0s" };
219226
220227 // THnSparses
221228 std::array<int , 5 > sparses = {config.activateHelicityFrame , config.activateCollinsSoperFrame , config.activateProductionFrame , config.activateBeamAxisFrame , config.activateRandomFrame };
@@ -261,10 +268,10 @@ struct HigherMassResonances {
261268 hCutFlow->GetXaxis ()->SetBinLabel (8 , " Occupancy Cut" );
262269 hCutFlow->GetXaxis ()->SetBinLabel (9 , " rctChecker" );
263270 hCutFlow->GetXaxis ()->SetBinLabel (10 , " kIsTriggerTVX" );
264- hCutFlow->GetXaxis ()->SetBinLabel (11 , " kIsGoodZvtxFT0vsPV" );
265- hCutFlow->GetXaxis ()->SetBinLabel (12 , " IsINELgt0" );
266- hCutFlow->GetXaxis ()->SetBinLabel (13 , " isVertexITSTPC" );
267- hCutFlow->GetXaxis ()->SetBinLabel (14 , " isVertexTOFMatched" );
271+ // hCutFlow->GetXaxis()->SetBinLabel(11, "kIsGoodZvtxFT0vsPV");
272+ // hCutFlow->GetXaxis()->SetBinLabel(12, "IsINELgt0");
273+ // hCutFlow->GetXaxis()->SetBinLabel(13, "isVertexITSTPC");
274+ // hCutFlow->GetXaxis()->SetBinLabel(14, "isVertexTOFMatched");
268275
269276 std::shared_ptr<TH1> hv0label = rEventSelection.get <TH1>(HIST (" htrackscheck_v0" ));
270277 hv0label->GetXaxis ()->SetBinLabel (1 , " All Tracks" );
@@ -313,19 +320,27 @@ struct HigherMassResonances {
313320 hv0labelmcgen->GetXaxis ()->SetBinLabel (8 , " Daughters K0s" );
314321 }
315322
316- hglue.add (" h3glueInvMassDS" , " h3glueInvMassDS" , kTHnSparseF , {multiplicityAxis, ptAxis, glueballMassAxis, thnAxisPOL, thnAxisPhi}, true );
317- hglue.add (" h3glueInvMassME" , " h3glueInvMassME" , kTHnSparseF , {multiplicityAxis, ptAxis, glueballMassAxis, thnAxisPOL, thnAxisPhi}, true );
318- hglue.add (" h3glueInvMassRot" , " h3glueInvMassRot" , kTHnSparseF , {multiplicityAxis, ptAxis, glueballMassAxis, thnAxisPOL, thnAxisPhi}, true );
323+ if (!config.qAOptimisation ) {
324+ hglue.add (" h3glueInvMassDS" , " h3glueInvMassDS" , kTHnSparseF , {multiplicityAxis, ptAxis, glueballMassAxis, thnAxisPOL, thnAxisPhi}, true );
325+ hglue.add (" h3glueInvMassME" , " h3glueInvMassME" , kTHnSparseF , {multiplicityAxis, ptAxis, glueballMassAxis, thnAxisPOL, thnAxisPhi}, true );
326+ hglue.add (" h3glueInvMassRot" , " h3glueInvMassRot" , kTHnSparseF , {multiplicityAxis, ptAxis, glueballMassAxis, thnAxisPOL, thnAxisPhi}, true );
327+ } else {
328+ hglue.add (" h3glueInvMassDS" , " h3glueInvMassDS" , kTHnSparseF , {multiplicityAxis, ptAxis, glueballMassAxis, deltaMAxis, angleSepAxis, ptCorrAxis}, true );
329+ hglue.add (" h3glueInvMassME" , " h3glueInvMassME" , kTHnSparseF , {multiplicityAxis, ptAxis, glueballMassAxis, deltaMAxis, angleSepAxis, ptCorrAxis}, true );
330+ hglue.add (" h3glueInvMassRot" , " h3glueInvMassRot" , kTHnSparseF , {multiplicityAxis, ptAxis, glueballMassAxis, deltaMAxis, angleSepAxis, ptCorrAxis}, true );
331+ }
319332
320333 // K0s topological/PID cuts
321- if (config.correlation2Dhist ) {
334+ if (config.qAcorrelation2Dhist ) {
322335 rKzeroShort.add (" mass_lambda_kshort_before" , " mass under lambda hypotheses and Kshort mass" , kTH2F , {{100 , 0.2 , 0.8 }, {100 , 0.9 , 1.5 }});
323336 rKzeroShort.add (" mass_lambda_kshort_after10" , " mass under lambda hypotheses and Kshort mass" , kTH2F , {{100 , 0.2 , 0.8 }, {100 , 0.9 , 1.5 }});
324337 }
325338 if (config.qAv0 ) {
326339 // Invariant Mass
327340 rKzeroShort.add (" hMassK0Shortbefore" , " hMassK0Shortbefore" , kTHnSparseF , {k0ShortMassAxis, ptAxis});
328341 rKzeroShort.add (" hK0ShortMassCorr" , " hK0ShortMassCorr" , kTH2F , {k0ShortMassAxis, k0ShortMassAxis});
342+ rKzeroShort.add (" hK0ShortMassCorrAfterCut" , " hK0ShortMassCorrAfterCut" , kTH2F , {k0ShortMassAxis, k0ShortMassAxis});
343+ rKzeroShort.add (" hK0sPtCorrelation" , " hK0sPtCorrelation" , kTH1F , {{1000 , 0 .0f , 100 .0f }});
329344 rKzeroShort.add (" hMassK0ShortSelected" , " hMassK0ShortSelected" , kTHnSparseF , {k0ShortMassAxis, ptAxis});
330345 // Topological histograms (after the selection)
331346 rKzeroShort.add (" hDCAV0Daughters" , " DCA between v0 daughters" , {HistType::kTH1F , {{60 , -3 .0f , 3 .0f }}});
@@ -380,8 +395,8 @@ struct HigherMassResonances {
380395 if (fillHist)
381396 rEventSelection.fill (HIST (" hEventCut" ), 1 );
382397
383- if (config.isSel8 && !collision.sel8 ())
384- return false ;
398+ // if (config.isSel8 && !collision.sel8())
399+ // return false;
385400 if (fillHist)
386401 rEventSelection.fill (HIST (" hEventCut" ), 2 );
387402
@@ -426,27 +441,27 @@ struct HigherMassResonances {
426441 // if (config.isGoodZvtxFT0vsPV && !collision.selection_bit(aod::evsel::kIsGoodZvtxFT0vsPV))
427442 // return false;
428443 if (fillHist)
429- rEventSelection.fill (HIST (" hEventCut" ), 10 );
444+ // rEventSelection.fill(HIST("hEventCut"), 10);
430445
431- // if (config.isINELgt0 && !collision.isInelGt0()) {
432- // return false;
433- // }
434- // if (fillHist)
435- rEventSelection.fill (HIST (" hEventCut" ), 11 );
446+ // if (config.isINELgt0 && !collision.isInelGt0()) {
447+ // return false;
448+ // }
449+ // if (fillHist)
450+ // rEventSelection.fill(HIST("hEventCut"), 11);
436451
437- // if (config.isVertexITSTPC && !collision.selection_bit(o2::aod::evsel::kIsVertexITSTPC)) {
438- // return false;
439- // }
440- if (fillHist)
441- rEventSelection.fill (HIST (" hEventCut" ), 12 );
452+ // if (config.isVertexITSTPC && !collision.selection_bit(o2::aod::evsel::kIsVertexITSTPC)) {
453+ // return false;
454+ // }
455+ // if (fillHist)
456+ // rEventSelection.fill(HIST("hEventCut"), 12);
442457
443- if (config.isVertexTOFMatched && !collision.selection_bit (aod::evsel::kIsVertexTOFmatched )) {
444- return false ;
445- }
446- if (fillHist)
447- rEventSelection.fill (HIST (" hEventCut" ), 13 );
458+ // if (config.isVertexTOFMatched && !collision.selection_bit(aod::evsel::kIsVertexTOFmatched)) {
459+ // return false;
460+ // }
461+ // if (fillHist)
462+ // rEventSelection.fill(HIST("hEventCut"), 13);
448463
449- return true ;
464+ return true ;
450465 }
451466
452467 template <typename Collision, typename V0>
@@ -470,7 +485,7 @@ struct HigherMassResonances {
470485 rKzeroShort.fill (HIST (" hDCAV0Daughters" ), candidate.dcaV0daughters ());
471486 rKzeroShort.fill (HIST (" hV0CosPA" ), candidate.v0cosPA ());
472487 }
473- if (config.correlation2Dhist )
488+ if (config.qAcorrelation2Dhist )
474489 rKzeroShort.fill (HIST (" mass_lambda_kshort_before" ), candidate.mK0Short (), candidate.mLambda ());
475490
476491 rEventSelection.fill (HIST (" htrackscheck_v0" ), 0.5 );
@@ -505,9 +520,9 @@ struct HigherMassResonances {
505520 }
506521 rEventSelection.fill (HIST (" htrackscheck_v0" ), 6.5 );
507522
508- if (tranRad > config.confV0TranRadV0Max ) {
509- return false ;
510- }
523+ // if (tranRad > config.confV0TranRadV0Max) {
524+ // return false;
525+ // }
511526 rEventSelection.fill (HIST (" htrackscheck_v0" ), 7.5 );
512527
513528 if (std::fabs (ctauK0s) > config.cMaxV0LifeTime ) {
@@ -520,7 +535,7 @@ struct HigherMassResonances {
520535 }
521536 rEventSelection.fill (HIST (" htrackscheck_v0" ), 9.5 );
522537
523- if (config.correlation2Dhist )
538+ if (config.qAcorrelation2Dhist )
524539 rKzeroShort.fill (HIST (" mass_lambda_kshort_after10" ), candidate.mK0Short (), candidate.mLambda ());
525540
526541 if (config.qAv0 ) {
@@ -1024,12 +1039,44 @@ struct HigherMassResonances {
10241039 }
10251040
10261041 const double deltaMass = deltaM (v1.mK0Short (), v2.mK0Short ());
1027- if (deltaMass > config.cMaxDeltaM ) {
1028- continue ;
1042+ if (!config.qAOptimisation ) {
1043+ if (deltaMass > config.cMaxDeltaM ) {
1044+ continue ;
1045+ }
10291046 }
10301047
1031- if (!config.isselectTWOKsOnly )
1048+ if (config.qAv0 ) {
1049+ rKzeroShort.fill (HIST (" hK0ShortMassCorrAfterCut" ), v1.mK0Short (), v2.mK0Short ());
1050+ }
1051+
1052+ const double ptCorr = std::abs (daughter1.Pt () + daughter2.Pt ()) / mother.Pt ();
1053+ if (config.qAv0 ) {
1054+ rKzeroShort.fill (HIST (" hK0sPtCorrelation" ), ptCorr);
1055+ }
1056+
1057+ if (!config.isselectTWOKsOnly && !config.qAOptimisation )
10321058 fillInvMass (mother, multiplicity, daughter1, daughter2, isMix);
1059+
1060+ if (!config.isselectTWOKsOnly && config.qAOptimisation ) {
1061+ double angSepValue = std::sqrt (TVector2::Phi_mpi_pi (v1.phi () - v2.phi ()) * TVector2::Phi_mpi_pi (v1.phi () - v2.phi ()) + (v1.eta () - v2.eta ()) * (v1.eta () - v2.eta ()));
1062+
1063+ if (std::abs (mother.Rapidity ()) < config.rapidityMotherData ) {
1064+ hglue.fill (HIST (" h3glueInvMassDS" ), multiplicity, mother.Pt (), mother.M (), deltaMass, angSepValue, ptCorr);
1065+ }
1066+
1067+ for (int i = 0 ; i < config.cRotations ; i++) {
1068+ double theta2 = rn->Uniform (o2::constants::math::PI - o2::constants::math::PI / config.rotationalCut , o2::constants::math::PI + o2::constants::math::PI / config.rotationalCut );
1069+
1070+ daughterRot = ROOT::Math::PxPyPzMVector (daughter1.Px () * std::cos (theta2) - daughter1.Py () * std::sin (theta2), daughter1.Px () * std::sin (theta2) + daughter1.Py () * std::cos (theta2), daughter1.Pz (), daughter1.M ());
1071+
1072+ motherRot = daughterRot + daughter2;
1073+
1074+ double pTcorrRot = std::abs (daughterRot.Pt () + daughter2.Pt ()) / motherRot.Pt ();
1075+
1076+ if (motherRot.Rapidity () < config.rapidityMotherData )
1077+ hglue.fill (HIST (" h3glueInvMassRot" ), multiplicity, motherRot.Pt (), motherRot.M (), deltaMass, angSepValue, pTcorrRot);
1078+ }
1079+ }
10331080 }
10341081 int sizeofv0indexes = v0indexes.size ();
10351082 rKzeroShort.fill (HIST (" NksProduced" ), sizeofv0indexes);
@@ -1120,7 +1167,17 @@ struct HigherMassResonances {
11201167
11211168 mother = daughter1 + daughter2; // invariant mass of Kshort pair
11221169 isMix = true ;
1123- fillInvMass (mother, multiplicity, daughter1, daughter2, isMix);
1170+ if (!config.qAOptimisation )
1171+ fillInvMass (mother, multiplicity, daughter1, daughter2, isMix);
1172+
1173+ if (config.qAOptimisation ) {
1174+ double angSepValue = std::sqrt (TVector2::Phi_mpi_pi (daughter1.phi () - daughter2.phi ()) * TVector2::Phi_mpi_pi (daughter1.phi () - daughter2.phi ()) + (daughter1.eta () - daughter2.eta ()) * (daughter1.eta () - daughter2.eta ()));
1175+ const double deltaMass = deltaM (t1.mK0Short (), t2.mK0Short ());
1176+ const double ptCorr = std::abs (daughter1.Pt () + daughter2.Pt ()) / mother.Pt ();
1177+ if (std::abs (mother.Rapidity ()) < config.rapidityMotherData ) {
1178+ hglue.fill (HIST (" h3glueInvMassME" ), multiplicity, mother.Pt (), mother.M (), deltaMass, angSepValue, ptCorr);
1179+ }
1180+ }
11241181 }
11251182 }
11261183 };
@@ -1507,8 +1564,36 @@ struct HigherMassResonances {
15071564 continue ;
15081565 }
15091566
1510- if (!config.isselectTWOKsOnly )
1567+ if (config.qAv0 ) {
1568+ rKzeroShort.fill (HIST (" hK0ShortMassCorrAfterCut" ), v1.mK0Short (), v2.mK0Short ());
1569+ }
1570+
1571+ const double ptCorr = std::abs (daughter1.Pt () + daughter2.Pt ()) / mother.Pt ();
1572+ if (config.qAv0 ) {
1573+ rKzeroShort.fill (HIST (" hK0sPtCorrelation" ), ptCorr);
1574+ }
1575+
1576+ if (!config.isselectTWOKsOnly && !config.qAOptimisation )
15111577 fillInvMass (mother, multiplicity, daughter1, daughter2, isMix);
1578+
1579+ if (!config.isselectTWOKsOnly && config.qAOptimisation ) {
1580+ double angSepValue = std::sqrt (TVector2::Phi_mpi_pi (v1.phi () - v2.phi ()) * TVector2::Phi_mpi_pi (v1.phi () - v2.phi ()) + (v1.eta () - v2.eta ()) * (v1.eta () - v2.eta ()));
1581+
1582+ if (std::abs (mother.Rapidity ()) < config.rapidityMotherData ) {
1583+ hglue.fill (HIST (" h3glueInvMassDS" ), multiplicity, mother.Pt (), mother.M (), deltaMass, angSepValue, ptCorr);
1584+ }
1585+
1586+ for (int i = 0 ; i < config.cRotations ; i++) {
1587+ double theta2 = rn->Uniform (o2::constants::math::PI - o2::constants::math::PI / config.rotationalCut , o2::constants::math::PI + o2::constants::math::PI / config.rotationalCut );
1588+
1589+ daughterRot = ROOT::Math::PxPyPzMVector (daughter1.Px () * std::cos (theta2) - daughter1.Py () * std::sin (theta2), daughter1.Px () * std::sin (theta2) + daughter1.Py () * std::cos (theta2), daughter1.Pz (), daughter1.M ());
1590+
1591+ motherRot = daughterRot + daughter2;
1592+ double pTcorrRot = std::abs (daughterRot.Pt () + daughter2.Pt ()) / motherRot.Pt ();
1593+ if (motherRot.Rapidity () < config.rapidityMotherData )
1594+ hglue.fill (HIST (" h3glueInvMassRot" ), multiplicity, motherRot.Pt (), motherRot.M (), deltaMass, angSepValue, pTcorrRot);
1595+ }
1596+ }
15121597 }
15131598 int sizeofv0indexes = v0indexes.size ();
15141599 rKzeroShort.fill (HIST (" NksProduced" ), sizeofv0indexes);
@@ -1554,7 +1639,17 @@ struct HigherMassResonances {
15541639
15551640 mother = daughter1 + daughter2; // invariant mass of Kshort pair
15561641 isMix = true ;
1557- fillInvMass (mother, multiplicity, daughter1, daughter2, isMix);
1642+ if (!config.qAOptimisation )
1643+ fillInvMass (mother, multiplicity, daughter1, daughter2, isMix);
1644+
1645+ if (config.qAOptimisation ) {
1646+ double angSepValue = std::sqrt (TVector2::Phi_mpi_pi (daughter1.phi () - daughter2.phi ()) * TVector2::Phi_mpi_pi (daughter1.phi () - daughter2.phi ()) + (daughter1.eta () - daughter2.eta ()) * (daughter1.eta () - daughter2.eta ()));
1647+ const double deltaMass = deltaM (t1.mK0Short (), t2.mK0Short ());
1648+ const double ptCorr = std::abs (daughter1.Pt () + daughter2.Pt ()) / mother.Pt ();
1649+ if (std::abs (mother.Rapidity ()) < config.rapidityMotherData ) {
1650+ hglue.fill (HIST (" h3glueInvMassME" ), multiplicity, mother.Pt (), mother.M (), deltaMass, angSepValue, ptCorr);
1651+ }
1652+ }
15581653 }
15591654 }
15601655 }
0 commit comments