Skip to content

Commit 144bb96

Browse files
Merge branch 'AliceO2Group:master' into master
2 parents e3272bb + 6165550 commit 144bb96

125 files changed

Lines changed: 12884 additions & 7949 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Common/TableProducer/Converters/CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@ o2physics_add_dpl_workflow(collision-converter
3939
PUBLIC_LINK_LIBRARIES
4040
COMPONENT_NAME Analysis)
4141

42+
o2physics_add_dpl_workflow(mccollision-converter
43+
SOURCES mcCollisionConverter.cxx
44+
PUBLIC_LINK_LIBRARIES
45+
COMPONENT_NAME Analysis)
46+
4247
o2physics_add_dpl_workflow(bc-converter
4348
SOURCES bcConverter.cxx
4449
PUBLIC_LINK_LIBRARIES O2::Framework
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2+
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3+
// All rights not expressly granted are reserved.
4+
//
5+
// This software is distributed under the terms of the GNU General Public
6+
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7+
//
8+
// In applying this license CERN does not waive the privileges and immunities
9+
// granted to it by virtue of its status as an Intergovernmental Organization
10+
// or submit itself to any jurisdiction.
11+
#include "Framework/runDataProcessing.h"
12+
#include "Framework/AnalysisTask.h"
13+
#include "Framework/AnalysisDataModel.h"
14+
15+
using namespace o2;
16+
using namespace o2::framework;
17+
18+
struct mcCollisionConverter {
19+
Produces<aod::McCollisions_001> mcCollisions_001;
20+
21+
void process(aod::McCollisions_000 const& mcCollisionTable)
22+
{
23+
for (auto& mcCollision : mcCollisionTable) {
24+
25+
// Repopulate new table
26+
mcCollisions_001(
27+
mcCollision.bcId(),
28+
mcCollision.generatorsID(),
29+
mcCollision.posX(), mcCollision.posY(), mcCollision.posZ(),
30+
mcCollision.t(), mcCollision.weight(),
31+
mcCollision.impactParameter(),
32+
0.0f); // dummy event plane, not available in _000
33+
}
34+
}
35+
};
36+
37+
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
38+
{
39+
return WorkflowSpec{
40+
adaptAnalysisTask<mcCollisionConverter>(cfgc),
41+
};
42+
}

DPG/Tasks/AOTTrack/tagAndProbeDmesons.cxx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,8 @@ struct TagTwoProngDisplacedVertices {
226226
Configurable<std::vector<std::string>> onnxFileNamesDzeroFromDstar{"onnxFileNamesDzeroFromDstar", std::vector<std::string>{"ModelHandler_onnx_DzeroToKPi.onnx"}, "ONNX file names for Kpi pairs from D0 <- D*+ decays"};
227227
Configurable<std::vector<std::string>> onnxFileNamesDzeroKaKaFromDstar{"onnxFileNamesDzeroKaKaFromDstar", std::vector<std::string>{"ModelHandler_onnx_DzeroToKK.onnx"}, "ONNX file names for KK pairs from D0 <- D*+ decays"};
228228
// ML cuts
229+
Configurable<int> numMlClasses{"numMlClasses", 3, "Number of classes for the ML models"};
230+
Configurable<std::vector<int>> cutDirMl{"cutDirMl", std::vector<int>{o2::cuts_ml::CutDirection::CutGreater, o2::cuts_ml::CutDirection::CutSmaller, o2::cuts_ml::CutDirection::CutSmaller}, "Whether to reject score values greater or smaller than the threshold"};
229231
Configurable<LabeledArray<double>> mlCutsPiPiFromDplus{"mlCutsPiPiFromDplus", {aod::tagandprobe::mlCuts[0], aod::tagandprobe::nBinsPt, 3, aod::tagandprobe::labelsEmpty, aod::tagandprobe::labelsMlScores}, "ML Selections for pipi pairs from D+ decays"};
230232
Configurable<LabeledArray<double>> mlCutsKaKaFromDsOrDplus{"mlCutsKaKaFromDsOrDplus", {aod::tagandprobe::mlCuts[0], aod::tagandprobe::nBinsPt, 3, aod::tagandprobe::labelsEmpty, aod::tagandprobe::labelsMlScores}, "ML Selections for KK pairs from Ds or D+ decays"};
231233
Configurable<LabeledArray<double>> mlCutsDzeroFromDstar{"mlCutsDzeroFromDstar", {aod::tagandprobe::mlCuts[0], aod::tagandprobe::nBinsPt, 3, aod::tagandprobe::labelsEmpty, aod::tagandprobe::labelsMlScores}, "ML Selections for Kpi pairs from D0 <- D*+ decays"};
@@ -320,14 +322,13 @@ struct TagTwoProngDisplacedVertices {
320322
registry.add<TH2>("hMassDzeroKaKaVsPt", ";#it{p}_{T}(K#pi) (GeV/#it{c}); #it{M}(K#pi) (GeV/#it{c}^{2})", HistType::kTH2D, {axisPt, axisMassKaPi});
321323
}
322324

323-
const std::vector<int> cutDirMl = {o2::cuts_ml::CutDirection::CutGreater, o2::cuts_ml::CutDirection::CutSmaller, o2::cuts_ml::CutDirection::CutSmaller};
324325
const std::array<LabeledArray<double>, aod::tagandprobe::TagChannels::NTagChannels> mlCuts = {mlConfig.mlCutsPiPiFromDplus, mlConfig.mlCutsKaKaFromDsOrDplus, mlConfig.mlCutsDzeroFromDstar, mlConfig.mlCutsDzeroFromDstar, mlConfig.mlCutsDzeroKaKaFromDstar};
325326
const std::array<std::vector<std::string>, aod::tagandprobe::TagChannels::NTagChannels> onnxFileNames = {mlConfig.onnxFileNamesPiPiFromDplus, mlConfig.onnxFileNamesKaKaFromDsOrDplus, mlConfig.onnxFileNamesDzeroFromDstar, mlConfig.onnxFileNamesDzeroFromDstar, mlConfig.onnxFileNamesDzeroKaKaFromDstar};
326327
const std::array<std::vector<std::string>, aod::tagandprobe::TagChannels::NTagChannels> modelPathsCcdb = {mlConfig.modelPathsCcdbPiPiFromDplus, mlConfig.modelPathsCcdbKaKaFromDsOrDplus, mlConfig.modelPathsCcdbDzeroFromDstar, mlConfig.modelPathsCcdbDzeroFromDstar, mlConfig.modelPathsCcdbDzeroKaKaFromDstar};
327328
applyMl = {mlConfig.applyMlPiPiFromDplus, mlConfig.applyMlKaKaFromDsOrDplus, mlConfig.applyMlDzeroFromDstar, mlConfig.applyMlDzeroFromDstar, mlConfig.applyMlDzeroKaKaFromDstar};
328329
for (auto iChannel{0u}; iChannel < aod::tagandprobe::TagChannels::NTagChannels; ++iChannel) {
329330
if (applyMl[iChannel]) {
330-
mlResponse[iChannel].configure(ptBinsForTopologicalCuts[iChannel], mlCuts[iChannel], cutDirMl, 3);
331+
mlResponse[iChannel].configure(ptBinsForTopologicalCuts[iChannel], mlCuts[iChannel], mlConfig.cutDirMl, mlConfig.numMlClasses);
331332
if (mlConfig.loadMlModelsFromCcdb) {
332333
mlResponse[iChannel].setModelPathsCCDB(onnxFileNames[iChannel], ccdbApi, modelPathsCcdb[iChannel], mlConfig.timestampCcdbForMlModels);
333334
} else {

EventFiltering/EventFilteringUtilsLinkDef.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,5 @@
1313
#pragma link off all classes;
1414
#pragma link off all functions;
1515

16-
#pragma link C++ class std::vector < std::array < uint64_t, 2>> + ;
16+
#pragma link C++ class ZorroHelper + ;
17+
#pragma link C++ class std::vector < ZorroHelper> + ;

EventFiltering/PWGCF/CFFilterPPPhi.cxx

Lines changed: 44 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -72,23 +72,32 @@ struct CFFillterPPPhi {
7272
false,
7373
"Evt sel: check for offline selection"};
7474

75-
Configurable<float> InvMassCutWidth{"InvMassCutWidth", 0.024, "Phi Inv Mass Cut Width (GeV)"};
75+
Configurable<float> ConfResoInvMassLowLimit{"ConfResoInvMassLowLimit", 1.011461, "Lower limit of the Reso invariant mass"};
76+
Configurable<float> ConfResoInvMassUpLimit{"ConfResoInvMassUpLimit", 1.027461, "Upper limit of the Reso invariant mass"};
7677

7778
Configurable<float> Q3Max{"Q3Max", 1.f, "Max Q3"};
7879

7980
/*track selection*/
8081

81-
Configurable<float> ConfTrkEta{"ConfTrkEta", 0.85, "Eta"}; // 0.8
82-
Configurable<float> ConfTrkDCAxy{"ConfTrkDCAxy", 0.15, "DCAxy"}; // 0.1
83-
Configurable<float> ConfTrkDCAz{"ConfTrkDCAz", 0.3, "DCAz"}; // 0.2
84-
Configurable<float> ConfNClus{"ConfNClus", 70, "NClusters"}; // 0.2
85-
Configurable<float> ConfNCrossed{"ConfNCrossed", 65, "NCrossedRows"}; // 0.2
82+
Configurable<float> ConfTrkEtaPr{"ConfTrkEtaPr", 0.85, "Et protona"}; // 0.8
83+
Configurable<float> ConfTrkDCAxyPr{"ConfTrkDCAxyPr", 0.15, "DCAxy proton"}; // 0.1
84+
Configurable<float> ConfTrkDCAzPr{"ConfTrkDCAzPr", 0.3, "DCAz proton"}; // 0.2
85+
Configurable<float> ConfNClusPr{"ConfNClusPr", 70, "NClusters proton"}; // 0.2
86+
Configurable<float> ConfNCrossedPr{"ConfNCrossedPr", 65, "NCrossedRows proton"}; // 0.2
87+
Configurable<float> ConfTrkTPCfClsPr{"ConfTrkTPCfClsPr", 0.83, "Minimum fraction of crossed rows over findable clusters proton"}; // 0.2
8688

8789
Configurable<float> ConfTrkPtPrUp{"ConfTrkPtPrUp", 6.0, "Pt_up proton"}; // 2.0
8890
Configurable<float> ConfTrkPtPrDown{"ConfTrkPtPrDown", 0.35, "Pt_down proton"}; // 0.5
8991
Configurable<float> ConfTrkPTPCPrThr{"ConfTrkPTPCPrThr", 0.8, "p_TPC,Thr proton"}; // 0.75
9092
Configurable<float> ConfTrkPrSigmaPID{"ConfTrkPrSigmaPID", 3.50, "n_sigma proton"}; // 3.0
9193

94+
Configurable<float> ConfTrkEtaKa{"ConfTrkEtaKa", 0.85, "Eta kaon"}; // 0.8
95+
Configurable<float> ConfTrkDCAxyKa{"ConfTrkDCAxyKa", 0.15, "DCAxy kaon"}; // 0.1
96+
Configurable<float> ConfTrkDCAzKa{"ConfTrkDCAzKa", 0.3, "DCAz kaon"}; // 0.2
97+
Configurable<float> ConfNClusKa{"ConfNClusKa", 70, "NClusters kaon"}; // 0.2
98+
Configurable<float> ConfNCrossedKa{"ConfNCrossedKa", 65, "NCrossedRows kaon"}; // 0.2
99+
Configurable<float> ConfTrkTPCfClsKa{"ConfTrkTPCfClsKa", 0.80, "Minimum fraction of crossed rows over findable clusters kaon"}; // 0.2
100+
92101
Configurable<float> ConfTrkPtKaUp{"ConfTrkPtKaUp", 6.0, "Pt_up kaon"}; // 2.0
93102
Configurable<float> ConfTrkPtKaDown{"ConfTrkPtKaDown", 0.05, "Pt_down kaon"}; // 0.15
94103
Configurable<float> ConfTrkPTPCKaThr{"ConfTrkPTPCKaThr", 0.40, "p_TPC,Thr kaon"}; // 0.4
@@ -193,6 +202,7 @@ struct CFFillterPPPhi {
193202
// phi cuts
194203
registry.add("TrackCuts/Phi/fPtPhiBefore", "Transverse momentum V0s;p_{T} (GeV/c);Entries", HistType::kTH1F, {{1000, 0, 10}});
195204
registry.add("TrackCuts/Phi/fInvMassPhiBefore", "Invariant mass V0s;M_{KK};Entries", HistType::kTH1F, {{7000, 0.8, 1.5}});
205+
196206
registry.add("TrackCuts/Phi/fEtaPhiBefore", "Pseudorapidity of V0;#eta;Entries", HistType::kTH1F, {{1000, -2, 2}});
197207
registry.add("TrackCuts/Phi/fPhiPhiBefore", "Azimuthal angle of V0;#phi;Entries", HistType::kTH1F, {{720, 0, TMath::TwoPi()}});
198208

@@ -202,12 +212,13 @@ struct CFFillterPPPhi {
202212
registry.add("TrackCuts/Phi/fPhiPhi", "Azimuthal angle of V0;#phi;Entries", HistType::kTH1F, {{720, 0, TMath::TwoPi()}});
203213

204214
// phi daughter
215+
registry.add("TrackCuts/Phi/PosDaughter/Pt", "Transverse momentum Pos Daugh tracks;p_{T} (GeV/c);Entries", HistType::kTH1F, {{1000, 0, 10}});
205216
registry.add("TrackCuts/Phi/PosDaughter/Eta", "Phi Pos Daugh Eta;#eta;Entries", HistType::kTH1F, {{1000, -2, 2}});
206-
registry.add("TrackCuts/Phi/PosDaughter/DCAXY", "Phi Pos Daugh DCAXY;DCA_{XY};Entries", HistType::kTH1F, {{1000, -2.5f, 2.5f}});
207-
registry.add("TrackCuts/Phi/PosDaughter/fTPCncls", "Phi Pos Daugh TPCncls;TPC Clusters;Entries", HistType::kTH1F, {{163, -1.0f, 162.0f}});
217+
registry.add("TrackCuts/Phi/PosDaughter/Phi", "Azimuthal angle of Pos Daugh tracks;#phi;Entries", HistType::kTH1F, {{720, 0, TMath::TwoPi()}});
218+
219+
registry.add("TrackCuts/Phi/NegDaughter/Pt", "Transverse momentum Neg Daugh tracks;p_{T} (GeV/c);Entries", HistType::kTH1F, {{1000, 0, 10}});
208220
registry.add("TrackCuts/Phi/NegDaughter/Eta", "Phi Neg Daugh Eta;#eta;Entries", HistType::kTH1F, {{1000, -2, 2}});
209-
registry.add("TrackCuts/Phi/NegDaughter/DCAXY", "Phi Neg Daugh DCAXY;DCA_{XY};Entries", HistType::kTH1F, {{1000, -2.5f, 2.5f}});
210-
registry.add("TrackCuts/Phi/NegDaughter/fTPCncls", "Phi Neg Daugh TPCncls;TPC Clusters;Entries", HistType::kTH1F, {{163, -1.0f, 162.0f}});
221+
registry.add("TrackCuts/Phi/NegDaughter/Phi", "Azimuthal angle of Neg Daugh tracks;#phi;Entries", HistType::kTH1F, {{720, 0, TMath::TwoPi()}});
211222

212223
// triggers
213224
registry.add("ppphi/fMultiplicity", "Multiplicity of all triggered events;Mult;Entries", HistType::kTH1F, {{1000, 0, 1000}});
@@ -236,11 +247,11 @@ struct CFFillterPPPhi {
236247
bool isSelectedTrackProton(T const& track)
237248
{
238249
bool isSelected = false;
239-
if (track.pt() < ConfTrkPtPrUp.value && track.pt() > ConfTrkPtPrDown.value && std::abs(track.eta()) < ConfTrkEta.value && std::abs(track.dcaXY()) < ConfTrkDCAxy.value && std::abs(track.dcaZ()) < ConfTrkDCAz.value && track.tpcNClsCrossedRows() >= ConfNCrossed.value && track.tpcNClsFound() >= ConfNClus.value) {
240-
if (track.tpcInnerParam() < ConfTrkPTPCPrThr.value && std::abs(track.tpcNSigmaPr()) < ConfTrkPrSigmaPID.value) {
250+
if (track.pt() <= ConfTrkPtPrUp.value && track.pt() >= ConfTrkPtPrDown.value && std::abs(track.eta()) <= ConfTrkEtaPr.value && std::abs(track.dcaXY()) <= ConfTrkDCAxyPr.value && std::abs(track.dcaZ()) <= ConfTrkDCAzPr.value && track.tpcNClsCrossedRows() >= ConfNCrossedPr.value && track.tpcNClsFound() >= ConfNClusPr.value && track.tpcCrossedRowsOverFindableCls() >= ConfTrkTPCfClsPr.value) {
251+
if (track.tpcInnerParam() < ConfTrkPTPCPrThr.value && std::abs(track.tpcNSigmaPr()) <= ConfTrkPrSigmaPID.value) {
241252
isSelected = true;
242253
}
243-
if (track.tpcInnerParam() >= ConfTrkPTPCPrThr.value && std::abs(std::sqrt(track.tpcNSigmaPr() * track.tpcNSigmaPr() + track.tofNSigmaPr() * track.tofNSigmaPr())) < ConfTrkPrSigmaPID.value) {
254+
if (track.tpcInnerParam() >= ConfTrkPTPCPrThr.value && std::abs(std::sqrt(track.tpcNSigmaPr() * track.tpcNSigmaPr() + track.tofNSigmaPr() * track.tofNSigmaPr())) <= ConfTrkPrSigmaPID.value) {
244255
isSelected = true;
245256
}
246257
}
@@ -251,50 +262,22 @@ struct CFFillterPPPhi {
251262
bool isSelectedTrackKaon(T const& track)
252263
{
253264
bool isSelected = false;
254-
if (track.pt() < ConfTrkPtKaUp.value && track.pt() > ConfTrkPtKaDown.value && std::abs(track.eta()) < ConfTrkEta.value && std::abs(track.dcaXY()) < ConfTrkDCAxy.value && std::abs(track.dcaZ()) < ConfTrkDCAz.value && track.tpcNClsCrossedRows() >= ConfNCrossed.value && track.tpcNClsFound() >= ConfNClus.value) {
255-
if (track.tpcInnerParam() < ConfTrkPTPCKaThr.value && std::abs(track.tpcNSigmaKa()) < ConfTrkKaSigmaPID.value) {
265+
if (track.pt() <= ConfTrkPtKaUp.value && track.pt() >= ConfTrkPtKaDown.value && std::abs(track.eta()) <= ConfTrkEtaKa.value && std::abs(track.dcaXY()) <= ConfTrkDCAxyKa.value && std::abs(track.dcaZ()) <= ConfTrkDCAzKa.value && track.tpcNClsCrossedRows() >= ConfNCrossedKa.value && track.tpcNClsFound() >= ConfNClusKa.value && track.tpcCrossedRowsOverFindableCls() >= ConfTrkTPCfClsKa.value) {
266+
if (track.tpcInnerParam() < ConfTrkPTPCKaThr.value && std::abs(track.tpcNSigmaKa()) <= ConfTrkKaSigmaPID.value) {
256267
isSelected = true;
257268
}
258-
if (track.tpcInnerParam() >= ConfTrkPTPCKaThr.value && std::abs(std::sqrt(track.tpcNSigmaKa() * track.tpcNSigmaKa() + track.tofNSigmaKa() * track.tofNSigmaKa())) < ConfTrkKaSigmaPID.value) {
269+
if (track.tpcInnerParam() >= ConfTrkPTPCKaThr.value && std::abs(std::sqrt(track.tpcNSigmaKa() * track.tpcNSigmaKa() + track.tofNSigmaKa() * track.tofNSigmaKa())) <= ConfTrkKaSigmaPID.value) {
259270
isSelected = true;
260271
}
261272
}
262273
return isSelected;
263274
}
264275

265276
float mMassProton = o2::constants::physics::MassProton;
266-
float mMassKaon = o2::constants::physics::MassKPlus;
267-
float mMassPhi = o2::constants::physics::MassPhi;
268-
269-
// float getInvMass(const ROOT::Math::PtEtaPhiMVector part1,
270-
// const ROOT::Math::PtEtaPhiMVector part2)
271-
// {
272-
// const ROOT::Math::PtEtaPhiMVector trackSum = part1 + part2;
273-
// return trackSum.M();
274-
// }
275-
276-
float CalculateInvMass(const ROOT::Math::PtEtaPhiMVector part1,
277-
const ROOT::Math::PtEtaPhiMVector part2)
278-
{
279-
Double_t invMass = 0;
280-
281-
float massDP = mMassKaon;
282-
float massDN = mMassKaon;
277+
float mMassKaonPlus = o2::constants::physics::MassKPlus;
278+
float mMassKaonMinus = o2::constants::physics::MassKMinus;
283279

284-
float EDaugP = TMath::Sqrt(
285-
massDP * massDP + part1.Px() * part1.Px() + part1.Py() * part1.Py() + part1.Pz() * part1.Pz());
286-
float EDaugN = TMath::Sqrt(
287-
massDN * massDN + part2.Px() * part2.Px() + part2.Py() * part2.Py() + part2.Pz() * part2.Pz());
288-
289-
float energysum = EDaugP + EDaugN;
290-
float pSum2 = (part2.Px() + part1.Px()) * (part2.Px() + part1.Px()) +
291-
292-
(part2.Py() + part1.Py()) * (part2.Py() + part1.Py()) +
293-
294-
(part2.Pz() + part1.Pz()) * (part2.Pz() + part1.Pz());
295-
invMass = TMath::Sqrt(energysum * energysum - pSum2);
296-
return invMass;
297-
}
280+
float mMassPhi = o2::constants::physics::MassPhi;
298281

299282
float getkstar(const ROOT::Math::PtEtaPhiMVector part1,
300283
const ROOT::Math::PtEtaPhiMVector part2)
@@ -412,8 +395,9 @@ struct CFFillterPPPhi {
412395
}
413396

414397
if (isSelectedTrackKaon(track)) {
415-
ROOT::Math::PtEtaPhiMVector temp(track.pt(), track.eta(), track.phi(), mMassKaon);
398+
ROOT::Math::PtEtaPhiMVector temp(track.pt(), track.eta(), track.phi(), mMassKaonPlus);
416399
if (track.sign() > 0) {
400+
temp.SetM(mMassKaonPlus);
417401
kaons.push_back(temp);
418402
registry.fill(HIST("TrackCuts/Kaon/fPKaon"), track.p());
419403
registry.fill(HIST("TrackCuts/Kaon/fPTPCKaon"), track.tpcInnerParam());
@@ -436,6 +420,8 @@ struct CFFillterPPPhi {
436420
// KaonIndex.push_back(track.globalIndex());
437421
}
438422
if (track.sign() < 0) {
423+
temp.SetM(mMassKaonMinus);
424+
439425
antikaons.push_back(temp);
440426
registry.fill(HIST("TrackCuts/AntiKaon/fPAntiKaon"), track.p());
441427
registry.fill(HIST("TrackCuts/AntiKaon/fPTPCAntiKaon"), track.tpcInnerParam());
@@ -463,29 +449,31 @@ struct CFFillterPPPhi {
463449

464450
for (const auto& postrack : kaons) {
465451
for (const auto& negtrack : antikaons) {
452+
466453
ROOT::Math::PtEtaPhiMVector temp = postrack + negtrack;
467-
temp.SetM(mMassPhi);
454+
// temp.SetM(mMassPhi);
455+
registry.fill(HIST("TrackCuts/Phi/fInvMassPhiBefore"), temp.M());
468456

469-
registry.fill(HIST("TrackCuts/Phi/fInvMassPhiBefore"), CalculateInvMass(postrack, negtrack));
470457
registry.fill(HIST("TrackCuts/Phi/fPtPhiBefore"), temp.pt());
471458
registry.fill(HIST("TrackCuts/Phi/fEtaPhiBefore"), temp.eta());
472459
registry.fill(HIST("TrackCuts/Phi/fPhiPhiBefore"), temp.phi());
473460

474-
if ((CalculateInvMass(postrack, negtrack) > mMassPhi - InvMassCutWidth.value) && CalculateInvMass(postrack, negtrack) < (mMassPhi + InvMassCutWidth.value)) {
461+
if ((temp.M() >= ConfResoInvMassLowLimit.value) && (temp.M() <= ConfResoInvMassUpLimit.value)) {
475462
// ROOT::Math::PtEtaPhiMVector temp = postrack + negtrack;
476463
phi.push_back(temp);
477464

478465
registry.fill(HIST("TrackCuts/Phi/fPtPhi"), temp.pt());
479466
registry.fill(HIST("TrackCuts/Phi/fEtaPhi"), temp.eta());
480467
registry.fill(HIST("TrackCuts/Phi/fPhiPhi"), temp.phi());
481-
registry.fill(HIST("TrackCuts/Phi/fInvMassPhi"), CalculateInvMass(postrack, negtrack));
468+
registry.fill(HIST("TrackCuts/Phi/fInvMassPhi"), temp.M());
482469

470+
registry.fill(HIST("TrackCuts/Phi/PosDaughter/Pt"), postrack.pt());
483471
registry.fill(HIST("TrackCuts/Phi/PosDaughter/Eta"), postrack.eta());
484-
// registry.fill(HIST("TrackCuts/Phi/PosDaughter/DCAXY"), postrack.dcaXY());
485-
// registry.fill(HIST("TrackCuts/Phi/PosDaughter/fTPCncls"), postrack.tpcNClsFound());
472+
registry.fill(HIST("TrackCuts/Phi/PosDaughter/Phi"), postrack.phi());
473+
474+
registry.fill(HIST("TrackCuts/Phi/NegDaughter/Pt"), negtrack.pt());
486475
registry.fill(HIST("TrackCuts/Phi/NegDaughter/Eta"), negtrack.eta());
487-
// registry.fill(HIST("TrackCuts/Phi/NegDaughter/DCAXY"), negtrack.dcaXY());
488-
// registry.fill(HIST("TrackCuts/Phi/NegDaughter/fTPCncls"), negtrack.tpcNClsFound());
476+
registry.fill(HIST("TrackCuts/Phi/NegDaughter/Phi"), negtrack.phi());
489477
}
490478
}
491479
}

0 commit comments

Comments
 (0)