@@ -347,8 +347,8 @@ struct JetHadronRecoil {
347347 registry.fill (HIST (" hTracksvsJets" ), leadingTrackPt, leadingJetPt, pTHat, weight);
348348 }
349349
350- template <typename T, typename U>
351- void fillHistogramsMCD (T const & jets, U const & tracks, float weight = 1.0 , float rho = 0.0 , float pTHat = 999.0 )
350+ template <typename T, typename U, typename P >
351+ void fillHistogramsMCD (T const & jets, U const & tracks, P const & particles, float weight = 1.0 , float rho = 0.0 , float pTHat = 999.0 )
352352 {
353353 bool isSigCol;
354354 std::vector<double > phiTTAr;
@@ -401,8 +401,8 @@ struct JetHadronRecoil {
401401 registry.fill (HIST (" hPtTrackPtHard" ), track.pt () / pTHat, track.pt (), weight);
402402 if (track.has_mcParticle ()) {
403403 registry.fill (HIST (" hPtTrackMatched" ), track.pt (), weight);
404- auto particle = track.template mcParticle_as <U >();
405- if (track.collisionId () == particle.collisionId ()) {
404+ auto particle = track.template mcParticle_as <P >();
405+ if (track.collisionId () == particle.mcCollisionId ()) {
406406 registry.fill (HIST (" hPtTrackMatchedToCollisions" ), track.pt (), weight);
407407 }
408408 }
@@ -906,7 +906,8 @@ struct JetHadronRecoil {
906906 void processMCD (soa::Filtered<soa::Join<aod::JetCollisions, aod::JMcCollisionLbs>>::iterator const & collision,
907907 aod::JMcCollisions const &,
908908 soa::Filtered<soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents>> const & jets,
909- soa::Filtered<aod::JetTracksMCD> const & tracks)
909+ soa::Filtered<aod::JetTracksMCD> const & tracks,
910+ soa::Filtered<aod::JetParticles> const & particles)
910911 {
911912 if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits)) {
912913 return ;
@@ -924,14 +925,15 @@ struct JetHadronRecoil {
924925 return ;
925926 }
926927 registry.fill (HIST (" hZvtxSelected" ), collision.posZ ());
927- fillHistogramsMCD (jets, tracks, 1.0 , 0.0 , collision.mcCollision ().ptHard ());
928+ fillHistogramsMCD (jets, tracks, particles, 1.0 , 0.0 , collision.mcCollision ().ptHard ());
928929 }
929930 PROCESS_SWITCH (JetHadronRecoil, processMCD, " process MC detector level" , false );
930931
931932 void processMCDWithRhoSubtraction (soa::Filtered<soa::Join<aod::JetCollisions, aod::BkgChargedRhos, aod::JMcCollisionLbs>>::iterator const & collision,
932933 aod::JMcCollisions const &,
933934 soa::Filtered<soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents>> const & jets,
934- soa::Filtered<aod::JetTracksMCD> const & tracks)
935+ soa::Filtered<aod::JetTracksMCD> const & tracks,
936+ soa::Filtered<aod::JetParticles> const & particles)
935937 {
936938 if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits)) {
937939 return ;
@@ -949,14 +951,15 @@ struct JetHadronRecoil {
949951 return ;
950952 }
951953 registry.fill (HIST (" hZvtxSelected" ), collision.posZ ());
952- fillHistogramsMCD (jets, tracks, 1.0 , collision.rho (), collision.mcCollision ().ptHard ());
954+ fillHistogramsMCD (jets, tracks, particles, 1.0 , collision.rho (), collision.mcCollision ().ptHard ());
953955 }
954956 PROCESS_SWITCH (JetHadronRecoil, processMCDWithRhoSubtraction, " process MC detector level with rho subtraction" , false );
955957
956958 void processMCDWeighted (soa::Filtered<soa::Join<aod::JetCollisions, aod::JMcCollisionLbs>>::iterator const & collision,
957959 aod::JMcCollisions const &,
958960 soa::Filtered<soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents>> const & jets,
959- soa::Filtered<aod::JetTracksMCD> const & tracks)
961+ soa::Filtered<aod::JetTracksMCD> const & tracks,
962+ soa::Filtered<aod::JetParticles> const & particles)
960963 {
961964 if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits)) {
962965 return ;
@@ -974,14 +977,15 @@ struct JetHadronRecoil {
974977 return ;
975978 }
976979 registry.fill (HIST (" hZvtxSelected" ), collision.posZ (), collision.mcCollision ().weight ());
977- fillHistogramsMCD (jets, tracks, collision.mcCollision ().weight (), 0.0 , collision.mcCollision ().ptHard ());
980+ fillHistogramsMCD (jets, tracks, particles, collision.mcCollision ().weight (), 0.0 , collision.mcCollision ().ptHard ());
978981 }
979982 PROCESS_SWITCH (JetHadronRecoil, processMCDWeighted, " process MC detector level with event weights" , false );
980983
981984 void processMCDWeightedWithRhoSubtraction (soa::Filtered<soa::Join<aod::JetCollisions, aod::JMcCollisionLbs, aod::BkgChargedRhos>>::iterator const & collision,
982985 aod::JMcCollisions const &,
983986 soa::Filtered<soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents>> const & jets,
984- soa::Filtered<aod::JetTracksMCD> const & tracks)
987+ soa::Filtered<aod::JetTracksMCD> const & tracks,
988+ soa::Filtered<aod::JetParticles> const & particles)
985989 {
986990 if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits)) {
987991 return ;
@@ -999,7 +1003,7 @@ struct JetHadronRecoil {
9991003 return ;
10001004 }
10011005 registry.fill (HIST (" hZvtxSelected" ), collision.posZ (), collision.mcCollision ().weight ());
1002- fillHistogramsMCD (jets, tracks, collision.mcCollision ().weight (), collision.rho (), collision.mcCollision ().ptHard ());
1006+ fillHistogramsMCD (jets, tracks, particles, collision.mcCollision ().weight (), collision.rho (), collision.mcCollision ().ptHard ());
10031007 }
10041008 PROCESS_SWITCH (JetHadronRecoil, processMCDWeightedWithRhoSubtraction, " process MC detector level with event weights and rho subtraction" , false );
10051009
0 commit comments