Skip to content
Merged
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
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/PhotonMeson/TableProducer/skimmerPrimaryElectronFromDalitzEE.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-task]

Specify task name only when it cannot be derived from the struct name. Only append to the default name.
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
// All rights not expressly granted are reserved.
//
Expand Down Expand Up @@ -32,13 +32,16 @@
#include <Framework/AnalysisDataModel.h>
#include <Framework/AnalysisHelpers.h>
#include <Framework/AnalysisTask.h>
#include <Framework/Concepts.h>
#include <Framework/Configurable.h>
#include <Framework/DataTypes.h>
#include <Framework/HistogramRegistry.h>
#include <Framework/HistogramSpec.h>
#include <Framework/InitContext.h>
#include <Framework/OutputObjHeader.h>
#include <Framework/runDataProcessing.h>
#include <PID/PIDTOFParamService.h>
#include <ReconstructionDataFormats/DCA.h>
#include <ReconstructionDataFormats/PID.h>

#include <Math/Vector4D.h> // IWYU pragma: keep (do not replace with Math/Vector4Dfwd.h)
#include <Math/Vector4Dfwd.h>
Expand Down Expand Up @@ -76,7 +79,7 @@
namespace pwgem::pm::recalculatedtofpid
{
DECLARE_SOA_COLUMN(BetaRecalculated, betaRecalculated, float);
DECLARE_SOA_COLUMN(TOFNSigmaElRecalculated, tofNSigmaElRecalculated, float);

Check failure on line 82 in PWGEM/PhotonMeson/TableProducer/skimmerPrimaryElectronFromDalitzEE.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.
} // namespace pwgem::pm::recalculatedtofpid

