Skip to content

Commit e7e45b9

Browse files
committed
updates with final option
1 parent 249b3c1 commit e7e45b9

File tree

2 files changed

+58
-635
lines changed

2 files changed

+58
-635
lines changed

PWGHF/TableProducer/trackIndexSkimCreator.cxx

Lines changed: 58 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -21,23 +21,13 @@
2121
/// \author Federica Zanone <federica.zanone@cern.ch>, Heidelberg University
2222
/// \author Ruiqi Yin <ruiqi.yin@cern.ch>, Fudan University
2323

24-
#include <algorithm> // std::find
25-
#include <iterator> // std::distance
26-
#include <string> // std::string
27-
#include <vector> // std::vector
28-
29-
#include "CommonConstants/PhysicsConstants.h"
30-
#include "CCDB/BasicCCDBManager.h" // for PV refit
31-
#include "DataFormatsParameters/GRPMagField.h" // for PV refit
32-
#include "DataFormatsParameters/GRPObject.h" // for PV refit
33-
#include "DCAFitter/DCAFitterN.h"
34-
#include "DetectorsBase/Propagator.h" // for PV refit
35-
#include "DetectorsVertexing/PVertexer.h" // for PV refit
36-
#include "Framework/AnalysisTask.h"
37-
#include "Framework/HistogramRegistry.h"
38-
#include "Framework/runDataProcessing.h"
39-
#include "ReconstructionDataFormats/V0.h"
40-
#include "ReconstructionDataFormats/Vertex.h" // for PV refit
24+
#include "PWGHF/Core/CentralityEstimation.h"
25+
#include "PWGHF/Core/SelectorCuts.h"
26+
#include "PWGHF/DataModel/CandidateReconstructionTables.h"
27+
#include "PWGHF/Utils/utilsAnalysis.h"
28+
#include "PWGHF/Utils/utilsBfieldCCDB.h"
29+
#include "PWGHF/Utils/utilsEvSelHf.h"
30+
#include "PWGLF/DataModel/LFStrangenessTables.h"
4131

4232
#include "Common/Core/TrackSelectorPID.h"
4333
#include "Common/Core/trackUtilities.h"
@@ -47,14 +37,23 @@
4737
#include "Common/DataModel/TrackSelectionTables.h"
4838
#include "Tools/ML/MlResponse.h"
4939

50-
#include "PWGLF/DataModel/LFStrangenessTables.h"
40+
#include "CCDB/BasicCCDBManager.h" // for PV refit
41+
#include "CommonConstants/PhysicsConstants.h"
42+
#include "DCAFitter/DCAFitterN.h"
43+
#include "DataFormatsParameters/GRPMagField.h" // for PV refit
44+
#include "DataFormatsParameters/GRPObject.h" // for PV refit
45+
#include "DetectorsBase/Propagator.h" // for PV refit
46+
#include "DetectorsVertexing/PVertexer.h" // for PV refit
47+
#include "Framework/AnalysisTask.h"
48+
#include "Framework/HistogramRegistry.h"
49+
#include "Framework/runDataProcessing.h"
50+
#include "ReconstructionDataFormats/V0.h"
51+
#include "ReconstructionDataFormats/Vertex.h" // for PV refit
5152

52-
#include "PWGHF/Core/CentralityEstimation.h"
53-
#include "PWGHF/Core/SelectorCuts.h"
54-
#include "PWGHF/DataModel/CandidateReconstructionTables.h"
55-
#include "PWGHF/Utils/utilsAnalysis.h"
56-
#include "PWGHF/Utils/utilsBfieldCCDB.h"
57-
#include "PWGHF/Utils/utilsEvSelHf.h"
53+
#include <algorithm> // std::find
54+
#include <iterator> // std::distance
55+
#include <string> // std::string
56+
#include <vector> // std::vector
5857

