Skip to content

Commit 19ce1b7

Browse files
dsekihatalibuild
andauthored
[PWGEM/Dilepton] update electron table 6 to add pid for tracking (#15281)
Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent 7e897f0 commit 19ce1b7

File tree

7 files changed

+125
-3
lines changed

7 files changed

+125
-3
lines changed

PWGEM/Dilepton/Core/SingleTrackQC.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,7 @@ struct SingleTrackQC {
285285
// fRegistry.add("Track/positive/hTOFNsigmaKa", "TOF n sigma ka;p_{pv} (GeV/c);n #sigma_{K}^{TOF}", kTH2F, {{1000, 0, 10}, {100, -5, +5}}, false);
286286
// fRegistry.add("Track/positive/hTOFNsigmaPr", "TOF n sigma pr;p_{pv} (GeV/c);n #sigma_{p}^{TOF}", kTH2F, {{1000, 0, 10}, {100, -5, +5}}, false);
287287

288+
fRegistry.add("Track/positive/hPIDForTracking", "PID for trackng", kTH1F, {{9, -0.5, 8.5}}, false); // see numbering in O2/DataFormats/Reconstruction/include/ReconstructionDataFormats/PID.h
288289
fRegistry.add("Track/positive/hProbElBDT", "probability to be e from BDT;p_{in} (GeV/c);BDT score;", kTH2F, {{1000, 0, 10}, {100, 0, 1}}, false);
289290
fRegistry.add("Track/positive/hMeanClusterSizeITS", "mean cluster size ITS;p_{pv} (GeV/c);<cluster size> on ITS #times cos(#lambda);", kTH2F, {{1000, 0.f, 10.f}, {150, 0, 15}}, false);
290291
fRegistry.add("Track/positive/hMeanClusterSizeITSib", "mean cluster size ITS inner barrel;p_{pv} (GeV/c);<cluster size> on ITS #times cos(#lambda);", kTH2F, {{1000, 0.f, 10.f}, {150, 0, 15}}, false);
@@ -582,6 +583,7 @@ struct SingleTrackQC {
582583

583584
fRegistry.fill(HIST("Track/positive/hTPCdEdx"), track.tpcInnerParam(), track.tpcSignal());
584585
fRegistry.fill(HIST("Track/positive/hTOFbeta"), track.p(), track.beta());
586+
fRegistry.fill(HIST("Track/positive/hPIDForTracking"), track.pidForTracking());
585587
fRegistry.fill(HIST("Track/positive/hProbElBDT"), track.tpcInnerParam(), track.probElBDT());
586588
fRegistry.fill(HIST("Track/positive/hMeanClusterSizeITS"), track.p(), track.meanClusterSizeITS() * std::cos(std::atan(track.tgl())));
587589
fRegistry.fill(HIST("Track/positive/hMeanClusterSizeITSib"), track.p(), track.meanClusterSizeITSib() * std::cos(std::atan(track.tgl())));
@@ -621,6 +623,7 @@ struct SingleTrackQC {
621623

622624
fRegistry.fill(HIST("Track/negative/hTPCdEdx"), track.tpcInnerParam(), track.tpcSignal());
623625
fRegistry.fill(HIST("Track/negative/hTOFbeta"), track.p(), track.beta());
626+
fRegistry.fill(HIST("Track/negative/hPIDForTracking"), track.pidForTracking());
624627
fRegistry.fill(HIST("Track/negative/hProbElBDT"), track.tpcInnerParam(), track.probElBDT());
625628
fRegistry.fill(HIST("Track/negative/hMeanClusterSizeITS"), track.p(), track.meanClusterSizeITS() * std::cos(std::atan(track.tgl())));
626629
fRegistry.fill(HIST("Track/negative/hMeanClusterSizeITSib"), track.p(), track.meanClusterSizeITSib() * std::cos(std::atan(track.tgl())));

PWGEM/Dilepton/Core/SingleTrackQCMC.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,7 @@ struct SingleTrackQCMC {
292292
fRegistry.add("Track/PromptLF/positive/hDeltaPin", "p_{in} vs. p_{pv};p_{in} (GeV/c);(p_{pv} - p_{in})/p_{in}", kTH2F, {{1000, 0, 10}, {200, -1, +1}}, false);
293293
fRegistry.add("Track/PromptLF/positive/hChi2TOF", "TOF Chi2;p_{pv} (GeV/c);chi2", kTH2F, {{1000, 0, 10}, {100, 0, 10}}, false);
294294
fRegistry.add("Track/PromptLF/positive/hITSClusterMap", "ITS cluster map", kTH1F, {{128, -0.5, 127.5}}, false);
295+
fRegistry.add("Track/PromptLF/positive/hPIDForTracking", "PID for trackng", kTH1F, {{9, -0.5, 8.5}}, false); // see numbering in O2/DataFormats/Reconstruction/include/ReconstructionDataFormats/PID.h
295296
fRegistry.add("Track/PromptLF/positive/hPtGen_DeltaPtOverPtGen", "electron p_{T} resolution;p_{T}^{gen} (GeV/c);(p_{T}^{rec} - p_{T}^{gen})/p_{T}^{gen}", kTH2F, {{200, 0, 10}, {200, -1.0f, 1.0f}}, true);
296297
fRegistry.add("Track/PromptLF/positive/hPtGen_DeltaEta", "electron #eta resolution;p_{T}^{gen} (GeV/c);#eta^{rec} - #eta^{gen}", kTH2F, {{200, 0, 10}, {100, -0.05f, 0.05f}}, true);
297298
fRegistry.add("Track/PromptLF/positive/hPtGen_DeltaPhi", "electron #varphi resolution;p_{T}^{gen} (GeV/c);#varphi^{rec} - #varphi^{gen} (rad.)", kTH2F, {{200, 0, 10}, {100, -0.05f, 0.05f}}, true);
@@ -676,6 +677,7 @@ struct SingleTrackQCMC {
676677
fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("positive/hDeltaPin"), track.tpcInnerParam(), (track.p() - track.tpcInnerParam()) / track.tpcInnerParam());
677678
}
678679
fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("positive/hITSClusterMap"), track.itsClusterMap());
680+
fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("positive/hPIDForTracking"), track.pidForTracking());
679681
fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("positive/hPtGen_DeltaPtOverPtGen"), mctrack.pt(), (track.pt() - mctrack.pt()) / mctrack.pt());
680682
fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("positive/hPtGen_DeltaEta"), mctrack.pt(), track.eta() - mctrack.eta());
681683
fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("positive/hPtGen_DeltaPhi"), mctrack.pt(), track.phi() - mctrack.phi());
@@ -721,6 +723,7 @@ struct SingleTrackQCMC {
721723
fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("negative/hDeltaPin"), track.tpcInnerParam(), (track.p() - track.tpcInnerParam()) / track.tpcInnerParam());
722724
}
723725
fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("negative/hITSClusterMap"), track.itsClusterMap());
726+
fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("negative/hPIDForTracking"), track.pidForTracking());
724727
fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("negative/hPtGen_DeltaPtOverPtGen"), mctrack.pt(), (track.pt() - mctrack.pt()) / mctrack.pt());
725728
fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("negative/hPtGen_DeltaEta"), mctrack.pt(), track.eta() - mctrack.eta());
726729
fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("negative/hPtGen_DeltaPhi"), mctrack.pt(), track.phi() - mctrack.phi());