DECLARE_SOA_TABLE(EMTOFNSigmas, "AOD", "EMTOFNSIGMA", // make std::map in your tasks later. // Don't store this table in the derived data.
Expand All @@ -94,7 +97,7 @@
Preslice<aod::TrackAssoc> trackIndicesPerCollision = aod::track_association::collisionId;
Produces<aod::EMPrimaryElectronsFromDalitz> emprimaryelectrons;
Produces<aod::EMPrimaryElectronsDeDxMC> emprimaryelectronsDeDxMC;
Service<o2::pid::tof::TOFResponse> mTOFResponse;
Service<o2::pid::tof::TOFResponse> mTOFResponse{};

Produces<aod::EMTOFNSigmas> emtofs;

Expand Down Expand Up @@ -216,11 +219,11 @@
fRegistry.add("Pair/uls/hMCutMvsPt", "m_{ee} vs. p_{T,ee};m_{ee} (GeV/c^{2});p_{T,ee} (GeV/c)", kTH2F, {{100, 0, 0.1}, {200, 0, 2}}, false);
fRegistry.add("Pair/uls/hMPhiCutMvsPt", "m_{ee} vs. p_{T,ee};m_{ee} (GeV/c^{2});p_{T,ee} (GeV/c)", kTH2F, {{100, 0, 0.1}, {200, 0, 2}}, false);

fRegistry.add("Pair/uls/hTrackMvsPhiV", "m_{ee} vs. #varphi_{V};#varphi_{V} (rad.);m_{ee} (GeV/c^{2})", kTH2F, {{180, 0, M_PI}, {100, 0, 0.1}}, false);
fRegistry.add("Pair/uls/hCheckEMvsPhiV", "m_{ee} vs. #varphi_{V};#varphi_{V} (rad.);m_{ee} (GeV/c^{2})", kTH2F, {{180, 0, M_PI}, {100, 0, 0.1}}, false);
fRegistry.add("Pair/uls/hMvsPhiV", "m_{ee} vs. #varphi_{V};#varphi_{V} (rad.);m_{ee} (GeV/c^{2})", kTH2F, {{180, 0, M_PI}, {100, 0, 0.1}}, false);
fRegistry.add("Pair/uls/hMCutMvsPhiV", "m_{ee} vs. #varphi_{V};#varphi_{V} (rad.);m_{ee} (GeV/c^{2})", kTH2F, {{180, 0, M_PI}, {100, 0, 0.1}}, false);
fRegistry.add("Pair/uls/hMPhiCutMvsPhiV", "m_{ee} vs. #varphi_{V};#varphi_{V} (rad.);m_{ee} (GeV/c^{2})", kTH2F, {{180, 0, M_PI}, {100, 0, 0.1}}, false);
fRegistry.add("Pair/uls/hTrackMvsPhiV", "m_{ee} vs. #varphi_{V};#varphi_{V} (rad.);m_{ee} (GeV/c^{2})", kTH2F, {{180, 0, o2::constants::math::PI}, {100, 0, 0.1}}, false);
fRegistry.add("Pair/uls/hCheckEMvsPhiV", "m_{ee} vs. #varphi_{V};#varphi_{V} (rad.);m_{ee} (GeV/c^{2})", kTH2F, {{180, 0, o2::constants::math::PI}, {100, 0, 0.1}}, false);
fRegistry.add("Pair/uls/hMvsPhiV", "m_{ee} vs. #varphi_{V};#varphi_{V} (rad.);m_{ee} (GeV/c^{2})", kTH2F, {{180, 0, o2::constants::math::PI}, {100, 0, 0.1}}, false);
fRegistry.add("Pair/uls/hMCutMvsPhiV", "m_{ee} vs. #varphi_{V};#varphi_{V} (rad.);m_{ee} (GeV/c^{2})", kTH2F, {{180, 0, o2::constants::math::PI}, {100, 0, 0.1}}, false);
fRegistry.add("Pair/uls/hMPhiCutMvsPhiV", "m_{ee} vs. #varphi_{V};#varphi_{V} (rad.);m_{ee} (GeV/c^{2})", kTH2F, {{180, 0, o2::constants::math::PI}, {100, 0, 0.1}}, false);

fRegistry.addClone("Pair/uls/", "Pair/lspp/");
fRegistry.addClone("Pair/uls/", "Pair/lsmm/");
Expand Down Expand Up @@ -288,7 +291,7 @@
if (track.hasTOF() && track.has_collision()) { // TTCA may use orphan tracks.
auto bcTrack = track.template collision_as<TCollisions>().template bc_as<TBCs>();
float tofNSigmaEl = mTOFResponse->nSigma<o2::track::PID::Electron>(track.tofSignalInAnotherBC(bcTrack.globalBC(), bcCollision.globalBC()), track.tofExpMom(), track.length(), track.p(), track.eta(), mapCollisionTime[collision.globalIndex()], mapCollisionTimeError[collision.globalIndex()]);
float beta = track.length() / (track.tofSignalInAnotherBC(bcTrack.globalBC(), bcCollision.globalBC()) - mapCollisionTime[collision.globalIndex()]) / (TMath::C() * 1e+2 * 1e-12);
float beta = track.length() / (track.tofSignalInAnotherBC(bcTrack.globalBC(), bcCollision.globalBC()) - mapCollisionTime[collision.globalIndex()]) / (o2::constants::physics::LightSpeedCm2S * 1e-12);
mapTOFNsigmaReassociated[std::make_pair(collision.globalIndex(), track.globalIndex())] = tofNSigmaEl;
mapTOFBetaReassociated[std::make_pair(collision.globalIndex(), track.globalIndex())] = beta;
emtofs(collision.globalIndex(), track.globalIndex(), mapTOFBetaReassociated[std::make_pair(collision.globalIndex(), track.globalIndex())], mapTOFNsigmaReassociated[std::make_pair(collision.globalIndex(), track.globalIndex())]);
Expand Down Expand Up @@ -351,7 +354,7 @@
}
if (storeOnlyTrueElectronMC) {
const auto& mcParticle = track.template mcParticle_as<aod::McParticles>();
if (std::abs(mcParticle.pdgCode()) != 11) {

Check failure on line 357 in PWGEM/PhotonMeson/TableProducer/skimmerPrimaryElectronFromDalitzEE.cxx

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.

Check failure on line 357 in PWGEM/PhotonMeson/TableProducer/skimmerPrimaryElectronFromDalitzEE.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[pdg/explicit-code]

Avoid hard-coded PDG codes. Use named values from PDG_t or o2::constants::physics::Pdg instead.
return false;
}
}
Expand All @@ -377,7 +380,7 @@
return false;
}

