Skip to content

Commit 112f4ac

Browse files
committed
seperate function of response matrix
1 parent 55f8285 commit 112f4ac

File tree

1 file changed

+118
-8
lines changed

1 file changed

+118
-8
lines changed

PWGJE/Tasks/jetTaggerHFQA.cxx

Lines changed: 118 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,15 @@ struct JetTaggerHFQA {
198198
registry.add("h3_part_jet_pt_flavour_const_hadron_part_flavour_dist_hadron", "", {HistType::kTH3F, {{axisJetPt}, {axisJetFlavour}, {axisJetFlavour}}});
199199
registry.add("h3_part_jet_pt_flavour_const_quark_part_flavour_dist_quark", "", {HistType::kTH3F, {{axisJetPt}, {axisJetFlavour}, {axisJetFlavour}}});
200200
}
201+
if (doprocessResponseMatrix || doprocessResponseMatrixWeighted) {
202+
registry.add("h2_jet_pt_flavour", "", {HistType::kTH2F, {{axisJetPt}, {axisJetFlavour}}});
203+
registry.add("h2_jet_eta_flavour", "", {HistType::kTH2F, {{axisEta}, {axisJetFlavour}}});
204+
registry.add("h2_jet_phi_flavour", "", {HistType::kTH2F, {{axisPhi}, {axisJetFlavour}}});
205+
registry.add("h2_jet_pt_part_flavour", "", {HistType::kTH2F, {{axisJetPt}, {axisJetFlavour}}});
206+
registry.add("h2_jet_eta_part_flavour", "", {HistType::kTH2F, {{axisEta}, {axisJetFlavour}}});
207+
registry.add("h2_jet_phi_part_flavour", "", {HistType::kTH2F, {{axisPhi}, {axisJetFlavour}}});
208+
registry.add("h3_jet_pt_jet_pt_part_matchedgeo_flavour", "", {HistType::kTH3F, {{axisMCDJetPt}, {axisMCPJetPt}, {axisJetFlavour}}});
209+
}
201210
if (doprocessIPsData) {
202211
registry.add("h_jet_pt", "", {HistType::kTH1F, {{axisJetPt}}});
203212
registry.add("h_jet_eta", "", {HistType::kTH1F, {{axisEta}}});
@@ -944,13 +953,13 @@ struct JetTaggerHFQA {
944953
if (jet.pt() > pTHatMaxMCD * pTHat) {
945954
return;
946955
}
947-
if (jet.template secondaryVertices_as<U>().size() < 1)
948-
return;
949956
if (!doprocessIPsData && !doprocessJPData && !doprocessSV3ProngData) {
950957
registry.fill(HIST("h_jet_pt"), jet.pt(), eventWeight);
951958
registry.fill(HIST("h_jet_eta"), jet.eta(), eventWeight);
952959
registry.fill(HIST("h_jet_phi"), jet.phi(), eventWeight);
953960
}
961+
if (jet.template secondaryVertices_as<U>().size() < 1)
962+
return;
954963
if (fillGeneralSVQA) {
955964
registry.fill(HIST("h_2prong_nprongs"), jet.template secondaryVertices_as<U>().size());
956965
for (const auto& prong : jet.template secondaryVertices_as<U>()) {
@@ -999,13 +1008,13 @@ struct JetTaggerHFQA {
9991008
if (jet.pt() > pTHatMaxMCD * pTHat) {
10001009
return;
10011010
}
1002-
if (jet.template secondaryVertices_as<U>().size() < 1)
1003-
return;
10041011
if (!doprocessIPsData && !doprocessJPData && !doprocessSV2ProngData) {
10051012
registry.fill(HIST("h_jet_pt"), jet.pt(), eventWeight);
10061013
registry.fill(HIST("h_jet_eta"), jet.eta(), eventWeight);
10071014
registry.fill(HIST("h_jet_phi"), jet.phi(), eventWeight);
10081015
}
1016+
if (jet.template secondaryVertices_as<U>().size() < 1)
1017+
return;
10091018
if (fillGeneralSVQA) {
10101019
registry.fill(HIST("h_3prong_nprongs"), jet.template secondaryVertices_as<U>().size());
10111020
for (const auto& prong : jet.template secondaryVertices_as<U>()) {
@@ -1098,13 +1107,13 @@ struct JetTaggerHFQA {
10981107
return;
10991108
}
11001109
auto origin = mcdjet.origin();
1101-
if (mcdjet.template secondaryVertices_as<U>().size() < 1)
1102-
return;
11031110
if (!((doprocessIPsMCD || doprocessIPsMCDWeighted || doprocessIPsMCPMCDMatched || doprocessIPsMCPMCDMatchedWeighted) && (doprocessJPMCD || doprocessJPMCDWeighted || doprocessJPMCPMCDMatched || doprocessJPMCPMCDMatchedWeighted) && (doprocessSV3ProngMCD || doprocessSV3ProngMCDWeighted || doprocessSV3ProngMCPMCDMatched || doprocessSV3ProngMCPMCDMatchedWeighted))) {
11041111
registry.fill(HIST("h2_jet_pt_flavour"), mcdjet.pt(), origin, eventWeight);
11051112
registry.fill(HIST("h2_jet_eta_flavour"), mcdjet.eta(), origin, eventWeight);
11061113
registry.fill(HIST("h2_jet_phi_flavour"), mcdjet.phi(), origin, eventWeight);
11071114
}
1115+
if (mcdjet.template secondaryVertices_as<U>().size() < 1)
1116+
return;
11081117
if (fillGeneralSVQA) {
11091118
registry.fill(HIST("h2_2prong_nprongs_flavour"), mcdjet.template secondaryVertices_as<U>().size(), origin, eventWeight);
11101119
for (const auto& prong : mcdjet.template secondaryVertices_as<U>()) {
@@ -1154,13 +1163,13 @@ struct JetTaggerHFQA {
11541163
return;
11551164
}
11561165
auto origin = mcdjet.origin();
1157-
if (mcdjet.template secondaryVertices_as<U>().size() < 1)
1158-
return;
11591166
if (!((doprocessIPsMCD || doprocessIPsMCDWeighted || doprocessIPsMCPMCDMatched || doprocessIPsMCPMCDMatchedWeighted) && (doprocessJPMCD || doprocessJPMCDWeighted || doprocessJPMCPMCDMatched || doprocessJPMCPMCDMatchedWeighted) && (doprocessSV2ProngMCD || doprocessSV2ProngMCDWeighted || doprocessSV2ProngMCPMCDMatched || doprocessSV2ProngMCPMCDMatchedWeighted))) {
11601167
registry.fill(HIST("h2_jet_pt_flavour"), mcdjet.pt(), origin, eventWeight);
11611168
registry.fill(HIST("h2_jet_eta_flavour"), mcdjet.eta(), origin, eventWeight);
11621169
registry.fill(HIST("h2_jet_phi_flavour"), mcdjet.phi(), origin, eventWeight);
11631170
}
1171+
if (mcdjet.template secondaryVertices_as<U>().size() < 1)
1172+
return;
11641173
if (fillGeneralSVQA) {
11651174
registry.fill(HIST("h2_3prong_nprongs_flavour"), mcdjet.template secondaryVertices_as<U>().size(), origin);
11661175
for (const auto& prong : mcdjet.template secondaryVertices_as<U>()) {
@@ -1385,6 +1394,107 @@ struct JetTaggerHFQA {
13851394
}
13861395
PROCESS_SWITCH(JetTaggerHFQA, processValFlavourDefMCP, "to check the validation of jet-flavour definition when compared to distance for mcp jets", false);
13871396

1397+
void processResponseMatrix(soa::Filtered<soa::Join<aod::JCollisions, aod::JCollisionPIs, aod::JMcCollisionLbs>>::iterator const& collision, soa::Join<JetTableMCD, TagTableMCD, JetTableMCDMCP> const& mcdjets, soa::Join<JetTableMCP, JetTableMCPMCD> const& mcpjets, aod::JetParticles const& particles, soa::Filtered<aod::JetCollisionsMCD> const& collisions)
1398+
{
1399+
if (collision.trackOccupancyInTimeRange() < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange()) {
1400+
return;
1401+
}
1402+
for (auto const& mcdjet : mcdjets) {
1403+
auto const particlesPerColl = particles.sliceBy(particlesPerCollision, collision.mcCollisionId());
1404+
if (!jetfindingutilities::isInEtaAcceptance(mcdjet, jetEtaCuts->at(0), jetEtaCuts->at(1), trackCuts->at(2), trackCuts->at(3))) {
1405+
continue;
1406+
}
1407+
if (!isAcceptedJet<aod::JetTracks>(mcdjet)) {
1408+
continue;
1409+
}
1410+
auto jetflavour = mcdjet.origin();
1411+
registry.fill(HIST("h2_jet_pt_flavour"), mcdjet.pt(), jetflavour);
1412+
registry.fill(HIST("h2_jet_eta_flavour"), mcdjet.eta(), jetflavour);
1413+
registry.fill(HIST("h2_jet_phi_flavour"), mcdjet.phi(), jetflavour);
1414+
if (!mcdjet.has_matchedJetGeo())
1415+
continue;
1416+
for (auto const& mcpjet : mcdjet.template matchedJetGeo_as<soa::Join<JetTableMCP, JetTableMCPMCD>>()) {
1417+
registry.fill(HIST("h3_jet_pt_jet_pt_part_matchedgeo_flavour"), mcdjet.pt(), mcpjet.pt(), mcdjet.origin());
1418+
}
1419+
}
1420+
for (auto const& mcpjet : mcpjets) {
1421+
if (!jetfindingutilities::isInEtaAcceptance(mcpjet, jetEtaCuts->at(0), jetEtaCuts->at(1), trackCuts->at(2), trackCuts->at(3))) {
1422+
continue;
1423+
}
1424+
if (!isAcceptedJet<aod::JetParticles>(mcpjet)) {
1425+
continue;
1426+
}
1427+
auto jetflavour = mcpjet.origin();
1428+
if (checkMcCollisionIsMatched) {
1429+
auto collisionspermcpjet = collisions.sliceBy(collisionsPerMCPCollision, mcpjet.mcCollisionId());
1430+
if (collisionspermcpjet.size() >= 1 && jetderiveddatautilities::selectCollision(collisionspermcpjet.begin(), eventSelectionBits)) {
1431+
registry.fill(HIST("h2_jet_pt_part_flavour"), mcpjet.pt(), jetflavour);
1432+
registry.fill(HIST("h2_jet_eta_part_flavour"), mcpjet.eta(), jetflavour);
1433+
registry.fill(HIST("h2_jet_phi_part_flavour"), mcpjet.phi(), jetflavour);
1434+
}
1435+
} else {
1436+
registry.fill(HIST("h2_jet_pt_part_flavour"), mcpjet.pt(), jetflavour);
1437+
registry.fill(HIST("h2_jet_eta_part_flavour"), mcpjet.eta(), jetflavour);
1438+
registry.fill(HIST("h2_jet_phi_part_flavour"), mcpjet.phi(), jetflavour);
1439+
}
1440+
}
1441+
}
1442+
PROCESS_SWITCH(JetTaggerHFQA, processResponseMatrix, "create response matrix with flavour", false);
1443+
1444+
void processResponseMatrixWeighted(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, weightMCP> const& mcpjets, aod::JetParticles const& particles, soa::Filtered<aod::JetCollisionsMCD> const& collisions)
1445+
{
1446+
if (collision.trackOccupancyInTimeRange() < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange()) {
1447+
return;
1448+
}
1449+
for (auto const& mcdjet : mcdjets) {
1450+
auto const particlesPerColl = particles.sliceBy(particlesPerCollision, collision.mcCollisionId());
1451+
if (!jetfindingutilities::isInEtaAcceptance(mcdjet, jetEtaCuts->at(0), jetEtaCuts->at(1), trackCuts->at(2), trackCuts->at(3))) {
1452+
continue;
1453+
}
1454+
if (!isAcceptedJet<aod::JetTracks>(mcdjet)) {
1455+
continue;
1456+
}
1457+
float pTHat = 10. / (std::pow(mcdjet.eventWeight(), 1.0 / pTHatExponent));
1458+
if (mcdjet.pt() > pTHatMaxMCD * pTHat) {
1459+
continue;
1460+
}
1461+
auto jetflavour = mcdjet.origin();
1462+
registry.fill(HIST("h2_jet_pt_flavour"), mcdjet.pt(), jetflavour);
1463+
registry.fill(HIST("h2_jet_eta_flavour"), mcdjet.eta(), jetflavour);
1464+
registry.fill(HIST("h2_jet_phi_flavour"), mcdjet.phi(), jetflavour);
1465+
if (!mcdjet.has_matchedJetGeo())
1466+
continue;
1467+
for (auto const& mcpjet : mcdjet.template matchedJetGeo_as<soa::Join<JetTableMCP, JetTableMCPMCD>>()) {
1468+
if (mcpjet.pt() > pTHatMaxMCP * pTHat) {
1469+
continue;
1470+
}
1471+
registry.fill(HIST("h3_jet_pt_jet_pt_part_matchedgeo_flavour"), mcdjet.pt(), mcpjet.pt(), mcdjet.origin(), mcdjet.eventWeight());
1472+
}
1473+
}
1474+
for (auto const& mcpjet : mcpjets) {
1475+
if (!jetfindingutilities::isInEtaAcceptance(mcpjet, jetEtaCuts->at(0), jetEtaCuts->at(1), trackCuts->at(2), trackCuts->at(3))) {
1476+
continue;
1477+
}
1478+
if (!isAcceptedJet<aod::JetParticles>(mcpjet)) {
1479+
continue;
1480+
}
1481+
auto jetflavour = mcpjet.origin();
1482+
if (checkMcCollisionIsMatched) {
1483+
auto collisionspermcpjet = collisions.sliceBy(collisionsPerMCPCollision, mcpjet.mcCollisionId());
1484+
if (collisionspermcpjet.size() >= 1 && jetderiveddatautilities::selectCollision(collisionspermcpjet.begin(), eventSelectionBits)) {
1485+
registry.fill(HIST("h2_jet_pt_part_flavour"), mcpjet.pt(), jetflavour, mcpjet.eventWeight());
1486+
registry.fill(HIST("h2_jet_eta_part_flavour"), mcpjet.eta(), jetflavour, mcpjet.eventWeight());
1487+
registry.fill(HIST("h2_jet_phi_part_flavour"), mcpjet.phi(), jetflavour, mcpjet.eventWeight());
1488+
}
1489+
} else {
1490+
registry.fill(HIST("h2_jet_pt_part_flavour"), mcpjet.pt(), jetflavour, mcpjet.eventWeight());
1491+
registry.fill(HIST("h2_jet_eta_part_flavour"), mcpjet.eta(), jetflavour, mcpjet.eventWeight());
1492+
registry.fill(HIST("h2_jet_phi_part_flavour"), mcpjet.phi(), jetflavour, mcpjet.eventWeight());
1493+
}
1494+
}
1495+
}
1496+
PROCESS_SWITCH(JetTaggerHFQA, processResponseMatrixWeighted, "create response matrix with flavour weighted", false);
1497+
13881498
void processIPsData(soa::Filtered<aod::JetCollisions>::iterator const& collision, soa::Join<JetTableData, TagTableData> const& jets, JetTagTracksData const& tracks)
13891499
{
13901500
if (collision.trackOccupancyInTimeRange() < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange()) {

0 commit comments

Comments
 (0)