PWGEM/Dilepton/DataModel/dileptonTables.h

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -910,7 +910,42 @@ DECLARE_SOA_TABLE_VERSIONED(EMPrimaryElectrons_005, "AOD", "EMPRIMARYEL", 5, //!
910910
emprimaryelectron::MeanClusterSizeITSib<track::ITSClusterSizes>,
911911
emprimaryelectron::MeanClusterSizeITSob<track::ITSClusterSizes>);
912912

913-
using EMPrimaryElectrons = EMPrimaryElectrons_005;
913+
DECLARE_SOA_TABLE_VERSIONED(EMPrimaryElectrons_006, "AOD", "EMPRIMARYEL", 6, //!
914+
o2::soa::Index<>, emprimaryelectron::CollisionId,
915+
emprimaryelectron::TrackId, emprimaryelectron::Sign,
916+
track::Pt, track::Eta, track::Phi,
917+
track::DcaXY, track::DcaZ, aod::track::CYY, aod::track::CZY, aod::track::CZZ,
918+
track::TPCNClsFindable, track::TPCNClsFindableMinusFound, track::TPCNClsFindableMinusPID, track::TPCNClsFindableMinusCrossedRows, track::TPCNClsShared,
919+
track::TPCChi2NCl, track::TPCInnerParam,
920+
track::TPCSignal, pidtpc::TPCNSigmaEl, pidtpc::TPCNSigmaPi, pidtpc::TPCNSigmaKa, pidtpc::TPCNSigmaPr,
921+
pidtofbeta::Beta, pidtof::TOFNSigmaEl, /*pidtof::TOFNSigmaPi, pidtof::TOFNSigmaKa, pidtof::TOFNSigmaPr,*/
922+
track::ITSClusterSizes, track::ITSChi2NCl, track::TOFChi2, track::DetectorMap, /*track::Tgl,*/
923+
emprimaryelectron::IsAssociatedToMPC, emprimaryelectron::IsAmbiguous, emprimaryelectron::ProbElBDT, track::Flags,
924+
mcpidtpc::DeDxTunedMc,
925+
926+
// dynamic column
927+
track::TPCNClsFound<track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
928+
track::TPCNClsPID<track::TPCNClsFindable, track::TPCNClsFindableMinusPID>,
929+
track::TPCNClsCrossedRows<track::TPCNClsFindable, track::TPCNClsFindableMinusCrossedRows>,
930+
track::TPCCrossedRowsOverFindableCls<track::TPCNClsFindable, track::TPCNClsFindableMinusCrossedRows>,
931+
track::TPCFoundOverFindableCls<track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
932+
track::TPCFractionSharedCls<track::TPCNClsShared, track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
933+
track::v001::ITSClusterMap<track::ITSClusterSizes>, track::v001::ITSNCls<track::ITSClusterSizes>, track::v001::ITSNClsInnerBarrel<track::ITSClusterSizes>,
934+
track::HasITS<track::DetectorMap>, track::HasTPC<track::DetectorMap>, track::HasTRD<track::DetectorMap>, track::HasTOF<track::DetectorMap>,
935+
track::PIDForTracking<track::Flags>, // see numbering in O2/DataFormats/Reconstruction/include/ReconstructionDataFormats/PID.h
936+
track::IsPVContributor<track::Flags>,
937+
938+
emprimaryelectron::Signed1Pt<track::Pt, emprimaryelectron::Sign>,
939+
emprimaryelectron::P<track::Pt, track::Eta>,
940+
emprimaryelectron::Px<track::Pt, track::Phi>,
941+
emprimaryelectron::Py<track::Pt, track::Phi>,
942+
emprimaryelectron::Pz<track::Pt, track::Eta>,
943+
emprimaryelectron::Tgl<track::Eta>,
944+
emprimaryelectron::MeanClusterSizeITS<track::ITSClusterSizes>,
945+
emprimaryelectron::MeanClusterSizeITSib<track::ITSClusterSizes>,
946+
emprimaryelectron::MeanClusterSizeITSob<track::ITSClusterSizes>);
947+
948+
using EMPrimaryElectrons = EMPrimaryElectrons_006;
914949
// iterators
915950
using EMPrimaryElectron = EMPrimaryElectrons::iterator;
916951

