@@ -84,7 +84,7 @@ struct JetShapeTask {
8484 {" pVsPtForPi" , " pVsPtPi" , {HistType::kTHnSparseD , {{nBinsP, 0 , pMax}, {nBinsPt, 0 , ptMax}, {nBinsDistance, 0 , distanceMax}, {nBinsJetPt, jetPtMinForCut, jetPtMaxForCut}, {nBinsCentrality, centralityMinForCut, centralityMaxForCut}}}},
8585 {" pVsPtForPrOutOfJet" , " pVsPtForPrOutOfJet" , {HistType::kTHnSparseD , {{nBinsP, 0 , pMax}, {nBinsPt, 0 , ptMax}, {nBinsJetPt, jetPtMinForCut, jetPtMaxForCut}, {nBinsCentrality, centralityMinForCut, centralityMaxForCut}}}},
8686 {" pVsPtForPiOutOfJet" , " pVsPtPionOutOfJet" , {HistType::kTHnSparseD , {{nBinsP, 0 , pMax}, {nBinsPt, 0 , ptMax}, {nBinsJetPt, jetPtMinForCut, jetPtMaxForCut}, {nBinsCentrality, centralityMinForCut, centralityMaxForCut}}}},
87- {" tofMass" , " tofMass" , {HistType::kTH1F , {{300 , 0 , 3 }}}},
87+ {" tofMass" , " tofMass" , {HistType::kTH1F , {{90 , 0 , 3 }}}},
8888 {" trackPhi" , " trackPhi" , {HistType::kTH1F , {{80 , -1 , 7 }}}},
8989 {" trackEta" , " trackEta" , {HistType::kTH1F , {{100 , -1 , 1 }}}},
9090 {" trackTpcNClsCrossedRows" , " trackTpcNClsCrossedRows" , {HistType::kTH1F , {{50 , 0 , 200 }}}},
@@ -96,8 +96,8 @@ struct JetShapeTask {
9696 {" jetPt" , " jet pT;#it{p}_{T,jet} (GeV/#it{c});entries" , {HistType::kTH1F , {{200 , 0 ., 200 .}}}},
9797 {" jetEta" , " jet #eta;#eta_{jet};entries" , {HistType::kTH1F , {{100 , -1.0 , 1.0 }}}},
9898 {" jetPhi" , " jet #phi;#phi_{jet};entries" , {HistType::kTH1F , {{80 , -1.0 , 7 .}}}},
99- {" area" , " area" , {HistType::kTH1F , {{200 , 0 , 4 }}}},
100- {" rho" , " rho" , {HistType::kTH1F , {{300 , 0 , 300 }}}},
99+ {" area" , " area" , {HistType::kTH1F , {{100 , 0 , 4 }}}},
100+ {" rho" , " rho" , {HistType::kTH1F , {{120 , 0 , 300 }}}},
101101 {" ptCorr" , " Corrected jet pT; p_{T}^{corr} (GeV/c); Counts" , {HistType::kTH1F , {{200 , 0 , 200 }}}},
102102 {" ptCorrVsDistance" , " ptcorr_vs_distance" , {HistType::kTH2F , {{70 , 0 , 0.7 }, {100 , 0 , 100 }}}},
103103 {" distanceVsTrackpt" , " trackpt_vs_distance" , {HistType::kTH2F , {{70 , 0 , 0.7 }, {100 , 0 , 100 }}}},
@@ -137,7 +137,7 @@ struct JetShapeTask {
137137
138138 // for ppi production
139139 Configurable<float > etaTrUp{" etaTrUp" , 0 .7f , " maximum track eta" };
140- Configurable<float > dcaxyMax{" dcaxyMax" , 2 .0f , " mximum DCA xy" };
140+ Configurable<float > dcaxyMax{" dcaxyMax" , 2 .0f , " maximum DCA xy" };
141141 Configurable<float > chi2ItsMax{" chi2ItsMax" , 15 .0f , " its chi2 cut" };
142142 Configurable<float > chi2TpcMax{" chi2TpcMax" , 4 .0f , " tpc chi2 cut" };
143143 Configurable<float > nclItsMin{" nclItsMin" , 2 .0f , " its # of cluster cut" };
@@ -203,9 +203,6 @@ struct JetShapeTask {
203203 Filter collisionFilter = nabs(aod::jcollision::posZ) < vertexZCut;
204204 Filter mcCollisionFilter = nabs(aod::jmccollision::posZ) < vertexZCut;
205205
206- Preslice<soa::Filtered<aod::ChargedMCParticleLevelJets>> perMcCollisionJets = aod::jet::mcCollisionId;
207- Preslice<aod::McParticles> perMcCollision = aod::mcparticle::mcCollisionId;
208-
209206 void processJetShape (soa::Filtered<soa::Join<aod::JetCollisions, aod::BkgChargedRhos>>::iterator const & collision, aod::JetTracks const & tracks, soa::Join<aod::ChargedJets, aod::ChargedJetConstituents> const & jets)
210207 {
211208
@@ -268,6 +265,7 @@ struct JetShapeTask {
268265
269266 registry.fill (HIST (" area" ), jet.area ());
270267 registry.fill (HIST (" rho" ), collision.rho ());
268+ registry.fill (HIST (" jetPt" ), jet.pt ());
271269 registry.fill (HIST (" ptCorr" ), ptCorr);
272270
273271 for (size_t i = 0 ; i < distanceCategory->size () - 1 ; i++) {
@@ -325,10 +323,6 @@ struct JetShapeTask {
325323 if (track.itsNCls () < nclItsMin)
326324 continue ;
327325
328- registry.fill (HIST (" jetPt" ), jet.pt ());
329- registry.fill (HIST (" ptCorr" ), ptCorr);
330- registry.fill (HIST (" area" ), jet.area ());
331- registry.fill (HIST (" rho" ), collision.rho ());
332326 registry.fill (HIST (" jetEta" ), jet.eta ());
333327 registry.fill (HIST (" jetPhi" ), jet.phi ());
334328
@@ -401,22 +395,38 @@ struct JetShapeTask {
401395 }
402396 PROCESS_SWITCH (JetShapeTask, processProductionRatio, " production ratio" , false );
403397
404- void processReco (soa::Filtered<soa::Join<aod::JetCollisionsMCD, aod::BkgChargedRhos>>::iterator const & collision, soa::Join<aod::McCollisions, aod::McCentFT0Ms> const & mcCollision, soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksDCA, aod::McTrackLabels> const & tracks, soa::Filtered< aod::ChargedMCDetectorLevelJets> const & mcdjets , aod::McParticles const & mcParticles)
398+ void processReco (soa::Filtered<soa::Join<aod::JetCollisionsMCD, aod::BkgChargedRhos>>::iterator const & collision, soa::Join<aod::McCollisions, aod::McCentFT0Ms> const & mcCollision, soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksDCA, aod::McTrackLabels> const & tracks, aod::ChargedMCDetectorLevelJets const & jets , aod::McParticles const & mcParticles)
405399 {
406400
407- (void )mcCollision;
408401 (void )mcParticles;
402+ (void )mcCollision;
409403
410404 registry.fill (HIST (" eventCounter" ), 0.5 );
405+
411406 float centrality = collision.centFT0M ();
407+ registry.fill (HIST (" mcCentralityReco" ), centrality);
412408
413- for (const auto & mcdjet : mcdjets ) {
409+ for (const auto & jet : jets ) {
414410
411+ registry.fill (HIST (" jetPt" ), jet.pt ());
415412 // Get underlying event subtracted jet.pt() as ptCorr
416- float mcdPtCorr = mcdjet .pt () - collision.rho () * mcdjet .area ();
413+ float mcdPtCorr = jet .pt () - collision.rho () * jet .area ();
417414
418415 for (const auto & track : tracks) {
416+
417+ float dEta = track.eta () - jet.eta ();
418+ float dPhi = std::abs (track.phi () - jet.phi ());
419+
420+ if (dPhi > o2::constants::math::PI) {
421+ dPhi = o2::constants::math::TwoPI - dPhi;
422+ }
423+
424+ float deltaR = std::sqrt (dEta * dEta + dPhi * dPhi);
425+ if (deltaR > distanceMax)
426+ continue ;
427+
419428 if (track.has_mcParticle ()) {
429+
420430 auto mcParticle = track.mcParticle ();
421431 registry.fill (HIST (" ptResolution" ), track.pt (), track.pt () - mcParticle.pt ());
422432
@@ -426,6 +436,7 @@ struct JetShapeTask {
426436 continue ;
427437 if (std::abs (track.dcaXY ()) > dcaxyMax)
428438 continue ;
439+
429440 if (track.itsChi2NCl () > chi2ItsMax)
430441 continue ;
431442 if (track.tpcChi2NCl () > chi2TpcMax)
@@ -460,18 +471,27 @@ struct JetShapeTask {
460471 }
461472 PROCESS_SWITCH (JetShapeTask, processReco, " process reconstructed information" , true );
462473
463- void processSim (soa::Join<aod::McCollisions, aod::McCentFT0Ms>::iterator const & mcCollision, soa::Filtered< aod::ChargedMCParticleLevelJets> const & mcpjets, aod::McParticles const & mcParticles)
474+ void processSim (soa::Join<aod::McCollisions, aod::McCentFT0Ms>::iterator const & mcCollision, aod::ChargedMCParticleLevelJets const & mcpjets, aod::McParticles const & mcParticles)
464475 {
465- auto mcId = mcCollision. globalIndex ();
476+
466477 float centrality = mcCollision.centFT0M ();
467478 registry.fill (HIST (" mcCentralitySim" ), centrality);
468479
469- auto mcpjetsPerCollision = mcpjets.sliceBy (perMcCollisionJets, mcId);
470- auto mcParticlesPerCollision = mcParticles.sliceBy (perMcCollision, mcId);
480+ for (const auto & mcpjet : mcpjets) {
481+
482+ for (const auto & mcParticle : mcParticles) {
471483
472- for (const auto & mcpjet : mcpjetsPerCollision) {
484+ float dEta = mcParticle.eta () - mcpjet.eta ();
485+ float dPhi = std::abs (mcParticle.phi () - mcpjet.phi ());
473486
474- for (const auto & mcParticle : mcParticlesPerCollision) {
487+ if (dPhi > o2::constants::math::PI) {
488+ dPhi = o2::constants::math::TwoPI - dPhi;
489+ }
490+
491+ float deltaR = std::sqrt (dEta * dEta + dPhi * dPhi);
492+ if (deltaR > distanceMax) {
493+ continue ;
494+ }
475495
476496 if (mcParticle.isPhysicalPrimary () && std::fabs (mcParticle.y ()) < mcRapidityMax) {
477497 if (std::abs (mcParticle.pdgCode ()) == PDG_t::kPiPlus )
0 commit comments