@@ -152,6 +152,7 @@ struct JetTaggerHFQA {
152152 AxisSpec axisFracSecPt = {100 , 0 , 1 , " #frac{#Sigma#it{p}_{T}^{secondary track}}{#it{p}_{T, jet}}" };
153153 AxisSpec axisMultScaledFT0M = {binMultScaledFT0M, " Multiplicity classes" };
154154
155+ registry.add (" h_collision_events" , " data;mcd;mcp evnets" , {HistType::kTH1F , {{4 , 0.0 , 4.0 }}});
155156 if (doprocessTracksDca) {
156157 if (fillIPxy) {
157158 registry.add (" h_impact_parameter_xy" , " " , {HistType::kTH1F , {{axisImpactParameterXY}}});
@@ -1385,11 +1386,121 @@ struct JetTaggerHFQA {
13851386 }
13861387 PROCESS_SWITCH (JetTaggerHFQA, processValFlavourDefMCP, " to check the validation of jet-flavour definition when compared to distance for mcp jets" , false );
13871388
1389+ void processResponseMatrix (soa::Filtered<soa::Join<aod::JetCollisionsMCD, aod::JCollisionPIs>>::iterator const & collision, soa::Join<JetTableMCD, TagTableMCD, JetTableMCDMCP> const & mcdjets, soa::Join<JetTableMCP, JetTableMCPMCD> const & /* mcpjets*/ )
1390+ {
1391+ if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
1392+ return ;
1393+ }
1394+ for (auto const & mcdjet : mcdjets) {
1395+ if (!jetfindingutilities::isInEtaAcceptance (mcdjet, jetEtaCuts->at (0 ), jetEtaCuts->at (1 ), trackCuts->at (2 ), trackCuts->at (3 ))) {
1396+ continue ;
1397+ }
1398+ if (!isAcceptedJet<aod::JetTracks>(mcdjet)) {
1399+ continue ;
1400+ }
1401+ auto jetflavour = mcdjet.origin ();
1402+ registry.fill (HIST (" h2_jet_pt_flavour" ), mcdjet.pt (), jetflavour);
1403+ registry.fill (HIST (" h2_jet_eta_flavour" ), mcdjet.eta (), jetflavour);
1404+ registry.fill (HIST (" h2_jet_phi_flavour" ), mcdjet.phi (), jetflavour);
1405+ if (!mcdjet.has_matchedJetGeo ())
1406+ continue ;
1407+ for (auto const & mcpjet : mcdjet.template matchedJetGeo_as <soa::Join<JetTableMCP, JetTableMCPMCD>>()) {
1408+ registry.fill (HIST (" h3_jet_pt_jet_pt_part_matchedgeo_flavour" ), mcdjet.pt (), mcpjet.pt (), mcdjet.origin ());
1409+ }
1410+ }
1411+ }
1412+ PROCESS_SWITCH (JetTaggerHFQA, processResponseMatrix, " create response matrix with flavour" , false );
1413+
1414+ void processResponseMatrixWeighted (soa::Filtered<soa::Join<aod::JetCollisionsMCD, aod::JCollisionPIs, aod::JCollisionOutliers>>::iterator const & collision, soa::Join<JetTableMCD, TagTableMCD, JetTableMCDMCP> const & mcdjets, soa::Join<JetTableMCP, JetTableMCPMCD> const & /* mcpjets*/ )
1415+ {
1416+ if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
1417+ return ;
1418+ }
1419+ if (collision.isOutlier ()) {
1420+ return ;
1421+ }
1422+ auto eventWeight = collision.weight ();
1423+ for (auto const & mcdjet : mcdjets) {
1424+ if (!jetfindingutilities::isInEtaAcceptance (mcdjet, jetEtaCuts->at (0 ), jetEtaCuts->at (1 ), trackCuts->at (2 ), trackCuts->at (3 ))) {
1425+ continue ;
1426+ }
1427+ if (!isAcceptedJet<aod::JetTracks>(mcdjet)) {
1428+ continue ;
1429+ }
1430+ float pTHat = 10 . / (std::pow (eventWeight, 1.0 / pTHatExponent));
1431+ if (mcdjet.pt () > pTHatMaxMCD * pTHat) {
1432+ continue ;
1433+ }
1434+ auto jetflavour = mcdjet.origin ();
1435+ registry.fill (HIST (" h2_jet_pt_flavour" ), mcdjet.pt (), jetflavour, eventWeight);
1436+ registry.fill (HIST (" h2_jet_eta_flavour" ), mcdjet.eta (), jetflavour, eventWeight);
1437+ registry.fill (HIST (" h2_jet_phi_flavour" ), mcdjet.phi (), jetflavour, eventWeight);
1438+ if (!mcdjet.has_matchedJetGeo ())
1439+ continue ;
1440+ for (auto const & mcpjet : mcdjet.template matchedJetGeo_as <soa::Join<JetTableMCP, JetTableMCPMCD>>()) {
1441+ if (mcpjet.pt () > pTHatMaxMCP * pTHat) {
1442+ continue ;
1443+ }
1444+ registry.fill (HIST (" h3_jet_pt_jet_pt_part_matchedgeo_flavour" ), mcdjet.pt (), mcpjet.pt (), mcdjet.origin (), eventWeight);
1445+ }
1446+ }
1447+ }
1448+ PROCESS_SWITCH (JetTaggerHFQA, processResponseMatrixWeighted, " create response matrix with flavour weighted" , false );
1449+
1450+ void processMCP (JetTableMCP const & mcpjets, aod::JetParticles const &, soa::Join<aod::JetMcCollisions, aod::JMcCollisionPIs> const & mcCollisions, soa::Filtered<aod::JetCollisionsMCD> const & collisions)
1451+ {
1452+ registry.fill (HIST (" h_collision_events" ), 2.5 ); // mcp events
1453+ for (auto const & mcpjet : mcpjets) {
1454+ if (!jetfindingutilities::isInEtaAcceptance (mcpjet, jetEtaCuts->at (0 ), jetEtaCuts->at (1 ), trackCuts->at (2 ), trackCuts->at (3 ))) {
1455+ continue ;
1456+ }
1457+ if (!isAcceptedJet<aod::JetParticles>(mcpjet)) {
1458+ continue ;
1459+ }
1460+ auto mcCollision = mcCollisions.sliceBy (McCollisionsPerMCPCollision, mcpjet.mcCollisionId ());
1461+ if (checkMcCollisionIsMatched) {
1462+ auto collisionspermcpjet = collisions.sliceBy (collisionsPerMCPCollision, mcpjet.mcCollisionId ());
1463+ if (collisionspermcpjet.size () >= 1 && jetderiveddatautilities::selectCollision (collisionspermcpjet.begin (), eventSelectionBits)) {
1464+ fillHistogramMCP (mcpjet, 1 ., mcCollision.begin ().ptHard ());
1465+ }
1466+ } else {
1467+ fillHistogramMCP (mcpjet, 1 ., mcCollision.begin ().ptHard ());
1468+ }
1469+ }
1470+ }
1471+ PROCESS_SWITCH (JetTaggerHFQA, processMCP, " Fill impact parameter imformation for mcp jets" , false );
1472+
1473+ void processMCPWeighted (JetTableMCP const & mcpjets, aod::JetParticles const &, soa::Join<aod::JetMcCollisions, aod::JMcCollisionPIs> const & mcCollisions, soa::Filtered<soa::Join<aod::JetCollisionsMCD, aod::JCollisionOutliers>> const & collisions)
1474+ {
1475+ registry.fill (HIST (" h_collision_events" ), 2.5 ); // mcp events
1476+ for (auto const & mcpjet : mcpjets) {
1477+ if (!jetfindingutilities::isInEtaAcceptance (mcpjet, jetEtaCuts->at (0 ), jetEtaCuts->at (1 ), trackCuts->at (2 ), trackCuts->at (3 ))) {
1478+ continue ;
1479+ }
1480+ if (!isAcceptedJet<aod::JetParticles>(mcpjet)) {
1481+ continue ;
1482+ }
1483+ auto mcCollision = mcCollisions.sliceBy (McCollisionsPerMCPCollision, mcpjet.mcCollisionId ());
1484+ if (mcCollision.size () == 1 ) {
1485+ if (checkMcCollisionIsMatched) {
1486+ auto collisionspermcpjet = collisions.sliceBy (collisionsPerMCPCollision, mcpjet.mcCollisionId ());
1487+ if (collisionspermcpjet.size () >= 1 && jetderiveddatautilities::selectCollision (collisionspermcpjet.begin (), eventSelectionBits) && !collisionspermcpjet.begin ().isOutlier ()) {
1488+ fillHistogramMCP (mcpjet, mcCollision.begin ().weight (), mcCollision.begin ().ptHard ());
1489+ }
1490+ } else {
1491+ fillHistogramMCP (mcpjet, mcCollision.begin ().weight (), mcCollision.begin ().ptHard ());
1492+ }
1493+ }
1494+ }
1495+ }
1496+ PROCESS_SWITCH (JetTaggerHFQA, processMCPWeighted, " Fill impact parameter imformation for mcp jets 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 ()) {
13911501 return ;
13921502 }
1503+ registry.fill (HIST (" h_collision_events" ), 0.5 ); // data events
13931504 for (auto const & jet : jets) {
13941505 if (!jetfindingutilities::isInEtaAcceptance (jet, jetEtaCuts->at (0 ), jetEtaCuts->at (1 ), trackCuts->at (2 ), trackCuts->at (3 ))) {
13951506 continue ;
@@ -1407,6 +1518,7 @@ struct JetTaggerHFQA {
14071518 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
14081519 return ;
14091520 }
1521+ registry.fill (HIST (" h_collision_events" ), 1.5 ); // mcd events
14101522 for (auto const & mcdjet : mcdjets) {
14111523 if (!jetfindingutilities::isInEtaAcceptance (mcdjet, jetEtaCuts->at (0 ), jetEtaCuts->at (1 ), trackCuts->at (2 ), trackCuts->at (3 ))) {
14121524 continue ;
@@ -1424,6 +1536,7 @@ struct JetTaggerHFQA {
14241536 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
14251537 return ;
14261538 }
1539+ registry.fill (HIST (" h_collision_events" ), 1.5 , collision.weight ()); // mcd events
14271540 for (auto const & mcdjet : mcdjets) {
14281541 if (!jetfindingutilities::isInEtaAcceptance (mcdjet, jetEtaCuts->at (0 ), jetEtaCuts->at (1 ), trackCuts->at (2 ), trackCuts->at (3 ))) {
14291542 continue ;
@@ -1480,6 +1593,7 @@ struct JetTaggerHFQA {
14801593 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
14811594 return ;
14821595 }
1596+ registry.fill (HIST (" h_collision_events" ), 1.5 ); // mcd events
14831597 for (auto const & mcdjet : mcdjets) {
14841598 auto const particlesPerColl = particles.sliceBy (particlesPerCollision, collision.mcCollisionId ());
14851599 if (!jetfindingutilities::isInEtaAcceptance (mcdjet, jetEtaCuts->at (0 ), jetEtaCuts->at (1 ), trackCuts->at (2 ), trackCuts->at (3 ))) {
@@ -1504,6 +1618,10 @@ struct JetTaggerHFQA {
15041618 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
15051619 return ;
15061620 }
1621+ if (collision.isOutlier ()) {
1622+ return ;
1623+ }
1624+ registry.fill (HIST (" h_collision_events" ), 1.5 , collision.weight ()); // mcd events
15071625 for (auto const & mcdjet : mcdjets) {
15081626 auto const particlesPerColl = particles.sliceBy (particlesPerCollision, collision.mcCollisionId ());
15091627 if (!jetfindingutilities::isInEtaAcceptance (mcdjet, jetEtaCuts->at (0 ), jetEtaCuts->at (1 ), trackCuts->at (2 ), trackCuts->at (3 ))) {
@@ -1535,6 +1653,8 @@ struct JetTaggerHFQA {
15351653 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
15361654 return ;
15371655 }
1656+ if (!doprocessIPsData)
1657+ registry.fill (HIST (" h_collision_events" ), 0.5 ); // data events
15381658 for (auto const & jet : jets) {
15391659 if (!jetfindingutilities::isInEtaAcceptance (jet, jetEtaCuts->at (0 ), jetEtaCuts->at (1 ), trackCuts->at (2 ), trackCuts->at (3 ))) {
15401660 continue ;
@@ -1552,6 +1672,7 @@ struct JetTaggerHFQA {
15521672 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
15531673 return ;
15541674 }
1675+ registry.fill (HIST (" h_collision_events" ), 1.5 ); // mcd events
15551676 for (auto const & mcdjet : mcdjets) {
15561677 if (!jetfindingutilities::isInEtaAcceptance (mcdjet, jetEtaCuts->at (0 ), jetEtaCuts->at (1 ), trackCuts->at (2 ), trackCuts->at (3 ))) {
15571678 continue ;
@@ -1569,6 +1690,10 @@ struct JetTaggerHFQA {
15691690 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
15701691 return ;
15711692 }
1693+ if (collision.isOutlier ()) {
1694+ return ;
1695+ }
1696+ registry.fill (HIST (" h_collision_events" ), 1.5 , collision.weight ()); // mcd events
15721697 for (auto const & mcdjet : mcdjets) {
15731698 if (!jetfindingutilities::isInEtaAcceptance (mcdjet, jetEtaCuts->at (0 ), jetEtaCuts->at (1 ), trackCuts->at (2 ), trackCuts->at (3 ))) {
15741699 continue ;
@@ -1586,6 +1711,7 @@ struct JetTaggerHFQA {
15861711 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
15871712 return ;
15881713 }
1714+ registry.fill (HIST (" h_collision_events" ), 1.5 ); // mcd events
15891715 for (auto const & mcdjet : mcdjets) {
15901716 if (!jetfindingutilities::isInEtaAcceptance (mcdjet, jetEtaCuts->at (0 ), jetEtaCuts->at (1 ), trackCuts->at (2 ), trackCuts->at (3 ))) {
15911717 continue ;
@@ -1606,6 +1732,10 @@ struct JetTaggerHFQA {
16061732 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
16071733 return ;
16081734 }
1735+ if (collision.isOutlier ()) {
1736+ return ;
1737+ }
1738+ registry.fill (HIST (" h_collision_events" ), 1.5 , collision.weight ()); // mcd events
16091739 for (auto const & mcdjet : mcdjets) {
16101740 if (!jetfindingutilities::isInEtaAcceptance (mcdjet, jetEtaCuts->at (0 ), jetEtaCuts->at (1 ), trackCuts->at (2 ), trackCuts->at (3 ))) {
16111741 continue ;
@@ -1626,6 +1756,7 @@ struct JetTaggerHFQA {
16261756 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
16271757 return ;
16281758 }
1759+ registry.fill (HIST (" h_collision_events" ), 0.5 ); // mcd events
16291760 for (auto const & jet : jets) {
16301761 if (!jetfindingutilities::isInEtaAcceptance (jet, jetEtaCuts->at (0 ), jetEtaCuts->at (1 ), trackCuts->at (2 ), trackCuts->at (3 ))) {
16311762 continue ;
@@ -1643,6 +1774,7 @@ struct JetTaggerHFQA {
16431774 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
16441775 return ;
16451776 }
1777+ registry.fill (HIST (" h_collision_events" ), 0.5 ); // mcd events
16461778 for (auto const & jet : jets) {
16471779 if (!jetfindingutilities::isInEtaAcceptance (jet, jetEtaCuts->at (0 ), jetEtaCuts->at (1 ), trackCuts->at (2 ), trackCuts->at (3 ))) {
16481780 continue ;
@@ -1681,6 +1813,7 @@ struct JetTaggerHFQA {
16811813 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
16821814 return ;
16831815 }
1816+ registry.fill (HIST (" h_collision_events" ), 1.5 ); // mcd events
16841817 for (auto const & mcdjet : mcdjets) {
16851818 if (!jetfindingutilities::isInEtaAcceptance (mcdjet, jetEtaCuts->at (0 ), jetEtaCuts->at (1 ), trackCuts->at (2 ), trackCuts->at (3 ))) {
16861819 continue ;
@@ -1698,6 +1831,10 @@ struct JetTaggerHFQA {
16981831 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
16991832 return ;
17001833 }
1834+ if (collision.isOutlier ()) {
1835+ return ;
1836+ }
1837+ registry.fill (HIST (" h_collision_events" ), 1.5 , collision.weight ()); // mcd events
17011838 for (auto const & mcdjet : mcdjets) {
17021839 if (!jetfindingutilities::isInEtaAcceptance (mcdjet, jetEtaCuts->at (0 ), jetEtaCuts->at (1 ), trackCuts->at (2 ), trackCuts->at (3 ))) {
17031840 continue ;
@@ -1715,6 +1852,7 @@ struct JetTaggerHFQA {
17151852 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
17161853 return ;
17171854 }
1855+ registry.fill (HIST (" h_collision_events" ), 1.5 ); // mcd events
17181856 for (auto const & mcdjet : mcdjets) {
17191857 if (!jetfindingutilities::isInEtaAcceptance (mcdjet, jetEtaCuts->at (0 ), jetEtaCuts->at (1 ), trackCuts->at (2 ), trackCuts->at (3 ))) {
17201858 continue ;
@@ -1736,6 +1874,10 @@ struct JetTaggerHFQA {
17361874 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
17371875 return ;
17381876 }
1877+ if (collision.isOutlier ()) {
1878+ return ;
1879+ }
1880+ registry.fill (HIST (" h_collision_events" ), 1.5 , collision.weight ()); // mcd events
17391881 for (auto const & mcdjet : mcdjets) {
17401882 if (!jetfindingutilities::isInEtaAcceptance (mcdjet, jetEtaCuts->at (0 ), jetEtaCuts->at (1 ), trackCuts->at (2 ), trackCuts->at (3 ))) {
17411883 continue ;
@@ -1757,6 +1899,7 @@ struct JetTaggerHFQA {
17571899 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
17581900 return ;
17591901 }
1902+ registry.fill (HIST (" h_collision_events" ), 1.5 ); // mcd events
17601903 for (auto const & mcdjet : mcdjets) {
17611904 if (!jetfindingutilities::isInEtaAcceptance (mcdjet, jetEtaCuts->at (0 ), jetEtaCuts->at (1 ), trackCuts->at (2 ), trackCuts->at (3 ))) {
17621905 continue ;
@@ -1774,6 +1917,10 @@ struct JetTaggerHFQA {
17741917 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
17751918 return ;
17761919 }
1920+ if (collision.isOutlier ()) {
1921+ return ;
1922+ }
1923+ registry.fill (HIST (" h_collision_events" ), 1.5 , collision.weight ()); // mcd events
17771924 for (auto const & mcdjet : mcdjets) {
17781925 if (!jetfindingutilities::isInEtaAcceptance (mcdjet, jetEtaCuts->at (0 ), jetEtaCuts->at (1 ), trackCuts->at (2 ), trackCuts->at (3 ))) {
17791926 continue ;
@@ -1791,6 +1938,7 @@ struct JetTaggerHFQA {
17911938 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
17921939 return ;
17931940 }
1941+ registry.fill (HIST (" h_collision_events" ), 1.5 ); // mcd events
17941942 for (auto const & mcdjet : mcdjets) {
17951943 if (!jetfindingutilities::isInEtaAcceptance (mcdjet, jetEtaCuts->at (0 ), jetEtaCuts->at (1 ), trackCuts->at (2 ), trackCuts->at (3 ))) {
17961944 continue ;
@@ -1812,6 +1960,10 @@ struct JetTaggerHFQA {
18121960 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
18131961 return ;
18141962 }
1963+ if (collision.isOutlier ()) {
1964+ return ;
1965+ }
1966+ registry.fill (HIST (" h_collision_events" ), 1.5 , collision.weight ()); // mcd events
18151967 for (auto const & mcdjet : mcdjets) {
18161968 if (!jetfindingutilities::isInEtaAcceptance (mcdjet, jetEtaCuts->at (0 ), jetEtaCuts->at (1 ), trackCuts->at (2 ), trackCuts->at (3 ))) {
18171969 continue ;
0 commit comments