@@ -374,6 +374,7 @@ struct JetFinderQATask {
374374 Filter trackCuts = (aod::jtrack::pt >= trackPtMin && aod::jtrack::pt < trackPtMax && aod::jtrack::eta > trackEtaMin && aod::jtrack::eta < trackEtaMax);
375375 Filter eventCuts = (nabs(aod::jcollision::posZ) < vertexZCut && aod::jcollision::centFT0M >= centralityMin && aod::jcollision::centFT0M < centralityMax);
376376 PresliceUnsorted<soa::Filtered<aod::JetCollisionsMCD>> CollisionsPerMCPCollision = aod::jmccollisionlb::mcCollisionId;
377+ PresliceUnsorted<soa::Join<aod::JetMcCollisions, aod::JMcCollisionPIs>> McCollisionsPerMCPCollision = aod::jmccollision::mcCollisionId;
377378
378379 template <typename T, typename U>
379380 bool isAcceptedJet (U const & jet)
@@ -904,7 +905,7 @@ struct JetFinderQATask {
904905 }
905906 PROCESS_SWITCH (JetFinderQATask, processJetsMCD, " jet finder QA mcd" , false );
906907
907- void processJetsMCDWeighted (soa::Filtered<soa::Join<aod::JetCollisions, aod::JCollisionOutliers>>::iterator const & collision, soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents, aod::ChargedMCDetectorLevelJetEventWeights > const & jets, aod::JetTracks const &)
908+ void processJetsMCDWeighted (soa::Filtered<soa::Join<aod::JetCollisions, aod::JCollisionOutliers>>::iterator const & collision, soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents> const & jets, aod::JetTracks const &)
908909 {
909910 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
910911 return ;
@@ -919,13 +920,13 @@ struct JetFinderQATask {
919920 if (!isAcceptedJet<aod::JetTracks>(jet)) {
920921 continue ;
921922 }
922- double pTHat = 10 . / (std::pow (jet. eventWeight (), 1.0 / pTHatExponent));
923+ double pTHat = 10 . / (std::pow (collision. weight (), 1.0 / pTHatExponent));
923924 for (int N = 1 ; N < 21 ; N++) {
924925 if (jet.pt () < N * 0.25 * pTHat && jet.r () == round (selectedJetsRadius * 100 .0f )) {
925- registry.fill (HIST (" h_jet_ptcut" ), jet.pt (), N * 0.25 , jet. eventWeight ());
926+ registry.fill (HIST (" h_jet_ptcut" ), jet.pt (), N * 0.25 , collision. weight ());
926927 }
927928 }
928- fillHistograms (jet, collision.centFT0M (), collision.trackOccupancyInTimeRange (), collision.hadronicRate (), jet. eventWeight ());
929+ fillHistograms (jet, collision.centFT0M (), collision.trackOccupancyInTimeRange (), collision.hadronicRate (), collision. weight ());
929930 }
930931 }
931932 PROCESS_SWITCH (JetFinderQATask, processJetsMCDWeighted, " jet finder QA mcd with weighted events" , false );
@@ -949,27 +950,30 @@ struct JetFinderQATask {
949950 }
950951 PROCESS_SWITCH (JetFinderQATask, processJetsMCP, " jet finder QA mcp" , false );
951952
952- void processJetsMCPWeighted (soa::Join<aod::ChargedMCParticleLevelJets, aod::ChargedMCParticleLevelJetConstituents, aod::ChargedMCParticleLevelJetEventWeights >::iterator const & jet, aod::JetParticles const &, aod::JetMcCollisions const &, soa::Filtered<soa::Join<aod::JetCollisionsMCD, aod::JCollisionOutliers>> const & collisions)
953+ void processJetsMCPWeighted (soa::Join<aod::ChargedMCParticleLevelJets, aod::ChargedMCParticleLevelJetConstituents>::iterator const & jet, aod::JetParticles const &, soa::Join< aod::JetMcCollisions, aod::JMcCollisionPIs> const & mcCollisions , soa::Filtered<soa::Join<aod::JetCollisionsMCD, aod::JCollisionOutliers>> const & collisions)
953954 {
954955 if (!jetfindingutilities::isInEtaAcceptance (jet, jetEtaMin, jetEtaMax, trackEtaMin, trackEtaMax)) {
955956 return ;
956957 }
957958 if (!isAcceptedJet<aod::JetParticles>(jet)) {
958959 return ;
959960 }
960- double pTHat = 10 . / (std::pow (jet.eventWeight (), 1.0 / pTHatExponent));
961- for (int N = 1 ; N < 21 ; N++) {
962- if (jet.pt () < N * 0.25 * pTHat && jet.r () == round (selectedJetsRadius * 100 .0f )) {
963- registry.fill (HIST (" h_jet_ptcut_part" ), jet.pt (), N * 0.25 , jet.eventWeight ());
961+ auto mcCollision = mcCollisions.sliceBy (McCollisionsPerMCPCollision, jet.mcCollisionId ());
962+ if (mcCollision.size () == 1 ) {
963+ double pTHat = 10 . / (std::pow (mcCollision.begin ().weight (), 1.0 / pTHatExponent));
964+ for (int N = 1 ; N < 21 ; N++) {
965+ if (jet.pt () < N * 0.25 * pTHat && jet.r () == round (selectedJetsRadius * 100 .0f )) {
966+ registry.fill (HIST (" h_jet_ptcut_part" ), jet.pt (), N * 0.25 , mcCollision.begin ().weight ());
967+ }
964968 }
965- }
966- if (checkMcCollisionIsMatched) {
967- auto collisionspermcpjet = collisions.sliceBy (CollisionsPerMCPCollision, jet.mcCollisionId ());
968- if (collisionspermcpjet.size () >= 1 && jetderiveddatautilities::selectCollision (collisionspermcpjet.begin (), eventSelectionBits) && !collisionspermcpjet.begin ().isOutlier ()) {
969- fillMCPHistograms (jet, jet.eventWeight ());
969+ if (checkMcCollisionIsMatched) {
970+ auto collisionspermcpjet = collisions.sliceBy (CollisionsPerMCPCollision, jet.mcCollisionId ());
971+ if (collisionspermcpjet.size () >= 1 && jetderiveddatautilities::selectCollision (collisionspermcpjet.begin (), eventSelectionBits) && !collisionspermcpjet.begin ().isOutlier ()) {
972+ fillMCPHistograms (jet, mcCollision.begin ().weight ());
973+ }
974+ } else {
975+ fillMCPHistograms (jet, mcCollision.begin ().weight ());
970976 }
971- } else {
972- fillMCPHistograms (jet, jet.eventWeight ());
973977 }
974978 }
975979 PROCESS_SWITCH (JetFinderQATask, processJetsMCPWeighted, " jet finder QA mcp with weighted events" , false );
@@ -1001,8 +1005,8 @@ struct JetFinderQATask {
10011005 PROCESS_SWITCH (JetFinderQATask, processJetsMCPMCDMatched, " jet finder QA matched mcp and mcd" , false );
10021006
10031007 void processJetsMCPMCDMatchedWeighted (soa::Filtered<soa::Join<aod::JetCollisions, aod::JCollisionOutliers>>::iterator const & collision,
1004- soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents, aod::ChargedMCDetectorLevelJetsMatchedToChargedMCParticleLevelJets, aod::ChargedMCDetectorLevelJetEventWeights > const & mcdjets,
1005- soa::Join<aod::ChargedMCParticleLevelJets, aod::ChargedMCParticleLevelJetConstituents, aod::ChargedMCParticleLevelJetsMatchedToChargedMCDetectorLevelJets, aod::ChargedMCParticleLevelJetEventWeights > const &,
1008+ soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents, aod::ChargedMCDetectorLevelJetsMatchedToChargedMCParticleLevelJets> const & mcdjets,
1009+ soa::Join<aod::ChargedMCParticleLevelJets, aod::ChargedMCParticleLevelJetConstituents, aod::ChargedMCParticleLevelJetsMatchedToChargedMCDetectorLevelJets> const &,
10061010 aod::JetTracks const &, aod::JetParticles const &)
10071011 {
10081012 if (collision.trackOccupancyInTimeRange () < trackOccupancyInTimeRangeMin || trackOccupancyInTimeRangeMax < collision.trackOccupancyInTimeRange ()) {
@@ -1024,7 +1028,7 @@ struct JetFinderQATask {
10241028 leadingTrackPtBase = constituent.pt ();
10251029 }
10261030 }
1027- fillMatchedHistograms<soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents, aod::ChargedMCDetectorLevelJetsMatchedToChargedMCParticleLevelJets, aod::ChargedMCDetectorLevelJetEventWeights >::iterator, soa::Join<aod::ChargedMCParticleLevelJets, aod::ChargedMCParticleLevelJetConstituents, aod::ChargedMCParticleLevelJetsMatchedToChargedMCDetectorLevelJets, aod::ChargedMCParticleLevelJetEventWeights >>(mcdjet, leadingTrackPtBase, mcdjet. eventWeight ());
1031+ fillMatchedHistograms<soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents, aod::ChargedMCDetectorLevelJetsMatchedToChargedMCParticleLevelJets>::iterator, soa::Join<aod::ChargedMCParticleLevelJets, aod::ChargedMCParticleLevelJetConstituents, aod::ChargedMCParticleLevelJetsMatchedToChargedMCDetectorLevelJets>>(mcdjet, leadingTrackPtBase, collision. weight ());
10281032 }
10291033 }
10301034 PROCESS_SWITCH (JetFinderQATask, processJetsMCPMCDMatchedWeighted, " jet finder QA matched mcp and mcd with weighted events" , false );
0 commit comments