Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 22 additions & 16 deletions PWGEM/Dilepton/DataModel/dileptonTables.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.

Check failure on line 1 in PWGEM/Dilepton/DataModel/dileptonTables.h

View workflow job for this annotation

GitHub Actions / O2 linter

[doc/file]

Provide mandatory file documentation.
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
// All rights not expressly granted are reserved.
//
Expand All @@ -8,7 +8,7 @@
// In applying this license CERN does not waive the privileges and immunities
// granted to it by virtue of its status as an Intergovernmental Organization
// or submit itself to any jurisdiction.

Check failure on line 11 in PWGEM/Dilepton/DataModel/dileptonTables.h

View workflow job for this annotation

GitHub Actions / O2 linter

[doc/file]

Documentation for \author is missing, incorrect or misplaced.

Check failure on line 11 in PWGEM/Dilepton/DataModel/dileptonTables.h

View workflow job for this annotation

GitHub Actions / O2 linter

[doc/file]

Documentation for \brief is missing, incorrect or misplaced.

Check failure on line 11 in PWGEM/Dilepton/DataModel/dileptonTables.h

View workflow job for this annotation

GitHub Actions / O2 linter

[doc/file]

Documentation for \file is missing, incorrect or misplaced.
#include "Common/Core/RecoDecay.h"
#include "Common/DataModel/Centrality.h"
#include "Common/DataModel/EventSelection.h"
Expand Down Expand Up @@ -410,10 +410,10 @@
DECLARE_SOA_DYNAMIC_COLUMN(Px, px, [](float pt, float phi) -> float { return pt * std::cos(phi); });
DECLARE_SOA_DYNAMIC_COLUMN(Py, py, [](float pt, float phi) -> float { return pt * std::sin(phi); });
DECLARE_SOA_DYNAMIC_COLUMN(Pz, pz, [](float pt, float eta) -> float { return pt * std::sinh(eta); });
DECLARE_SOA_DYNAMIC_COLUMN(Theta, theta, [](float tgl) -> float { return M_PI_2 - std::atan(tgl); });

Check failure on line 413 in PWGEM/Dilepton/DataModel/dileptonTables.h

View workflow job for this annotation

GitHub Actions / O2 linter

[external-pi]

