Skip to content

Commit 3d4ba8e

Browse files
committed
PWGEM/Dilepton: add a task to produce derived data for primary track
1 parent f28eb61 commit 3d4ba8e

File tree

7 files changed

+473
-19
lines changed

7 files changed

+473
-19
lines changed

PWGEM/Dilepton/DataModel/dileptonTables.h

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,19 @@
99
// granted to it by virtue of its status as an Intergovernmental Organization
1010
// or submit itself to any jurisdiction.
1111

12-
#include <vector>
13-
#include <string>
14-
#include <unordered_map>
1512
#include "Common/Core/RecoDecay.h"
16-
#include "Framework/AnalysisDataModel.h"
17-
#include "Common/DataModel/PIDResponse.h"
13+
#include "Common/DataModel/Centrality.h"
1814
#include "Common/DataModel/EventSelection.h"
19-
#include "Common/DataModel/TrackSelectionTables.h"
2015
#include "Common/DataModel/Multiplicity.h"
21-
#include "Common/DataModel/Centrality.h"
16+
#include "Common/DataModel/PIDResponse.h"
2217
#include "Common/DataModel/Qvectors.h"
18+
#include "Common/DataModel/TrackSelectionTables.h"
19+
20+
#include "Framework/AnalysisDataModel.h"
21+
22+
#include <string>
23+
#include <unordered_map>
24+
#include <vector>
2325

