Skip to content

Commit

Permalink
PWGEM: Add new cuts for 1/pt and eta study (#2007)
Browse files Browse the repository at this point in the history
* PWGEM: Add new cuts for 1/pt and eta study

* Fix Clang error

* PWGEM: use 4 cuts to separate by charge and pseudo rapidity
  • Loading branch information
feisenhu committed Feb 16, 2023
1 parent 8af486d commit 4ff0677
Show file tree
Hide file tree
Showing 4 changed files with 109 additions and 1 deletion.
101 changes: 101 additions & 0 deletions PWGDQ/Core/CutsLibrary.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -681,6 +681,82 @@ AnalysisCompositeCut* o2::aod::dqcuts::GetCompositeCut(const char* cutName)
return cut;
}

if (!nameStr.compare("lmee_posNSigmaRun3_posEta_tight")) {
cut->AddCut(GetAnalysisCut("posTrack"));
cut->AddCut(GetAnalysisCut("posEtaSel"));
cut->AddCut(GetAnalysisCut("TightGlobalTrackRun3"));
cut->AddCut(GetAnalysisCut("standardPrimaryTrack"));

AnalysisCompositeCut* cut_tpc_nSigma = new AnalysisCompositeCut("pid_TPCnSigma", "pid_TPCnSigma", kTRUE);
cut_tpc_nSigma->AddCut(GetAnalysisCut("electronPID_TPCnsigma_tight"));

AnalysisCompositeCut* cut_tof_nSigma = new AnalysisCompositeCut("pid_TOFnSigma", "pid_TOFnSigma", kTRUE);
cut_tof_nSigma->AddCut(GetAnalysisCut("electronPID_TOFnsigma_tight"));

AnalysisCompositeCut* cut_pid_OR = new AnalysisCompositeCut("e_NSigma", "e_NSigma", kFALSE);
cut_pid_OR->AddCut(cut_tpc_nSigma);
cut_pid_OR->AddCut(cut_tof_nSigma);
cut->AddCut(cut_pid_OR);
return cut;
}

if (!nameStr.compare("lmee_negNSigmaRun3_posEta_tight")) {
cut->AddCut(GetAnalysisCut("negTrack"));
cut->AddCut(GetAnalysisCut("posEtaSel"));
cut->AddCut(GetAnalysisCut("TightGlobalTrackRun3"));
cut->AddCut(GetAnalysisCut("standardPrimaryTrack"));

AnalysisCompositeCut* cut_tpc_nSigma = new AnalysisCompositeCut("pid_TPCnSigma", "pid_TPCnSigma", kTRUE);
cut_tpc_nSigma->AddCut(GetAnalysisCut("electronPID_TPCnsigma_tight"));

AnalysisCompositeCut* cut_tof_nSigma = new AnalysisCompositeCut("pid_TOFnSigma", "pid_TOFnSigma", kTRUE);
cut_tof_nSigma->AddCut(GetAnalysisCut("electronPID_TOFnsigma_tight"));

AnalysisCompositeCut* cut_pid_OR = new AnalysisCompositeCut("e_NSigma", "e_NSigma", kFALSE);
cut_pid_OR->AddCut(cut_tpc_nSigma);
cut_pid_OR->AddCut(cut_tof_nSigma);
cut->AddCut(cut_pid_OR);
return cut;
}

if (!nameStr.compare("lmee_posNSigmaRun3_negEta_tight")) {
cut->AddCut(GetAnalysisCut("posTrack"));
cut->AddCut(GetAnalysisCut("negEtaSel"));
cut->AddCut(GetAnalysisCut("TightGlobalTrackRun3"));
cut->AddCut(GetAnalysisCut("standardPrimaryTrack"));

AnalysisCompositeCut* cut_tpc_nSigma = new AnalysisCompositeCut("pid_TPCnSigma", "pid_TPCnSigma", kTRUE);
cut_tpc_nSigma->AddCut(GetAnalysisCut("electronPID_TPCnsigma_tight"));

AnalysisCompositeCut* cut_tof_nSigma = new AnalysisCompositeCut("pid_TOFnSigma", "pid_TOFnSigma", kTRUE);
cut_tof_nSigma->AddCut(GetAnalysisCut("electronPID_TOFnsigma_tight"));

AnalysisCompositeCut* cut_pid_OR = new AnalysisCompositeCut("e_NSigma", "e_NSigma", kFALSE);
cut_pid_OR->AddCut(cut_tpc_nSigma);
cut_pid_OR->AddCut(cut_tof_nSigma);
cut->AddCut(cut_pid_OR);
return cut;
}

