@@ -3602,7 +3602,7 @@ struct AnalysisDileptonTrack {
36023602 }
36033603 // dilepton rap cut
36043604 float rap = dilepton.rap ();
3605- if (fConfigUseRapcut && abs (rap) > fConfigDileptonRapCutAbs )
3605+ if (fConfigUseRapcut && std:: abs (rap) > fConfigDileptonRapCutAbs )
36063606 continue ;
36073607
36083608 VarManager::FillTrack<fgDileptonFillMap>(dilepton, fValuesDilepton );
@@ -3660,7 +3660,7 @@ struct AnalysisDileptonTrack {
36603660
36613661 // for the energy correlator analysis
36623662 std::vector<float > fTransRange = fConfigTransRange ;
3663- VarManager::FillEnergyCorrelator (dilepton , track, fValuesHadron , fTransRange [0 ], fTransRange [1 ], fConfigApplyMassEC , fMassBkg ->GetRandom ());
3663+ VarManager::FillEnergyCorrelatorTriple (lepton1, lepton2 , track, fValuesHadron , fTransRange [0 ], fTransRange [1 ], fConfigApplyMassEC , fMassBkg ->GetRandom ());
36643664
36653665 // table to be written out for ML analysis
36663666 BmesonsTable (event.runNumber (), event.globalIndex (), event.timestamp (), fValuesHadron [VarManager::kPairMass ], dilepton.mass (), fValuesHadron [VarManager::kDeltaMass ], fValuesHadron [VarManager::kPairPt ], fValuesHadron [VarManager::kPairEta ], fValuesHadron [VarManager::kPairPhi ], fValuesHadron [VarManager::kPairRap ],
@@ -3817,7 +3817,7 @@ struct AnalysisDileptonTrack {
38173817
38183818 void processBarrelMixedEvent (soa::Filtered<MyEventsHashSelected>& events,
38193819 soa::Filtered<soa::Join<aod::ReducedTracksAssoc, aod::BarrelTrackCuts>> const & assocs,
3820- MyBarrelTracksWithCov const &, soa::Filtered<MyDielectronCandidates> const & dileptons)
3820+ MyBarrelTracksWithCov const & tracks , soa::Filtered<MyDielectronCandidates> const & dileptons)
38213821 {
38223822 if (events.size () == 0 ) {
38233823 return ;
@@ -3853,18 +3853,24 @@ struct AnalysisDileptonTrack {
38533853
38543854 // loop over dileptons
38553855 for (auto dilepton : evDileptons) {
3856-
3856+ // get full track info of tracks based on the index
3857+ auto lepton1 = tracks.rawIteratorAt (dilepton.index0Id ());
3858+ auto lepton2 = tracks.rawIteratorAt (dilepton.index1Id ());
3859+ // Check that the dilepton has zero charge
3860+ if (dilepton.sign () != 0 ) {
3861+ continue ;
3862+ }
38573863 // dilepton rap cut
38583864 float rap = dilepton.rap ();
3859- if (fConfigUseRapcut && abs (rap) > fConfigDileptonRapCutAbs )
3865+ if (fConfigUseRapcut && std:: abs (rap) > fConfigDileptonRapCutAbs )
38603866 continue ;
38613867
38623868 // compute dilepton - track quantities
38633869 VarManager::FillDileptonHadron (dilepton, track, VarManager::fgValues);
38643870
38653871 // for the energy correlator analysis
38663872 std::vector<float > fTransRange = fConfigTransRange ;
3867- VarManager::FillEnergyCorrelator (dilepton, track, VarManager::fgValues , fTransRange [0 ], fTransRange [1 ], fConfigApplyMassEC , fMassBkg ->GetRandom ());
3873+ VarManager::FillEnergyCorrelatorTriple (lepton1, lepton2, track, fValuesHadron , fTransRange [0 ], fTransRange [1 ], fConfigApplyMassEC , fMassBkg ->GetRandom ());
38683874
38693875 // loop over dilepton leg cuts and track cuts and fill histograms separately for each combination
38703876 for (int icut = 0 ; icut < fNCuts ; icut++) {
0 commit comments