Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 83 additions & 0 deletions PWGCF/FemtoUniverse/Core/FemtoUniverseDetaDphiStar.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,13 +75,13 @@
histdetadpiqlcmsmixed = mHistogramRegistry->add<TH3>((dirName + static_cast<std::string>(HistNamesMixed[1][7])).c_str(), "; #it{q}_{LCMS}; #Delta #eta; #Delta #phi", kTH3F, {{100, 0.0, 0.5}, {100, -0.15, 0.15}, {100, -0.15, 0.15}});

if (plotForEveryRadii) {
for (int i = 0; i < 9; i++) {

Check failure on line 78 in PWGCF/FemtoUniverse/Core/FemtoUniverseDetaDphiStar.h

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
histdetadpiRadii[0][i] = mHistogramRegistryQA->add<TH2>((dirName + static_cast<std::string>(HistNamesRadii[0][i])).c_str(), "; #Delta #eta; #Delta #phi", kTH2F, {{100, -0.15, 0.15}, {100, -0.15, 0.15}});
}
}
}
if constexpr (kPartOneType == o2::aod::femtouniverseparticle::ParticleType::kTrack && kPartTwoType == o2::aod::femtouniverseparticle::ParticleType::kV0) {
for (int i = 0; i < 2; i++) {

Check failure on line 84 in PWGCF/FemtoUniverse/Core/FemtoUniverseDetaDphiStar.h

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
std::string dirName = static_cast<std::string>(DirNames[1]);
histdetadpisame[i][0] = mHistogramRegistry->add<TH2>((dirName + static_cast<std::string>(HistNamesSame[0][i])).c_str(), "; #Delta #eta; #Delta #phi", kTH2F, {{100, -0.15, 0.15}, {100, -0.15, 0.15}});
histdetadpisame[i][1] = mHistogramRegistry->add<TH2>((dirName + static_cast<std::string>(HistNamesSame[1][i])).c_str(), "; #Delta #eta; #Delta #phi", kTH2F, {{100, -0.15, 0.15}, {100, -0.15, 0.15}});
Expand All @@ -89,7 +89,7 @@
histdetadpimixed[i][1] = mHistogramRegistry->add<TH2>((dirName + static_cast<std::string>(HistNamesMixed[1][i])).c_str(), "; #Delta #eta; #Delta #phi", kTH2F, {{100, -0.15, 0.15}, {100, -0.15, 0.15}});

if (plotForEveryRadii) {
for (int j = 0; j < 9; j++) {

Check failure on line 92 in PWGCF/FemtoUniverse/Core/FemtoUniverseDetaDphiStar.h

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
histdetadpiRadii[i][j] = mHistogramRegistryQA->add<TH2>((dirName + static_cast<std::string>(HistNamesRadii[i][j])).c_str(), "; #Delta #eta; #Delta #phi", kTH2F, {{100, -0.15, 0.15}, {100, -0.15, 0.15}});
}
}
Expand All @@ -97,14 +97,14 @@
}
if constexpr (kPartOneType == o2::aod::femtouniverseparticle::ParticleType::kV0 && kPartTwoType == o2::aod::femtouniverseparticle::ParticleType::kV0) {
/// V0-V0 combination
for (int k = 0; k < 2; k++) {

Check failure on line 100 in PWGCF/FemtoUniverse/Core/FemtoUniverseDetaDphiStar.h

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
std::string dirName = static_cast<std::string>(DirNames[2]);
histdetadpisame[k][0] = mHistogramRegistry->add<TH2>((dirName + static_cast<std::string>(HistNamesSame[0][k])).c_str(), "; #Delta #eta; #Delta #phi", kTH2F, {{100, -0.15, 0.15}, {100, -0.15, 0.15}});
histdetadpisame[k][1] = mHistogramRegistry->add<TH2>((dirName + static_cast<std::string>(HistNamesSame[1][k])).c_str(), "; #Delta #eta; #Delta #phi", kTH2F, {{100, -0.15, 0.15}, {100, -0.15, 0.15}});
histdetadpimixed[k][0] = mHistogramRegistry->add<TH2>((dirName + static_cast<std::string>(HistNamesMixed[0][k])).c_str(), "; #Delta #eta; #Delta #phi", kTH2F, {{100, -0.15, 0.15}, {100, -0.15, 0.15}});
histdetadpimixed[k][1] = mHistogramRegistry->add<TH2>((dirName + static_cast<std::string>(HistNamesMixed[1][k])).c_str(), "; #Delta #eta; #Delta #phi", kTH2F, {{100, -0.15, 0.15}, {100, -0.15, 0.15}});
if (plotForEveryRadii) {
for (int l = 0; l < 9; l++) {

Check failure on line 107 in PWGCF/FemtoUniverse/Core/FemtoUniverseDetaDphiStar.h

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
histdetadpiRadii[k][l] = mHistogramRegistryQA->add<TH2>((dirName + static_cast<std::string>(HistNamesRadii[k][l])).c_str(), "; #Delta #eta; #Delta #phi", kTH2F, {{100, -0.15, 0.15}, {100, -0.15, 0.15}});
}
}
Expand All @@ -112,14 +112,14 @@
}
if constexpr (kPartOneType == o2::aod::femtouniverseparticle::ParticleType::kCascade && kPartTwoType == o2::aod::femtouniverseparticle::ParticleType::kCascade) {
/// Cascade-Cascade combination
for (int k = 0; k < 7; k++) {

Check failure on line 115 in PWGCF/FemtoUniverse/Core/FemtoUniverseDetaDphiStar.h

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
std::string dirName = static_cast<std::string>(DirNames[5]);
histdetadpisame[k][0] = mHistogramRegistry->add<TH2>((dirName + static_cast<std::string>(HistNamesSame[0][k])).c_str(), "; #Delta #eta; #Delta #phi", kTH2F, {{100, -0.15, 0.15}, {100, -0.15, 0.15}});
histdetadpisame[k][1] = mHistogramRegistry->add<TH2>((dirName + static_cast<std::string>(HistNamesSame[1][k])).c_str(), "; #Delta #eta; #Delta #phi", kTH2F, {{100, -0.15, 0.15}, {100, -0.15, 0.15}});
histdetadpimixed[k][0] = mHistogramRegistry->add<TH2>((dirName + static_cast<std::string>(HistNamesMixed[0][k])).c_str(), "; #Delta #eta; #Delta #phi", kTH2F, {{100, -0.15, 0.15}, {100, -0.15, 0.15}});
histdetadpimixed[k][1] = mHistogramRegistry->add<TH2>((dirName + static_cast<std::string>(HistNamesMixed[1][k])).c_str(), "; #Delta #eta; #Delta #phi", kTH2F, {{100, -0.15, 0.15}, {100, -0.15, 0.15}});
if (plotForEveryRadii) {
for (int l = 0; l < 9; l++) {

Check failure on line 122 in PWGCF/FemtoUniverse/Core/FemtoUniverseDetaDphiStar.h

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
histdetadpiRadii[k][l] = mHistogramRegistryQA->add<TH2>((dirName + static_cast<std::string>(HistNamesRadii[k][l])).c_str(), "; #Delta #eta; #Delta #phi", kTH2F, {{100, -0.15, 0.15}, {100, -0.15, 0.15}});
}
}
Expand Down Expand Up @@ -187,6 +187,27 @@
}
}

template <typename t1>
void init_kT(HistogramRegistry* registry, t1& ktbins)
{
mHistogramRegistry = registry;
ktBins = ktbins;

if constexpr (kPartOneType == o2::aod::femtouniverseparticle::ParticleType::kTrack && kPartTwoType == o2::aod::femtouniverseparticle::ParticleType::kTrack) {
std::string dirName = static_cast<std::string>(DirNames[0]);
for (int j = 0; j < static_cast<int>(ktBins.size() - 1); j++) {
std::string histSuffixkT1 = std::to_string(static_cast<int>(ktBins[j] * 100.0));
std::string histSuffixkT2 = std::to_string(static_cast<int>(ktBins[j + 1] * 100.0));
std::string histFolderkT = "kT_" + histSuffixkT1 + "_" + histSuffixkT2 + "/";

histdetadphisamebeforekT[j] = mHistogramRegistry->add<TH2>((dirName + histFolderkT + "detadphidetadphiBeforeSame").c_str(), "; #Delta #eta; #Delta #phi", kTH2F, {{100, -0.15, 0.15}, {100, -0.15, 0.15}});
histdetadphimixedbeforekT[j] = mHistogramRegistry->add<TH2>((dirName + histFolderkT + "detadphidetadphiBeforeMixed").c_str(), "; #Delta #eta; #Delta #phi", kTH2F, {{100, -0.15, 0.15}, {100, -0.15, 0.15}});
histdetadphisameafterkT[j] = mHistogramRegistry->add<TH2>((dirName + histFolderkT + "detadphidetadphiAfterSame").c_str(), "; #Delta #eta; #Delta #phi", kTH2F, {{100, -0.15, 0.15}, {100, -0.15, 0.15}});
histdetadphimixedafterkT[j] = mHistogramRegistry->add<TH2>((dirName + histFolderkT + "detadphidetadphiAfterMixed").c_str(), "; #Delta #eta; #Delta #phi", kTH2F, {{100, -0.15, 0.15}, {100, -0.15, 0.15}});
}
}
}

/// Check if pair is close or not
template <typename Part, typename Parts>
bool isClosePair(Part const& part1, Part const& part2, Parts const& particles, float lmagfield, uint8_t ChosenEventType)
Expand Down Expand Up @@ -486,13 +507,13 @@
}

// REMOVING THE "RING" -- CALCULATING THE INVARIANT MASS
TLorentzVector part1Vec;

Check failure on line 510 in PWGCF/FemtoUniverse/Core/FemtoUniverseDetaDphiStar.h

View workflow job for this annotation

GitHub Actions / O2 linter

[root/lorentz-vector]

Do not use the TLorentzVector legacy class. Use std::array with RecoDecay methods or the ROOT::Math::LorentzVector template instead.
TLorentzVector part2Vec;

Check failure on line 511 in PWGCF/FemtoUniverse/Core/FemtoUniverseDetaDphiStar.h

View workflow job for this annotation

GitHub Actions / O2 linter

[root/lorentz-vector]

Do not use the TLorentzVector legacy class. Use std::array with RecoDecay methods or the ROOT::Math::LorentzVector template instead.
float mMassOne = o2::constants::physics::MassKPlus;
float mMassTwo = o2::constants::physics::MassKMinus;
part1Vec.SetPtEtaPhiM(part1.pt(), part1.eta(), part1.phi(), mMassOne);
part2Vec.SetPtEtaPhiM(daughter.pt(), daughter.eta(), daughter.phi(), mMassTwo);
TLorentzVector sumVec(part1Vec);

Check failure on line 516 in PWGCF/FemtoUniverse/Core/FemtoUniverseDetaDphiStar.h

View workflow job for this annotation

GitHub Actions / O2 linter

[root/lorentz-vector]

Do not use the TLorentzVector legacy class. Use std::array with RecoDecay methods or the ROOT::Math::LorentzVector template instead.
sumVec += part2Vec;
float phiM = sumVec.M();
if ((phiM > cutPhiInvMassLow) && (phiM < cutPhiInvMassHigh)) {
Expand Down Expand Up @@ -620,6 +641,62 @@
}
}