if (!nameStr.compare("lmee_negNSigmaRun3_negEta_tight")) {
cut->AddCut(GetAnalysisCut("negTrack"));
cut->AddCut(GetAnalysisCut("negEtaSel"));
cut->AddCut(GetAnalysisCut("TightGlobalTrackRun3"));
cut->AddCut(GetAnalysisCut("standardPrimaryTrack"));

AnalysisCompositeCut* cut_tpc_nSigma = new AnalysisCompositeCut("pid_TPCnSigma", "pid_TPCnSigma", kTRUE);
cut_tpc_nSigma->AddCut(GetAnalysisCut("electronPID_TPCnsigma_tight"));

AnalysisCompositeCut* cut_tof_nSigma = new AnalysisCompositeCut("pid_TOFnSigma", "pid_TOFnSigma", kTRUE);
cut_tof_nSigma->AddCut(GetAnalysisCut("electronPID_TOFnsigma_tight"));

AnalysisCompositeCut* cut_pid_OR = new AnalysisCompositeCut("e_NSigma", "e_NSigma", kFALSE);
cut_pid_OR->AddCut(cut_tpc_nSigma);
cut_pid_OR->AddCut(cut_tof_nSigma);
cut->AddCut(cut_pid_OR);
return cut;
}

if (!nameStr.compare("lmee_GlobalTrackRun3")) {
cut->AddCut(GetAnalysisCut("lmeeStandardKine"));
cut->AddCut(GetAnalysisCut("TightGlobalTrackRun3"));
Expand Down Expand Up @@ -1081,6 +1157,31 @@ AnalysisCut* o2::aod::dqcuts::GetAnalysisCut(const char* cutName)

// ---------------------------------------------------
// Barrel track kine cuts
if (!nameStr.compare("negTrack")) {
cut->AddCut(VarManager::kCharge, -99., 0.);
return cut;
}

if (!nameStr.compare("posTrack")) {
cut->AddCut(VarManager::kCharge, 0., 99.);
return cut;
}

if (!nameStr.compare("posEtaSel")) {
cut->AddCut(VarManager::kEta, 0., 0.8);
return cut;
}

if (!nameStr.compare("negEtaSel")) {
cut->AddCut(VarManager::kEta, -0.8, 0.);
return cut;
}

if (!nameStr.compare("etaSel")) {
cut->AddCut(VarManager::kEta, -0.8, 0.8);
return cut;
}

if (!nameStr.compare("lowMultTrackCut")) {
cut->AddCut(VarManager::kPt, 0.15, 1000.0);
cut->AddCut(VarManager::kTPCncls, 50.0, 159);
Expand Down
1 change: 1 addition & 0 deletions PWGDQ/Core/HistogramsLibrary.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h
hm->AddHistogram(histClass, "Px", "p_{x} distribution", false, 200, 0.0, 20.0, VarManager::kPx);
hm->AddHistogram(histClass, "Py", "p_{y} distribution", false, 200, 0.0, 20.0, VarManager::kPy);
hm->AddHistogram(histClass, "Pz", "p_{z} distribution", false, 200, 0.0, 20.0, VarManager::kPz);
hm->AddHistogram(histClass, "InvPt", "1/p_{T} distribution", false, 2000, 0.0, 20.0, VarManager::kInvPt);
}
if (subGroupStr.Contains("its")) {
hm->AddHistogram(histClass, "ITSncls", "Number of cluster in ITS", false, 8, -0.5, 7.5, VarManager::kITSncls);
Expand Down
2 changes: 2 additions & 0 deletions PWGDQ/Core/VarManager.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -250,6 +250,8 @@ void VarManager::SetDefaultVarNames()
fgVariableUnits[kMCEventImpParam] = "b";
fgVariableNames[kPt] = "p_{T}";
fgVariableUnits[kPt] = "GeV/c";
fgVariableNames[kInvPt] = "1/p_{T}";
fgVariableUnits[kInvPt] = "1/(GeV/c)";
fgVariableNames[kP] = "p";
fgVariableUnits[kP] = "GeV/c";
fgVariableNames[kPx] = "p_{x}";
Expand Down
6 changes: 5 additions & 1 deletion PWGDQ/Core/VarManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,7 @@ class VarManager : public TObject

// Basic track/muon/pair wise variables
kPt,
kInvPt,
kEta,
kPhi,
kP,
Expand Down Expand Up @@ -523,7 +524,7 @@ class VarManager : public TObject
static void ResetValues(int startValue = 0, int endValue = kNVars, float* values = nullptr);

private:
static bool fgUsedVars[kNVars]; // holds flags for when the corresponding variable is needed (e.g., in the histogram manager, in cuts, mixing handler, etc.)
static bool fgUsedVars[kNVars]; // holds flags for when the corresponding variable is needed (e.g., in the histogram manager, in cuts, mixing handler, etc.)
static bool fgUsedKF;
static void SetVariableDependencies(); // toggle those variables on which other used variables might depend

Expand Down Expand Up @@ -819,6 +820,9 @@ void VarManager::FillTrack(T const& track, float* values)
if (fgUsedVars[kPz]) {
values[kPz] = track.pz();
}
if (fgUsedVars[kInvPt]) {
values[kInvPt] = 1. / track.pt();
}
values[kEta] = track.eta();
values[kPhi] = track.phi();
values[kCharge] = track.sign();
Expand Down

0 comments on commit 4ff0677

Please sign in to comment.