@@ -90,9 +90,9 @@ struct JetFragmentation {
9090 Configurable<std::vector<float >> ptBinsAntiLambda{" ptBinsAntiLambda" , {0.0 , 1.0 , 2.0 , 3.0 , 4.0 , 5.0 , 10.0 , 15.0 , 20.0 , 25.0 }, " AntiLambda pt Vals" };
9191
9292 // NB: these must be one shorter than ptbin vectors!
93- Configurable<std::vector<float >> purityK0S{ " purityK0S " , {0.9 , 0.9 , 0.9 , 0.9 , 0.9 , 0.9 , 0.9 , 0.9 , 0.9 , 0.9 , 0.9 }, " K0S purity per pt bin" };
94- Configurable<std::vector<float >> purityLambda{ " purityLambda " , {0.9 , 0.9 , 0.9 , 0.9 , 0.9 , 0.9 , 0.9 , 0.9 , 0.9 }, " Lambda purity per pt bin" };
95- Configurable<std::vector<float >> purityAntiLambda{ " purityAntiLambda " , {0.9 , 0.9 , 0.9 , 0.9 , 0.9 , 0.9 , 0.9 , 0.9 , 0.9 }, " AntiLambda purity per pt bin" };
93+ Configurable<std::vector<float >> signalProbK0S{ " signalProbK0S " , {0.9 , 0.9 , 0.9 , 0.9 , 0.9 , 0.9 , 0.9 , 0.9 , 0.9 , 0.9 , 0.9 }, " K0S signal probability per pt bin" };
94+ Configurable<std::vector<float >> signalProbLambda{ " signalProbLambda " , {0.9 , 0.9 , 0.9 , 0.9 , 0.9 , 0.9 , 0.9 , 0.9 , 0.9 }, " Lambda signal probability per pt bin" };
95+ Configurable<std::vector<float >> signalProbAntiLambda{ " signalProbAntiLambda " , {0.9 , 0.9 , 0.9 , 0.9 , 0.9 , 0.9 , 0.9 , 0.9 , 0.9 }, " AntiLambda signal probability per pt bin" };
9696
9797 Configurable<float > vertexZCut{" vertexZCut" , 10 .f , " vertex z cut" };
9898 Configurable<float > v0EtaMin{" v0EtaMin" , -0.75 , " minimum data V0 eta" };
@@ -786,8 +786,15 @@ struct JetFragmentation {
786786 registry.add (" matching/jets/V0/missJetPtV0TrackProj" , " Misses" , HistType::kTH2D , {partJetPtAxis, partZAxis}, true );
787787
788788 // Matching - Matched K0S
789- registry.add (" matching/jets/V0/matchDetJetPtK0STrackProjPartJetPtK0STrackProj" , " Matched" , HistType::kTHnSparseD , {detJetPtAxis, detZAxis, partJetPtAxis, partZAxis}, true );
790- registry.add (" matching/jets/V0/partJetPtK0SPtDetJetPtK0SPt" , " matched jet Pt, K_{S}^{0} Pt" , HistType::kTHnSparseD , {partJetPtAxis, v0PtAxis, detJetPtAxis, v0PtAxis}, true );
789+ registry.add (" matching/jets/V0/partJetPtK0SPtDetJetPtK0SPt" , " Matched Pt and pt" , HistType::kTHnSparseD , {partJetPtAxis, v0PtAxis, detJetPtAxis, v0PtAxis}, true );
790+ registry.add (" matching/jets/V0/partJetPtK0STrackProjDetJetPtK0STrackProj" , " Matched pt and z" , HistType::kTHnSparseD , {partJetPtAxis, partZAxis, detJetPtAxis, detZAxis}, true );
791+
792+ registry.add (" matching/jets/V0/partJetPtK0SPtDetJetPtK0SPtRightCollision" , " Matched Pt, right collision" , HistType::kTHnSparseD , {partJetPtAxis, v0PtAxis, detJetPtAxis, v0PtAxis}, true );
793+ registry.add (" matching/jets/V0/partJetPtK0STrackProjDetJetPtK0STrackProjRightCollision" , " Matched pt and z, right collision" , HistType::kTHnSparseD , {partJetPtAxis, partZAxis, detJetPtAxis, detZAxis}, true );
794+
795+ registry.add (" matching/jets/V0/partJetPtK0SPtDetJetPtK0SPtWrongCollision" , " Matched Pt, wrong collision" , HistType::kTHnSparseD , {partJetPtAxis, v0PtAxis, detJetPtAxis, v0PtAxis}, true );
796+ registry.add (" matching/jets/V0/partJetPtK0STrackProjDetJetPtK0STrackProjWrongCollision" , " Matched pt and z, wrong collision" , HistType::kTHnSparseD , {partJetPtAxis, partZAxis, detJetPtAxis, detZAxis}, true );
797+
791798 // Matching - Matched K0S: pt
792799 registry.add (" matching/jets/V0/partJetPtK0SPtDetJetPtK0SPtCtauLambda" , " matched jet Pt, K^{0}_{S} Pt, Ctau #Lambda^{0}" , HistType::kTHnSparseD , {partJetPtAxis, v0PtAxis, detJetPtAxis, v0PtAxis, v0CtauAxis}, true );
793800 registry.add (" matching/jets/V0/partJetPtK0SPtDetJetPtK0SPtCtauAntiLambda" , " matched jet Pt, K^{0}_{S} Pt, Ctau #bar{#Lambda}^{0}" , HistType::kTHnSparseD , {partJetPtAxis, v0PtAxis, detJetPtAxis, v0PtAxis, v0CtauAxis}, true );
@@ -833,8 +840,15 @@ struct JetFragmentation {
833840 registry.add (" matching/jets/V0/missJetPtK0STrackProj" , " Misses" , HistType::kTH2D , {partJetPtAxis, partZAxis}, true );
834841
835842 // Matching - Matched Lambda
836- registry.add (" matching/jets/V0/matchDetJetPtLambdaTrackProjPartJetPtLambdaTrackProj" , " Matched" , HistType::kTHnSparseD , {detJetPtAxis, detZAxis, partJetPtAxis, partZAxis}, true );
837- registry.add (" matching/jets/V0/partJetPtLambdaPtDetJetPtLambdaPt" , " matched jet Pt, #Lambda^{0} Pt" , HistType::kTHnSparseD , {partJetPtAxis, v0PtAxis, detJetPtAxis, v0PtAxis}, true );
843+ registry.add (" matching/jets/V0/partJetPtLambdaPtDetJetPtLambdaPt" , " matched Pt" , HistType::kTHnSparseD , {partJetPtAxis, v0PtAxis, detJetPtAxis, v0PtAxis}, true );
844+ registry.add (" matching/jets/V0/partJetPtLambdaTrackProjDetJetPtLambdaTrackProj" , " Matched pt and z" , HistType::kTHnSparseD , {partJetPtAxis, partZAxis, detJetPtAxis, detZAxis}, true );
845+
846+ registry.add (" matching/jets/V0/partJetPtLambdaPtDetJetPtLambdaPtRightCollision" , " matched Pt, right collision" , HistType::kTHnSparseD , {partJetPtAxis, v0PtAxis, detJetPtAxis, v0PtAxis}, true );
847+ registry.add (" matching/jets/V0/partJetPtLambdaTrackProjDetJetPtLambdaTrackProjRightCollision" , " Matched pt and z, right collision" , HistType::kTHnSparseD , {partJetPtAxis, partZAxis, detJetPtAxis, detZAxis}, true );
848+
849+ registry.add (" matching/jets/V0/partJetPtLambdaPtDetJetPtLambdaPtWrongCollision" , " matched Pt, Wrong collision" , HistType::kTHnSparseD , {partJetPtAxis, v0PtAxis, detJetPtAxis, v0PtAxis}, true );
850+ registry.add (" matching/jets/V0/partJetPtLambdaTrackProjDetJetPtLambdaTrackProjWrongCollision" , " Matched pt and z, Wrong collision" , HistType::kTHnSparseD , {partJetPtAxis, partZAxis, detJetPtAxis, detZAxis}, true );
851+
838852 // Matching - Matched Lambda: pt
839853 registry.add (" matching/jets/V0/partJetPtLambdaPtDetJetPtLambdaPtCtauK0S" , " matched jet Pt, #{K}^{0}_{S} Pt, Ctau #{K}^{0}_{S}" , HistType::kTHnSparseD , {partJetPtAxis, v0PtAxis, detJetPtAxis, v0PtAxis, v0CtauAxis}, true );
840854 registry.add (" matching/jets/V0/partJetPtLambdaPtDetJetPtLambdaPtCtauLambda" , " matched jet Pt, #Lambda^{0} Pt, Ctau #Lambda^{0}" , HistType::kTHnSparseD , {partJetPtAxis, v0PtAxis, detJetPtAxis, v0PtAxis, v0CtauAxis}, true );
@@ -883,8 +897,15 @@ struct JetFragmentation {
883897 registry.add (" matching/jets/V0/missJetPtLambdaTrackProj" , " Misses" , HistType::kTH2D , {partJetPtAxis, partZAxis}, true );
884898
885899 // Matching - Matched AntiLambda
886- registry.add (" matching/jets/V0/matchDetJetPtAntiLambdaTrackProjPartJetPtAntiLambdaTrackProj" , " Matched" , HistType::kTHnSparseD , {detJetPtAxis, detZAxis, partJetPtAxis, partZAxis}, true );
887- registry.add (" matching/jets/V0/partJetPtAntiLambdaPtDetJetPtAntiLambdaPt" , " matched jet Pt, #bar{#Lambda}^{0} Pt" , HistType::kTHnSparseD , {partJetPtAxis, v0PtAxis, detJetPtAxis, v0PtAxis}, true );
900+ registry.add (" matching/jets/V0/partJetPtAntiLambdaPtDetJetPtAntiLambdaPt" , " matched Pt" , HistType::kTHnSparseD , {partJetPtAxis, v0PtAxis, detJetPtAxis, v0PtAxis}, true );
901+ registry.add (" matching/jets/V0/partJetPtAntiLambdaTrackProjDetJetPtAntiLambdaTrackProj" , " Matched pt and z" , HistType::kTHnSparseD , {partJetPtAxis, partZAxis, detJetPtAxis, detZAxis}, true );
902+
903+ registry.add (" matching/jets/V0/partJetPtAntiLambdaPtDetJetPtAntiLambdaPtRightCollision" , " matched Pt, right collision" , HistType::kTHnSparseD , {partJetPtAxis, v0PtAxis, detJetPtAxis, v0PtAxis}, true );
904+ registry.add (" matching/jets/V0/partJetPtAntiLambdaTrackProjDetJetPtAntiLambdaTrackProjRightCollision" , " Matched pt and z, right collision" , HistType::kTHnSparseD , {partJetPtAxis, partZAxis, detJetPtAxis, detZAxis}, true );
905+
906+ registry.add (" matching/jets/V0/partJetPtAntiLambdaPtDetJetPtAntiLambdaPtWrongCollision" , " matched Pt, Wrong collision" , HistType::kTHnSparseD , {partJetPtAxis, v0PtAxis, detJetPtAxis, v0PtAxis}, true );
907+ registry.add (" matching/jets/V0/partJetPtAntiLambdaTrackProjDetJetPtAntiLambdaTrackProjWrongCollision" , " Matched pt and z, Wrong collision" , HistType::kTHnSparseD , {partJetPtAxis, partZAxis, detJetPtAxis, detZAxis}, true );
908+
888909 // Matching - Matched AntiLambda: pt
889910 registry.add (" matching/jets/V0/partJetPtAntiLambdaPtDetJetPtAntiLambdaPtCtauK0S" , " matched jet Pt, #{K}^{0}_{S} Pt, Ctau #{K}^{0}_{S}" , HistType::kTHnSparseD , {partJetPtAxis, v0PtAxis, detJetPtAxis, v0PtAxis, v0CtauAxis}, true );
890911 registry.add (" matching/jets/V0/partJetPtAntiLambdaPtDetJetPtAntiLambdaPtCtauLambda" , " matched jet Pt, #bar{#Lambda}^{0} Pt, Ctau #Lambda^{0}" , HistType::kTHnSparseD , {partJetPtAxis, v0PtAxis, detJetPtAxis, v0PtAxis, v0CtauAxis}, true );
@@ -1106,17 +1127,17 @@ struct JetFragmentation {
11061127 if (v0.isK0SCandidate ()) {
11071128 int ptBin = getPtBin (v0.pt (), ptBinsK0S);
11081129 if (ptBin >= 0 ) {
1109- purity = purityK0S ->at (ptBin);
1130+ purity = signalProbK0S ->at (ptBin);
11101131 }
11111132 } else if (v0.isLambdaCandidate ()) {
11121133 int ptBin = getPtBin (v0.pt (), ptBinsLambda);
11131134 if (ptBin >= 0 ) {
1114- purity = purityLambda ->at (ptBin);
1135+ purity = signalProbLambda ->at (ptBin);
11151136 }
11161137 } else if (v0.isAntiLambdaCandidate ()) {
11171138 int ptBin = getPtBin (v0.pt (), ptBinsAntiLambda);
11181139 if (ptBin >= 0 ) {
1119- purity = purityAntiLambda ->at (ptBin);
1140+ purity = signalProbAntiLambda ->at (ptBin);
11201141 }
11211142 }
11221143 return purity;
@@ -1541,7 +1562,9 @@ struct JetFragmentation {
15411562 double conePt[nCones] = {0 ., 0 .};
15421563 int nV0sinCone[nCones] = {0 , 0 };
15431564 for (const auto & v0 : v0s) {
1544- // Need to check if v0 passed jet finder selection/preselector cuts
1565+ if (v0.isRejectedCandidate ())
1566+ continue ;
1567+
15451568 bool v0InCones = false ;
15461569 double dEta = v0.eta () - jet.eta ();
15471570 double dPhi[nCones] = {RecoDecay::constrainAngle (v0.phi () - conePhi[0 ], -constants::math::PI),
@@ -2123,6 +2146,7 @@ struct JetFragmentation {
21232146 template <typename CollisionType, typename DetJetType, typename PartJetType, typename V0Type, typename ParticleType> // Reconstructed signal for in-jet V0s
21242147 void fillMatchingV0FragHistograms (CollisionType const & collision, DetJetType const & detJet, PartJetType const & partJet, V0Type const & v0, ParticleType const & particle, double weight = 1 .)
21252148 {
2149+ bool correctCollision = (collision.mcCollisionId () == particle.mcCollisionId ());
21262150 double detTrackProj = getMomFrac (detJet, v0);
21272151 double partTrackProj = getMomFrac (partJet, particle);
21282152
@@ -2158,8 +2182,15 @@ struct JetFragmentation {
21582182 registry.fill (HIST (" matching/jets/V0/partJetPtV0TrackProjDetJetPtV0TrackProjDCAd" ), partJet.pt (), partTrackProj, detJet.pt (), detTrackProj, v0.dcaV0daughters (), weight);
21592183
21602184 if (std::abs (particle.pdgCode ()) == PDG_t::kK0Short ) { // K0S
2161- registry.fill (HIST (" matching/jets/V0/matchDetJetPtK0STrackProjPartJetPtK0STrackProj" ), detJet.pt (), detTrackProj, partJet.pt (), partTrackProj, weight);
21622185 registry.fill (HIST (" matching/jets/V0/partJetPtK0SPtDetJetPtK0SPt" ), partJet.pt (), particle.pt (), detJet.pt (), v0.pt (), weight);
2186+ registry.fill (HIST (" matching/jets/V0/partJetPtK0STrackProjDetJetPtK0STrackProj" ), partJet.pt (), partTrackProj, detJet.pt (), detTrackProj, weight);
2187+ if (correctCollision) {
2188+ registry.fill (HIST (" matching/jets/V0/partJetPtK0SPtDetJetPtK0SPtRightCollision" ), partJet.pt (), particle.pt (), detJet.pt (), v0.pt (), weight);
2189+ registry.fill (HIST (" matching/jets/V0/partJetPtK0STrackProjDetJetPtK0STrackProjRightCollision" ), partJet.pt (), partTrackProj, detJet.pt (), detTrackProj, weight);
2190+ } else {
2191+ registry.fill (HIST (" matching/jets/V0/partJetPtK0SPtDetJetPtK0SPtWrongCollision" ), partJet.pt (), particle.pt (), detJet.pt (), v0.pt (), weight);
2192+ registry.fill (HIST (" matching/jets/V0/partJetPtK0STrackProjDetJetPtK0STrackProjWrongCollision" ), partJet.pt (), partTrackProj, detJet.pt (), detTrackProj, weight);
2193+ }
21632194
21642195 registry.fill (HIST (" matching/jets/V0/partJetPtK0SPtDetJetPtK0SPtCtauLambda" ), partJet.pt (), particle.pt (), detJet.pt (), v0.pt (), ctauLambda, weight);
21652196 registry.fill (HIST (" matching/jets/V0/partJetPtK0SPtDetJetPtK0SPtCtauAntiLambda" ), partJet.pt (), particle.pt (), detJet.pt (), v0.pt (), ctauAntiLambda, weight);
@@ -2185,8 +2216,15 @@ struct JetFragmentation {
21852216 registry.fill (HIST (" matching/jets/V0/partJetPtK0STrackProjDetJetPtK0STrackProjDCAposneg" ), partJet.pt (), partTrackProj, detJet.pt (), detTrackProj, v0.dcapostopv (), v0.dcanegtopv (), weight);
21862217 registry.fill (HIST (" matching/jets/V0/partJetPtK0STrackProjDetJetPtK0STrackProjDCAd" ), partJet.pt (), partTrackProj, detJet.pt (), detTrackProj, v0.dcaV0daughters (), weight);
21872218 } else if (particle.pdgCode () == PDG_t::kLambda0 ) { // Lambda
2188- registry.fill (HIST (" matching/jets/V0/matchDetJetPtLambdaTrackProjPartJetPtLambdaTrackProj" ), detJet.pt (), detTrackProj, partJet.pt (), partTrackProj, weight);
21892219 registry.fill (HIST (" matching/jets/V0/partJetPtLambdaPtDetJetPtLambdaPt" ), partJet.pt (), particle.pt (), detJet.pt (), v0.pt (), weight);
2220+ registry.fill (HIST (" matching/jets/V0/partJetPtLambdaTrackProjDetJetPtLambdaTrackProj" ), partJet.pt (), partTrackProj, detJet.pt (), detTrackProj, weight);
2221+ if (correctCollision) {
2222+ registry.fill (HIST (" matching/jets/V0/partJetPtLambdaPtDetJetPtLambdaPtRightCollision" ), partJet.pt (), particle.pt (), detJet.pt (), v0.pt (), weight);
2223+ registry.fill (HIST (" matching/jets/V0/partJetPtLambdaTrackProjDetJetPtLambdaTrackProjRightCollision" ), partJet.pt (), partTrackProj, detJet.pt (), detTrackProj, weight);
2224+ } else {
2225+ registry.fill (HIST (" matching/jets/V0/partJetPtLambdaPtDetJetPtLambdaPtWrongCollision" ), partJet.pt (), particle.pt (), detJet.pt (), v0.pt (), weight);
2226+ registry.fill (HIST (" matching/jets/V0/partJetPtLambdaTrackProjDetJetPtLambdaTrackProjWrongCollision" ), partJet.pt (), partTrackProj, detJet.pt (), detTrackProj, weight);
2227+ }
21902228
21912229 registry.fill (HIST (" matching/jets/V0/partJetPtLambdaPtDetJetPtLambdaPtCtauLambda" ), partJet.pt (), particle.pt (), detJet.pt (), v0.pt (), ctauLambda, weight);
21922230 registry.fill (HIST (" matching/jets/V0/partJetPtLambdaPtDetJetPtLambdaPtCtauAntiLambda" ), partJet.pt (), particle.pt (), detJet.pt (), v0.pt (), ctauAntiLambda, weight);
@@ -2217,8 +2255,15 @@ struct JetFragmentation {
22172255 registry.fill (HIST (" matching/jets/V0/partJetPtLambdaPtDetJetPtLambdaPtLambdaReflection" ), partJet.pt (), particle.pt (), detJet.pt (), v0.pt (), v0.mK0Short (), v0.mLambda (), v0.mAntiLambda (), reflectedMass, weight);
22182256 registry.fill (HIST (" matching/jets/V0/partJetPtLambdaTrackProjDetJetPtLambdaTrackProjLambdaReflection" ), partJet.pt (), partTrackProj, detJet.pt (), detTrackProj, v0.mK0Short (), v0.mLambda (), v0.mAntiLambda (), reflectedMass, weight);
22192257 } else if (particle.pdgCode () == PDG_t::kLambda0Bar ) { // AntiLambda
2220- registry.fill (HIST (" matching/jets/V0/matchDetJetPtAntiLambdaTrackProjPartJetPtAntiLambdaTrackProj" ), detJet.pt (), detTrackProj, partJet.pt (), partTrackProj, weight);
22212258 registry.fill (HIST (" matching/jets/V0/partJetPtAntiLambdaPtDetJetPtAntiLambdaPt" ), partJet.pt (), particle.pt (), detJet.pt (), v0.pt (), weight);
2259+ registry.fill (HIST (" matching/jets/V0/partJetPtAntiLambdaTrackProjDetJetPtAntiLambdaTrackProj" ), partJet.pt (), partTrackProj, detJet.pt (), detTrackProj, weight);
2260+ if (correctCollision) {
2261+ registry.fill (HIST (" matching/jets/V0/partJetPtAntiLambdaPtDetJetPtAntiLambdaPtRightCollision" ), partJet.pt (), particle.pt (), detJet.pt (), v0.pt (), weight);
2262+ registry.fill (HIST (" matching/jets/V0/partJetPtAntiLambdaTrackProjDetJetPtAntiLambdaTrackProjRightCollision" ), partJet.pt (), partTrackProj, detJet.pt (), detTrackProj, weight);
2263+ } else {
2264+ registry.fill (HIST (" matching/jets/V0/partJetPtAntiLambdaPtDetJetPtAntiLambdaPtWrongCollision" ), partJet.pt (), particle.pt (), detJet.pt (), v0.pt (), weight);
2265+ registry.fill (HIST (" matching/jets/V0/partJetPtAntiLambdaTrackProjDetJetPtAntiLambdaTrackProjWrongCollision" ), partJet.pt (), partTrackProj, detJet.pt (), detTrackProj, weight);
2266+ }
22222267
22232268 registry.fill (HIST (" matching/jets/V0/partJetPtAntiLambdaPtDetJetPtAntiLambdaPtCtauLambda" ), partJet.pt (), particle.pt (), detJet.pt (), v0.pt (), ctauLambda, weight);
22242269 registry.fill (HIST (" matching/jets/V0/partJetPtAntiLambdaPtDetJetPtAntiLambdaPtCtauAntiLambda" ), partJet.pt (), particle.pt (), detJet.pt (), v0.pt (), ctauAntiLambda, weight);
@@ -2650,20 +2695,20 @@ struct JetFragmentation {
26502695 if (v0.isRejectedCandidate ())
26512696 continue ;
26522697
2653- float purity = getV0SignalProb (v0);
2698+ float signalProb = getV0SignalProb (v0);
26542699 nV0inJet++;
2655- wV0inJet += purity ;
2700+ wV0inJet += signalProb ;
26562701 if (v0.isK0SCandidate ()) {
26572702 nK0SinJet++;
2658- wK0SinJet += purity ;
2703+ wK0SinJet += signalProb ;
26592704 }
26602705 if (v0.isLambdaCandidate ()) {
26612706 nLambdainJet++;
2662- wLambdainJet += purity ;
2707+ wLambdainJet += signalProb ;
26632708 }
26642709 if (v0.isAntiLambdaCandidate ()) {
26652710 nAntiLambdainJet++;
2666- wAntiLambdainJet += purity ;
2711+ wAntiLambdainJet += signalProb ;
26672712 }
26682713
26692714 fillDataV0FragHistograms (jcoll, jet, v0);
0 commit comments