Skip to content

Commit e04d7bf

Browse files
committed
PWGEM/Dilepton: update muon analyses
1 parent eebd803 commit e04d7bf

File tree

7 files changed

+234
-240
lines changed

7 files changed

+234
-240
lines changed

PWGEM/Dilepton/Core/DielectronCut.h

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ class DielectronCut : public TNamed
170170
template <bool dont_require_pteta = false, typename TTrack>
171171
bool IsSelectedTrack(TTrack const& track) const
172172
{
173-
if (!track.hasITS()) {
173+
if (!track.hasITS() || !track.hasTPC()) {
174174
return false;
175175
}
176176

@@ -225,34 +225,32 @@ class DielectronCut : public TNamed
225225
}
226226
}
227227

228-
if (!mIncludeITSsa && (!track.hasITS() || !track.hasTPC())) { // track has to be ITS-TPC matched track
228+
// if (!mIncludeITSsa && (!track.hasITS() || !track.hasTPC())) { // track has to be ITS-TPC matched track
229+
// return false;
230+
// }
231+
232+
// if ((track.hasITS() && !track.hasTPC() && !track.hasTRD() && !track.hasTOF()) && track.pt() > mMaxPtITSsa) { // ITSsa
233+
// return false;
234+
// }
235+
236+
// TPC cuts
237+
if (!IsSelectedTrack(track, DielectronCuts::kTPCNCls)) {
229238
return false;
230239
}
231-
232-
if ((track.hasITS() && !track.hasTPC() && !track.hasTRD() && !track.hasTOF()) && track.pt() > mMaxPtITSsa) { // ITSsa
240+
if (!IsSelectedTrack(track, DielectronCuts::kTPCCrossedRows)) {
233241
return false;
234242
}
235-
236-
// TPC cuts
237-
if (track.hasTPC()) {
238-
if (!IsSelectedTrack(track, DielectronCuts::kTPCNCls)) {
239-
return false;
240-
}
241-
if (!IsSelectedTrack(track, DielectronCuts::kTPCCrossedRows)) {
242-
return false;
243-
}
244-
if (!IsSelectedTrack(track, DielectronCuts::kTPCCrossedRowsOverNCls)) {
245-
return false;
246-
}
247-
if (!IsSelectedTrack(track, DielectronCuts::kTPCFracSharedClusters)) {
248-
return false;
249-
}
250-
if (!IsSelectedTrack(track, DielectronCuts::kRelDiffPin)) {
251-
return false;
252-
}
253-
if (!IsSelectedTrack(track, DielectronCuts::kTPCChi2NDF)) {
254-
return false;
255-
}
243+
if (!IsSelectedTrack(track, DielectronCuts::kTPCCrossedRowsOverNCls)) {
244+
return false;
245+
}
246+
if (!IsSelectedTrack(track, DielectronCuts::kTPCFracSharedClusters)) {
247+
return false;
248+
}
249+
if (!IsSelectedTrack(track, DielectronCuts::kRelDiffPin)) {
250+
return false;
251+
}
252+
if (!IsSelectedTrack(track, DielectronCuts::kTPCChi2NDF)) {
253+
return false;
256254
}
257255

258256
if (mApplyPF && !IsSelectedTrack(track, DielectronCuts::kPrefilter)) {

PWGEM/Dilepton/Core/Dilepton.h

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -209,8 +209,8 @@ struct Dilepton {
209209
Configurable<float> cfg_max_chi2tpc{"cfg_max_chi2tpc", 4.0, "max chi2/NclsTPC"};
210210
Configurable<float> cfg_max_chi2its{"cfg_max_chi2its", 5.0, "max chi2/NclsITS"};
211211
Configurable<float> cfg_max_chi2tof{"cfg_max_chi2tof", 1e+10, "max chi2 TOF"};
212-
Configurable<float> cfg_max_dcaxy{"cfg_max_dcaxy", 0.2, "max dca XY for single track in cm"};
213-
Configurable<float> cfg_max_dcaz{"cfg_max_dcaz", 0.2, "max dca Z for single track in cm"};
212+
Configurable<float> cfg_max_dcaxy{"cfg_max_dcaxy", 1.0, "max dca XY for single track in cm"};
213+
Configurable<float> cfg_max_dcaz{"cfg_max_dcaz", 1.0, "max dca Z for single track in cm"};
214214
Configurable<bool> cfg_require_itsib_any{"cfg_require_itsib_any", false, "flag to require ITS ib any hits"};
215215
Configurable<bool> cfg_require_itsib_1st{"cfg_require_itsib_1st", true, "flag to require ITS ib 1st hit"};
216216
Configurable<float> cfg_min_its_cluster_size{"cfg_min_its_cluster_size", 0.f, "min ITS cluster size"};
@@ -237,8 +237,6 @@ struct Dilepton {
237237
Configurable<float> cfg_min_pin_pirejTPC{"cfg_min_pin_pirejTPC", 0.f, "min. pin for pion rejection in TPC"};
238238
Configurable<float> cfg_max_pin_pirejTPC{"cfg_max_pin_pirejTPC", 1e+10, "max. pin for pion rejection in TPC"};
239239
Configurable<bool> enableTTCA{"enableTTCA", true, "Flag to enable or disable TTCA"};
240-
Configurable<bool> includeITSsa{"includeITSsa", false, "Flag to enable ITSsa tracks"};
241-
Configurable<float> cfg_max_pt_track_ITSsa{"cfg_max_pt_track_ITSsa", 0.15, "max pt for ITSsa tracks"};
242240

243241
// configuration for PID ML
244242
Configurable<std::vector<std::string>> onnxFileNames{"onnxFileNames", std::vector<std::string>{"filename"}, "ONNX file names for each bin (if not from CCDB full path)"};
@@ -730,7 +728,6 @@ struct Dilepton {
730728
fDielectronCut.RequireITSib1st(dielectroncuts.cfg_require_itsib_1st);
731729
fDielectronCut.SetChi2TOF(0, dielectroncuts.cfg_max_chi2tof);
732730
fDielectronCut.SetRelDiffPin(dielectroncuts.cfg_min_rel_diff_pin, dielectroncuts.cfg_max_rel_diff_pin);
733-
fDielectronCut.IncludeITSsa(dielectroncuts.includeITSsa, dielectroncuts.cfg_max_pt_track_ITSsa);
734731

735732
// for eID
736733
fDielectronCut.SetPIDScheme(dielectroncuts.cfg_pid_scheme);
@@ -1143,7 +1140,8 @@ struct Dilepton {
11431140

11441141
SliceCache cache;
11451142
Preslice<MyElectrons> perCollision_electron = aod::emprimaryelectron::emeventId;
1146-
Filter trackFilter_electron = dielectroncuts.cfg_min_pt_track < o2::aod::track::pt && dielectroncuts.cfg_min_eta_track < o2::aod::track::eta && o2::aod::track::eta < dielectroncuts.cfg_max_eta_track && nabs(o2::aod::track::dcaXY) < dielectroncuts.cfg_max_dcaxy && nabs(o2::aod::track::dcaZ) < dielectroncuts.cfg_max_dcaz;
1143+
Filter trackFilter_electron = dielectroncuts.cfg_min_pt_track < o2::aod::track::pt && dielectroncuts.cfg_min_eta_track < o2::aod::track::eta && o2::aod::track::eta < dielectroncuts.cfg_max_eta_track && nabs(o2::aod::track::dcaXY) < dielectroncuts.cfg_max_dcaxy && nabs(o2::aod::track::dcaZ) < dielectroncuts.cfg_max_dcaz && o2::aod::track::itsChi2NCl < dielectroncuts.cfg_max_chi2its && o2::aod::track::tpcChi2NCl < dielectroncuts.cfg_max_chi2tpc;
1144+
Filter pidFilter_electron = dielectroncuts.cfg_min_TPCNsigmaEl < o2::aod::pidtpc::tpcNSigmaEl && o2::aod::pidtpc::tpcNSigmaEl < dielectroncuts.cfg_max_TPCNsigmaEl;
11471145
Filter ttcaFilter_electron = ifnode(dielectroncuts.enableTTCA.node(), o2::aod::emprimaryelectron::isAssociatedToMPC == true || o2::aod::emprimaryelectron::isAssociatedToMPC == false, o2::aod::emprimaryelectron::isAssociatedToMPC == true);
11481146
Filter prefilter_derived_electron = ifnode(dielectroncuts.cfg_apply_cuts_from_prefilter_derived.node() && dielectroncuts.cfg_prefilter_bits_derived.node() >= static_cast<uint16_t>(1),
11491147
ifnode((dielectroncuts.cfg_prefilter_bits_derived.node() & static_cast<uint16_t>(1 << int(o2::aod::pwgem::dilepton::utils::pairutil::DileptonPrefilterBitDerived::kMee))) > static_cast<uint16_t>(0), (o2::aod::emprimaryelectron::pfbderived & static_cast<uint16_t>(1 << int(o2::aod::pwgem::dilepton::utils::pairutil::DileptonPrefilterBitDerived::kMee))) <= static_cast<uint16_t>(0), true) &&

PWGEM/Dilepton/Core/DileptonMC.h

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -211,8 +211,8 @@ struct DileptonMC {
211211
Configurable<float> cfg_max_chi2tpc{"cfg_max_chi2tpc", 4.0, "max chi2/NclsTPC"};
212212
Configurable<float> cfg_max_chi2its{"cfg_max_chi2its", 5.0, "max chi2/NclsITS"};
213213
Configurable<float> cfg_max_chi2tof{"cfg_max_chi2tof", 1e+10, "max chi2 TOF"};
214-
Configurable<float> cfg_max_dcaxy{"cfg_max_dcaxy", 0.2, "max dca XY for single track in cm"};
215-
Configurable<float> cfg_max_dcaz{"cfg_max_dcaz", 0.2, "max dca Z for single track in cm"};
214+
Configurable<float> cfg_max_dcaxy{"cfg_max_dcaxy", 1.0, "max dca XY for single track in cm"};
215+
Configurable<float> cfg_max_dcaz{"cfg_max_dcaz", 1.0, "max dca Z for single track in cm"};
216216
Configurable<bool> cfg_require_itsib_any{"cfg_require_itsib_any", false, "flag to require ITS ib any hits"};
217217
Configurable<bool> cfg_require_itsib_1st{"cfg_require_itsib_1st", true, "flag to require ITS ib 1st hit"};
218218
Configurable<float> cfg_min_its_cluster_size{"cfg_min_its_cluster_size", 0.f, "min ITS cluster size"};
@@ -239,8 +239,6 @@ struct DileptonMC {
239239
Configurable<float> cfg_min_pin_pirejTPC{"cfg_min_pin_pirejTPC", 0.f, "min. pin for pion rejection in TPC"};
240240
Configurable<float> cfg_max_pin_pirejTPC{"cfg_max_pin_pirejTPC", 1e+10, "max. pin for pion rejection in TPC"};
241241
Configurable<bool> enableTTCA{"enableTTCA", true, "Flag to enable or disable TTCA"};
242-
Configurable<bool> includeITSsa{"includeITSsa", false, "Flag to enable ITSsa tracks"};
243-
Configurable<float> cfg_max_pt_track_ITSsa{"cfg_max_pt_track_ITSsa", 0.15, "max pt for ITSsa tracks"};
244242

245243
// configuration for PID ML
246244
Configurable<std::vector<std::string>> onnxFileNames{"onnxFileNames", std::vector<std::string>{"filename"}, "ONNX file names for each bin (if not from CCDB full path)"};
@@ -737,7 +735,6 @@ struct DileptonMC {
737735
fDielectronCut.RequireITSib1st(dielectroncuts.cfg_require_itsib_1st);
738736
fDielectronCut.SetChi2TOF(0.0, dielectroncuts.cfg_max_chi2tof);
739737
fDielectronCut.SetRelDiffPin(dielectroncuts.cfg_min_rel_diff_pin, dielectroncuts.cfg_max_rel_diff_pin);
740-
fDielectronCut.IncludeITSsa(dielectroncuts.includeITSsa, dielectroncuts.cfg_max_pt_track_ITSsa);
741738

742739
// for eID
743740
fDielectronCut.SetPIDScheme(dielectroncuts.cfg_pid_scheme);
@@ -2484,7 +2481,8 @@ struct DileptonMC {
24842481

24852482
SliceCache cache;
24862483
Preslice<MyMCElectrons> perCollision_electron = aod::emprimaryelectron::emeventId;
2487-
Filter trackFilter_electron = nabs(o2::aod::track::dcaXY) < dielectroncuts.cfg_max_dcaxy && nabs(o2::aod::track::dcaZ) < dielectroncuts.cfg_max_dcaz;
2484+
Filter trackFilter_electron = nabs(o2::aod::track::dcaXY) < dielectroncuts.cfg_max_dcaxy && nabs(o2::aod::track::dcaZ) < dielectroncuts.cfg_max_dcaz && o2::aod::track::itsChi2NCl < dielectroncuts.cfg_max_chi2its && o2::aod::track::tpcChi2NCl < dielectroncuts.cfg_max_chi2tpc;
2485+
Filter pidFilter_electron = dielectroncuts.cfg_min_TPCNsigmaEl < o2::aod::pidtpc::tpcNSigmaEl && o2::aod::pidtpc::tpcNSigmaEl < dielectroncuts.cfg_max_TPCNsigmaEl;
24882486
Filter ttcaFilter_electron = ifnode(dielectroncuts.enableTTCA.node(), o2::aod::emprimaryelectron::isAssociatedToMPC == true || o2::aod::emprimaryelectron::isAssociatedToMPC == false, o2::aod::emprimaryelectron::isAssociatedToMPC == true);
24892487
Filter prefilter_derived_electron = ifnode(dielectroncuts.cfg_apply_cuts_from_prefilter_derived.node() && dielectroncuts.cfg_prefilter_bits_derived.node() >= static_cast<uint16_t>(1),
24902488
ifnode((dielectroncuts.cfg_prefilter_bits_derived.node() & static_cast<uint16_t>(1 << int(o2::aod::pwgem::dilepton::utils::pairutil::DileptonPrefilterBitDerived::kMee))) > static_cast<uint16_t>(0), (o2::aod::emprimaryelectron::pfbderived & static_cast<uint16_t>(1 << int(o2::aod::pwgem::dilepton::utils::pairutil::DileptonPrefilterBitDerived::kMee))) <= static_cast<uint16_t>(0), true) &&

PWGEM/Dilepton/TableProducer/createEMEventDilepton.cxx

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
/// \author Daiki Sekihata, daiki.sekihata@cern.ch
1515

1616
#include "PWGEM/Dilepton/DataModel/dileptonTables.h"
17-
#include "PWGEM/PhotonMeson/DataModel/gammaTables.h"
1817

1918
#include "Common/CCDB/EventSelectionParams.h"
2019
#include "Common/DataModel/Centrality.h"
@@ -294,16 +293,13 @@ struct CreateEMEventDilepton {
294293
PROCESS_SWITCH(CreateEMEventDilepton, processDummy, "processDummy", true);
295294
};
296295
struct AssociateDileptonToEMEvent {
297-
Produces<o2::aod::V0KFEMEventIds> v0kfeventid;
298296
Produces<o2::aod::EMPrimaryElectronEMEventIds> prmeleventid;
299297
Produces<o2::aod::EMPrimaryMuonEMEventIds> prmmueventid;
300298
Produces<o2::aod::EMPrimaryTrackEMEventIds> prmtrackeventid;
301299

302-
Preslice<aod::V0PhotonsKF> perCollision_pcm = aod::v0photonkf::collisionId;
303300
PresliceUnsorted<aod::EMPrimaryElectrons> perCollision_el = aod::emprimaryelectron::collisionId;
304301
PresliceUnsorted<aod::EMPrimaryMuons> perCollision_mu = aod::emprimarymuon::collisionId;
305302
Preslice<aod::EMPrimaryTracks> perCollision_track = aod::emprimarytrack::collisionId;
306-
// Preslice<aod::EMPrimaryTrackEMEventIdsTMP> perCollision_track = aod::track::collisionId;
307303

308304
void init(o2::framework::InitContext&) {}
309305

@@ -323,11 +319,6 @@ struct AssociateDileptonToEMEvent {
323319
// This struct is for both data and MC.
324320
// Note that reconstructed collisions without mc collisions are already rejected in CreateEMEventDilepton in MC.
325321

326-
// void processPCM(aod::EMEvents const& collisions, aod::V0PhotonsKF const& photons)
327-
// {
328-
// fillEventId(collisions, photons, v0kfeventid, perCollision_pcm);
329-
// }
330-
331322
void processElectron(aod::EMEvents const& collisions, aod::EMPrimaryElectrons const& tracks)
332323
{
333324
fillEventId(collisions, tracks, prmeleventid, perCollision_el);
@@ -345,7 +336,6 @@ struct AssociateDileptonToEMEvent {
345336

346337
void processDummy(aod::EMEvents const&) {}
347338

348-
// PROCESS_SWITCH(AssociateDileptonToEMEvent, processPCM, "process indexing for PCM", false);
349339
PROCESS_SWITCH(AssociateDileptonToEMEvent, processElectron, "process indexing for electrons", false);
350340
PROCESS_SWITCH(AssociateDileptonToEMEvent, processFwdMuon, "process indexing for forward muons", false);
351341
PROCESS_SWITCH(AssociateDileptonToEMEvent, processChargedTrack, "process indexing for charged tracks", false);

0 commit comments

Comments
 (0)