Use the PI constant (and its multiples and fractions) defined in o2::constants::math.
DECLARE_SOA_DYNAMIC_COLUMN(MeanClusterSizeITS, meanClusterSizeITS, [](uint32_t itsClusterSizes) -> float {
int total_cluster_size = 0, nl = 0;
for (unsigned int layer = 0; layer < 7; layer++) {

Check failure on line 416 in PWGEM/Dilepton/DataModel/dileptonTables.h

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.
int cluster_size_per_layer = (itsClusterSizes >> (layer * 4)) & 0xf;
if (cluster_size_per_layer > 0) {
nl++;
Expand All @@ -428,7 +428,7 @@
});
DECLARE_SOA_DYNAMIC_COLUMN(MeanClusterSizeITSib, meanClusterSizeITSib, [](uint32_t itsClusterSizes) -> float {
int total_cluster_size = 0, nl = 0;
for (unsigned int layer = 0; layer < 3; layer++) {

Check failure on line 431 in PWGEM/Dilepton/DataModel/dileptonTables.h

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.
int cluster_size_per_layer = (itsClusterSizes >> (layer * 4)) & 0xf;
if (cluster_size_per_layer > 0) {
nl++;
Expand All @@ -443,7 +443,7 @@
});
DECLARE_SOA_DYNAMIC_COLUMN(MeanClusterSizeITSob, meanClusterSizeITSob, [](uint32_t itsClusterSizes) -> float {
int total_cluster_size = 0, nl = 0;
for (unsigned int layer = 3; layer < 7; layer++) {

Check failure on line 446 in PWGEM/Dilepton/DataModel/dileptonTables.h

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.
int cluster_size_per_layer = (itsClusterSizes >> (layer * 4)) & 0xf;
if (cluster_size_per_layer > 0) {
nl++;
Expand Down Expand Up @@ -615,7 +615,7 @@
DECLARE_SOA_DYNAMIC_COLUMN(NClustersMFT, nClustersMFT, //! Number of MFT clusters
[](uint64_t mftClusterSizesAndTrackFlags) -> uint8_t {
uint8_t nClusters = 0;
for (int layer = 0; layer < 10; layer++) {

Check failure on line 618 in PWGEM/Dilepton/DataModel/dileptonTables.h

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.
if ((mftClusterSizesAndTrackFlags >> (layer * 6)) & 0x3F) {
nClusters++;
}
Expand All @@ -625,7 +625,7 @@
DECLARE_SOA_DYNAMIC_COLUMN(MFTClusterMap, mftClusterMap, //! MFT cluster map, one bit per a layer, starting from the innermost
[](uint64_t mftClusterSizesAndTrackFlags) -> uint16_t {
uint16_t clmap = 0;
for (unsigned int layer = 0; layer < 10; layer++) {

Check failure on line 628 in PWGEM/Dilepton/DataModel/dileptonTables.h

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.
if ((mftClusterSizesAndTrackFlags >> (layer * 6)) & 0x3f) {
clmap |= (1 << layer);
}
Expand Down Expand Up @@ -693,19 +693,20 @@
DECLARE_SOA_INDEX_COLUMN(EMEvent, emevent); //!
DECLARE_SOA_COLUMN(CollisionId, collisionId, int); //!
DECLARE_SOA_COLUMN(TrackId, trackId, int); //!
DECLARE_SOA_COLUMN(Sign, sign, int8_t); //!
DECLARE_SOA_COLUMN(TrackBit, trackBit, uint16_t); //!
DECLARE_SOA_DYNAMIC_COLUMN(Signed1Pt, signed1Pt, [](float pt, int8_t sign) -> float { return sign * 1. / pt; });
DECLARE_SOA_DYNAMIC_COLUMN(P, p, [](float pt, float eta) -> float { return pt * std::cosh(eta); });
DECLARE_SOA_DYNAMIC_COLUMN(Px, px, [](float pt, float phi) -> float { return pt * std::cos(phi); });
DECLARE_SOA_DYNAMIC_COLUMN(Py, py, [](float pt, float phi) -> float { return pt * std::sin(phi); });
DECLARE_SOA_DYNAMIC_COLUMN(Pz, pz, [](float pt, float eta) -> float { return pt * std::sinh(eta); });
// DECLARE_SOA_COLUMN(Sign, sign, int8_t); //!
DECLARE_SOA_COLUMN(TrackBit, trackBit, uint16_t); //!
DECLARE_SOA_COLUMN(PtUINT16, ptuint16, uint16_t); //!
DECLARE_SOA_DYNAMIC_COLUMN(Pt, pt, [](uint16_t ptuint16) -> float { return static_cast<float>(ptuint16) * 1e-4; });
// DECLARE_SOA_DYNAMIC_COLUMN(Signed1Pt, signed1Pt, [](float pt, int8_t sign) -> float { return sign * 1. / pt; });
// DECLARE_SOA_DYNAMIC_COLUMN(P, p, [](float pt, float eta) -> float { return pt * std::cosh(eta); });
// DECLARE_SOA_DYNAMIC_COLUMN(Px, px, [](float pt, float phi) -> float { return pt * std::cos(phi); });
// DECLARE_SOA_DYNAMIC_COLUMN(Py, py, [](float pt, float phi) -> float { return pt * std::sin(phi); });
// DECLARE_SOA_DYNAMIC_COLUMN(Pz, pz, [](float pt, float eta) -> float { return pt * std::sinh(eta); });
} // namespace emprimarytrack

DECLARE_SOA_TABLE_VERSIONED(EMPrimaryTracks_000, "AOD", "EMPRIMARYTRACK", 0, //!
o2::soa::Index<>, emprimarytrack::CollisionId,
emprimarytrack::TrackId, emprimarytrack::Sign,
track::Pt, track::Eta, track::Phi, track::DcaXY, track::DcaZ, emprimarytrack::TrackBit,
DECLARE_SOA_TABLE_VERSIONED(EMPrimaryTracks_000, "AOD", "EMPRIMARYTRACK", 0, //!
o2::soa::Index<>, emprimarytrack::CollisionId, emprimarytrack::TrackId, /* emprimarytrack::Sign,*/
emprimarytrack::PtUINT16, track::Eta, track::Phi, track::DcaXY, track::DcaZ, emprimarytrack::TrackBit,

// track::TPCNClsFindable, track::TPCNClsFindableMinusFound, track::TPCNClsFindableMinusCrossedRows, track::TPCNClsShared, track::TPCChi2NCl,
// track::ITSClusterSizes, track::ITSChi2NCl, track::DetectorMap,
Expand All @@ -719,11 +720,12 @@
// track::v001::ITSClusterMap<track::ITSClusterSizes>, track::v001::ITSNCls<track::ITSClusterSizes>, track::v001::ITSNClsInnerBarrel<track::ITSClusterSizes>,

// track::HasITS<track::DetectorMap>, track::HasTPC<track::DetectorMap>, track::HasTRD<track::DetectorMap>, track::HasTOF<track::DetectorMap>,
emprimarytrack::Signed1Pt<track::Pt, emprimarytrack::Sign>,
emprimarytrack::P<track::Pt, track::Eta>,
emprimarytrack::Px<track::Pt, track::Phi>,
emprimarytrack::Py<track::Pt, track::Phi>,
emprimarytrack::Pz<track::Pt, track::Eta>);
// emprimarytrack::Signed1Pt<track::Pt, emprimarytrack::Sign>,
// emprimarytrack::P<track::Pt, track::Eta>,
// emprimarytrack::Px<track::Pt, track::Phi>,
// emprimarytrack::Py<track::Pt, track::Phi>,
// emprimarytrack::Pz<track::Pt, track::Eta>
emprimarytrack::Pt<emprimarytrack::PtUINT16>);

using EMPrimaryTracks = EMPrimaryTracks_000;
// iterators
Expand All @@ -733,6 +735,10 @@
// iterators
using EMPrimaryTrackEMEventId = EMPrimaryTrackEMEventIds::iterator;

// DECLARE_SOA_TABLE(EMPrimaryTrackEMEventIdsTMP, "AOD", "PRMTRKEVIDTMP", track::CollisionId); // To be joined with EMPrimaryTracks in associateDileptonToEMEvent
// // iterators
// using EMPrimaryTrackEMEventIdTMP = EMPrimaryTrackEMEventIdsTMP::iterator;

// Dummy data for MC
namespace emdummydata
{
Expand Down
2 changes: 1 addition & 1 deletion PWGEM/Dilepton/TableProducer/createEMEventDilepton.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,7 @@ struct AssociateDileptonToEMEvent {
Preslice<aod::V0PhotonsKF> perCollision_pcm = aod::v0photonkf::collisionId;
PresliceUnsorted<aod::EMPrimaryElectrons> perCollision_el = aod::emprimaryelectron::collisionId;
PresliceUnsorted<aod::EMPrimaryMuons> perCollision_mu = aod::emprimarymuon::collisionId;
PresliceUnsorted<aod::EMPrimaryTracks> perCollision_track = aod::emprimarytrack::collisionId;
Preslice<aod::EMPrimaryTracks> perCollision_track = aod::emprimarytrack::collisionId;

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

Expand Down
18 changes: 11 additions & 7 deletions PWGEM/Dilepton/TableProducer/skimmerPrimaryTrack.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
/// \author daiki.sekihata@cern.ch

#include "PWGEM/Dilepton/DataModel/dileptonTables.h"
// #include "PWGEM/Dilepton/Utils/PairUtilities.h"
#include "PWGEM/Dilepton/Utils/EMTrackUtilities.h"

#include "Common/Core/TableHelper.h"
Expand Down Expand Up @@ -59,6 +58,7 @@ struct skimmerPrimaryTrack {
SliceCache cache;
Preslice<aod::TracksIU> perCol = o2::aod::track::collisionId;
Produces<aod::EMPrimaryTracks> emprimarytracks;
// Produces<aod::EMPrimaryTrackEMEventIdsTMP> prmtrackeventidtmp;

// Configurables
Configurable<std::string> ccdburl{"ccdb-url", "http://alice-ccdb.cern.ch", "url of the ccdb repository"};
Expand All @@ -72,11 +72,11 @@ struct skimmerPrimaryTrack {
Configurable<bool> fillQAHistogram{"fillQAHistogram", false, "flag to fill QA histograms"};
Configurable<float> d_bz_input{"d_bz_input", -999, "bz field in kG, -999 is automatic"};

Configurable<float> minpt{"minpt", 0.15, "min pt for ITS-TPC track"};
Configurable<float> maxpt{"maxpt", 5.0, "max pt for ITS-TPC track"};
Configurable<float> maxeta{"maxeta", 2.0, "eta acceptance"};
Configurable<float> dca_xy_max{"dca_xy_max", 1.0, "max DCAxy in cm"};
Configurable<float> dca_z_max{"dca_z_max", 1.0, "max DCAz in cm"};
Configurable<float> minpt{"minpt", 0.2, "min pt for ITS-TPC track"};
Configurable<float> maxpt{"maxpt", 3.0, "max pt for ITS-TPC track"};
Configurable<float> maxeta{"maxeta", 1.4, "eta acceptance"};
Configurable<float> dca_xy_max{"dca_xy_max", 0.5, "max DCAxy in cm"};
Configurable<float> dca_z_max{"dca_z_max", 0.5, "max DCAz in cm"};

// Configurable<int> min_ncluster_tpc{"min_ncluster_tpc", 0, "min ncluster tpc"};
// Configurable<int> mincrossedrows{"mincrossedrows", 70, "min. crossed rows"};
Expand Down Expand Up @@ -246,6 +246,9 @@ struct skimmerPrimaryTrack {
if (std::fabs(trackParCov.getEta()) > maxeta || trackParCov.getPt() < minpt || maxpt < trackParCov.getPt()) {
return false;
}
if (trackParCov.getPt() > 5.f) {
return false;
}

return true;
}
Expand Down Expand Up @@ -311,7 +314,8 @@ struct skimmerPrimaryTrack {
trackBit |= static_cast<uint16_t>(RefTrackBit::kFracSharedTPC07);
}

emprimarytracks(collision.globalIndex(), track.globalIndex(), track.sign(), pt, eta, phi, dcaXY, dcaZ, trackBit);
emprimarytracks(collision.globalIndex(), track.globalIndex(), /*track.sign(),*/ static_cast<uint16_t>(pt * 1e+4), eta, phi, dcaXY, dcaZ, trackBit);
// prmtrackeventidtmp(collision.globalIndex());

stored_trackIds.emplace_back(std::pair<int, int>{collision.globalIndex(), track.globalIndex()});

Expand Down
13 changes: 7 additions & 6 deletions PWGEM/PhotonMeson/TableProducer/createEMEventPhoton.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -341,7 +341,7 @@ struct AssociatePhotonToEMEvent {
PresliceUnsorted<aod::EMPrimaryElectronsFromDalitz> perCollisionEl = aod::emprimaryelectron::collisionId;
Preslice<aod::PHOSClusters> perCollisionPHOS = aod::skimmedcluster::collisionId;
Preslice<aod::SkimEMCClusters> perCollisionEMC = aod::skimmedcluster::collisionId;
PresliceUnsorted<aod::EMPrimaryTracks> perCollisionTrack = aod::emprimarytrack::collisionId;
Preslice<aod::EMPrimaryTracks> perCollision_track = aod::emprimarytrack::collisionId;

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

Expand Down Expand Up @@ -370,11 +370,6 @@ struct AssociatePhotonToEMEvent {
fillEventId(collisions, tracks, prmeleventid, perCollisionEl);
}

void processChargedTrack(aod::EMEvents const& collisions, aod::EMPrimaryTracks const& tracks)
{
fillEventId(collisions, tracks, prmtrackeventid, perCollisionTrack);
}

void processPHOS(aod::EMEvents const& collisions, aod::PHOSClusters const& photons)
{
fillEventId(collisions, photons, phoseventid, perCollisionPHOS);
Expand All @@ -385,12 +380,18 @@ struct AssociatePhotonToEMEvent {
fillEventId(collisions, photons, emceventid, perCollisionEMC);
}

void processChargedTrack(aod::EMEvents const& collisions, aod::EMPrimaryTracks const& tracks)
{
fillEventId(collisions, tracks, prmtrackeventid, perCollision_track);
}

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

PROCESS_SWITCH(AssociatePhotonToEMEvent, processPCM, "process pcm-event indexing", false);
PROCESS_SWITCH(AssociatePhotonToEMEvent, processElectronFromDalitz, "process dalitzee-event indexing", false);
PROCESS_SWITCH(AssociatePhotonToEMEvent, processPHOS, "process phos-event indexing", false);
PROCESS_SWITCH(AssociatePhotonToEMEvent, processEMC, "process emc-event indexing", false);
PROCESS_SWITCH(AssociatePhotonToEMEvent, processChargedTrack, "process indexing for charged tracks", false);
PROCESS_SWITCH(AssociatePhotonToEMEvent, processDummy, "process dummy", true);
};
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
Expand Down
Loading