Skip to content

Commit d54f717

Browse files
committed
Merge branch 'unfoldingfixes' of github.com:Archita-Dash/O2Physics into unfoldingfixes
2 parents dc465bf + abd3919 commit d54f717

34 files changed

Lines changed: 1002 additions & 384 deletions

Common/Core/MetadataHelper.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@
88
// In applying this license CERN does not waive the privileges and immunities
99
// granted to it by virtue of its status as an Intergovernmental Organization
1010
// or submit itself to any jurisdiction.
11-
12-
///
1311
/// \file TableHelper.h
1412
/// \author Nicolò Jacazio nicolo.jacazio@cern.ch
1513
/// \brief Utility to handle the metadata from the AOD
@@ -70,6 +68,4 @@ struct MetadataHelper {
7068

7169
} // namespace o2::common::core
7270

73-
using MetadataHelper = o2::common::core::MetadataHelper; // Alias for the MetadataHelper
74-
7571
#endif // COMMON_CORE_METADATAHELPER_H_

Common/Tools/MultModule.h

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -452,16 +452,6 @@ class MultModule
452452
}
453453
}
454454

455-
opts = internalOpts;
456-
457-
// list enabled tables
458-
for (int i = 0; i < nTablesConst; i++) {
459-
// printout to be improved in the future
460-
if (internalOpts.mEnabledTables[i]) {
461-
LOGF(info, " -~> Table enabled: %s, requested by %s", tableNames[i], listOfRequestors[i].Data());
462-
}
463-
}
464-
465455
// dependency checker
466456
if (internalOpts.mEnabledTables[kCentFV0As] && !internalOpts.mEnabledTables[kFV0MultZeqs]) {
467457
internalOpts.mEnabledTables[kFV0MultZeqs] = 1;
@@ -488,6 +478,14 @@ class MultModule
488478
listOfRequestors[kPVMults].Append(Form("%s ", "dependency check"));
489479
}
490480

481+
// list enabled tables
482+
for (int i = 0; i < nTablesConst; i++) {
483+
// printout to be improved in the future
484+
if (internalOpts.mEnabledTables[i]) {
485+
LOGF(info, " -~> Table enabled: %s, requested by %s", tableNames[i], listOfRequestors[i].Data());
486+
}
487+
}
488+
491489
// capture the need for PYTHIA calibration in Pb-Pb runs
492490
if (metadataInfo.isMC() && mRunNumber >= 544013 && mRunNumber <= 545367) {
493491
internalOpts.generatorName.value = "PYTHIA";
@@ -502,6 +500,9 @@ class MultModule
502500
hVtxZFDDA = nullptr;
503501
hVtxZFDDC = nullptr;
504502
hVtxZNTracks = nullptr;
503+
504+
// pass to the outside
505+
opts = internalOpts;
505506
}
506507

507508
//__________________________________________________

EventFiltering/PWGEM/EMPhotonFilter.cxx

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,19 @@
1212
// \brief software trigger for EM photon
1313
// \author daiki.sekihata@cern.ch
1414

15-
#include "Math/Vector4D.h"
16-
#include "Framework/runDataProcessing.h"
17-
#include "Framework/AnalysisTask.h"
18-
#include "Framework/AnalysisDataModel.h"
19-
#include "Framework/ASoAHelpers.h"
20-
#include "Common/DataModel/CaloClusters.h"
21-
#include "DataFormatsPHOS/TriggerRecord.h"
2215
#include "PWGEM/PhotonMeson/DataModel/gammaTables.h"
16+
17+
#include "Common/DataModel/CaloClusters.h"
2318
#include "EventFiltering/filterTables.h"
19+
20+
#include "DataFormatsPHOS/TriggerRecord.h"
21+
#include "Framework/ASoAHelpers.h"
22+
#include "Framework/AnalysisDataModel.h"
23+
#include "Framework/AnalysisTask.h"
2424
#include "Framework/HistogramRegistry.h"
25+
#include "Framework/runDataProcessing.h"
26+
27+
#include "Math/Vector4D.h"
2528

