Skip to content
75 changes: 75 additions & 0 deletions PWGDQ/Core/CutsLibrary.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -1593,6 +1593,34 @@
cut->AddCut(GetAnalysisCut("electronPID1shiftDown"));
return cut;
}
// -------------------------------------------------------------------------------------------------
//
// Q vector contributor cut
//
if (!nameStr.compare("selTPCCentral")) {
AnalysisCut* kineCut = new AnalysisCut("kineCut", "kine cut");
kineCut->AddCut(VarManager::kEta, -0.8, 0.8);
kineCut->AddCut(VarManager::kPt, 0.15, 5);

AnalysisCut* qualityCuts = new AnalysisCut("qualityCuts", "quality cuts");
qualityCuts->AddCut(VarManager::kTPCchi2, 0., 4.);
qualityCuts->AddCut(VarManager::kTPCnCRoverFindCls, 0.8, 1.);
qualityCuts->AddCut(VarManager::kIsITSibAny, 0.5, 1.5);
qualityCuts->AddCut(VarManager::kITSchi2, 0., 36.);

AnalysisCut* dcaCuts = new AnalysisCut("dcaCuts", "DCA cuts");
std::shared_ptr<TF1> f1dcaxyHigh = std::make_shared<TF1>("f1dcaxy", "[0]+[1]/pow(x,[2])", 0., 10.);
f1dcaxyHigh->SetParameters(0.0105, 0.035, 1.1);
std::shared_ptr<TF1> f1dcaxyLow = std::make_shared<TF1>("f1dcaxy_low", "[0]+[1]/pow(x,[2])", 0., 10.);
f1dcaxyLow->SetParameters(-0.0105, -0.035, 1.1);
dcaCuts->AddCut(VarManager::kTrackDCAxy, f1dcaxyLow, f1dcaxyHigh);
dcaCuts->AddCut(VarManager::kTrackDCAz, -2., 2.);

cut->AddCut(kineCut);
cut->AddCut(qualityCuts);
cut->AddCut(dcaCuts);
}

// -------------------------------------------------------------------------------------------------
//
// LMee cuts
Expand Down Expand Up @@ -3001,6 +3029,17 @@
return cut;
}

if (!nameStr.compare("jpsi_debug_TPCTOF3_rejBadTOF")) {
cut->AddCut(GetAnalysisCut("jpsiStandardKine5"));
cut->AddCut(GetAnalysisCut("electronStandardQualityTPCOnly3"));
cut->AddCut(GetAnalysisCut("SPDfirst"));
cut->AddCut(GetAnalysisCut("dcaCut1_ionut"));
cut->AddCut(GetAnalysisCut("pidJpsi_TPCpion0"));
cut->AddCut(GetAnalysisCut("pidJpsi_beta"));
cut->AddCut(GetAnalysisCut("pidJpsi_noTOF_prot"));
return cut;
}

// -------------------------------------------------------------------------------------------------
// lmee pair cuts

Expand Down Expand Up @@ -4141,6 +4180,15 @@
return cut;
}

if (!nameStr.compare("eventStandardSel8NoPileup")) {
cut->AddCut(VarManager::kVtxZ, -10.0, 10.0);
cut->AddCut(VarManager::kIsSel8, 0.5, 1.5);
cut->AddCut(VarManager::kIsNoSameBunch, 0.5, 1.5);
cut->AddCut(VarManager::kIsGoodZvtxFT0vsPV, 0.5, 1.5);
cut->AddCut(VarManager::kNoCollInTimeRangeStandard, 0.5, 1.5);
return cut;
}

if (!nameStr.compare("eventStandardSel8PbPbQualityCent90")) {
cut->AddCut(VarManager::kVtxZ, -10.0, 10.0);
cut->AddCut(VarManager::kIsSel8, 0.5, 1.5);
Expand Down Expand Up @@ -4597,6 +4645,12 @@
return cut;
}

if (!nameStr.compare("jpsiStandardKine5")) {
cut->AddCut(VarManager::kP, 1.0, 1000.0);
cut->AddCut(VarManager::kEta, -0.9, 0.9);
return cut;
}

