diff --git a/PWGEM/PhotonMeson/Core/DalitzEECut.cxx b/PWGEM/PhotonMeson/Core/DalitzEECut.cxx index 25645430f27..027f807355d 100644 --- a/PWGEM/PhotonMeson/Core/DalitzEECut.cxx +++ b/PWGEM/PhotonMeson/Core/DalitzEECut.cxx @@ -17,16 +17,12 @@ #include -#include - #include #include #include #include -ClassImp(DalitzEECut); - -// const char* DalitzEECut::mCutNames[static_cast(DalitzEECut::DalitzEECuts::kNCuts)] = {"Mee", "PairPtRange", "PairRapidityRange", "PairDCARange", "PhivPair", "TrackPtRange", "TrackEtaRange", "TPCNCls", "TPCCrossedRows", "TPCCrossedRowsOverNCls", "TPCChi2NDF", "TPCNsigmaEl", "TPCNsigmaMu", "TPCNsigmaPi", "TPCNsigmaKa", "TPCNsigmaPr", "TOFNsigmaEl", "TOFNsigmaMu", "TOFNsigmaPi", "TOFNsigmaKa", "TOFNsigmaPr", "DCA3Dsigma", "DCAxy", "DCAz", "ITSNCls", "ITSChi2NDF", "ITSClusterSize", "Prefilter"}; +// std::array(DalitzEECut::DalitzEECuts::kNCuts)> DalitzEECut::mCutNames = {"Mee", "PairPtRange", "PairRapidityRange", "PairDCARange", "PhivPair", "TrackPtRange", "TrackEtaRange", "TPCNCls", "TPCCrossedRows", "TPCCrossedRowsOverNCls", "TPCChi2NDF", "TPCNsigmaEl", "TPCNsigmaMu", "TPCNsigmaPi", "TPCNsigmaKa", "TPCNsigmaPr", "TOFNsigmaEl", "TOFNsigmaMu", "TOFNsigmaPi", "TOFNsigmaKa", "TOFNsigmaPr", "DCA3Dsigma", "DCAxy", "DCAz", "ITSNCls", "ITSChi2NDF", "ITSClusterSize", "Prefilter"}; const std::pair> DalitzEECut::its_ib_any_Requirement = {1, {0, 1, 2}}; // hits on any ITS ib layers. const std::pair> DalitzEECut::its_ib_1st_Requirement = {1, {0}}; // hit on 1st ITS ib layers. @@ -49,7 +45,7 @@ void DalitzEECut::SetMeeRange(float min, float max) mMaxMee = max; LOG(info) << "DalitzEE Cut, set mee range: " << mMinMee << " - " << mMaxMee; } -void DalitzEECut::SetMaxPhivPairMeeDep(std::function meeDepCut) +void DalitzEECut::SetMaxPhivPairMeeDep(const std::function& meeDepCut) { mMaxPhivPairMeeDep = meeDepCut; LOG(info) << "DalitzEE Cut, set max phiv pair mee dep: " << mMaxPhivPairMeeDep(0.02); @@ -133,7 +129,7 @@ void DalitzEECut::SetMaxDcaZ(float maxDcaZ) LOG(info) << "DalitzEE Cut, set max DCA z: " << mMaxDcaZ; } -void DalitzEECut::SetMaxDcaXYPtDep(std::function ptDepCut) +void DalitzEECut::SetMaxDcaXYPtDep(const std::function& ptDepCut) { mMaxDcaXYPtDep = ptDepCut; LOG(info) << "DalitzEE Cut, set max DCA xy pt dep: " << mMaxDcaXYPtDep(1.0); @@ -182,7 +178,7 @@ void DalitzEECut::SetChi2TOF(float min, float max) void DalitzEECut::SetPIDScheme(int scheme) { mPIDScheme = scheme; - LOG(info) << "DalitzEE Cut, PID scheme: " << static_cast(mPIDScheme); + LOG(info) << "DalitzEE Cut, PID scheme: " << mPIDScheme; } void DalitzEECut::IncludeITSsa(bool flag, float max) { diff --git a/PWGEM/PhotonMeson/Core/DalitzEECut.h b/PWGEM/PhotonMeson/Core/DalitzEECut.h index 5366b94f36e..49e0397b661 100644 --- a/PWGEM/PhotonMeson/Core/DalitzEECut.h +++ b/PWGEM/PhotonMeson/Core/DalitzEECut.h @@ -61,7 +61,7 @@ class DalitzEECut kITSChi2NDF, kNCuts }; - static const char* mCutNames[static_cast(DalitzEECuts::kNCuts)]; + // static std::array(DalitzEECuts::kNCuts)> mCutNames; enum class PIDSchemes : int { kUnDef = -1, @@ -69,8 +69,8 @@ class DalitzEECut kTPConly = 1, }; - const std::string getName() const { return name; } - const std::string getTitle() const { return title; } + [[nodiscard]] const std::string& getName() const { return name; } + [[nodiscard]] const std::string& getTitle() const { return title; } template bool IsSelected(TTrack1 const& t1, TTrack2 const& t2, float bz) const @@ -205,8 +205,6 @@ class DalitzEECut return PassTOFif(track); case static_cast(PIDSchemes::kUnDef): - return true; - default: return true; } @@ -278,7 +276,7 @@ class DalitzEECut void SetPairPtRange(float minPt = 0.f, float maxPt = 1e10f); void SetPairYRange(float minY = -1e10f, float maxY = 1e10f); void SetMeeRange(float min = 0.f, float max = 0.04); - void SetMaxPhivPairMeeDep(std::function meeDepCut); + void SetMaxPhivPairMeeDep(const std::function& meeDepCut); void SelectPhotonConversion(bool flag); void SetTrackPtRange(float minPt = 0.f, float maxPt = 1e10f); @@ -303,13 +301,13 @@ class DalitzEECut void SetTrackDca3DRange(float min, float max); // in sigma void SetMaxDcaXY(float maxDcaXY); // in cm void SetMaxDcaZ(float maxDcaZ); // in cm - void SetMaxDcaXYPtDep(std::function ptDepCut); + void SetMaxDcaXYPtDep(const std::function& ptDepCut); void ApplyPrefilter(bool flag); void ApplyPhiV(bool flag); void IncludeITSsa(bool flag, float maxpt); // Getters - bool IsPhotonConversionSelected() const { return mSelectPC; } + [[nodiscard]] bool IsPhotonConversionSelected() const { return mSelectPC; } private: std::string name; @@ -321,8 +319,8 @@ class DalitzEECut float mMinPairPt{0.f}, mMaxPairPt{1e10f}; // range in pT float mMinPairY{-1e10f}, mMaxPairY{1e10f}; // range in rapidity float mMinPhivPair{0.f}, mMaxPhivPair{+3.2}; - std::function mMaxPhivPairMeeDep{}; // max phiv as a function of mee - bool mSelectPC{false}; // flag to select photon conversion used in mMaxPhivPairMeeDep + std::function mMaxPhivPairMeeDep; // max phiv as a function of mee + bool mSelectPC{false}; // flag to select photon conversion used in mMaxPhivPairMeeDep // kinematic cuts float mMinTrackPt{0.f}, mMaxTrackPt{1e10f}; // range in pT @@ -340,11 +338,11 @@ class DalitzEECut bool mRequireITSibAny{true}; bool mRequireITSib1st{false}; - float mMinDca3D{0.0f}; // min dca in 3D in units of sigma - float mMaxDca3D{1e+10}; // max dca in 3D in units of sigma - float mMaxDcaXY{1.0f}; // max dca in xy plane - float mMaxDcaZ{1.0f}; // max dca in z direction - std::function mMaxDcaXYPtDep{}; // max dca in xy plane as function of pT + float mMinDca3D{0.0f}; // min dca in 3D in units of sigma + float mMaxDca3D{1e+10}; // max dca in 3D in units of sigma + float mMaxDcaXY{1.0f}; // max dca in xy plane + float mMaxDcaZ{1.0f}; // max dca in z direction + std::function mMaxDcaXYPtDep; // max dca in xy plane as function of pT bool mApplyPhiV{true}; float mMinMeanClusterSizeITS{-1e10f}, mMaxMeanClusterSizeITS{1e10f}; // x cos(lmabda) float mMinChi2TOF{-1e10f}, mMaxChi2TOF{1e10f}; // max tof chi2 per diff --git a/PWGEM/PhotonMeson/Core/EMCPhotonCut.cxx b/PWGEM/PhotonMeson/Core/EMCPhotonCut.cxx index 2ef0bfdfa68..a58973f9446 100644 --- a/PWGEM/PhotonMeson/Core/EMCPhotonCut.cxx +++ b/PWGEM/PhotonMeson/Core/EMCPhotonCut.cxx @@ -19,6 +19,8 @@ #include +#include +#include #include std::array(EMCPhotonCut::EMCPhotonCuts::kNCuts)> EMCPhotonCut::mCutNames = {"Definition", "Energy", "NCell", "M02", "Timing", "TrackMatching", "SecTrackMatching", "Exotic"}; diff --git a/PWGEM/PhotonMeson/TableProducer/skimmerGammaCalo.cxx b/PWGEM/PhotonMeson/TableProducer/skimmerGammaCalo.cxx index e4f11543583..4533b0bf09d 100644 --- a/PWGEM/PhotonMeson/TableProducer/skimmerGammaCalo.cxx +++ b/PWGEM/PhotonMeson/TableProducer/skimmerGammaCalo.cxx @@ -351,8 +351,8 @@ struct SkimmerGammaCalo { PROCESS_SWITCH(SkimmerGammaCalo, processDummy, "Dummy function", false); }; -WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) +WorkflowSpec defineDataProcessing(ConfigContext const& context) { - WorkflowSpec workflow{adaptAnalysisTask(cfgc)}; + WorkflowSpec workflow{adaptAnalysisTask(context)}; return workflow; } diff --git a/PWGEM/PhotonMeson/TableProducer/skimmerPrimaryElectronFromDalitzEE.cxx b/PWGEM/PhotonMeson/TableProducer/skimmerPrimaryElectronFromDalitzEE.cxx index 6efe864c02c..2ed8523add7 100644 --- a/PWGEM/PhotonMeson/TableProducer/skimmerPrimaryElectronFromDalitzEE.cxx +++ b/PWGEM/PhotonMeson/TableProducer/skimmerPrimaryElectronFromDalitzEE.cxx @@ -9,6 +9,7 @@ // granted to it by virtue of its status as an Intergovernmental Organization // or submit itself to any jurisdiction. +/// \file skimmerPrimaryElectronFromDalitzEE.cxx /// \brief write relevant information about primary electrons. /// \author daiki.sekihata@cern.ch @@ -21,6 +22,7 @@ #include "Common/DataModel/TrackSelectionTables.h" #include +#include #include #include #include @@ -40,6 +42,7 @@ #include // IWYU pragma: keep (do not replace with Math/Vector4Dfwd.h) #include +#include #include #include #include @@ -47,8 +50,6 @@ #include #include -#include - using namespace o2; using namespace o2::soa; using namespace o2::framework; @@ -64,10 +65,10 @@ using MyTrack = MyTracks::iterator; using MyTracksMC = soa::Join; using MyTrackMC = MyTracksMC::iterator; -struct skimmerPrimaryElectronFromDalitzEE { +struct SkimmerPrimaryElectronFromDalitzEE { SliceCache cache; Preslice perCol = o2::aod::track::collisionId; - Preslice perCol_pcm = o2::aod::v0photonkf::collisionId; + Preslice perColPcm = o2::aod::v0photonkf::collisionId; Produces emprimaryelectrons; Produces emprimaryelectronsDeDxMC; @@ -78,20 +79,20 @@ struct skimmerPrimaryElectronFromDalitzEE { Configurable skipGRPOquery{"skipGRPOquery", true, "skip grpo query"}; // Operation and minimisation criteria - Configurable d_bz_input{"d_bz_input", -999, "bz field in kG, -999 is automatic"}; - Configurable min_ncluster_tpc{"min_ncluster_tpc", 0, "min ncluster tpc"}; + Configurable dBzInput{"dBzInput", -999, "bz field in kG, -999 is automatic"}; + Configurable min_ncluster_tpc{"min_ncluster_tpc", 0, "min ncluster tpc"}; // o2-linter: disable=name/function-variable (renaming configs would mess up hyperloop) Configurable mincrossedrows{"mincrossedrows", 70, "min. crossed rows"}; - Configurable min_tpc_cr_findable_ratio{"min_tpc_cr_findable_ratio", 0.8, "min. TPC Ncr/Nf ratio"}; - Configurable max_frac_shared_clusters_tpc{"max_frac_shared_clusters_tpc", 999.f, "max fraction of shared clusters in TPC"}; - Configurable min_ncluster_its{"min_ncluster_its", 4, "min ncluster its"}; - Configurable min_ncluster_itsib{"min_ncluster_itsib", 1, "min ncluster itsib"}; + Configurable min_tpc_cr_findable_ratio{"min_tpc_cr_findable_ratio", 0.8, "min. TPC Ncr/Nf ratio"}; // o2-linter: disable=name/function-variable (renaming configs would mess up hyperloop) + Configurable max_frac_shared_clusters_tpc{"max_frac_shared_clusters_tpc", 999.f, "max fraction of shared clusters in TPC"}; // o2-linter: disable=name/function-variable (renaming configs would mess up hyperloop) + Configurable min_ncluster_its{"min_ncluster_its", 4, "min ncluster its"}; // o2-linter: disable=name/function-variable (renaming configs would mess up hyperloop) + Configurable min_ncluster_itsib{"min_ncluster_itsib", 1, "min ncluster itsib"}; // o2-linter: disable=name/function-variable (renaming configs would mess up hyperloop) Configurable maxchi2tpc{"maxchi2tpc", 5.0, "max. chi2/NclsTPC"}; Configurable maxchi2its{"maxchi2its", 36.0, "max. chi2/NclsITS"}; Configurable minpt{"minpt", 0.05, "min pt for ITS-TPC track"}; Configurable maxeta{"maxeta", 2.0, "max eta acceptance"}; - Configurable dca_xy_max{"dca_xy_max", 1, "max DCAxy in cm"}; - Configurable dca_z_max{"dca_z_max", 1, "max DCAz in cm"}; - Configurable dca_3d_sigma_max{"dca_3d_sigma_max", 2, "max DCA 3D in sigma"}; + Configurable dca_xy_max{"dca_xy_max", 1, "max DCAxy in cm"}; // o2-linter: disable=name/function-variable (renaming configs would mess up hyperloop) + Configurable dca_z_max{"dca_z_max", 1, "max DCAz in cm"}; // o2-linter: disable=name/function-variable (renaming configs would mess up hyperloop) + Configurable dca_3d_sigma_max{"dca_3d_sigma_max", 2, "max DCA 3D in sigma"}; // o2-linter: disable=name/function-variable (renaming configs would mess up hyperloop) Configurable minTPCNsigmaEl{"minTPCNsigmaEl", -2.5, "min. TPC n sigma for electron inclusion"}; Configurable maxTPCNsigmaEl{"maxTPCNsigmaEl", +3.5, "max. TPC n sigma for electron inclusion"}; Configurable maxTPCNsigmaPi{"maxTPCNsigmaPi", 0.0, "max. TPC n sigma for pion exclusion"}; @@ -101,17 +102,17 @@ struct skimmerPrimaryElectronFromDalitzEE { Configurable maxMee{"maxMee", 0.04, "max. mee to store dalitz ee pairs"}; Configurable fillLS{"fillLS", true, "flag to fill LS histograms for QA"}; Configurable includeITSsa{"includeITSsa", false, "Flag to include ITSsa tracks"}; - Configurable maxpt_itssa{"maxpt_itssa", 0.15, "max pt for ITSsa track"}; + Configurable maxpt_itssa{"maxpt_itssa", 0.15, "max pt for ITSsa track"}; // o2-linter: disable=name/function-variable (renaming configs would mess up hyperloop) Configurable maxMeanITSClusterSize{"maxMeanITSClusterSize", 16, "max x cos(lambda)"}; Configurable slope{"slope", 0.0185, "slope for m vs. phiv"}; Configurable intercept{"intercept", -0.0380, "intercept for m vs. phiv"}; HistogramRegistry fRegistry{"output", {}, OutputObjHandlingPolicy::AnalysisObject, false, false}; - static constexpr std::string_view dileptonSigns[3] = {"uls/", "lspp/", "lsmm/"}; + static constexpr std::array DileptonSigns = {"uls/", "lspp/", "lsmm/"}; - int mRunNumber; - float d_bz; - Service ccdb; + int mRunNumber = 0; + float dBz = 0.; + Service ccdb{}; o2::base::Propagator::MatCorrType matCorr = o2::base::Propagator::MatCorrType::USEMatCorrNONE; void init(InitContext&) @@ -121,7 +122,7 @@ struct skimmerPrimaryElectronFromDalitzEE { // } mRunNumber = 0; - d_bz = 0; + dBz = 0; ccdb->setURL(ccdburl); ccdb->setCaching(true); @@ -129,7 +130,7 @@ struct skimmerPrimaryElectronFromDalitzEE { ccdb->setFatalWhenNull(false); fRegistry.add("Track/hPt", "pT;p_{T} (GeV/c)", kTH1F, {{1000, 0.0f, 10}}, false); - fRegistry.add("Track/hEtaPhi", "#eta vs. #varphi;#varphi (rad.);#eta", kTH2F, {{180, 0, 2 * M_PI}, {400, -2.0f, 2.0f}}, false); + fRegistry.add("Track/hEtaPhi", "#eta vs. #varphi;#varphi (rad.);#eta", kTH2F, {{180, 0, o2::constants::math::TwoPI}, {400, -2.0f, 2.0f}}, false); fRegistry.add("Track/hQoverPt", "q/pT;q/p_{T} (GeV/c)^{-1}", kTH1F, {{400, -20, 20}}, false); fRegistry.add("Track/hRelDeltaPt", "pT resolution;p_{T} (GeV/c);#Deltap_{T}/p_{T}", kTH2F, {{1000, 0, 10}, {100, 0, 0.1}}, false); fRegistry.add("Track/hDCAxyz", "DCA xy vs. z;DCA_{xy} (cm);DCA_{z} (cm)", kTH2F, {{200, -1.0f, 1.0f}, {200, -1.0f, 1.0f}}, false); @@ -167,7 +168,7 @@ struct skimmerPrimaryElectronFromDalitzEE { // pair fRegistry.add("Pair/uls/hMvsPt", "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/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/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.addClone("Pair/uls/", "Pair/lspp/"); fRegistry.addClone("Pair/uls/", "Pair/lsmm/"); } @@ -179,36 +180,37 @@ struct skimmerPrimaryElectronFromDalitzEE { } // In case override, don't proceed, please - no CCDB access required - if (d_bz_input > -990) { - d_bz = d_bz_input; + if (dBzInput > -990) { // o2-linter: disable=magic-number (check against some default number) + dBz = dBzInput; o2::parameters::GRPMagField grpmag; - if (std::fabs(d_bz) > 1e-5) { - grpmag.setL3Current(30000.f / (d_bz / 5.0f)); + if (std::fabs(dBz) > 1e-5) { // o2-linter: disable=magic-number (check against some default number) + grpmag.setL3Current(30000.f / (dBz / 5.0f)); // o2-linter: disable=magic-number (values to calculate the magnetic field) } o2::base::Propagator::initFieldFromGRP(&grpmag); mRunNumber = bc.runNumber(); return; } - auto run3grp_timestamp = bc.timestamp(); - o2::parameters::GRPObject* grpo = 0x0; - o2::parameters::GRPMagField* grpmag = 0x0; - if (!skipGRPOquery) - grpo = ccdb->getForTimeStamp(grpPath, run3grp_timestamp); + auto run3grpTimestamp = bc.timestamp(); + o2::parameters::GRPObject* grpo = nullptr; + o2::parameters::GRPMagField* grpmag = nullptr; + if (!skipGRPOquery) { + grpo = ccdb->getForTimeStamp(grpPath, run3grpTimestamp); + } if (grpo) { o2::base::Propagator::initFieldFromGRP(grpo); // Fetch magnetic field from ccdb for current collision - d_bz = grpo->getNominalL3Field(); - LOG(info) << "Retrieved GRP for timestamp " << run3grp_timestamp << " with magnetic field of " << d_bz << " kZG"; + dBz = grpo->getNominalL3Field(); + LOG(info) << "Retrieved GRP for timestamp " << run3grpTimestamp << " with magnetic field of " << dBz << " kZG"; } else { - grpmag = ccdb->getForTimeStamp(grpmagPath, run3grp_timestamp); + grpmag = ccdb->getForTimeStamp(grpmagPath, run3grpTimestamp); if (!grpmag) { - LOG(fatal) << "Got nullptr from CCDB for path " << grpmagPath << " of object GRPMagField and " << grpPath << " of object GRPObject for timestamp " << run3grp_timestamp; + LOG(fatal) << "Got nullptr from CCDB for path " << grpmagPath << " of object GRPMagField and " << grpPath << " of object GRPObject for timestamp " << run3grpTimestamp; } o2::base::Propagator::initFieldFromGRP(grpmag); // Fetch magnetic field from ccdb for current collision - d_bz = std::lround(5.f * grpmag->getL3Current() / 30000.f); - LOG(info) << "Retrieved GRP for timestamp " << run3grp_timestamp << " with magnetic field of " << d_bz << " kZG"; + dBz = std::lround(5.f * grpmag->getL3Current() / 30000.f); + LOG(info) << "Retrieved GRP for timestamp " << run3grpTimestamp << " with magnetic field of " << dBz << " kZG"; } mRunNumber = bc.runNumber(); } @@ -237,7 +239,7 @@ struct skimmerPrimaryElectronFromDalitzEE { return false; } - if (!includeITSsa && (!track.hasITS() || !track.hasTPC())) { + if (!includeITSsa && !track.hasTPC()) { return false; } @@ -267,15 +269,15 @@ struct skimmerPrimaryElectronFromDalitzEE { return false; } - float dca_3d = 999.f; + float dca3D = 999.f; float det = track.cYY() * track.cZZ() - track.cZY() * track.cZY(); if (det < 0) { - dca_3d = 999.f; + dca3D = 999.f; } else { float chi2 = (track.dcaXY() * track.dcaXY() * track.cZZ() + track.dcaZ() * track.dcaZ() * track.cYY() - 2. * track.dcaXY() * track.dcaZ() * track.cZY()) / det; - dca_3d = std::sqrt(std::fabs(chi2) / 2.); + dca3D = std::sqrt(std::fabs(chi2) / 2.); } - if (dca_3d > dca_3d_sigma_max) { + if (dca3D > dca_3d_sigma_max) { return false; } @@ -296,20 +298,16 @@ struct skimmerPrimaryElectronFromDalitzEE { bool isElectron(TTrack const& track) { if (includeITSsa && (track.hasITS() && !track.hasTPC() && !track.hasTRD() && !track.hasTOF())) { - int total_cluster_size = 0, nl = 0; - for (unsigned int layer = 0; layer < 7; layer++) { - int cluster_size_per_layer = track.itsClsSizeInLayer(layer); - if (cluster_size_per_layer > 0) { + int totalClusterSize = 0, nl = 0; + for (unsigned int layer = 0; layer < 7; layer++) { // o2-linter: disable=magic-number (number of its layers) + int clusterSizePerLayer = track.itsClsSizeInLayer(layer); + if (clusterSizePerLayer > 0) { nl++; } - total_cluster_size += cluster_size_per_layer; + totalClusterSize += clusterSizePerLayer; } - if (maxMeanITSClusterSize > static_cast(total_cluster_size) / static_cast(nl) * std::cos(std::atan(track.tgl()))) { - return true; - } else { - return false; - } + return (maxMeanITSClusterSize > static_cast(totalClusterSize) / static_cast(nl) * std::cos(std::atan(track.tgl()))); } if (track.tpcNSigmaEl() < minTPCNsigmaEl || maxTPCNsigmaEl < track.tpcNSigmaEl()) { @@ -379,35 +377,35 @@ struct skimmerPrimaryElectronFromDalitzEE { fRegistry.fill(HIST("Track/hChi2ITS"), track.itsChi2NCl()); fRegistry.fill(HIST("Track/hITSClusterMap"), track.itsClusterMap()); - int total_cluster_size = 0, nl = 0; - for (unsigned int layer = 0; layer < 7; layer++) { - int cluster_size_per_layer = track.itsClsSizeInLayer(layer); - if (cluster_size_per_layer > 0) { + int totalClusterSize = 0, nl = 0; + for (unsigned int layer = 0; layer < 7; layer++) { // o2-linter: disable=magic-number (number of ITS layers) + int clusterSizePerLayer = track.itsClsSizeInLayer(layer); + if (clusterSizePerLayer > 0) { nl++; } - total_cluster_size += cluster_size_per_layer; + totalClusterSize += clusterSizePerLayer; } - int total_cluster_size_ib = 0, nl_ib = 0; - for (unsigned int layer = 0; layer < 3; layer++) { - int cluster_size_per_layer = track.itsClsSizeInLayer(layer); - if (cluster_size_per_layer > 0) { + int totalClusterSizeIb = 0, nl_ib = 0; + for (unsigned int layer = 0; layer < 3; layer++) { // o2-linter: disable=magic-number (number of inner barrel layers) + int clusterSizePerLayer = track.itsClsSizeInLayer(layer); + if (clusterSizePerLayer > 0) { nl_ib++; } - total_cluster_size_ib += cluster_size_per_layer; + totalClusterSizeIb += clusterSizePerLayer; } - int total_cluster_size_ob = 0, nl_ob = 0; - for (unsigned int layer = 3; layer < 7; layer++) { - int cluster_size_per_layer = track.itsClsSizeInLayer(layer); - if (cluster_size_per_layer > 0) { - nl_ob++; + int totalClusterSizeOb = 0, nlOb = 0; + for (unsigned int layer = 3; layer < 7; layer++) { // o2-linter: disable=magic-number (number of outer barrel layers) + int clusterSizePerLayer = track.itsClsSizeInLayer(layer); + if (clusterSizePerLayer > 0) { + nlOb++; } - total_cluster_size_ob += cluster_size_per_layer; + totalClusterSizeOb += clusterSizePerLayer; } - fRegistry.fill(HIST("Track/hMeanClusterSizeITS"), track.p(), static_cast(total_cluster_size) / static_cast(nl) * std::cos(std::atan(track.tgl()))); - fRegistry.fill(HIST("Track/hMeanClusterSizeITSib"), track.p(), static_cast(total_cluster_size_ib) / static_cast(nl_ib) * std::cos(std::atan(track.tgl()))); - fRegistry.fill(HIST("Track/hMeanClusterSizeITSob"), track.p(), static_cast(total_cluster_size_ob) / static_cast(nl_ob) * std::cos(std::atan(track.tgl()))); + fRegistry.fill(HIST("Track/hMeanClusterSizeITS"), track.p(), static_cast(totalClusterSize) / static_cast(nl) * std::cos(std::atan(track.tgl()))); + fRegistry.fill(HIST("Track/hMeanClusterSizeITSib"), track.p(), static_cast(totalClusterSizeIb) / static_cast(nl_ib) * std::cos(std::atan(track.tgl()))); + fRegistry.fill(HIST("Track/hMeanClusterSizeITSob"), track.p(), static_cast(totalClusterSizeOb) / static_cast(nlOb) * std::cos(std::atan(track.tgl()))); } template @@ -425,9 +423,9 @@ struct skimmerPrimaryElectronFromDalitzEE { ROOT::Math::PtEtaPhiMVector v1(t1.pt(), t1.eta(), t1.phi(), o2::constants::physics::MassElectron); ROOT::Math::PtEtaPhiMVector v2(t2.pt(), t2.eta(), t2.phi(), o2::constants::physics::MassElectron); ROOT::Math::PtEtaPhiMVector v12 = v1 + v2; - float phiv = o2::aod::pwgem::dilepton::utils::pairutil::getPhivPair(t1.px(), t1.py(), t1.pz(), t2.px(), t2.py(), t2.pz(), t1.sign(), t2.sign(), d_bz); - fRegistry.fill(HIST("Pair/") + HIST(dileptonSigns[pairtype]) + HIST("hMvsPt"), v12.M(), v12.Pt()); - fRegistry.fill(HIST("Pair/") + HIST(dileptonSigns[pairtype]) + HIST("hMvsPhiV"), phiv, v12.M()); + float phiv = o2::aod::pwgem::dilepton::utils::pairutil::getPhivPair(t1.px(), t1.py(), t1.pz(), t2.px(), t2.py(), t2.pz(), t1.sign(), t2.sign(), dBz); + fRegistry.fill(HIST("Pair/") + HIST(DileptonSigns[pairtype]) + HIST("hMvsPt"), v12.M(), v12.Pt()); + fRegistry.fill(HIST("Pair/") + HIST(DileptonSigns[pairtype]) + HIST("hMvsPhiV"), phiv, v12.M()); if (v12.M() > maxMee) { // don't store continue; @@ -438,31 +436,31 @@ struct skimmerPrimaryElectronFromDalitzEE { } if (t1.sign() > 0) { // for positron - if (std::find(acceptedPosTrackIds_per_collision.begin(), acceptedPosTrackIds_per_collision.end(), t1.globalIndex()) == acceptedPosTrackIds_per_collision.end()) { + if (std::find(acceptedPosTrackIdsPerCollision.begin(), acceptedPosTrackIdsPerCollision.end(), t1.globalIndex()) == acceptedPosTrackIdsPerCollision.end()) { fillTrackHistograms(t1); - acceptedPosTrackIds_per_collision.emplace_back(t1.globalIndex()); + acceptedPosTrackIdsPerCollision.emplace_back(t1.globalIndex()); } } else { // for electron - if (std::find(acceptedNegTrackIds_per_collision.begin(), acceptedNegTrackIds_per_collision.end(), t1.globalIndex()) == acceptedNegTrackIds_per_collision.end()) { + if (std::find(acceptedNegTrackIdsPerCollision.begin(), acceptedNegTrackIdsPerCollision.end(), t1.globalIndex()) == acceptedNegTrackIdsPerCollision.end()) { fillTrackHistograms(t1); - acceptedNegTrackIds_per_collision.emplace_back(t1.globalIndex()); + acceptedNegTrackIdsPerCollision.emplace_back(t1.globalIndex()); } } if (t2.sign() > 0) { // for positron - if (std::find(acceptedPosTrackIds_per_collision.begin(), acceptedPosTrackIds_per_collision.end(), t2.globalIndex()) == acceptedPosTrackIds_per_collision.end()) { + if (std::find(acceptedPosTrackIdsPerCollision.begin(), acceptedPosTrackIdsPerCollision.end(), t2.globalIndex()) == acceptedPosTrackIdsPerCollision.end()) { fillTrackHistograms(t2); - acceptedPosTrackIds_per_collision.emplace_back(t2.globalIndex()); + acceptedPosTrackIdsPerCollision.emplace_back(t2.globalIndex()); } } else { // for electron - if (std::find(acceptedNegTrackIds_per_collision.begin(), acceptedNegTrackIds_per_collision.end(), t2.globalIndex()) == acceptedNegTrackIds_per_collision.end()) { + if (std::find(acceptedNegTrackIdsPerCollision.begin(), acceptedNegTrackIdsPerCollision.end(), t2.globalIndex()) == acceptedNegTrackIdsPerCollision.end()) { fillTrackHistograms(t2); - acceptedNegTrackIds_per_collision.emplace_back(t2.globalIndex()); + acceptedNegTrackIdsPerCollision.emplace_back(t2.globalIndex()); } } } // end of ULS pairing } else { // LS - for (auto& [t1, t2] : combinations(CombinationsStrictlyUpperIndexPolicy(tracks1, tracks2))) { + for (const auto& [t1, t2] : combinations(CombinationsStrictlyUpperIndexPolicy(tracks1, tracks2))) { if (!checkTrack(collision, t1) || !checkTrack(collision, t2)) { continue; } @@ -473,16 +471,16 @@ struct skimmerPrimaryElectronFromDalitzEE { ROOT::Math::PtEtaPhiMVector v1(t1.pt(), t1.eta(), t1.phi(), o2::constants::physics::MassElectron); ROOT::Math::PtEtaPhiMVector v2(t2.pt(), t2.eta(), t2.phi(), o2::constants::physics::MassElectron); ROOT::Math::PtEtaPhiMVector v12 = v1 + v2; - float phiv = o2::aod::pwgem::dilepton::utils::pairutil::getPhivPair(t1.px(), t1.py(), t1.pz(), t2.px(), t2.py(), t2.pz(), t1.sign(), t2.sign(), d_bz); - fRegistry.fill(HIST("Pair/") + HIST(dileptonSigns[pairtype]) + HIST("hMvsPt"), v12.M(), v12.Pt()); - fRegistry.fill(HIST("Pair/") + HIST(dileptonSigns[pairtype]) + HIST("hMvsPhiV"), phiv, v12.M()); + float phiv = o2::aod::pwgem::dilepton::utils::pairutil::getPhivPair(t1.px(), t1.py(), t1.pz(), t2.px(), t2.py(), t2.pz(), t1.sign(), t2.sign(), dBz); + fRegistry.fill(HIST("Pair/") + HIST(DileptonSigns[pairtype]) + HIST("hMvsPt"), v12.M(), v12.Pt()); + fRegistry.fill(HIST("Pair/") + HIST(DileptonSigns[pairtype]) + HIST("hMvsPhiV"), phiv, v12.M()); } // end of LS pairing } } - std::vector acceptedPosTrackIds_per_collision; - std::vector acceptedNegTrackIds_per_collision; - std::vector> stored_trackIds; + std::vector acceptedPosTrackIdsPerCollision; + std::vector acceptedNegTrackIdsPerCollision; + std::vector> storedTrackIds; 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; using MyFilteredTracks = soa::Filtered; Partition posTracks = o2::aod::track::signed1Pt > 0.f; @@ -491,7 +489,7 @@ struct skimmerPrimaryElectronFromDalitzEE { // ---------- for data ---------- void processRec(MyCollisions const& collisions, aod::BCsWithTimestamps const&, MyFilteredTracks const& tracks, aod::V0PhotonsKF const& v0photons) { - stored_trackIds.reserve(tracks.size()); + storedTrackIds.reserve(tracks.size()); for (const auto& collision : collisions) { auto bc = collision.template foundBC_as(); @@ -500,44 +498,44 @@ struct skimmerPrimaryElectronFromDalitzEE { continue; } - const auto& v0photons_per_coll = v0photons.sliceBy(perCol_pcm, collision.globalIndex()); - const auto& posTracks_per_coll = posTracks->sliceByCached(o2::aod::track::collisionId, collision.globalIndex(), cache); - const auto& negTracks_per_coll = negTracks->sliceByCached(o2::aod::track::collisionId, collision.globalIndex(), cache); - acceptedPosTrackIds_per_collision.reserve(posTracks_per_coll.size()); - acceptedNegTrackIds_per_collision.reserve(negTracks_per_coll.size()); + const auto& v0photonsPerColl = v0photons.sliceBy(perColPcm, collision.globalIndex()); + const auto& posTracksPerColl = posTracks->sliceByCached(o2::aod::track::collisionId, collision.globalIndex(), cache); + const auto& negTracksPerColl = negTracks->sliceByCached(o2::aod::track::collisionId, collision.globalIndex(), cache); + acceptedPosTrackIdsPerCollision.reserve(posTracksPerColl.size()); + acceptedNegTrackIdsPerCollision.reserve(negTracksPerColl.size()); - fillPairInfo(collision, posTracks_per_coll, negTracks_per_coll); // ULS + fillPairInfo(collision, posTracksPerColl, negTracksPerColl); // ULS if (fillLS) { - fillPairInfo(collision, posTracks_per_coll, posTracks_per_coll); // LS++ - fillPairInfo(collision, negTracks_per_coll, negTracks_per_coll); // LS-- + fillPairInfo(collision, posTracksPerColl, posTracksPerColl); // LS++ + fillPairInfo(collision, negTracksPerColl, negTracksPerColl); // LS-- } - if ((v0photons_per_coll.size() >= 1 && acceptedPosTrackIds_per_collision.size() >= 1 && acceptedNegTrackIds_per_collision.size() >= 1) || (acceptedPosTrackIds_per_collision.size() >= 2 && acceptedNegTrackIds_per_collision.size() >= 2)) { - // LOGF(info, "v0photons_per_coll.size() = %d, acceptedPosTrackIds_per_collision.size() = %d, acceptedNegTrackIds_per_collision.size() = %d", v0photons_per_coll.size(), acceptedPosTrackIds_per_collision.size(), acceptedNegTrackIds_per_collision.size()); - for (const auto& posId : acceptedPosTrackIds_per_collision) { + if ((v0photonsPerColl.size() >= 1 && acceptedPosTrackIdsPerCollision.size() >= 1 && acceptedNegTrackIdsPerCollision.size() >= 1) || (acceptedPosTrackIdsPerCollision.size() >= 2 && acceptedNegTrackIdsPerCollision.size() >= 2)) { // o2-linter: disable=magic-number (check to see if we have enough particles that it make sense to fill the tables) + // LOGF(info, "v0photonsPerColl.size() = %d, acceptedPosTrackIdsPerCollision.size() = %d, acceptedNegTrackIdsPerCollision.size() = %d", v0photonsPerColl.size(), acceptedPosTrackIdsPerCollision.size(), acceptedNegTrackIdsPerCollision.size()); + for (const auto& posId : acceptedPosTrackIdsPerCollision) { const auto& pos = tracks.rawIteratorAt(posId); fillTrackTable(collision, pos); } - for (const auto& eleId : acceptedNegTrackIds_per_collision) { + for (const auto& eleId : acceptedNegTrackIdsPerCollision) { const auto& ele = tracks.rawIteratorAt(eleId); fillTrackTable(collision, ele); } } - acceptedPosTrackIds_per_collision.clear(); - acceptedPosTrackIds_per_collision.shrink_to_fit(); - acceptedNegTrackIds_per_collision.clear(); - acceptedNegTrackIds_per_collision.shrink_to_fit(); + acceptedPosTrackIdsPerCollision.clear(); + acceptedPosTrackIdsPerCollision.shrink_to_fit(); + acceptedNegTrackIdsPerCollision.clear(); + acceptedNegTrackIdsPerCollision.shrink_to_fit(); } // end of collision loop - stored_trackIds.clear(); - stored_trackIds.shrink_to_fit(); + storedTrackIds.clear(); + storedTrackIds.shrink_to_fit(); } - PROCESS_SWITCH(skimmerPrimaryElectronFromDalitzEE, processRec, "process reconstructed info only", true); // standalone + PROCESS_SWITCH(SkimmerPrimaryElectronFromDalitzEE, processRec, "process reconstructed info only", true); // standalone // void processRec_SWT(MyCollisionsWithSWT const& collisions, aod::BCsWithTimestamps const&, MyFilteredTracks const& tracks, aod::V0PhotonsKF const& v0photons) // { - // stored_trackIds.reserve(tracks.size()); + // storedTrackIds.reserve(tracks.size()); // for (const auto& collision : collisions) { // auto bc = collision.template foundBC_as(); @@ -550,40 +548,40 @@ struct skimmerPrimaryElectronFromDalitzEE { // continue; // } - // const auto& v0photons_per_coll = v0photons.sliceBy(perCol_pcm, collision.globalIndex()); - // const auto& posTracks_per_coll = posTracks->sliceByCached(o2::aod::track::collisionId, collision.globalIndex(), cache); - // const auto& negTracks_per_coll = negTracks->sliceByCached(o2::aod::track::collisionId, collision.globalIndex(), cache); - // acceptedPosTrackIds_per_collision.reserve(posTracks_per_coll.size()); - // acceptedNegTrackIds_per_collision.reserve(negTracks_per_coll.size()); + // const auto& v0photonsPerColl = v0photons.sliceBy(perColPcm, collision.globalIndex()); + // const auto& posTracksPerColl = posTracks->sliceByCached(o2::aod::track::collisionId, collision.globalIndex(), cache); + // const auto& negTracksPerColl = negTracks->sliceByCached(o2::aod::track::collisionId, collision.globalIndex(), cache); + // acceptedPosTrackIdsPerCollision.reserve(posTracksPerColl.size()); + // acceptedNegTrackIdsPerCollision.reserve(negTracksPerColl.size()); - // fillPairInfo(collision, posTracks_per_coll, negTracks_per_coll); // ULS + // fillPairInfo(collision, posTracksPerColl, negTracksPerColl); // ULS // if (fillLS) { - // fillPairInfo(collision, posTracks_per_coll, posTracks_per_coll); // LS++ - // fillPairInfo(collision, negTracks_per_coll, negTracks_per_coll); // LS-- + // fillPairInfo(collision, posTracksPerColl, posTracksPerColl); // LS++ + // fillPairInfo(collision, negTracksPerColl, negTracksPerColl); // LS-- // } - // if ((v0photons_per_coll.size() >= 1 && acceptedPosTrackIds_per_collision.size() >= 1 && acceptedNegTrackIds_per_collision.size() >= 1) || (acceptedPosTrackIds_per_collision.size() >= 2 && acceptedNegTrackIds_per_collision.size() >= 2)) { - // // LOGF(info, "v0photons_per_coll.size() = %d, acceptedPosTrackIds_per_collision.size() = %d, acceptedNegTrackIds_per_collision.size() = %d", v0photons_per_coll.size(), acceptedPosTrackIds_per_collision.size(), acceptedNegTrackIds_per_collision.size()); - // for (const auto& posId : acceptedPosTrackIds_per_collision) { + // if ((v0photonsPerColl.size() >= 1 && acceptedPosTrackIdsPerCollision.size() >= 1 && acceptedNegTrackIdsPerCollision.size() >= 1) || (acceptedPosTrackIdsPerCollision.size() >= 2 && acceptedNegTrackIdsPerCollision.size() >= 2)) { + // // LOGF(info, "v0photonsPerColl.size() = %d, acceptedPosTrackIdsPerCollision.size() = %d, acceptedNegTrackIdsPerCollision.size() = %d", v0photonsPerColl.size(), acceptedPosTrackIdsPerCollision.size(), acceptedNegTrackIdsPerCollision.size()); + // for (const auto& posId : acceptedPosTrackIdsPerCollision) { // const auto& pos = tracks.rawIteratorAt(posId); // fillTrackTable(collision, pos); // } - // for (const auto& eleId : acceptedNegTrackIds_per_collision) { + // for (const auto& eleId : acceptedNegTrackIdsPerCollision) { // const auto& ele = tracks.rawIteratorAt(eleId); // fillTrackTable(collision, ele); // } // } - // acceptedPosTrackIds_per_collision.clear(); - // acceptedPosTrackIds_per_collision.shrink_to_fit(); - // acceptedNegTrackIds_per_collision.clear(); - // acceptedNegTrackIds_per_collision.shrink_to_fit(); + // acceptedPosTrackIdsPerCollision.clear(); + // acceptedPosTrackIdsPerCollision.shrink_to_fit(); + // acceptedNegTrackIdsPerCollision.clear(); + // acceptedNegTrackIdsPerCollision.shrink_to_fit(); // } // end of collision loop - // stored_trackIds.clear(); - // stored_trackIds.shrink_to_fit(); + // storedTrackIds.clear(); + // storedTrackIds.shrink_to_fit(); // } - // PROCESS_SWITCH(skimmerPrimaryElectronFromDalitzEE, processRec_SWT, "process reconstructed info with CEFP", false); // with cefp + // PROCESS_SWITCH(SkimmerPrimaryElectronFromDalitzEE, processRec_SWT, "process reconstructed info with CEFP", false); // with cefp using MyFilteredTracksMC = soa::Filtered; Partition posTracksMC = o2::aod::track::signed1Pt > 0.f; @@ -591,7 +589,7 @@ struct skimmerPrimaryElectronFromDalitzEE { // ---------- for MC ---------- void processMC(MyCollisionsMC const& collisions, aod::McCollisions const&, aod::BCsWithTimestamps const&, MyFilteredTracksMC const& tracks, aod::V0PhotonsKF const& v0photons) { - stored_trackIds.reserve(tracks.size()); + storedTrackIds.reserve(tracks.size()); for (const auto& collision : collisions) { auto bc = collision.template foundBC_as(); @@ -603,42 +601,42 @@ struct skimmerPrimaryElectronFromDalitzEE { continue; } - const auto& v0photons_per_coll = v0photons.sliceBy(perCol_pcm, collision.globalIndex()); - const auto& posTracks_per_coll = posTracksMC->sliceByCached(o2::aod::track::collisionId, collision.globalIndex(), cache); - const auto& negTracks_per_coll = negTracksMC->sliceByCached(o2::aod::track::collisionId, collision.globalIndex(), cache); - acceptedPosTrackIds_per_collision.reserve(posTracks_per_coll.size()); - acceptedNegTrackIds_per_collision.reserve(negTracks_per_coll.size()); + const auto& v0photonsPerColl = v0photons.sliceBy(perColPcm, collision.globalIndex()); + const auto& posTracksPerColl = posTracksMC->sliceByCached(o2::aod::track::collisionId, collision.globalIndex(), cache); + const auto& negTracksPerColl = negTracksMC->sliceByCached(o2::aod::track::collisionId, collision.globalIndex(), cache); + acceptedPosTrackIdsPerCollision.reserve(posTracksPerColl.size()); + acceptedNegTrackIdsPerCollision.reserve(negTracksPerColl.size()); - fillPairInfo(collision, posTracks_per_coll, negTracks_per_coll); // ULS + fillPairInfo(collision, posTracksPerColl, negTracksPerColl); // ULS if (fillLS) { - fillPairInfo(collision, posTracks_per_coll, posTracks_per_coll); // LS++ - fillPairInfo(collision, negTracks_per_coll, negTracks_per_coll); // LS-- + fillPairInfo(collision, posTracksPerColl, posTracksPerColl); // LS++ + fillPairInfo(collision, negTracksPerColl, negTracksPerColl); // LS-- } - if ((v0photons_per_coll.size() >= 1 && acceptedPosTrackIds_per_collision.size() >= 1 && acceptedNegTrackIds_per_collision.size() >= 1) || (acceptedPosTrackIds_per_collision.size() >= 2 && acceptedNegTrackIds_per_collision.size() >= 2)) { - // LOGF(info, "v0photons_per_coll.size() = %d, acceptedPosTrackIds_per_collision.size() = %d, acceptedNegTrackIds_per_collision.size() = %d", v0photons_per_coll.size(), acceptedPosTrackIds_per_collision.size(), acceptedNegTrackIds_per_collision.size()); - for (const auto& posId : acceptedPosTrackIds_per_collision) { + if ((v0photonsPerColl.size() >= 1 && acceptedPosTrackIdsPerCollision.size() >= 1 && acceptedNegTrackIdsPerCollision.size() >= 1) || (acceptedPosTrackIdsPerCollision.size() >= 2 && acceptedNegTrackIdsPerCollision.size() >= 2)) { // o2-linter: disable=magic-number (check to see if we have enough particles that it make sense to fill the tables) + // LOGF(info, "v0photonsPerColl.size() = %d, acceptedPosTrackIdsPerCollision.size() = %d, acceptedNegTrackIdsPerCollision.size() = %d", v0photonsPerColl.size(), acceptedPosTrackIdsPerCollision.size(), acceptedNegTrackIdsPerCollision.size()); + for (const auto& posId : acceptedPosTrackIdsPerCollision) { const auto& pos = tracks.rawIteratorAt(posId); fillTrackTable(collision, pos); } - for (const auto& eleId : acceptedNegTrackIds_per_collision) { + for (const auto& eleId : acceptedNegTrackIdsPerCollision) { const auto& ele = tracks.rawIteratorAt(eleId); fillTrackTable(collision, ele); } } - acceptedPosTrackIds_per_collision.clear(); - acceptedPosTrackIds_per_collision.shrink_to_fit(); - acceptedNegTrackIds_per_collision.clear(); - acceptedNegTrackIds_per_collision.shrink_to_fit(); + acceptedPosTrackIdsPerCollision.clear(); + acceptedPosTrackIdsPerCollision.shrink_to_fit(); + acceptedNegTrackIdsPerCollision.clear(); + acceptedNegTrackIdsPerCollision.shrink_to_fit(); } // end of collision loop - stored_trackIds.clear(); - stored_trackIds.shrink_to_fit(); + storedTrackIds.clear(); + storedTrackIds.shrink_to_fit(); } - PROCESS_SWITCH(skimmerPrimaryElectronFromDalitzEE, processMC, "process reconstructed and MC info ", false); + PROCESS_SWITCH(SkimmerPrimaryElectronFromDalitzEE, processMC, "process reconstructed and MC info ", false); }; -WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) +WorkflowSpec defineDataProcessing(ConfigContext const& context) { - return WorkflowSpec{adaptAnalysisTask(cfgc, TaskName{"skimmer-primary-electron-from-dalitzee"})}; + return WorkflowSpec{adaptAnalysisTask(context, TaskName{"skimmer-primary-electron-from-dalitzee"})}; } diff --git a/PWGEM/PhotonMeson/Tasks/calibTaskEmc.cxx b/PWGEM/PhotonMeson/Tasks/calibTaskEmc.cxx index 12b03c22cf4..4d096927d6e 100644 --- a/PWGEM/PhotonMeson/Tasks/calibTaskEmc.cxx +++ b/PWGEM/PhotonMeson/Tasks/calibTaskEmc.cxx @@ -73,7 +73,7 @@ using namespace o2::aod::pwgem::photon; enum QvecEstimator { FT0M = 0, - FT0A = 1, + FT0A, FT0C, TPCPos, TPCNeg, @@ -83,7 +83,7 @@ enum QvecEstimator { enum CentralityEstimator { None = 0, - CFT0A = 1, + CFT0A, CFT0C, CFT0M, NCentralityEstimators @@ -228,7 +228,7 @@ struct CalibTaskEmc { } correctionConfig; SliceCache cache; - o2::framework::Service ccdb; + o2::framework::Service ccdb{}; int runNow = 0; int runBefore = -1; @@ -246,8 +246,8 @@ struct CalibTaskEmc { HistogramRegistry registry{"registry", {}, OutputObjHandlingPolicy::AnalysisObject, false, false}; - o2::emcal::Geometry* emcalGeom; - o2::emcal::BadChannelMap* mBadChannels; + o2::emcal::Geometry* emcalGeom{}; + o2::emcal::BadChannelMap* mBadChannels{}; // Constants for eta and phi ranges for the look up table static constexpr double EtaMin = -0.75, etaMax = 0.75; static constexpr int NBinsEta = 150; // 150 bins for eta @@ -255,7 +255,7 @@ struct CalibTaskEmc { static constexpr double PhiMin = 1.35, phiMax = 5.75; static constexpr int NBinsPhi = 440; // (440 bins = 0.01 step size covering most regions) - std::array lookupTable1D; + std::array lookupTable1D{}; // Usage when cfgEnableNonLin is enabled uint8_t nColl = 1; @@ -446,7 +446,7 @@ struct CalibTaskEmc { template void fillThn(const float mass, const float pt, const float cent) { - static constexpr std::string_view HistTypes[3] = {"hSparsePi0", "hSparseBkgRot", "hSparseBkgMix"}; + static constexpr std::array HistTypes = {"hSparsePi0", "hSparseBkgRot", "hSparseBkgMix"}; registry.fill(HIST(HistTypes[histType]), mass, pt, cent); } @@ -457,7 +457,7 @@ struct CalibTaskEmc { template void fillOpeningAngleHisto(const float openingAngle, const float pt, const float cent) { - static constexpr std::string_view HistTypes[3] = {"hOpeningAngleSE", "hOpeningAngleRot", "hOpeningAngleME"}; + static constexpr std::array HistTypes = {"hOpeningAngleSE", "hOpeningAngleRot", "hOpeningAngleME"}; registry.fill(HIST(HistTypes[histType]), openingAngle, pt, cent); } @@ -504,9 +504,7 @@ struct CalibTaskEmc { int iRowLast = 24; if (emcalGeom->GetSMType(iSupMod) == o2::emcal::EMCALSMType::EMCAL_HALF) { iRowLast /= 2; // 2/3 sm case - } else if (emcalGeom->GetSMType(iSupMod) == o2::emcal::EMCALSMType::EMCAL_THIRD) { - iRowLast /= 3; // 1/3 sm case - } else if (emcalGeom->GetSMType(iSupMod) == o2::emcal::EMCALSMType::DCAL_EXT) { + } else if (emcalGeom->GetSMType(iSupMod) == o2::emcal::EMCALSMType::EMCAL_THIRD || emcalGeom->GetSMType(iSupMod) == o2::emcal::EMCALSMType::DCAL_EXT) { iRowLast /= 3; // 1/3 sm case } @@ -579,7 +577,6 @@ struct CalibTaskEmc { float massCand = meson.M(); fillThn(massCand, photonCalibValue, cent); - return; } /// \brief check if standard event cuts + FT0 occupancy + centrality + QVec good is @@ -716,7 +713,7 @@ struct CalibTaskEmc { // general event selection continue; } - if (!(eventcuts.cfgFT0COccupancyMin <= c1.ft0cOccupancyInTimeRange() && c1.ft0cOccupancyInTimeRange() < eventcuts.cfgFT0COccupancyMax) || !(eventcuts.cfgFT0COccupancyMin <= c2.ft0cOccupancyInTimeRange() && c2.ft0cOccupancyInTimeRange() < eventcuts.cfgFT0COccupancyMax)) { + if (!(eventcuts.cfgFT0COccupancyMin <= c1.ft0cOccupancyInTimeRange()) || !(c1.ft0cOccupancyInTimeRange() < eventcuts.cfgFT0COccupancyMax) || !(eventcuts.cfgFT0COccupancyMin <= c2.ft0cOccupancyInTimeRange()) || !(c2.ft0cOccupancyInTimeRange() < eventcuts.cfgFT0COccupancyMax)) { // occupancy selection continue; } @@ -739,7 +736,7 @@ struct CalibTaskEmc { continue; } // Cut edge clusters away, similar to rotation method to ensure same acceptance is used - if (cfgDistanceToEdge.value) { + if (cfgDistanceToEdge.value > 0) { if (checkEtaPhi1D(g1.eta(), RecoDecay::constrainAngle(g1.phi())) >= cfgEMCalMapLevelBackground.value) { continue; } @@ -819,7 +816,7 @@ struct CalibTaskEmc { } // Cut edge clusters away, similar to rotation method to ensure same acceptance is used - if (cfgDistanceToEdge.value) { + if (cfgDistanceToEdge.value > 0) { if (checkEtaPhi1D(g1.eta(), RecoDecay::constrainAngle(g1.phi())) >= cfgEMCalMapLevelSameEvent.value) { continue; } @@ -889,7 +886,7 @@ struct CalibTaskEmc { // general event selection continue; } - if (!(eventcuts.cfgFT0COccupancyMin <= c1.ft0cOccupancyInTimeRange() && c1.ft0cOccupancyInTimeRange() < eventcuts.cfgFT0COccupancyMax) || !(eventcuts.cfgFT0COccupancyMin <= c2.ft0cOccupancyInTimeRange() && c2.ft0cOccupancyInTimeRange() < eventcuts.cfgFT0COccupancyMax)) { + if (!(eventcuts.cfgFT0COccupancyMin <= c1.ft0cOccupancyInTimeRange()) || !(c1.ft0cOccupancyInTimeRange() < eventcuts.cfgFT0COccupancyMax) || !(eventcuts.cfgFT0COccupancyMin <= c2.ft0cOccupancyInTimeRange()) || !(c2.ft0cOccupancyInTimeRange() < eventcuts.cfgFT0COccupancyMax)) { // occupancy selection continue; } @@ -908,7 +905,7 @@ struct CalibTaskEmc { continue; } // Cut edge clusters away, similar to rotation method to ensure same acceptance is used - if (cfgDistanceToEdge.value) { + if (cfgDistanceToEdge.value > 0) { if (checkEtaPhi1D(g1.eta(), RecoDecay::constrainAngle(g1.phi())) >= cfgEMCalMapLevelBackground.value) { continue; } @@ -1035,7 +1032,7 @@ struct CalibTaskEmc { // general event selection continue; } - if (!(eventcuts.cfgFT0COccupancyMin <= c1.ft0cOccupancyInTimeRange() && c1.ft0cOccupancyInTimeRange() < eventcuts.cfgFT0COccupancyMax) || !(eventcuts.cfgFT0COccupancyMin <= c2.ft0cOccupancyInTimeRange() && c2.ft0cOccupancyInTimeRange() < eventcuts.cfgFT0COccupancyMax)) { + if (!(eventcuts.cfgFT0COccupancyMin <= c1.ft0cOccupancyInTimeRange()) || !(c1.ft0cOccupancyInTimeRange() < eventcuts.cfgFT0COccupancyMax) || !(eventcuts.cfgFT0COccupancyMin <= c2.ft0cOccupancyInTimeRange()) || !(c2.ft0cOccupancyInTimeRange() < eventcuts.cfgFT0COccupancyMax)) { // occupancy selection continue; } @@ -1092,7 +1089,7 @@ struct CalibTaskEmc { }; // End struct CalibTaskEmc -WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) +WorkflowSpec defineDataProcessing(ConfigContext const& context) { - return WorkflowSpec{adaptAnalysisTask(cfgc)}; + return WorkflowSpec{adaptAnalysisTask(context)}; }