7373#include < memory>
7474#include < string>
7575#include < string_view>
76+ #include < utility>
7677#include < variant>
7778#include < vector>
7879
@@ -398,9 +399,9 @@ struct HStrangeCorrelation {
398399 }
399400 }
400401
401- uint16_t doCorrelation;
402- int mRunNumber ;
403- int mRunNumberZorro ;
402+ uint16_t doCorrelation = 0 ;
403+ int mRunNumber = - 1 ;
404+ int mRunNumberZorro = - 1 ;
404405
405406 std::vector<std::vector<float >> axisRanges;
406407
@@ -1024,16 +1025,21 @@ struct HStrangeCorrelation {
10241025 }
10251026 std::array<double , 6 > binFillThn = {deltaphi, deltaeta, ptassoc, pttrigger, pvz, mult};
10261027 if (TESTBIT (doCorrelation, Index) && (!efficiencyFlags.applyEfficiencyCorrection || efficiency != 0 ) && (masterConfigurations.doPPAnalysis || (TESTBIT (selMap, Index) && TESTBIT (selMap, Index + 3 )))) {
1027- if (assocCandidate.compatible (Index, trackSelection.dEdxCompatibility ) && (!masterConfigurations.doMCassociation || assocCandidate.mcTrue (Index)) && (!doAssocPhysicalPrimary || assocCandidate.mcPhysicalPrimary ()) && !mixing && -massWindowConfigurations.maxBgNSigma < assocCandidate.invMassNSigma (Index) && assocCandidate.invMassNSigma (Index) < -massWindowConfigurations.minBgNSigma ) {
1028+ if (assocCandidate.compatible (Index, trackSelection.dEdxCompatibility ) && (!masterConfigurations.doMCassociation || assocCandidate.mcTrue (Index)) && (!doAssocPhysicalPrimary || assocCandidate.mcPhysicalPrimary ()) && !mixing &&
1029+ ((-massWindowConfigurations.maxBgNSigma < assocCandidate.invMassNSigma (Index) && assocCandidate.invMassNSigma (Index) < -massWindowConfigurations.minBgNSigma ) ||
1030+ (-massWindowConfigurations.maxPeakNSigma < assocCandidate.invMassNSigma (Index) && assocCandidate.invMassNSigma (Index) < +massWindowConfigurations.maxPeakNSigma ) ||
1031+ (+massWindowConfigurations.minBgNSigma < assocCandidate.invMassNSigma (Index) && assocCandidate.invMassNSigma (Index) < +massWindowConfigurations.maxBgNSigma ))) {
10281032 if (std::abs (deltaphi) < 0.5 ) {
1029- histos.fill (HIST (" sameEvent/" ) + HIST (V0names[Index]) + HIST (" /hInvariantMassNearSide " ), ptassoc, pttrigger, getV0InvariantMass<Index>(assoc));
1033+ histos.fill (HIST (" sameEvent/InvariantMass/ " ) + HIST (V0names[Index]) + HIST (" /hNearSide " ), ptassoc, pttrigger, getV0InvariantMass<Index>(assoc));
10301034 }
10311035 if (std::abs (PI - deltaphi) < 0.5 ) {
1032- histos.fill (HIST (" sameEvent/" ) + HIST (V0names[Index]) + HIST (" /hInvariantMassAwaySide " ), ptassoc, pttrigger, getV0InvariantMass<Index>(assoc));
1036+ histos.fill (HIST (" sameEvent/InvariantMass/ " ) + HIST (V0names[Index]) + HIST (" /hAwaySide " ), ptassoc, pttrigger, getV0InvariantMass<Index>(assoc));
10331037 }
10341038 if (deltaphi > 1.0 && deltaphi < 1.5 ) {
1035- histos.fill (HIST (" sameEvent/" ) + HIST (V0names[Index]) + HIST (" /hInvariantMassUE " ), ptassoc, pttrigger, getV0InvariantMass<Index>(assoc));
1039+ histos.fill (HIST (" sameEvent/InvariantMass/ " ) + HIST (V0names[Index]) + HIST (" /hUnderlyingEvent " ), ptassoc, pttrigger, getV0InvariantMass<Index>(assoc));
10361040 }
1041+ }
1042+ if (assocCandidate.compatible (Index, trackSelection.dEdxCompatibility ) && (!masterConfigurations.doMCassociation || assocCandidate.mcTrue (Index)) && (!doAssocPhysicalPrimary || assocCandidate.mcPhysicalPrimary ()) && !mixing && -massWindowConfigurations.maxBgNSigma < assocCandidate.invMassNSigma (Index) && assocCandidate.invMassNSigma (Index) < -massWindowConfigurations.minBgNSigma ) {
10371043 fillCorrelationHistogram (histos.get <THn>(HIST (" sameEvent/LeftBg/" ) + HIST (V0names[Index])), binFillThn, etaWeight, efficiency * efficiencyTrigg, totalEffUncert, purityTrigg, purityTriggErr);
10381044 if (doDeltaPhiStarCheck) {
10391045 double deltaPhiStar = calculateAverageDeltaPhiStar (triggForDeltaPhiStar, assocForDeltaPhiStar, bField);
@@ -1053,8 +1059,8 @@ struct HStrangeCorrelation {
10531059 }
10541060 if (assocCandidate.compatible (Index, trackSelection.dEdxCompatibility ) && (!masterConfigurations.doMCassociation || assocCandidate.mcTrue (Index)) && (!doAssocPhysicalPrimary || assocCandidate.mcPhysicalPrimary ()) && !mixing && ((-massWindowConfigurations.maxPeakNSigma < assocCandidate.invMassNSigma (Index) && assocCandidate.invMassNSigma (Index) < +massWindowConfigurations.maxPeakNSigma ))) {
10551061 if (masterConfigurations.doCorrelationsHadronV0daughter ) {
1056- fillCorrelationHistogram (histos.get <THn>(HIST (" sameEvent/Signal/" ) + HIST (V0names[Index]) + HIST (" /hSameSign " )), binFillThnSameSignDaugher, 1 , 1 , 1 , 1 , 1 );
1057- fillCorrelationHistogram (histos.get <THn>(HIST (" sameEvent/Signal/" ) + HIST (V0names[Index]) + HIST (" /hOppositeSign " )), binFillThnOppositeSignDaugher, 1 , 1 , 1 , 1 , 1 );
1062+ fillCorrelationHistogram (histos.get <THn>(HIST (" sameEvent/Signal/" ) + HIST (V0names[Index]) + HIST (" _hSameSign " )), binFillThnSameSignDaugher, 1 , 1 , 1 , 1 , 1 );
1063+ fillCorrelationHistogram (histos.get <THn>(HIST (" sameEvent/Signal/" ) + HIST (V0names[Index]) + HIST (" _hOppositeSign " )), binFillThnOppositeSignDaugher, 1 , 1 , 1 , 1 , 1 );
10581064 }
10591065 fillCorrelationHistogram (histos.get <THn>(HIST (" sameEvent/Signal/" ) + HIST (V0names[Index])), binFillThn, etaWeight, efficiency * efficiencyTrigg, totalEffUncert, purityTrigg, purityTriggErr);
10601066 if (std::abs (deltaphi) < checks.towardDeltaEtaRange && doITSClustersQA) {
@@ -1113,8 +1119,8 @@ struct HStrangeCorrelation {
11131119 fillCorrelationHistogram (histos.get <THn>(HIST (" mixedEvent/Signal/" ) + HIST (V0names[Index])), binFillThn, 1 , efficiency * efficiencyTrigg, totalEffUncert, purityTrigg, purityTriggErr);
11141120 }
11151121 if (masterConfigurations.doCorrelationsHadronV0daughter ) {
1116- fillCorrelationHistogram (histos.get <THn>(HIST (" mixedEvent/Signal/" ) + HIST (V0names[Index]) + HIST (" /hSameSign " )), binFillThnSameSignDaugher, 1 , 1 , 1 , 1 , 1 );
1117- fillCorrelationHistogram (histos.get <THn>(HIST (" mixedEvent/Signal/" ) + HIST (V0names[Index]) + HIST (" /hOppositeSign " )), binFillThnOppositeSignDaugher, 1 , 1 , 1 , 1 , 1 );
1122+ fillCorrelationHistogram (histos.get <THn>(HIST (" mixedEvent/Signal/" ) + HIST (V0names[Index]) + HIST (" _hSameSign " )), binFillThnSameSignDaugher, 1 , 1 , 1 , 1 , 1 );
1123+ fillCorrelationHistogram (histos.get <THn>(HIST (" mixedEvent/Signal/" ) + HIST (V0names[Index]) + HIST (" _hOppositeSign " )), binFillThnOppositeSignDaugher, 1 , 1 , 1 , 1 , 1 );
11181124 }
11191125 }
11201126 if (assocCandidate.compatible (Index, trackSelection.dEdxCompatibility ) && (!masterConfigurations.doMCassociation || assocCandidate.mcTrue (Index)) && (!doAssocPhysicalPrimary || assocCandidate.mcPhysicalPrimary ()) && mixing && +massWindowConfigurations.minBgNSigma < assocCandidate.invMassNSigma (Index) && assocCandidate.invMassNSigma (Index) < +massWindowConfigurations.maxBgNSigma ) {
@@ -1706,8 +1712,6 @@ struct HStrangeCorrelation {
17061712 void init (InitContext const &)
17071713 {
17081714 zorroSummary.setObject (zorro.getZorroSummary ());
1709- mRunNumber = 0 ;
1710- mRunNumberZorro = 0 ;
17111715 hEfficiencyPion = nullptr ;
17121716 hEfficiencyK0Short = nullptr ;
17131717 hEfficiencyLambda = nullptr ;
@@ -2065,31 +2069,18 @@ struct HStrangeCorrelation {
20652069 histos.addClone (" sameEvent/Signal/" , " sameEvent/RightBg/" );
20662070 }
20672071
2068- if (masterConfigurations.doFullCorrelationStudy && doprocessSameEventHV0s) {
2072+ if (masterConfigurations.doFullCorrelationStudy && doprocessSameEventHV0s && masterConfigurations. doCorrelationsHadronV0daughter ) {
20692073 if (TESTBIT (doCorrelation, 0 )) {
2070- histos.add (" sameEvent/K0Short/hInvariantMassNearSide" , " " , kTH3F , {axesConfigurations.axisPtAssoc , axesConfigurations.axisPtTrigger , axesConfigurations.axisK0ShortMass });
2071- histos.add (" sameEvent/K0Short/hInvariantMassAwaySide" , " " , kTH3F , {axesConfigurations.axisPtAssoc , axesConfigurations.axisPtTrigger , axesConfigurations.axisK0ShortMass });
2072- histos.add (" sameEvent/K0Short/hInvariantMassUE" , " " , kTH3F , {axesConfigurations.axisPtAssoc , axesConfigurations.axisPtTrigger , axesConfigurations.axisK0ShortMass });
2073- if (masterConfigurations.doCorrelationsHadronV0daughter ) {
2074- histos.add (" sameEvent/Signal/K0Short/hSameSign" , " " , kTHnF , {axisDeltaPhiNDim, axisDeltaEtaNDim, axisPtAssocNDim, axisPtTriggerNDim, axisVtxZNDim, axisMultNDim});
2075- histos.add (" sameEvent/Signal/K0Short/hOppositeSign" , " " , kTHnF , {axisDeltaPhiNDim, axisDeltaEtaNDim, axisPtAssocNDim, axisPtTriggerNDim, axisVtxZNDim, axisMultNDim});
2076- }
2074+ histos.add (" sameEvent/Signal/K0Short_hSameSign" , " " , kTHnF , {axisDeltaPhiNDim, axisDeltaEtaNDim, axisPtAssocNDim, axisPtTriggerNDim, axisVtxZNDim, axisMultNDim});
2075+ histos.add (" sameEvent/Signal/K0Short_hOppositeSign" , " " , kTHnF , {axisDeltaPhiNDim, axisDeltaEtaNDim, axisPtAssocNDim, axisPtTriggerNDim, axisVtxZNDim, axisMultNDim});
20772076 }
20782077 if (TESTBIT (doCorrelation, 1 )) {
2079- histos.add (" sameEvent/Lambda/hInvariantMassNearSide" , " " , kTH3F , {axesConfigurations.axisPtAssoc , axesConfigurations.axisPtTrigger , axesConfigurations.axisLambdaMass });
2080- histos.add (" sameEvent/Lambda/hInvariantMassAwaySide" , " " , kTH3F , {axesConfigurations.axisPtAssoc , axesConfigurations.axisPtTrigger , axesConfigurations.axisLambdaMass });
2081- histos.add (" sameEvent/Lambda/hInvariantMassUE" , " " , kTH3F , {axesConfigurations.axisPtAssoc , axesConfigurations.axisPtTrigger , axesConfigurations.axisLambdaMass });
2082- if (masterConfigurations.doCorrelationsHadronV0daughter ) {
2083- histos.add (" sameEvent/Signal/Lambda/hSameSign" , " " , kTHnF , {axisDeltaPhiNDim, axisDeltaEtaNDim, axisPtAssocNDim, axisPtTriggerNDim, axisVtxZNDim, axisMultNDim});
2084- histos.add (" sameEvent/Signal/Lambda/hOppositeSign" , " " , kTHnF , {axisDeltaPhiNDim, axisDeltaEtaNDim, axisPtAssocNDim, axisPtTriggerNDim, axisVtxZNDim, axisMultNDim});
2085- }
2078+ histos.add (" sameEvent/Signal/Lambda_hSameSign" , " " , kTHnF , {axisDeltaPhiNDim, axisDeltaEtaNDim, axisPtAssocNDim, axisPtTriggerNDim, axisVtxZNDim, axisMultNDim});
2079+ histos.add (" sameEvent/Signal/Lambda_hOppositeSign" , " " , kTHnF , {axisDeltaPhiNDim, axisDeltaEtaNDim, axisPtAssocNDim, axisPtTriggerNDim, axisVtxZNDim, axisMultNDim});
20862080 }
20872081 if (TESTBIT (doCorrelation, 2 )) {
2088- histos.addClone (" sameEvent/Lambda/" , " sameEvent/AntiLambda/" );
2089- if (masterConfigurations.doCorrelationsHadronV0daughter ) {
2090- histos.add (" sameEvent/Signal/AntiLambda/hSameSign" , " " , kTHnF , {axisDeltaPhiNDim, axisDeltaEtaNDim, axisPtAssocNDim, axisPtTriggerNDim, axisVtxZNDim, axisMultNDim});
2091- histos.add (" sameEvent/Signal/AntiLambda/hOppositeSign" , " " , kTHnF , {axisDeltaPhiNDim, axisDeltaEtaNDim, axisPtAssocNDim, axisPtTriggerNDim, axisVtxZNDim, axisMultNDim});
2092- }
2082+ histos.add (" sameEvent/Signal/AntiLambda_hSameSign" , " " , kTHnF , {axisDeltaPhiNDim, axisDeltaEtaNDim, axisPtAssocNDim, axisPtTriggerNDim, axisVtxZNDim, axisMultNDim});
2083+ histos.add (" sameEvent/Signal/AntiLambda_hOppositeSign" , " " , kTHnF , {axisDeltaPhiNDim, axisDeltaEtaNDim, axisPtAssocNDim, axisPtTriggerNDim, axisVtxZNDim, axisMultNDim});
20932084 }
20942085 }
20952086 if (TESTBIT (doCorrelation, 0 ) && doprocessSameEventHV0s && masterConfigurations.doMassSpectrumCheck ) {
@@ -2106,6 +2097,23 @@ struct HStrangeCorrelation {
21062097 if ((doprocessMixedEventHV0sInBuffer || doprocessMixedEventHCascadesInBuffer || doprocessMixedEventHV0s || doprocessMixedEventHCascades || doprocessMixedEventHPions || doprocessMixedEventHHadrons) && masterConfigurations.doFullCorrelationStudy ) {
21072098 histos.addClone (" sameEvent/" , " mixedEvent/" );
21082099 }
2100+ if (masterConfigurations.doFullCorrelationStudy && doprocessSameEventHV0s) {
2101+ if (TESTBIT (doCorrelation, 0 )) {
2102+ histos.add (" sameEvent/InvariantMass/K0Short/hNearSide" , " " , kTH3F , {axesConfigurations.axisPtAssoc , axesConfigurations.axisPtTrigger , axesConfigurations.axisK0ShortMass });
2103+ histos.add (" sameEvent/InvariantMass/K0Short/hAwaySide" , " " , kTH3F , {axesConfigurations.axisPtAssoc , axesConfigurations.axisPtTrigger , axesConfigurations.axisK0ShortMass });
2104+ histos.add (" sameEvent/InvariantMass/K0Short/hUnderlyingEvent" , " " , kTH3F , {axesConfigurations.axisPtAssoc , axesConfigurations.axisPtTrigger , axesConfigurations.axisK0ShortMass });
2105+ }
2106+ if (TESTBIT (doCorrelation, 1 )) {
2107+ histos.add (" sameEvent/InvariantMass/Lambda/hNearSide" , " " , kTH3F , {axesConfigurations.axisPtAssoc , axesConfigurations.axisPtTrigger , axesConfigurations.axisLambdaMass });
2108+ histos.add (" sameEvent/InvariantMass/Lambda/hAwaySide" , " " , kTH3F , {axesConfigurations.axisPtAssoc , axesConfigurations.axisPtTrigger , axesConfigurations.axisLambdaMass });
2109+ histos.add (" sameEvent/InvariantMass/Lambda/hUnderlyingEvent" , " " , kTH3F , {axesConfigurations.axisPtAssoc , axesConfigurations.axisPtTrigger , axesConfigurations.axisLambdaMass });
2110+ }
2111+ if (TESTBIT (doCorrelation, 2 )) {
2112+ histos.add (" sameEvent/InvariantMass/AntiLambda/hNearSide" , " " , kTH3F , {axesConfigurations.axisPtAssoc , axesConfigurations.axisPtTrigger , axesConfigurations.axisLambdaMass });
2113+ histos.add (" sameEvent/InvariantMass/AntiLambda/hAwaySide" , " " , kTH3F , {axesConfigurations.axisPtAssoc , axesConfigurations.axisPtTrigger , axesConfigurations.axisLambdaMass });
2114+ histos.add (" sameEvent/InvariantMass/AntiLambda/hUnderlyingEvent" , " " , kTH3F , {axesConfigurations.axisPtAssoc , axesConfigurations.axisPtTrigger , axesConfigurations.axisLambdaMass });
2115+ }
2116+ }
21092117 if (doprocessSameEventHHadrons && masterConfigurations.doFullCorrelationStudy ) {
21102118 histos.add (" sameEvent/TriggerParticlesHadron" , " TriggersHadron" , kTH2F , {axesConfigurations.axisPtQA , axesConfigurations.axisMult });
21112119 }
0 commit comments