if (!nameStr.compare("jpsiKineSkimmed")) {
cut->AddCut(VarManager::kPt, 0.7, 1000.0);
cut->AddCut(VarManager::kEta, -0.9, 0.9);
Expand Down Expand Up @@ -5080,6 +5134,12 @@
return cut;
}

if (!nameStr.compare("electronStandardQualityTPCOnly3")) {
cut->AddCut(VarManager::kTPCchi2, 0.0, 4.0);
cut->AddCut(VarManager::kTPCncls, 120, 161.);
return cut;
}

if (!nameStr.compare("NoelectronStandardQualityTPCOnly")) {
cut->AddCut(VarManager::kTPCchi2, 0.0, 4.0, true, VarManager::kTPCncls, 70, 161.);
return cut;
Expand Down Expand Up @@ -5298,6 +5358,21 @@
return cut;
}

if (!nameStr.compare("pidJpsi_TPCpion0")) {
cut->AddCut(VarManager::kTPCnSigmaPi, 4.0, 1000.0);
return cut;
}

if (!nameStr.compare("pidJpsi_noTOF_prot")) {
cut->AddCut(VarManager::kTPCnSigmaPr, 3.5, 1000.0, false, VarManager::kHasTOF, -0.5, 0.5);
return cut;
}

if (!nameStr.compare("pidJpsi_beta")) {
cut->AddCut(VarManager::kTOFbeta, 0.98, 1.02, false, VarManager::kHasTOF, 0.5, 1.5);
return cut;
}

// Magnus cuts ----------------------------------------------------------