if (!includeITSsa && (!track.hasITS() || !track.hasTPC())) {
if (!includeITSsa && !track.hasTPC()) {
return false;
}

Expand Down Expand Up @@ -437,7 +440,7 @@
}

int total_cluster_size = 0, nl = 0;
for (unsigned int layer = 0; layer < 7; layer++) {

Check failure on line 443 in PWGEM/PhotonMeson/TableProducer/skimmerPrimaryElectronFromDalitzEE.cxx

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 = track.itsClsSizeInLayer(layer);
if (cluster_size_per_layer > 0) {
nl++;
Expand Down Expand Up @@ -465,7 +468,7 @@
{
if (includeITSsa && (track.hasITS() && !track.hasTPC() && !track.hasTRD() && !track.hasTOF())) [[unlikely]] {
int total_cluster_size = 0, nl = 0;
for (unsigned int layer = 0; layer < 7; layer++) {

Check failure on line 471 in PWGEM/PhotonMeson/TableProducer/skimmerPrimaryElectronFromDalitzEE.cxx

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 = track.itsClsSizeInLayer(layer);
if (cluster_size_per_layer > 0) {
nl++;
Expand Down Expand Up @@ -591,7 +594,7 @@
}
} // end of ULS pairing
} else { // LS
for (auto& [t1, t2] : combinations(CombinationsStrictlyUpperIndexPolicy(tracks1, tracks2))) {

Check failure on line 597 in PWGEM/PhotonMeson/TableProducer/skimmerPrimaryElectronFromDalitzEE.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
if (!checkTrack<isMC>(collision, t1) || !checkTrack<isMC>(collision, t2)) {
continue;
}
Expand Down Expand Up @@ -698,7 +701,6 @@
std::vector<int> acceptedPosTrackIds_per_collision;
std::vector<int> acceptedNegTrackIds_per_collision;
std::vector<int> acceptedTrackIds_per_collision;
std::vector<std::pair<int, int>> stored_trackIds;
// Filter trackFilter = minpt < o2::aod::track::pt && nabs(o2::aod::track::eta) < maxeta && o2::aod::track::itsChi2NCl < maxchi2its && ncheckbit(aod::track::v001::detectorMap, (uint8_t)o2::aod::track::ITS) == true && nabs(o2::aod::track::dcaXY) < dca_xy_max && nabs(o2::aod::track::dcaZ) < dca_z_max;
// Filter trackFilter
// using MyFilteredTracks = soa::Filtered<MyTracks>;
Expand All @@ -718,11 +720,8 @@
mTOFResponse->processSetup(bcs.iteratorAt(0));

for (const auto& track : tracks) {
if (mapCollisionTime.find(track.collisionId()) == mapCollisionTime.end()) {
// LOGF(info, "track.collisionId() = %d, track.tofEvTime() = %f, track.tofEvTimeErr() = %f", track.collisionId(), track.tofEvTime(), track.tofEvTimeErr());
mapCollisionTime[track.collisionId()] = track.tofEvTime();
mapCollisionTimeError[track.collisionId()] = track.tofEvTimeErr();
}
mapCollisionTime.try_emplace(track.collisionId(), track.tofEvTime());
mapCollisionTimeError.try_emplace(track.collisionId(), track.tofEvTimeErr());
}
calculateTOFNSigmaWithReassociation<true>(collisions, bcs, tracks, trackIndices);

Expand All @@ -747,7 +746,7 @@
fillPairInfo<false, 2>(collision, negTracks_per_coll, negTracks_per_coll); // LS--
}

if ((v0photons_per_coll.size() >= 1 && !acceptedPosTrackIds_per_collision.empty() && !acceptedNegTrackIds_per_collision.empty()) || (acceptedPosTrackIds_per_collision.size() >= 2 && acceptedNegTrackIds_per_collision.size() >= 2)) {

Check failure on line 749 in PWGEM/PhotonMeson/TableProducer/skimmerPrimaryElectronFromDalitzEE.cxx

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.
for (const auto& posId : acceptedPosTrackIds_per_collision) {
const auto& pos = tracks.rawIteratorAt(posId);
fillTrackTable<false>(collision, pos);
Expand All @@ -772,11 +771,8 @@

// mTOFResponse->processSetup(bcs.iteratorAt(0));
// for (const auto& track : tracks) {
// if (mapCollisionTime.find(track.collisionId()) == mapCollisionTime.end()) {
// // LOGF(info, "track.collisionId() = %d, track.tofEvTime() = %f, track.tofEvTimeErr() = %f", track.collisionId(), track.tofEvTime(), track.tofEvTimeErr());
// mapCollisionTime[track.collisionId()] = track.tofEvTime();
// mapCollisionTimeError[track.collisionId()] = track.tofEvTimeErr();
// }
// mapCollisionTime.try_emplace(track.collisionId(), track.tofEvTime());
// mapCollisionTimeError.try_emplace(track.collisionId(), track.tofEvTimeErr());
// }
// calculateTOFNSigmaWithReassociation<true>(collisions, bcs, tracks, trackIndices);

Expand Down Expand Up @@ -840,11 +836,8 @@

mTOFResponse->processSetup(bcs.iteratorAt(0));
for (const auto& track : tracks) {
if (mapCollisionTime.find(track.collisionId()) == mapCollisionTime.end()) {
// LOGF(info, "track.collisionId() = %d, track.tofEvTime() = %f, track.tofEvTimeErr() = %f", track.collisionId(), track.tofEvTime(), track.tofEvTimeErr());
mapCollisionTime[track.collisionId()] = track.tofEvTime();
mapCollisionTimeError[track.collisionId()] = track.tofEvTimeErr();
}
mapCollisionTime.try_emplace(track.collisionId(), track.tofEvTime());
mapCollisionTimeError.try_emplace(track.collisionId(), track.tofEvTimeErr());
}
calculateTOFNSigmaWithReassociation<true>(collisions, bcs, tracks, trackIndices);

Expand Down Expand Up @@ -876,7 +869,7 @@
fillPairInfo<true, 1>(collision, posTracks_per_coll, posTracks_per_coll); // LS++
fillPairInfo<true, 2>(collision, negTracks_per_coll, negTracks_per_coll); // LS--
}
if ((acceptedPosTrackIds_per_collision.empty() && acceptedNegTrackIds_per_collision.empty()) || (acceptedPosTrackIds_per_collision.size() >= 2 && acceptedNegTrackIds_per_collision.size() >= 2)) { // v0photons_per_coll.size() >= 1 &&

Check failure on line 872 in PWGEM/PhotonMeson/TableProducer/skimmerPrimaryElectronFromDalitzEE.cxx

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.
for (const auto& posId : acceptedPosTrackIds_per_collision) {
const auto& pos = tracks.rawIteratorAt(posId);
fillTrackTable<true>(collision, pos);
Expand Down Expand Up @@ -911,5 +904,5 @@
o2::pid::tof::TOFResponseImpl::metadataInfo.initMetadata(context);

return WorkflowSpec{
adaptAnalysisTask<skimmerPrimaryElectronFromDalitzEE>(context, TaskName{"skimmer-primary-electron-from-dalitzee"})};

Check failure on line 907 in PWGEM/PhotonMeson/TableProducer/skimmerPrimaryElectronFromDalitzEE.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-task]

Device names skimmer-primary-electron-from-dalitzee and skimmer-primary-electron-from-dalitz-e-e generated from the specified task name skimmer-primary-electron-from-dalitzee and from the struct name skimmerPrimaryElectronFromDalitzEE, respectively, differ in hyphenation. Consider fixing capitalisation of the struct name to SkimmerPrimaryElectronFromDalitzee and removing TaskName.
}
Loading