2629
using namespace o2;
2730
using namespace o2::soa;
@@ -325,13 +328,10 @@ struct EMPhotonFilter {
325328
} // end of collision loop
326329
}
327330

328-
Filter PCMFilter = o2::aod::v0photonkf::dcaXYtopv < max_dcatopv_xy_v0 && o2::aod::v0photonkf::dcaZtopv < max_dcatopv_z_v0;
329-
using filteredV0PhotonsKF = Filtered<aod::V0PhotonsKF>;
330-
331331
Filter DalitzEEFilter = o2::aod::dalitzee::sign == 0; // analyze only uls
332332
using filteredDalitzEEs = Filtered<aod::DalitzEEs>;
333333

334-
void process_PCM(MyCollisions const& collisions, filteredV0PhotonsKF const& v0photons, aod::V0Legs const& v0legs, filteredDalitzEEs const& dielectrons, MyPrimaryElectrons const& emprimaryelectrons)
334+
void process_PCM(MyCollisions const& collisions, aod::V0PhotonsKF const& v0photons, aod::V0Legs const& v0legs, filteredDalitzEEs const& dielectrons, MyPrimaryElectrons const& emprimaryelectrons)
335335
{
336336
const uint8_t system = EM_Filter_PhotonType::kPCM;
337337
runFilter<system>(collisions, v0photons, nullptr, nullptr, v0legs, dielectrons, emprimaryelectrons);
@@ -351,7 +351,7 @@ struct EMPhotonFilter {
351351
runFilter<system>(collisions, nullptr, nullptr, clusters, nullptr, nullptr, nullptr);
352352
}
353353

354-
void process_PCM_PHOS(MyCollisions const& collisions, filteredV0PhotonsKF const& v0photons, aod::V0Legs const& v0legs, filteredDalitzEEs const& dielectrons, MyPrimaryElectrons const& emprimaryelectrons, CluCandidates const& clusters)
354+
void process_PCM_PHOS(MyCollisions const& collisions, aod::V0PhotonsKF const& v0photons, aod::V0Legs const& v0legs, filteredDalitzEEs const& dielectrons, MyPrimaryElectrons const& emprimaryelectrons, CluCandidates const& clusters)
355355
{
356356
const uint8_t system = EM_Filter_PhotonType::kPCM | EM_Filter_PhotonType::kPHOS;
357357
runFilter<system>(collisions, v0photons, clusters, nullptr, v0legs, dielectrons, emprimaryelectrons);

PWGCF/Flow/Tasks/flowRunbyRun.cxx

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ struct FlowRunbyRun {
6868
O2_DEFINE_CONFIGURABLE(cfgCutDCAz, float, 2.0f, "max DCA to vertex z")
6969
O2_DEFINE_CONFIGURABLE(cfgCutDCAzPtDepEnabled, bool, false, "switch of DCAz pt dependent cut")
7070
O2_DEFINE_CONFIGURABLE(cfgUseAdditionalEventCut, bool, false, "Use additional event cut on mult correlations")
71+
O2_DEFINE_CONFIGURABLE(cfgOutputCorrelationQA, bool, false, "Fill correlation QA histograms")
7172
O2_DEFINE_CONFIGURABLE(cfgEvSelkNoSameBunchPileup, bool, false, "rejects collisions which are associated with the same found-by-T0 bunch crossing")
7273
O2_DEFINE_CONFIGURABLE(cfgEvSelkIsGoodZvtxFT0vsPV, bool, false, "removes collisions with large differences between z of PV by tracks and z of PV from FT0 A-C time difference, use this cut at low multiplicities with caution")
7374
O2_DEFINE_CONFIGURABLE(cfgEvSelkNoCollInTimeRangeStandard, bool, false, "no collisions in specified time range")
@@ -101,6 +102,10 @@ struct FlowRunbyRun {
101102
ConfigurableAxis axisEta{"axisEta", {40, -1., 1.}, "eta axis for histograms"};
102103
ConfigurableAxis axisPt{"axisPt", {VARIABLE_WIDTH, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.2, 2.4, 2.6, 2.8, 3, 3.5, 4, 5, 6, 8, 10}, "pt axis for histograms"};
103104
ConfigurableAxis axisIndependent{"axisIndependent", {VARIABLE_WIDTH, 0, 5, 10, 20, 30, 40, 50, 60, 70, 80, 90}, "X axis for histograms"};
105+
ConfigurableAxis axisNch{"axisNch", {4000, 0, 4000}, "N_{ch}"};
106+
ConfigurableAxis axisCentForQA{"axisCentForQA", {100, 0, 100}, "centrality (%)"};
107+
ConfigurableAxis axisT0C{"axisT0C", {70, 0, 70000}, "N_{ch} (T0C)"};
108+
ConfigurableAxis axisT0A{"axisT0A", {200, 0, 200000}, "N_{ch} (T0A)"};
104109

105110
Filter collisionFilter = nabs(aod::collision::posZ) < cfgCutVertex;
106111
Filter trackFilter = ((requireGlobalTrackInFilter()) || (aod::track::isGlobalTrackSDD == (uint8_t) true)) && (nabs(aod::track::eta) < cfgCutEta) && (aod::track::pt > cfgCutPtMin) && (aod::track::pt < cfgCutPtMax) && (aod::track::tpcChi2NCl < cfgCutChi2prTPCcls) && (nabs(aod::track::dcaZ) < cfgCutDCAz);
@@ -113,7 +118,6 @@ struct FlowRunbyRun {
113118

114119
// Connect to ccdb
115120
Service<ccdb::BasicCCDBManager> ccdb;
116-
Configurable<int64_t> ccdbNoLaterThan{"ccdbNoLaterThan", std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch()).count(), "latest acceptable timestamp of creation for the object"};
117121
Configurable<std::string> ccdbUrl{"ccdbUrl", "http://alice-ccdb.cern.ch", "url of the ccdb repository"};
118122

119123
// Define output
@@ -129,6 +133,7 @@ struct FlowRunbyRun {
129133
int lastRunNumer = -1;
130134
std::vector<int> runNumbers; // vector of run numbers
131135
std::map<int, std::vector<std::shared_ptr<TH1>>> th1sList; // map of histograms for all runs
136+
std::map<int, std::vector<std::shared_ptr<TH2>>> th2sList; // map of TH2 histograms for all runs
132137
std::map<int, std::vector<std::shared_ptr<TH3>>> th3sList; // map of TH3 histograms for all runs
133138
std::map<int, std::vector<std::shared_ptr<TProfile>>> profilesList; // map of profiles for all runs
134139
enum OutputTH1Names {
@@ -142,6 +147,14 @@ struct FlowRunbyRun {
142147
hEventCountSpecific,
143148
kCount_TH1Names
144149
};
150+
enum OutputTH2Names {
151+
// here are TH2 histograms
152+
hglobalTracks_centT0C = 0,
153+
hglobalTracks_PVTracks,
154+
hglobalTracks_multV0A,
155+
hcentFV0A_centFT0C,
156+
kCount_TH2Names
157+
};
145158
enum OutputTH3Names {
146159
hPhiEtaVtxz = 0,
147160
kCount_TH3Names
@@ -170,14 +183,15 @@ struct FlowRunbyRun {
170183
TF1* fT0AV0AMean = nullptr;
171184
TF1* fT0AV0ASigma = nullptr;
172185

173-
using AodCollisions = soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Cs, aod::Mults>>;
186+
using AodCollisions = soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Cs, aod::CentFT0CVariant1s, aod::CentFT0Ms, aod::CentFV0As, aod::Mults>>;
174187
using AodTracks = soa::Filtered<soa::Join<aod::Tracks, aod::TrackSelection, aod::TracksExtra, aod::TracksDCA>>;
175188

176189
void init(InitContext const&)
177190
{
178191
ccdb->setURL(ccdbUrl.value);
179192
ccdb->setCaching(true);
180-
ccdb->setCreatedNotAfter(ccdbNoLaterThan.value);
193+
auto now = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch()).count();
194+
ccdb->setCreatedNotAfter(now);
181195

182196
// Add output histograms to the registry
183197
runNumbers = cfgRunNumbers;
@@ -358,6 +372,15 @@ struct FlowRunbyRun {
358372
histos[hEventCountSpecific]->GetXaxis()->SetBinLabel(10, "cfgEvSelV0AT0ACut");
359373
th1sList.insert(std::make_pair(runNumber, histos));
360374

375+
if (cfgOutputCorrelationQA) {
376+
std::vector<std::shared_ptr<TH2>> th2s(kCount_TH2Names);
377+
th2s[hglobalTracks_centT0C] = registry.add<TH2>(Form("%d/globalTracks_centT0C", runNumber), "after cut;Centrality T0C;mulplicity global tracks", {HistType::kTH2D, {axisCentForQA, axisNch}});
378+
th2s[hglobalTracks_PVTracks] = registry.add<TH2>(Form("%d/globalTracks_PVTracks", runNumber), "after cut;mulplicity PV tracks;mulplicity global tracks", {HistType::kTH2D, {axisNch, axisNch}});
379+
th2s[hglobalTracks_multV0A] = registry.add<TH2>(Form("%d/globalTracks_multV0A", runNumber), "after cut;mulplicity V0A;mulplicity global tracks", {HistType::kTH2D, {axisT0A, axisNch}});
380+
th2s[hcentFV0A_centFT0C] = registry.add<TH2>(Form("%d/centFV0A_centFT0C", runNumber), "after cut;Centrality T0C;Centrality V0A", {HistType::kTH2D, {axisCentForQA, axisCentForQA}});
381+
th2sList.insert(std::make_pair(runNumber, th2s));
382+
}
383+
361384
std::vector<std::shared_ptr<TProfile>> profiles(kCount_TProfileNames);
362385
profiles[c22] = registry.add<TProfile>(Form("%d/c22", runNumber), "", {HistType::kTProfile, {axisIndependent}});
363386
profiles[c22_gap10] = registry.add<TProfile>(Form("%d/c22_gap10", runNumber), "", {HistType::kTProfile, {axisIndependent}});
@@ -455,7 +478,8 @@ struct FlowRunbyRun {
455478
th1sList[runNumber][hEventCountSpecific]->Fill(8.5);
456479

457480
// V0A T0A 5 sigma cut
458-
if (cfgEvSelV0AT0ACut && (std::fabs(collision.multFV0A() - fT0AV0AMean->Eval(collision.multFT0A())) > 5 * fT0AV0ASigma->Eval(collision.multFT0A())))
481+
float nSigma = 5.; // 5 sigma cut
482+
if (cfgEvSelV0AT0ACut && (std::fabs(collision.multFV0A() - fT0AV0AMean->Eval(collision.multFT0A())) > nSigma * fT0AV0ASigma->Eval(collision.multFT0A())))
459483
return 0;
460484
if (cfgEvSelV0AT0ACut)
461485
th1sList[runNumber][hEventCountSpecific]->Fill(9.5);
@@ -511,6 +535,12 @@ struct FlowRunbyRun {
511535
th1sList[runNumber][hVtxZ]->Fill(collision.posZ());
512536
th1sList[runNumber][hMult]->Fill(tracks.size());
513537
th1sList[runNumber][hCent]->Fill(collision.centFT0C());
538+
if (cfgOutputCorrelationQA) {
539+
th2sList[runNumber][hglobalTracks_centT0C]->Fill(collision.centFT0C(), tracks.size());
540+
th2sList[runNumber][hglobalTracks_PVTracks]->Fill(collision.multNTracksPV(), tracks.size());
541+
th2sList[runNumber][hglobalTracks_multV0A]->Fill(collision.multFV0A(), tracks.size());
542+
th2sList[runNumber][hcentFV0A_centFT0C]->Fill(collision.centFT0C(), collision.centFV0A());
543+
}
514544

515545
loadCorrections(bc.timestamp(), runNumber);
516546

PWGCF/TableProducer/filter2Prong.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ struct Filter2Prong {
251251
}
252252
PROCESS_SWITCH(Filter2Prong, processMC, "Process MC 2-prong daughters", false);
253253

254-
void processMCGeneric(aod::McCollisions::iterator const&, aod::CFMcParticleRefs const& cfmcparticles)
254+
void processMCGeneric(aod::McCollisions::iterator const&, aod::CFMcParticleRefs const& cfmcparticles, [[maybe_unused]] aod::McParticles const& mcparticles)
255255
{
256256
// The main filter outputs the primary MC particles. Here we just resolve the daughter indices that are needed for the efficiency matching.
257257
for (const auto& r : cfmcparticles) {

PWGDQ/Tasks/dqEfficiency.cxx

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1040,9 +1040,18 @@ struct AnalysisSameEventPairing {
10401040
struct AnalysisDileptonTrack {
10411041
Produces<aod::DileptonTrackCandidates> dileptontrackcandidatesList;
10421042
OutputObj<THashList> fOutputList{"output"};
1043+
Service<o2::ccdb::BasicCCDBManager> ccdb;
1044+
o2::base::MatLayerCylSet* lut = nullptr;
1045+
10431046
// TODO: For now this is only used to determine the position in the filter bit map for the hadron cut
10441047
Configurable<string> fConfigTrackCuts{"cfgLeptonCuts", "", "Comma separated list of barrel track cuts"};
10451048
Configurable<bool> fConfigFillCandidateTable{"cfgFillCandidateTable", false, "Produce a single flat tables with all relevant information dilepton-track candidates"};
1049+
Configurable<std::string> ccdburl{"ccdburl", "http://alice-ccdb.cern.ch", "url of the ccdb repository"};
1050+
Configurable<bool> fCorrFullGeo{"cfgCorrFullGeo", false, "Use full geometry to correct for MCS effects in track propagation"};
1051+
Configurable<bool> fNoCorr{"cfgNoCorrFwdProp", false, "Do not correct for MCS effects in track propagation"};
1052+
Configurable<std::string> lutPath{"lutPath", "GLO/Param/MatLUT", "Path of the Lut parametrization"};
1053+
Configurable<std::string> geoPath{"geoPath", "GLO/Config/GeometryAligned", "Path of the geometry file"};
1054+
10461055
Filter eventFilter = aod::dqanalysisflags::isEventSelected == 1;
10471056
// Filter dileptonFilter = aod::reducedpair::mass > 2.92f && aod::reducedpair::mass < 3.16f && aod::reducedpair::sign == 0;
10481057
// Filter dileptonFilter = aod::reducedpair::mass > 2.6f && aod::reducedpair::mass < 3.5f && aod::reducedpair::sign == 0;
@@ -1075,6 +1084,21 @@ struct AnalysisDileptonTrack {
10751084
return;
10761085
}
10771086

1087+
ccdb->setURL(ccdburl.value);
1088+
ccdb->setCaching(true);
1089+
ccdb->setLocalObjectValidityChecking();
1090+
1091+
if (fNoCorr) {
1092+
VarManager::SetupFwdDCAFitterNoCorr();
1093+
} else if (fCorrFullGeo) {
1094+
if (!o2::base::GeometryManager::isGeometryLoaded()) {
1095+
ccdb->get<TGeoManager>(geoPath);
1096+
}
1097+
} else {
1098+
lut = o2::base::MatLayerCylSet::rectifyPtrFromFile(ccdb->get<o2::base::MatLayerCylSet>(lutPath));
1099+
VarManager::SetupMatLUTFwdDCAFitter(lut);
1100+
}
1101+
10781102
TString sigNamesStr = fConfigMCRecSignals.value;
10791103
std::unique_ptr<TObjArray> objRecSigArray(sigNamesStr.Tokenize(","));
10801104
TString histNames;

PWGDQ/Tasks/tableReader_withAssoc.cxx

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ DECLARE_SOA_COLUMN(TauxyBcandidate, tauxyBcandidate, float);
9494
DECLARE_SOA_COLUMN(TauzBcandidate, tauzBcandidate, float);
9595
DECLARE_SOA_COLUMN(CosPBcandidate, cosPBcandidate, float);
9696
DECLARE_SOA_COLUMN(Chi2Bcandidate, chi2Bcandidate, float);
97+
DECLARE_SOA_COLUMN(Ptassoc, ptassoc, float);
9798
DECLARE_SOA_COLUMN(PINassoc, pINassoc, float);
9899
DECLARE_SOA_COLUMN(Etaassoc, etaassoc, float);
99100
DECLARE_SOA_COLUMN(Ptpair, ptpair, float);
@@ -139,6 +140,9 @@ DECLARE_SOA_COLUMN(LxyeePoleMass, lxyJPsi2eePoleMass, float);
139140
DECLARE_SOA_COLUMN(Lzee, lzJPsi2ee, float);
140141
DECLARE_SOA_COLUMN(AmbiguousInBunchPairs, AmbiguousJpsiPairsInBunch, bool);
141142
DECLARE_SOA_COLUMN(AmbiguousOutOfBunchPairs, AmbiguousJpsiPairsOutOfBunch, bool);
143+
// Candidate columns for JPsi/muon correlations
144+
DECLARE_SOA_COLUMN(DeltaEta, deltaEta, float);
145+
DECLARE_SOA_COLUMN(DeltaPhi, deltaPhi, float);
142146
} // namespace dqanalysisflags
143147

144148
DECLARE_SOA_TABLE(EventCuts, "AOD", "DQANAEVCUTSA", dqanalysisflags::IsEventSelected); //! joinable to ReducedEvents
@@ -163,6 +167,9 @@ DECLARE_SOA_TABLE(BmesonCandidates, "AOD", "DQBMESONSA",
163167
dqanalysisflags::TPCNclsassoc, dqanalysisflags::TPCNclsleg1, dqanalysisflags::TPCNclsleg2,
164168
dqanalysisflags::TPCChi2assoc, dqanalysisflags::TPCChi2leg1, dqanalysisflags::TPCChi2leg2,
165169
dqanalysisflags::IsJpsiFromBSelected, dqanalysisflags::IsBarrelSelected);
170+
DECLARE_SOA_TABLE(JPsiMuonCandidates, "AOD", "DQJPSIMUONA",
171+
dqanalysisflags::DeltaEta, dqanalysisflags::DeltaPhi,
172+
dqanalysisflags::MassDileptonCandidate, dqanalysisflags::Ptpair, dqanalysisflags::Etapair, dqanalysisflags::Ptassoc, dqanalysisflags::Etaassoc);
166173
DECLARE_SOA_TABLE(JPsieeCandidates, "AOD", "DQPSEUDOPROPER", dqanalysisflags::Massee, dqanalysisflags::Ptee, dqanalysisflags::Lxyee, dqanalysisflags::LxyeePoleMass, dqanalysisflags::Lzee, dqanalysisflags::AmbiguousInBunchPairs, dqanalysisflags::AmbiguousOutOfBunchPairs);
167174
} // namespace o2::aod
168175

@@ -2928,6 +2935,7 @@ struct AnalysisAsymmetricPairing {
29282935
// tracks passing the fConfigTrackCut cut. The dileptons cuts from the same-event pairing task are auto-detected
29292936
struct AnalysisDileptonTrack {
29302937
Produces<aod::BmesonCandidates> BmesonsTable;
2938+
Produces<aod::JPsiMuonCandidates> DileptonTrackTable;
29312939
OutputObj<THashList> fOutputList{"output"};
29322940

29332941
Configurable<string> fConfigTrackCuts{"cfgTrackCuts", "kaonPID", "Comma separated list of cuts for the track to be correlated with the dileptons"};
@@ -3349,6 +3357,8 @@ struct AnalysisDileptonTrack {
33493357

33503358
VarManager::FillDileptonHadron(dilepton, track, fValuesHadron);
33513359
VarManager::FillDileptonTrackVertexing<TCandidateType, TEventFillMap, TTrackFillMap>(event, lepton1, lepton2, track, fValuesHadron);
3360+
// Fill table for correlation analysis
3361+
DileptonTrackTable(fValuesHadron[VarManager::kDeltaEta], fValuesHadron[VarManager::kDeltaPhi], dilepton.mass(), dilepton.pt(), dilepton.eta(), track.pt(), track.eta());
33523362
}
33533363

33543364
// Fill histograms for the triplets

0 commit comments

Comments
 (0)