PWGEM/Dilepton/TableProducer/Converters/CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,11 @@ o2physics_add_dpl_workflow(electron-converter5
5050
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore
5151
COMPONENT_NAME Analysis)
5252

53+
o2physics_add_dpl_workflow(electron-converter6
54+
SOURCES electronConverter6.cxx
55+
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore
56+
COMPONENT_NAME Analysis)
57+
5358
o2physics_add_dpl_workflow(track-converter1
5459
SOURCES trackConverter1.cxx
5560
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
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+
//
12+
// ========================
13+
//
14+
// This code runs loop over ULS ee pars for virtual photon QC.
15+
// Please write to: daiki.sekihata@cern.ch
16+
17+
#include "PWGEM/Dilepton/DataModel/dileptonTables.h"
18+
19+
#include "Framework/ASoAHelpers.h"
20+
#include "Framework/AnalysisTask.h"
21+
#include "Framework/runDataProcessing.h"
22+
23+
using namespace o2;
24+
using namespace o2::aod;
25+
using namespace o2::framework;
26+
using namespace o2::framework::expressions;
27+
using namespace o2::soa;
28+
29+
struct electronConverter6 {
30+
Produces<aod::EMPrimaryElectrons_006> track_006;
31+
32+
void process(aod::EMPrimaryElectrons_005 const& tracks)
33+
{
34+
for (const auto& track : tracks) {
35+
track_006(track.collisionId(),
36+
track.trackId(),
37+
track.sign(),
38+
track.pt(),
39+
track.eta(),
40+
track.phi(),
41+
track.dcaXY(),
42+
track.dcaZ(),
43+
track.cYY(),
44+
track.cZY(),
45+
track.cZZ(),
46+
track.tpcNClsFindable(),
47+
track.tpcNClsFindableMinusFound(),
48+
track.tpcNClsFindableMinusPID(),
49+
track.tpcNClsFindableMinusCrossedRows(),
50+
track.tpcNClsShared(),
51+
track.tpcChi2NCl(),
52+
track.tpcInnerParam(),
53+
track.tpcSignal(),
54+
track.tpcNSigmaEl(),
55+
track.tpcNSigmaPi(),
56+
track.tpcNSigmaKa(),
57+
track.tpcNSigmaPr(),
58+
track.beta(),
59+
track.tofNSigmaEl(),
60+
track.itsClusterSizes(),
61+
track.itsChi2NCl(),
62+
track.tofChi2(),
63+
track.detectorMap(),
64+
track.isAssociatedToMPC(),
65+
track.isAmbiguous(),
66+
track.probElBDT(),
67+
0,
68+
track.mcTunedTPCSignal());
69+
} // end of track loop
70+
}
71+
};
72+
73+
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
74+
{
75+
return WorkflowSpec{adaptAnalysisTask<electronConverter6>(cfgc, TaskName{"electron-converter6"})};
76+
}

PWGEM/Dilepton/TableProducer/skimmerPrimaryElectron.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -495,7 +495,7 @@ struct skimmerPrimaryElectron {
495495
beta, tofNSigmaEl,
496496
track.itsClusterSizes(),
497497
track.itsChi2NCl(), track.tofChi2(), track.detectorMap(),
498-
isAssociatedToMPC, false, probaEl, mcTunedTPCSignal);
498+
isAssociatedToMPC, false, probaEl, track.flags(), mcTunedTPCSignal);
499499

500500
emprimaryelectronscov(
501501
trackParCov.getX(),

PWGEM/Dilepton/TableProducer/skimmerPrimaryElectronQC.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -501,7 +501,7 @@ struct skimmerPrimaryElectronQC {
501501
track.itsClusterSizes(),
502502
track.itsChi2NCl(), track.tofChi2(), track.detectorMap(),
503503
// trackParCov.getTgl(),
504-
isAssociatedToMPC, false, probaEl, mcTunedTPCSignal);
504+
isAssociatedToMPC, false, probaEl, track.flags(), mcTunedTPCSignal);
505505

506506
emprimaryelectronscov(
507507
trackParCov.getX(),

0 commit comments

Comments
 (0)