if (!nameStr.compare("pidJpsi_magnus_ele1")) {
Expand Down Expand Up @@ -5909,7 +5984,7 @@
if (icase == 0) {
cut->AddCut(VarManager::kTPCnSigmaEl, -4., 4., false, VarManager::kPin, 0.0, 1e+10, false);
cut->AddCut(VarManager::kTPCnSigmaPi, -99., 2.5, true, VarManager::kPin, 0.0, 1e+10, false);
} else if (icase == 1 || icase == 2) {

Check failure on line 5987 in PWGDQ/Core/CutsLibrary.cxx

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.
cut->AddCut(VarManager::kTPCnSigmaEl_Corr, -4., 4., false, VarManager::kPin, 0.0, 1e+10, false);
cut->AddCut(VarManager::kTPCnSigmaPi_Corr, -99., 2.5, true, VarManager::kPin, 0.0, 1e+10, false);
}
Expand Down
39 changes: 39 additions & 0 deletions PWGDQ/Core/HistogramsLibrary.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -1389,6 +1389,45 @@
hm->AddHistogram(histClass, "CosThetaStarMC", "", false, 100, -1.0, 1.0, VarManager::kMCCosThetaStar);
}
}
if (subGroupStr.Contains("flow-jpsi-ep")) {
int bins_A2[5] = {50, 20, 20, 9, 200};
double minBins_A2[5] = {2.0, 0.0, -1., 0.0, -20.0};
double maxBins_A2[5] = {4.0, 2.0, 1.0, 90.0, 20.0};
int bins_DeltaPhi[5] = {50, 20, 20, 9, 10};
double minBins_DeltaPhi[5] = {2.0, 0.0, -1., 0.0, 0};
double maxBins_DeltaPhi[5] = {4.0, 2.0, 1.0, 90.0, 3.14};
TString labels[5] = {"kMass", "kPt", "kRapidity", "kCentFT0C", "kA2EP"};
if (subGroupStr.Contains("tpc")) {
int varA2_TPC_PP[5] = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C, VarManager::kA2EP_PP_TPC};
int varA2_TPC_RP[5] = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C, VarManager::kA2EP_RP_TPC};
int varDeltaPhi_TPC_PP[5] = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C, VarManager::kDeltaPhiPP_TPC};
int varDeltaPhi_TPC_RP[5] = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C, VarManager::kDeltaPhiRP_TPC};
hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_A2PP_TPC", "", 5, varA2_TPC_PP, bins_A2, minBins_A2, maxBins_A2, 0, -1, kTRUE);
hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_A2RP_TPC", "", 5, varA2_TPC_RP, bins_A2, minBins_A2, maxBins_A2, 0, -1, kTRUE);
hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_DeltaPhiPP_TPC", "", 5, varDeltaPhi_TPC_PP, bins_DeltaPhi, minBins_DeltaPhi, maxBins_DeltaPhi, 0, -1, kTRUE);
hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_DeltaPhiRP_TPC", "", 5, varDeltaPhi_TPC_RP, bins_DeltaPhi, minBins_DeltaPhi, maxBins_DeltaPhi, 0, -1, kTRUE);
}
if (subGroupStr.Contains("ft0c")) {
int varA2_FT0C_PP[5] = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C, VarManager::kA2EP_PP_FT0C};
int varA2_FT0C_RP[5] = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C, VarManager::kA2EP_RP_FT0C};
int varDeltaPhi_FT0C_PP[5] = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C, VarManager::kDeltaPhiPP_FT0C};
int varDeltaPhi_FT0C_RP[5] = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C, VarManager::kDeltaPhiRP_FT0C};
hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_A2PP_FT0C", "", 5, varA2_FT0C_PP, bins_A2, minBins_A2, maxBins_A2, 0, -1, kTRUE);
hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_A2RP_FT0C", "", 5, varA2_FT0C_RP, bins_A2, minBins_A2, maxBins_A2, 0, -1, kTRUE);
hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_DeltaPhiPP_FT0C", "", 5, varDeltaPhi_FT0C_PP, bins_DeltaPhi, minBins_DeltaPhi, maxBins_DeltaPhi, 0, -1, kTRUE);
hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_DeltaPhiRP_FT0C", "", 5, varDeltaPhi_FT0C_RP, bins_DeltaPhi, minBins_DeltaPhi, maxBins_DeltaPhi, 0, -1, kTRUE);
}
if (subGroupStr.Contains("ft0a")) {
int varA2_FT0A_PP[5] = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C, VarManager::kA2EP_PP_FT0A};
int varA2_FT0A_RP[5] = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C, VarManager::kA2EP_RP_FT0A};
int varDeltaPhi_FT0A_PP[5] = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C, VarManager::kDeltaPhiPP_FT0A};
int varDeltaPhi_FT0A_RP[5] = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C, VarManager::kDeltaPhiRP_FT0A};
hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_A2PP_FT0A", "", 5, varA2_FT0A_PP, bins_A2, minBins_A2, maxBins_A2, 0, -1, kTRUE);
hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_A2RP_FT0A", "", 5, varA2_FT0A_RP, bins_A2, minBins_A2, maxBins_A2, 0, -1, kTRUE);
hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_DeltaPhiPP_FT0A", "", 5, varDeltaPhi_FT0A_PP, bins_DeltaPhi, minBins_DeltaPhi, maxBins_DeltaPhi, 0, -1, kTRUE);
hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_DeltaPhiRP_FT0A", "", 5, varDeltaPhi_FT0A_RP, bins_DeltaPhi, minBins_DeltaPhi, maxBins_DeltaPhi, 0, -1, kTRUE);
}
}
if (subGroupStr.Contains("upsilon")) {
hm->AddHistogram(histClass, "MassUpsilon_Pt", "", false, 500, 7.0, 12.0, VarManager::kMass, 400, 0.0, 40.0, VarManager::kPt);
}
Expand Down Expand Up @@ -2451,7 +2490,7 @@
LOG(fatal) << "histClass field should be an array of strings, e.g. [class1, class2]";
return false;
}
for (auto& v : hist->FindMember("histClass")->value.GetArray()) {

Check failure on line 2493 in PWGDQ/Core/HistogramsLibrary.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
if (!v.IsString()) {
LOG(fatal) << "histClass field should be an array of strings, e.g. [class1, class2]";
return false;
Expand Down Expand Up @@ -2607,7 +2646,7 @@
}
}
if (isTHn) {
for (auto& v : hist->FindMember("vars")->value.GetArray()) {

Check failure on line 2649 in PWGDQ/Core/HistogramsLibrary.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
if (VarManager::fgVarNamesMap.find(v.GetString()) == VarManager::fgVarNamesMap.end()) {
LOG(fatal) << "Bad variable in vars (" << v.GetString() << ") specified for histogram";
return false;
Expand Down Expand Up @@ -2670,7 +2709,7 @@

// create an array of strings to store the different histogram classes
std::vector<const char*> histClasses;
for (auto& v : hist.FindMember("histClass")->value.GetArray()) {

Check failure on line 2712 in PWGDQ/Core/HistogramsLibrary.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
histClasses.push_back(v.GetString());
}
const char* title = hist.FindMember("title")->value.GetString();
Expand All @@ -2681,7 +2720,7 @@

int* vars = new int[nDimensions];
int iDim = 0;
for (auto& v : hist.FindMember("vars")->value.GetArray()) {

Check failure on line 2723 in PWGDQ/Core/HistogramsLibrary.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
LOG(debug) << "iDim " << iDim << ": " << v.GetString();
vars[iDim++] = VarManager::fgVarNamesMap[v.GetString()];
}
Expand All @@ -2695,27 +2734,27 @@
xmin = new double[nDimensions];
xmax = new double[nDimensions];
int iDim = 0;
for (auto& v : hist.FindMember("nBins")->value.GetArray()) {

Check failure on line 2737 in PWGDQ/Core/HistogramsLibrary.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
nBins[iDim++] = v.GetInt();
LOG(debug) << "nBins " << iDim << ": " << nBins[iDim - 1];
}
iDim = 0;
for (auto& v : hist.FindMember("xmin")->value.GetArray()) {

Check failure on line 2742 in PWGDQ/Core/HistogramsLibrary.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
xmin[iDim++] = v.GetDouble();
LOG(debug) << "xmin " << iDim << ": " << xmin[iDim - 1];
}
iDim = 0;
for (auto& v : hist.FindMember("xmax")->value.GetArray()) {

Check failure on line 2747 in PWGDQ/Core/HistogramsLibrary.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
xmax[iDim++] = v.GetDouble();
LOG(debug) << "xmax " << iDim << ": " << xmax[iDim - 1];
}
} else {
int iDim = 0;
binLimits = new TArrayD[nDimensions];
for (auto& v : hist.FindMember("binLimits")->value.GetArray()) {

Check failure on line 2754 in PWGDQ/Core/HistogramsLibrary.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
double* lims = new double[v.GetArray().Size()];
int iElem = 0;
for (auto& lim : v.GetArray()) {

Check failure on line 2757 in PWGDQ/Core/HistogramsLibrary.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
lims[iElem++] = lim.GetDouble();
}
binLimits[iDim++] = TArrayD(v.GetArray().Size(), lims);
Expand Down
6 changes: 6 additions & 0 deletions PWGDQ/Core/VarManager.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -2484,6 +2484,12 @@ void VarManager::SetDefaultVarNames()
fgVarNamesMap["kDCATrackVtxProd"] = kDCATrackVtxProd;
fgVarNamesMap["kV2SP"] = kV2SP;
fgVarNamesMap["kV2EP"] = kV2EP;
fgVarNamesMap["kA2EP_PP_TPC"] = kA2EP_PP_TPC;
fgVarNamesMap["kA2EP_PP_FT0A"] = kA2EP_PP_FT0A;
fgVarNamesMap["kA2EP_PP_FT0C"] = kA2EP_PP_FT0C;
fgVarNamesMap["kA2EP_RP_TPC"] = kA2EP_RP_TPC;
fgVarNamesMap["kA2EP_RP_FT0A"] = kA2EP_RP_FT0A;
fgVarNamesMap["kA2EP_RP_FT0C"] = kA2EP_RP_FT0C;
fgVarNamesMap["kWV2SP"] = kWV2SP;
fgVarNamesMap["kWV2EP"] = kWV2EP;
fgVarNamesMap["kU2Q2"] = kU2Q2;
Expand Down
Loading
Loading