/// Templated function to access different kT directory and call addEventPair
/// \param part1 particle 1
/// \param part2 particle 2
/// \param ChosenEventType Same or Mixed evet type
/// \param maxl Maximum valie of L component of the spherical harmonics
/// \param multval Multiplicity value
/// \param ktval kT value
template <typename Part>
void kTdetadphi(Part const& part1, Part const& part2, uint8_t ChosenEventType, float ktval)
{
int ktbinval = -1;
if (ktval >= ktBins[0] && ktval < ktBins[1]) {
ktbinval = 0;
} else if (ktval >= ktBins[1] && ktval < ktBins[2]) {
ktbinval = 1;
} else if (ktval >= ktBins[2] && ktval < ktBins[3]) {
ktbinval = 2;
} else if (ktval >= ktBins[3] && ktval < ktBins[4]) {
ktbinval = 3;
} else {
return;
}
isClosePairkT(part1, part2, ChosenEventType, ktbinval);
}

/// Check if pair is close or not
template <typename Part>
void isClosePairkT(Part const& part1, Part const& part2, uint8_t ChosenEventType, int ktbinval)
{
/// Track-Track combination
// check if provided particles are in agreement with the class instantiation
if (part1.partType() != o2::aod::femtouniverseparticle::ParticleType::kTrack || part2.partType() != o2::aod::femtouniverseparticle::ParticleType::kTrack) {
LOG(fatal) << "FemtoUniverseDetaDphiStar: passed arguments don't agree with FemtoUniverseDetaDphiStar instantiation! Please provide kTrack,kTrack candidates.";
return;
}
auto deta = part1.eta() - part2.eta();
auto dphiAvg = averagePhiStar(part1, part2, 0);
if (ChosenEventType == femto_universe_container::EventType::same) {
histdetadphisamebeforekT[ktbinval]->Fill(deta, dphiAvg);
} else if (ChosenEventType == femto_universe_container::EventType::mixed) {
histdetadphimixedbeforekT[ktbinval]->Fill(deta, dphiAvg);
} else {
LOG(fatal) << "FemtoUniverseDetaDphiStar: passed arguments don't agree with FemtoUniverseDetaDphiStar's type of events! Please provide same or mixed.";
}

if (std::pow(dphiAvg, 2) / std::pow(cutDeltaPhiStarMax, 2) + std::pow(deta, 2) / std::pow(cutDeltaEtaMax, 2) > 1.) {
if (ChosenEventType == femto_universe_container::EventType::same) {
histdetadphisameafterkT[ktbinval]->Fill(deta, dphiAvg);
} else if (ChosenEventType == femto_universe_container::EventType::mixed) {
histdetadphimixedafterkT[ktbinval]->Fill(deta, dphiAvg);
} else {
LOG(fatal) << "FemtoUniverseDetaDphiStar: passed arguments don't agree with FemtoUniverseDetaDphiStar's type of events! Please provide same or mixed.";
}
}
}