5958
using namespace o2;
6059
using namespace o2::analysis;
@@ -108,7 +107,7 @@ struct HfTrackIndexSkimCreatorTagSelCollisions {
108107

109108
void init(InitContext const&)
110109
{
111-
std::array<int, 6> doProcess = {doprocessTrigAndCentFT0ASel, doprocessTrigAndCentFT0CSel, doprocessTrigAndCentFT0MSel, doprocessTrigAndCentFV0ASel, doprocessTrigSel, doprocessNoTrigSel};
110+
std::array<int, 7> doProcess = {doprocessTrigAndCentFT0ASel, doprocessTrigAndCentFT0CSel, doprocessTrigAndCentFT0MSel, doprocessTrigAndCentFV0ASel, doprocessTrigSel, doprocessNoTrigSel, doprocessUpcSel};
112111
if (std::accumulate(doProcess.begin(), doProcess.end(), 0) != 1) {
113112
LOGP(fatal, "One and only one process function for collision selection can be enabled at a time!");
114113
}
@@ -132,11 +131,19 @@ struct HfTrackIndexSkimCreatorTagSelCollisions {
132131

133132
/// Collision selection
134133
/// \param collision collision table with
135-
template <bool applyTrigSel, o2::hf_centrality::CentralityEstimator centEstimator, typename Col, typename BCs>
136-
void selectCollision(const Col& collision, const BCs&)
134+
template <bool applyTrigSel, bool applyUPCSel, o2::hf_centrality::CentralityEstimator centEstimator, typename Col, typename BCsType>
135+
void selectCollision(const Col& collision, const BCsType& bcs)
137136
{
138137
float centrality = -1.;
139-
const auto rejectionMask = hfEvSel.getHfCollisionRejectionMask<applyTrigSel, centEstimator, BCs>(collision, centrality, ccdb, registry);
138+
uint32_t rejectionMask;
139+
140+
if constexpr (applyUPCSel) {
141+
rejectionMask = hfEvSel.getHfCollisionRejectionMaskWithUPC<applyTrigSel, centEstimator, BCsType>(
142+
collision, centrality, ccdb, registry, bcs);
143+
} else {
144+
rejectionMask = hfEvSel.getHfCollisionRejectionMask<applyTrigSel, centEstimator, BCsType>(
145+
collision, centrality, ccdb, registry);
146+
}
140147

141148
if (fillHistograms) {
142149
hfEvSel.fillHistograms(collision, rejectionMask, centrality);
@@ -155,46 +162,54 @@ struct HfTrackIndexSkimCreatorTagSelCollisions {
155162
}
156163

157164
/// Event selection with trigger and FT0A centrality selection
158-
void processTrigAndCentFT0ASel(soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0As>::iterator const& collision, aod::BCsWithTimestamps const& bcs)
165+
void
166+
processTrigAndCentFT0ASel(soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0As>::iterator const& collision, aod::BCFullInfos const& bcs)
159167
{
160-
selectCollision<true, CentralityEstimator::FT0A>(collision, bcs);
168+
selectCollision<true, false, CentralityEstimator::FT0A>(collision, bcs);
161169
}
162170
PROCESS_SWITCH(HfTrackIndexSkimCreatorTagSelCollisions, processTrigAndCentFT0ASel, "Use trigger and centrality selection with FT0A", false);
163171

164172
/// Event selection with trigger and FT0C centrality selection
165-
void processTrigAndCentFT0CSel(soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Cs>::iterator const& collision, aod::BCsWithTimestamps const& bcs)
173+
void processTrigAndCentFT0CSel(soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Cs>::iterator const& collision, aod::BCFullInfos const& bcs)
166174
{
167-
selectCollision<true, CentralityEstimator::FT0C>(collision, bcs);
175+
selectCollision<true, false, CentralityEstimator::FT0C>(collision, bcs);
168176
}
169177
PROCESS_SWITCH(HfTrackIndexSkimCreatorTagSelCollisions, processTrigAndCentFT0CSel, "Use trigger and centrality selection with FT0C", false);
170178

171179
/// Event selection with trigger and FT0M centrality selection
172-
void processTrigAndCentFT0MSel(soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Ms>::iterator const& collision, aod::BCsWithTimestamps const& bcs)
180+
void processTrigAndCentFT0MSel(soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Ms>::iterator const& collision, aod::BCFullInfos const& bcs)
173181
{
174-
selectCollision<true, CentralityEstimator::FT0M>(collision, bcs);
182+
selectCollision<true, false, CentralityEstimator::FT0M>(collision, bcs);
175183
}
176184
PROCESS_SWITCH(HfTrackIndexSkimCreatorTagSelCollisions, processTrigAndCentFT0MSel, "Use trigger and centrality selection with FT0M", false);
177185

178186
/// Event selection with trigger and FV0A centrality selection
179-
void processTrigAndCentFV0ASel(soa::Join<aod::Collisions, aod::EvSels, aod::CentFV0As>::iterator const& collision, aod::BCsWithTimestamps const& bcs)
187+
void processTrigAndCentFV0ASel(soa::Join<aod::Collisions, aod::EvSels, aod::CentFV0As>::iterator const& collision, aod::BCFullInfos const& bcs)
180188
{
181-
selectCollision<true, CentralityEstimator::FV0A>(collision, bcs);
189+
selectCollision<true, false, CentralityEstimator::FV0A>(collision, bcs);
182190
}
183191
PROCESS_SWITCH(HfTrackIndexSkimCreatorTagSelCollisions, processTrigAndCentFV0ASel, "Use trigger and centrality selection with FV0A", false);
184192

185193
/// Event selection with trigger selection
186-
void processTrigSel(soa::Join<aod::Collisions, aod::EvSels>::iterator const& collision, aod::BCsWithTimestamps const& bcs)
194+
void processTrigSel(soa::Join<aod::Collisions, aod::EvSels>::iterator const& collision, aod::BCFullInfos const& bcs)
187195
{
188-
selectCollision<true, CentralityEstimator::None>(collision, bcs);
196+
selectCollision<true, false, CentralityEstimator::None>(collision, bcs);
189197
}
190198
PROCESS_SWITCH(HfTrackIndexSkimCreatorTagSelCollisions, processTrigSel, "Use trigger selection", false);
191199

192200
/// Event selection without trigger selection
193-
void processNoTrigSel(aod::Collision const& collision, aod::BCsWithTimestamps const& bcs)
201+
void processNoTrigSel(aod::Collision const& collision, aod::BCFullInfos const& bcs)
194202
{
195-
selectCollision<false, CentralityEstimator::None>(collision, bcs);
203+
selectCollision<false, false, CentralityEstimator::None>(collision, bcs);
196204
}
197205
PROCESS_SWITCH(HfTrackIndexSkimCreatorTagSelCollisions, processNoTrigSel, "Do not use trigger selection", true);
206+
207+
/// Event selection with UPC
208+
void processUpcSel(soa::Join<aod::Collisions, aod::EvSels>::iterator const& collision, aod::BCFullInfos const& bcs, aod::FT0s const& /*ft0s*/, aod::FV0As const& /*fv0as*/, aod::FDDs const& /*fdds*/, aod::Zdcs const& /*zdcs*/)
209+
{
210+
selectCollision<true, true, CentralityEstimator::None>(collision, bcs);
211+
}
212+
PROCESS_SWITCH(HfTrackIndexSkimCreatorTagSelCollisions, processUpcSel, "Use upc selection", false);
198213
};
199214

200215
/// Track selection
@@ -1246,7 +1261,7 @@ struct HfTrackIndexSkimCreator {
12461261
using FilteredTrackAssocSel = soa::Filtered<soa::Join<aod::TrackAssoc, aod::HfSelTrack>>;
12471262

12481263
// filter collisions
1249-
Filter filterSelectCollisions = (aod::hf_sel_collision::whyRejectColl == static_cast<uint16_t>(0));
1264+
Filter filterSelectCollisions = (aod::hf_sel_collision::whyRejectColl == static_cast<uint32_t>(0));
12501265
// filter track indices
12511266
Filter filterSelectTrackIds = ((aod::hf_sel_track::isSelProng & static_cast<uint32_t>(BIT(CandidateType::Cand2Prong))) != 0u) || ((aod::hf_sel_track::isSelProng & static_cast<uint32_t>(BIT(CandidateType::Cand3Prong))) != 0u) || ((aod::hf_sel_track::isSelProng & static_cast<uint32_t>(BIT(CandidateType::CandDstar))) != 0u);
12521267

@@ -3058,7 +3073,7 @@ struct HfTrackIndexSkimCreatorCascades {
30583073
using SelectedCollisions = soa::Filtered<soa::Join<aod::Collisions, aod::HfSelCollision>>;
30593074
using FilteredTrackAssocSel = soa::Filtered<soa::Join<aod::TrackAssoc, aod::HfSelTrack>>;
30603075

3061-
Filter filterSelectCollisions = (aod::hf_sel_collision::whyRejectColl == static_cast<uint16_t>(0));
3076+
Filter filterSelectCollisions = (aod::hf_sel_collision::whyRejectColl == static_cast<uint32_t>(0));
30623077
Filter filterSelectTrackIds = (aod::hf_sel_track::isSelProng & static_cast<uint32_t>(BIT(CandidateType::CandV0bachelor))) != 0u && (config.applyProtonPid == false || (aod::hf_sel_track::isIdentifiedPid & static_cast<uint32_t>(BIT(ChannelsProtonPid::LcToPK0S))) != 0u);
30633078

30643079
Preslice<FilteredTrackAssocSel> trackIndicesPerCollision = aod::track_association::collisionId;
@@ -3337,7 +3352,7 @@ struct HfTrackIndexSkimCreatorLfCascades {
33373352
using CascFull = soa::Join<aod::CascDatas, aod::CascCovs>;
33383353
using V0Full = soa::Join<aod::V0Datas, aod::V0Covs>;
33393354

3340-
Filter filterSelectCollisions = (aod::hf_sel_collision::whyRejectColl == static_cast<uint16_t>(0));
3355+
Filter filterSelectCollisions = (aod::hf_sel_collision::whyRejectColl == static_cast<uint32_t>(0));
33413356
Filter filterSelectTrackIds = (aod::hf_sel_track::isSelProng & static_cast<uint32_t>(BIT(CandidateType::CandCascadeBachelor))) != 0u;
33423357

33433358
Preslice<aod::TracksWCovDca> tracksPerCollision = aod::track::collisionId; // needed for PV refit

0 commit comments

Comments
 (0)