Skip to content

Commit b9e68df

Browse files
committed
add secondary track inside jet when comapred to data with mc for systematic uncertainty
1 parent 59f03f1 commit b9e68df

File tree

1 file changed

+40
-10
lines changed

1 file changed

+40
-10
lines changed

PWGJE/Tasks/jetTaggerHFQA.cxx

Lines changed: 40 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ struct JetTaggerHFQA {
151151
AxisSpec axisMass = {binMass, "#it{m}_{SV}"};
152152
AxisSpec axisSigmaLxy = {binSigmaLxy, "#sigma_{L_{XY}} [cm]"};
153153
AxisSpec axisSigmaLxyz = {binSigmaLxyz, "#sigma_{L_{XYZ}} [cm]"};
154+
AxisSpec axisFracSecPt = {100, 0, 1, "#frac{#Sigma#it{p}_{T}^{secondary track}}{#it{p}_{T, jet}}"};
154155

155156
if (doprocessTracksDca) {
156157
if (fillIPxy) {
@@ -166,9 +167,13 @@ struct JetTaggerHFQA {
166167
registry.add("h_impact_parameter_xyz_significance", "", {HistType::kTH1F, {{axisImpactParameterXYZSignificance}}});
167168
}
168169
}
169-
if (doprocessSecondaryContamination) {
170-
registry.add("h2_impact_parameter_xy_physical_primary_flavour", "", {HistType::kTH2F, {{axisImpactParameterXY}, {axisJetFlavour}}});
171-
registry.add("h2_impact_parameter_xy_secondary_flavour", "", {HistType::kTH2F, {{axisImpactParameterXY}, {axisJetFlavour}}});
170+
if (doprocessTracksInJetsData) {
171+
registry.add("h3_track_pt_impact_parameter_xy", "", {HistType::kTH3F, {{axisJetPt}, {axisTrackPt}, {axisImpactParameterXY}}});
172+
}
173+
if (doprocessSecondaryContaminationMCD) {
174+
registry.add("hn_jet_pt_track_pt_impact_parameter_xy_physical_primary_flavour", "", {HistType::kTHnSparseF, {{axisJetPt}, {axisTrackPt}, {axisImpactParameterXY}, {axisJetFlavour}}});
175+
registry.add("hn_jet_pt_track_pt_impact_parameter_xy_secondary_flavour", "", {HistType::kTHnSparseF, {{axisJetPt}, {axisTrackPt}, {axisImpactParameterXY}, {axisJetFlavour}}});
176+
registry.add("h3_jet_pt_frac_secondary_pt_per_jet_flavour", "", {HistType::kTH3F, {{axisJetPt}, {axisFracSecPt}, {axisJetFlavour}}});
172177
}
173178
if (doprocessValFlavourDefMCD) {
174179
registry.add("h2_flavour_dist_quark_flavour_dist_hadron", "", {HistType::kTH2F, {{axisJetFlavour}, {axisJetFlavour}}});
@@ -1099,7 +1104,27 @@ struct JetTaggerHFQA {
10991104
}
11001105
PROCESS_SWITCH(JetTaggerHFQA, processTracksDca, "Fill inclusive tracks' imformation for data", false);
11011106

1102-
void processSecondaryContamination(soa::Filtered<soa::Join<aod::JetCollisions, aod::JCollisionPIs, aod::JMcCollisionLbs>>::iterator const& collision, soa::Join<JetTableMCD, TagTableMCD, JetTableMCDMCP, weightMCD> const& mcdjets, soa::Join<JetTableMCP, JetTableMCPMCD> const& /*mcpjets*/, JetTagTracksMCD const& tracks, aod::JetParticles const& /*particles*/)
1107+
void processTracksInJetsData(soa::Filtered<aod::JetCollisions>::iterator const& collision, soa::Join<JetTableData, TagTableData> const& jets)
1108+
{
1109+
if (collision.trackOccupancyInTimeRange() < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange()) {
1110+
return;
1111+
}
1112+
for (auto const& jet : jets) {
1113+
if (!jetfindingutilities::isInEtaAcceptance(jet, jetEtaMin, jetEtaMax, trackEtaMin, trackEtaMax)) {
1114+
continue;
1115+
}
1116+
if (!isAcceptedJet<aod::JetTracks>(jet)) {
1117+
continue;
1118+
}
1119+
for (auto const& track : jet.template tracks_as<JetTagTracksMCD>()) {
1120+
float varImpXY = track.dcaXY() * jettaggingutilities::cmTomum;
1121+
registry.fill(HIST("h2_track_pt_impact_parameter_xy"), track.pt(), varImpXY);
1122+
}
1123+
}
1124+
}
1125+
PROCESS_SWITCH(JetTaggerHFQA, processTracksInJetsData, "Fill QA comtamination of secondary-track inside jets for data jets", false);
1126+
1127+
void processSecondaryContaminationMCD(soa::Filtered<soa::Join<aod::JetCollisions, aod::JCollisionPIs, aod::JMcCollisionLbs>>::iterator const& collision, soa::Join<JetTableMCD, TagTableMCD, weightMCD> const& mcdjets, JetTagTracksMCD const& /*tracks*/, aod::JetParticles const& /*particles*/)
11031128
{
11041129
if (collision.trackOccupancyInTimeRange() < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange()) {
11051130
return;
@@ -1111,27 +1136,32 @@ struct JetTaggerHFQA {
11111136
if (!isAcceptedJet<aod::JetTracks>(mcdjet)) {
11121137
continue;
11131138
}
1114-
if (!mcdjet.has_matchedJetGeo()) {
1115-
continue;
1116-
}
11171139
float pTHat = 10. / (std::pow(mcdjet.eventWeight(), 1.0 / pTHatExponent));
11181140
if (mcdjet.pt() > pTHatMaxMCD * pTHat) {
11191141
continue;
11201142
}
11211143
int jetflavour = mcdjet.origin();
1144+
float secondaryPt = 0;
1145+
float totalJetPt = 0;
11221146
for (auto const& track : mcdjet.template tracks_as<JetTagTracksMCD>()) {
11231147
float varImpXY = track.dcaXY() * jettaggingutilities::cmTomum;
11241148
if (!track.has_mcParticle()) continue;
11251149
auto mcParticle = track.mcParticle();
1150+
totalJetPt += track.pt();
11261151
if (mcParticle.isPhysicalPrimary()) {
1127-
registry.fill(HIST("h2_impact_parameter_xy_physical_primary_flavour"), varImpXY, jetflavour, mcdjet.eventWeight());
1152+
registry.fill(HIST("hn_jet_pt_track_pt_impact_parameter_xy_physical_primary_flavour"), mcdjet.pt(), track.pt(), varImpXY, jetflavour, mcdjet.eventWeight());
11281153
} else {
1129-
registry.fill(HIST("h2_impact_parameter_xy_secondary_flavour"), varImpXY, jetflavour, mcdjet.eventWeight());
1154+
registry.fill(HIST("hn_jet_pt_track_pt_impact_parameter_xy_secondary_flavour"), mcdjet.pt(), track.pt(), varImpXY, jetflavour, mcdjet.eventWeight());
1155+
secondaryPt += track.pt();
11301156
}
11311157
}
1158+
if (totalJetPt > 0) {
1159+
float fracSecondary = secondaryPt / totalJetPt;
1160+
registry.fill(HIST("h3_jet_pt_frac_secondary_pt_per_jet_flavour"), mcdjet.pt(), fracSecondary, jetflavour, mcdjet.eventWeight());
1161+
}
11321162
}
11331163
}
1134-
PROCESS_SWITCH(JetTaggerHFQA, processSecondaryContamination, "Fill QA comtamination of secondary-track inside jets", false);
1164+
PROCESS_SWITCH(JetTaggerHFQA, processSecondaryContaminationMCD, "Fill QA comtamination of secondary-track inside jets for mcd jets", false);
11351165

11361166
void processValFlavourDefMCD(soa::Filtered<soa::Join<aod::JCollisions, aod::JCollisionPIs, aod::JMcCollisionLbs>>::iterator const& collision, soa::Join<JetTableMCD, TagTableMCD, JetTableMCDMCP, weightMCD> const& mcdjets, soa::Join<JetTableMCP, JetTableMCPMCD> const& /*mcpjets*/, JetTagTracksMCD const& tracks, aod::JetParticles const& particles)
11371167
{

0 commit comments

Comments
 (0)