/// Check if pair is close or not
template <typename Part>
void ClosePairqLCMS(Part const& part1, Part const& part2, float lmagfield, uint8_t ChosenEventType, double qlcms) // add typename Parts and variable parts for adding MClabels
Expand Down Expand Up @@ -698,9 +775,15 @@
float cutPhiInvMassLow;
float cutPhiInvMassHigh;
bool isSameSignCPR = false;
std::vector<double> ktBins;

std::array<std::array<std::shared_ptr<TH2>, 2>, 7> histdetadpisame{};
std::array<std::array<std::shared_ptr<TH2>, 2>, 7> histdetadpimixed{};
std::array<std::shared_ptr<TH2>, 4> histdetadphisamebeforekT{};
std::array<std::shared_ptr<TH2>, 4> histdetadphimixedbeforekT{};
std::array<std::shared_ptr<TH2>, 4> histdetadphisameafterkT{};
std::array<std::shared_ptr<TH2>, 4> histdetadphimixedafterkT{};

std::array<std::array<std::shared_ptr<TH2>, 9>, 7> histdetadpiRadii{};

std::shared_ptr<TH3> histdetadpiqlcmssame{};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -454,6 +454,7 @@ struct femtoUniversePairTaskTrackTrackSpherHarMultKtExtended {
pairCleaner.init(&qaRegistry);
if (twotracksconfigs.ConfIsCPR.value) {
pairCloseRejection.init(&resultRegistry, &qaRegistry, twotracksconfigs.ConfCPRdeltaPhiCutMin.value, twotracksconfigs.ConfCPRdeltaPhiCutMax.value, twotracksconfigs.ConfCPRdeltaEtaCutMin.value, twotracksconfigs.ConfCPRdeltaEtaCutMax.value, twotracksconfigs.ConfCPRChosenRadii.value, twotracksconfigs.ConfCPRPlotPerRadii.value);
pairCloseRejection.init_kT(&resultRegistry, ConfKtKstarBins);
}

vPIDPartOne = trackonefilter.ConfPIDPartOne.value;
Expand Down Expand Up @@ -549,7 +550,9 @@ struct femtoUniversePairTaskTrackTrackSpherHarMultKtExtended {
continue;
}

float kT = FemtoUniverseMath::getkT(p1, mass1, p2, mass2);
if (twotracksconfigs.ConfIsCPR.value) {
pairCloseRejection.kTdetadphi(p1, p2, femto_universe_container::EventType::same, kT);
if (confCPRIsAtITS.value) {
if (pairCloseRejection.isClosePairAtITS(p1, p2, magFieldTesla, femto_universe_container::EventType::same)) {
continue;
Expand All @@ -566,7 +569,6 @@ struct femtoUniversePairTaskTrackTrackSpherHarMultKtExtended {
continue;
}

float kT = FemtoUniverseMath::getkT(p1, mass1, p2, mass2);
double rand;
rand = randgen->Rndm();

Expand Down Expand Up @@ -919,7 +921,9 @@ struct femtoUniversePairTaskTrackTrackSpherHarMultKtExtended {
continue;
}

float kT = FemtoUniverseMath::getkT(p1, mass1, p2, mass2);
if (twotracksconfigs.ConfIsCPR.value) {
pairCloseRejection.kTdetadphi(p1, p2, femto_universe_container::EventType::mixed, kT);
if (confCPRIsAtITS.value) {
if (pairCloseRejection.isClosePairAtITS(p1, p2, magFieldTesla, femto_universe_container::EventType::mixed)) {
continue;
Expand All @@ -931,7 +935,6 @@ struct femtoUniversePairTaskTrackTrackSpherHarMultKtExtended {
}
}

float kT = FemtoUniverseMath::getkT(p1, mass1, p2, mass2);
double rand;
rand = randgen->Rndm();

Expand Down
Loading