2426
#ifndef PWGEM_DILEPTON_DATAMODEL_DILEPTONTABLES_H_
2527
#define PWGEM_DILEPTON_DATAMODEL_DILEPTONTABLES_H_
@@ -641,6 +643,32 @@ DECLARE_SOA_TABLE(EMGlobalMuonSelfIds, "AOD", "EMGLMUSELFID", emprimarymuon::Glo
641643
// iterators
642644
using EMGlobalMuonSelfId = EMGlobalMuonSelfIds::iterator;
643645

646+
DECLARE_SOA_TABLE_VERSIONED(EMPrimaryTracks_000, "AOD", "EMPRIMARYTRACK", 0, //!
647+
o2::soa::Index<>, emprimaryelectron::CollisionId,
648+
emprimaryelectron::TrackId, emprimaryelectron::Sign,
649+
track::Pt, track::Eta, track::Phi, track::DcaXY, track::DcaZ,
650+
track::TPCNClsFindable, track::TPCNClsFindableMinusFound, track::TPCNClsFindableMinusCrossedRows, track::TPCNClsShared,
651+
track::TPCChi2NCl, track::TPCInnerParam, track::TPCSignal,
652+
track::ITSClusterSizes, track::ITSChi2NCl, track::DetectorMap,
653+
654+
// dynamic column
655+
track::TPCNClsFound<track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
656+
track::TPCNClsCrossedRows<track::TPCNClsFindable, track::TPCNClsFindableMinusCrossedRows>,
657+
track::TPCCrossedRowsOverFindableCls<track::TPCNClsFindable, track::TPCNClsFindableMinusCrossedRows>,
658+
track::TPCFoundOverFindableCls<track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
659+
track::TPCFractionSharedCls<track::TPCNClsShared, track::TPCNClsFindable, track::TPCNClsFindableMinusFound>,
660+
track::v001::ITSClusterMap<track::ITSClusterSizes>, track::v001::ITSNCls<track::ITSClusterSizes>, track::v001::ITSNClsInnerBarrel<track::ITSClusterSizes>,
661+
track::HasITS<track::DetectorMap>, track::HasTPC<track::DetectorMap>, track::HasTRD<track::DetectorMap>, track::HasTOF<track::DetectorMap>,
662+
emprimaryelectron::Signed1Pt<track::Pt, emprimaryelectron::Sign>,
663+
emprimaryelectron::P<track::Pt, track::Eta>,
664+
emprimaryelectron::Px<track::Pt, track::Phi>,
665+
emprimaryelectron::Py<track::Pt, track::Phi>,
666+
emprimaryelectron::Pz<track::Pt, track::Eta>);
667+
668+
using EMPrimaryTracks = EMPrimaryTracks_000;
669+
// iterators
670+
using EMPrimaryTrack = EMPrimaryTracks::iterator;
671+
644672
// Dummy data for MC
645673
namespace emdummydata
646674
{

PWGEM/Dilepton/DataModel/lmeeMLTables.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ DECLARE_SOA_DYNAMIC_COLUMN(MeanClusterSizeITSob, meanClusterSizeITSob, [](uint32
8585
} // namespace emprimarytrack
8686

8787
// reconstructed track information
88-
DECLARE_SOA_TABLE(EMPrimaryTracks, "AOD", "EMPTRACK", //!
88+
DECLARE_SOA_TABLE(EMMLPrimaryTracks, "AOD", "EMMLPTRACK", //!
8989
o2::soa::Index<>, collision::NumContrib, evsel::NumTracksInTimeRange, evsel::SumAmpFT0CInTimeRange,
9090
track::Pt, track::Eta, track::Phi, track::Tgl, emprimarytrack::Sign,
9191
track::DcaXY, track::DcaZ, track::CYY, track::CZZ, track::CZY,
@@ -101,7 +101,7 @@ DECLARE_SOA_TABLE(EMPrimaryTracks, "AOD", "EMPTRACK", //!
101101
emprimarytrack::MeanClusterSizeITSob<track::ITSClusterSizes>);
102102

103103
// iterators
104-
using EMPrimaryTrack = EMPrimaryTracks::iterator;
104+
using EMMLPrimaryTrack = EMMLPrimaryTracks::iterator;
105105

106106
} // namespace o2::aod
107107

PWGEM/Dilepton/TableProducer/CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ o2physics_add_dpl_workflow(skimmer-primary-muon
3030
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2::GlobalTracking
3131
COMPONENT_NAME Analysis)
3232

33+
o2physics_add_dpl_workflow(skimmer-primary-track
34+
SOURCES skimmerPrimaryTrack.cxx
35+
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore
36+
COMPONENT_NAME Analysis)
37+
3338
o2physics_add_dpl_workflow(skimmer-secondary-electron
3439
SOURCES skimmerSecondaryElectron.cxx
3540
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore

PWGEM/Dilepton/TableProducer/filterEoI.cxx

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,13 @@
1414
// This code filters events that are interesting for dilepton analyses.
1515
// Please write to: daiki.sekihata@cern.ch
1616

17-
#include "Framework/runDataProcessing.h"
18-
#include "Framework/AnalysisTask.h"
19-
#include "Framework/AnalysisDataModel.h"
20-
#include "Framework/ASoAHelpers.h"
2117
#include "PWGEM/Dilepton/DataModel/dileptonTables.h"
2218

19+
#include "Framework/ASoAHelpers.h"
20+
#include "Framework/AnalysisDataModel.h"
21+
#include "Framework/AnalysisTask.h"
22+
#include "Framework/runDataProcessing.h"
23+
2324
using namespace o2;
2425
using namespace o2::framework;
2526
using namespace o2::framework::expressions;
@@ -31,6 +32,8 @@ struct filterEoI {
3132
kFwdMuon = 0x2,
3233
};
3334
Produces<o2::aod::EMEoIs> emeoi;
35+
Configurable<int> minNElectrons{"minNElectrons", 1, "min number of e+ and e- at midrapidity"};
36+
Configurable<int> minNMuons{"minNMuons", 1, "min number of mu+ and mu- at forward rapidity"};
3437

3538
HistogramRegistry fRegistry{"output"};
3639
void init(o2::framework::InitContext&)
@@ -57,14 +60,14 @@ struct filterEoI {
5760

5861
if constexpr (static_cast<bool>(system & kElectron)) {
5962
auto electrons_coll = electrons.sliceBy(perCollision_el, collision.globalIndex());
60-
if (electrons_coll.size() > 0) {
63+
if (electrons_coll.size() >= minNElectrons) {
6164
does_electron_exist = true;
6265
fRegistry.fill(HIST("hEventCounter"), 2);
6366
}
6467
}
6568
if constexpr (static_cast<bool>(system & kFwdMuon)) {
6669
auto muons_coll = muons.sliceBy(perCollision_mu, collision.globalIndex());
67-
if (muons_coll.size() > 0) {
70+
if (muons_coll.size() >= minNMuons) {
6871
does_fwdmuon_exist = true;
6972
fRegistry.fill(HIST("hEventCounter"), 3);
7073
}

PWGEM/Dilepton/TableProducer/skimmerPrimaryElectron.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ using MyTrackMC = MyTracksMC::iterator;
5959

6060
struct skimmerPrimaryElectron {
6161
SliceCache cache;
62-
Preslice<aod::Tracks> perCol = o2::aod::track::collisionId;
62+
Preslice<aod::TracksIU> perCol = o2::aod::track::collisionId;
6363
Produces<aod::EMPrimaryElectrons> emprimaryelectrons;
6464
Produces<aod::EMPrimaryElectronsCov> emprimaryelectronscov;
6565

0 commit comments

Comments
 (0)