Skip to content

Commit 3e91cad

Browse files
committed
Modify data creator structure
1 parent f45502d commit 3e91cad

File tree

3 files changed

+552
-159
lines changed

3 files changed

+552
-159
lines changed

PWGHF/HFC/DataModel/DerivedDataCorrelationTables.h

Lines changed: 50 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -88,27 +88,28 @@ DECLARE_SOA_TABLE(HfcRedCharmTrigs, "AOD", "HFCREDCHARMTRIG", //! Table with cha
8888
aod::hf_candidate_reduced::EtaCand,
8989
aod::hf_candidate_reduced::PtCand,
9090
aod::hf_candidate_reduced::InvMassCand,
91-
aod::hf_candidate_reduced::Prong0Id,
92-
aod::hf_candidate_reduced::Prong1Id,
93-
aod::hf_candidate_reduced::Prong2Id);
94-
95-
DECLARE_SOA_TABLE(HfcRedCharmMls, "AOD", "HFCREDCHARMML", //! Table with charm hadron candidate selection info
96-
soa::Index<>,
97-
aod::hf_candidate_reduced::HfcRedFlowCollId,
9891
aod::hf_candidate_reduced::BdtScore0,
9992
aod::hf_candidate_reduced::BdtScore1);
10093

10194
namespace hf_assoc_track_reduced
10295
{
103-
DECLARE_SOA_COLUMN(OriginTrackId, originTrackId, int); //! Original track index
104-
DECLARE_SOA_COLUMN(NTpcCrossedRows, nTpcCrossedRows, int); //! Number of crossed TPC Rows
105-
DECLARE_SOA_COLUMN(ItsClusterMap, itsClusterMap, int); //! ITS cluster map, one bit per a layer, starting from the innermost
106-
DECLARE_SOA_COLUMN(ItsNCls, itsNCls, int); //! Number of ITS clusters
107-
DECLARE_SOA_COLUMN(EtaAssocTrack, etaAssocTrack, float); //! Eta of the track
108-
DECLARE_SOA_COLUMN(PhiAssocTrack, phiAssocTrack, float); //! Phi of the track
109-
DECLARE_SOA_COLUMN(PtAssocTrack, ptAssocTrack, float); //! Pt of the track
110-
DECLARE_SOA_COLUMN(DcaXY, dcaXY, float); //! Impact parameter in XY of the track to the primary vertex
111-
DECLARE_SOA_COLUMN(DcaZ, dcaZ, float); //! Impact parameter in Z of the track to the primary vertex
96+
DECLARE_SOA_COLUMN(OriginTrackId, originTrackId, int); //! Original track index
97+
DECLARE_SOA_COLUMN(NTpcCrossedRows, nTpcCrossedRows, UChar_t); //! Number of crossed TPC Rows
98+
DECLARE_SOA_COLUMN(ItsClusterMap, itsClusterMap, UChar_t); //! ITS cluster map, one bit per a layer, starting from the innermost
99+
DECLARE_SOA_COLUMN(ItsNCls, itsNCls, UChar_t); //! Number of ITS clusters
100+
DECLARE_SOA_COLUMN(EtaAssocTrack, etaAssocTrack, float); //! Eta of the track
101+
DECLARE_SOA_COLUMN(PhiAssocTrack, phiAssocTrack, float); //! Phi of the track
102+
DECLARE_SOA_COLUMN(PtAssocTrack, ptAssocTrack, float); //! Pt of the track
103+
DECLARE_SOA_COLUMN(DcaXY, dcaXY, float); //! Impact parameter in XY of the track to the primary vertex
104+
DECLARE_SOA_COLUMN(DcaZ, dcaZ, float); //! Impact parameter in Z of the track to the primary vertex
105+
DECLARE_SOA_COLUMN(NTpcCrossedRowsTrig, nTpcCrossedRowsTrig, UChar_t); //! Number of crossed TPC Rows
106+
DECLARE_SOA_COLUMN(ItsClusterMapTrig, itsClusterMapTrig, UChar_t); //! ITS cluster map, one bit per a layer, starting from the innermost
107+
DECLARE_SOA_COLUMN(ItsNClsTrig, itsNClsTrig, UChar_t); //! Number of ITS clusters
108+
DECLARE_SOA_COLUMN(EtaAssocTrackTrig, etaAssocTrackTrig, float); //! Eta of the track
109+
DECLARE_SOA_COLUMN(PhiAssocTrackTrig, phiAssocTrackTrig, float); //! Phi of the track
110+
DECLARE_SOA_COLUMN(PtAssocTrackTrig, ptAssocTrackTrig, float); //! Pt of the track
111+
DECLARE_SOA_COLUMN(DcaXYTrig, dcaXYTrig, float); //! Impact parameter in XY of the track to the primary vertex
112+
DECLARE_SOA_COLUMN(DcaZTrig, dcaZTrig, float); //! Impact parameter in Z of the track to the primary vertex
112113
} // namespace hf_assoc_track_reduced
113114
DECLARE_SOA_TABLE(AssocTrackReds, "AOD", "ASSOCTRACKRED", //! Table with associated track info
114115
soa::Index<>,
@@ -130,14 +131,9 @@ DECLARE_SOA_TABLE(AssocTrackSels, "AOD", "ASSOCTRACKSEL", //! Table with associa
130131
DECLARE_SOA_TABLE(HfcRedTrkAssocs, "AOD", "HFCREDTRKASSOC", //! Table with associated track info
131132
soa::Index<>,
132133
aod::hf_candidate_reduced::HfcRedFlowCollId,
133-
aod::hf_assoc_track_reduced::OriginTrackId,
134134
aod::hf_assoc_track_reduced::PhiAssocTrack,
135135
aod::hf_assoc_track_reduced::EtaAssocTrack,
136-
aod::hf_assoc_track_reduced::PtAssocTrack);
137-
138-
DECLARE_SOA_TABLE(HfcRedTrkSels, "AOD", "HFCREDTRKSEL", //! Table with associated track info
139-
soa::Index<>,
140-
aod::hf_candidate_reduced::HfcRedFlowCollId,
136+
aod::hf_assoc_track_reduced::PtAssocTrack,
141137
aod::hf_assoc_track_reduced::NTpcCrossedRows,
142138
aod::hf_assoc_track_reduced::ItsClusterMap,
143139
aod::hf_assoc_track_reduced::ItsNCls,
@@ -155,6 +151,38 @@ DECLARE_SOA_COLUMN(DeltaEta, deltaEta, float);
155151
DECLARE_SOA_COLUMN(PoolBin, poolBin, int); //! Pool Bin for the MixedEvent
156152
} // namespace hf_correlation_charm_hadron_reduced
157153

154+
DECLARE_SOA_TABLE(HfcRedSEChHads, "AOD", "HFCREDSECHHAD", //! Table with Same Event Charm-Hadron pairs information
155+
aod::hf_correlation_charm_hadron_reduced::DeltaEta,
156+
aod::hf_correlation_charm_hadron_reduced::DeltaPhi,
157+
aod::hf_correlation_charm_hadron_reduced::PoolBin,
158+
aod::hf_candidate_reduced::PtCand,
159+
aod::hf_candidate_reduced::InvMassCand,
160+
aod::hf_candidate_reduced::BdtScore0,
161+
aod::hf_candidate_reduced::BdtScore1,
162+
aod::hf_assoc_track_reduced::PtAssocTrack,
163+
aod::hf_assoc_track_reduced::NTpcCrossedRows,
164+
aod::hf_assoc_track_reduced::ItsClusterMap,
165+
aod::hf_assoc_track_reduced::ItsNCls,
166+
aod::hf_assoc_track_reduced::DcaXY,
167+
aod::hf_assoc_track_reduced::DcaZ);
168+
169+
DECLARE_SOA_TABLE(HfcRedSEHadHads, "AOD", "HFCREDSEHADHAD", //! Table with Same Event Hadron-Hadron pairs information
170+
aod::hf_correlation_charm_hadron_reduced::DeltaEta,
171+
aod::hf_correlation_charm_hadron_reduced::DeltaPhi,
172+
aod::hf_correlation_charm_hadron_reduced::PoolBin,
173+
aod::hf_assoc_track_reduced::PtAssocTrackTrig,
174+
aod::hf_assoc_track_reduced::NTpcCrossedRowsTrig,
175+
aod::hf_assoc_track_reduced::ItsClusterMapTrig,
176+
aod::hf_assoc_track_reduced::ItsNClsTrig,
177+
aod::hf_assoc_track_reduced::DcaXYTrig,
178+
aod::hf_assoc_track_reduced::DcaZTrig,
179+
aod::hf_assoc_track_reduced::PtAssocTrack,
180+
aod::hf_assoc_track_reduced::NTpcCrossedRows,
181+
aod::hf_assoc_track_reduced::ItsClusterMap,
182+
aod::hf_assoc_track_reduced::ItsNCls,
183+
aod::hf_assoc_track_reduced::DcaXY,
184+
aod::hf_assoc_track_reduced::DcaZ);
185+
158186
DECLARE_SOA_TABLE(HfcRedChHads, "AOD", "HFCREDCHHAD", //! Charm-Hadron pairs information
159187
aod::hf_correlation_charm_hadron_reduced::CharmTrigId,
160188
aod::hf_correlation_charm_hadron_reduced::TrkAssocId,

PWGHF/HFC/TableProducer/correlatorFlowCharmHadronsReduced.cxx

Lines changed: 37 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,13 @@ struct HfCorrelatorFlowCharmHadronsReduced {
6767
Configurable<float> dcaZTrackMax{"dcaZTrackMax", 1., "max. track DCA Z"};
6868
Configurable<int> tpcCrossedRowsMin{"tpcCrossedRowsMin", 1, "min. TPC crossed rows"};
6969
Configurable<int> itsNClsMin{"itsNClsMin", 1, "min. ITS clusters"};
70+
Configurable<float> downSamplePairsME{"downSamplePairsME", 1., "Fraction of ME pairs to keep"};
71+
Configurable<float> ptMaxForDownSampleME{"ptMaxForDownSampleME", 10., "Maximum pt for the application of the downsampling factor"};
72+
Configurable<float> centMaxForDownSampleME{"centMaxForDownSampleME", 10., "Maximum centrality for the application of the downsampling factor"};
7073

7174
SliceCache cache;
7275

73-
using AssocTracks = soa::Filtered<soa::Join<aod::HfcRedTrkAssocs, aod::HfcRedTrkSels>>;
76+
using AssocTracks = soa::Filtered<aod::HfcRedTrkAssocs>;
7477

7578
Filter filterSelectTrackData = (nabs(aod::hf_assoc_track_reduced::dcaXY) < dcaXYTrackMax) && (nabs(aod::hf_assoc_track_reduced::dcaZ) < dcaZTrackMax) && (aod::hf_assoc_track_reduced::nTpcCrossedRows > tpcCrossedRowsMin) && (aod::hf_assoc_track_reduced::itsNCls > itsNClsMin);
7679

@@ -211,20 +214,21 @@ struct HfCorrelatorFlowCharmHadronsReduced {
211214
return poolBin;
212215
}
213216

214-
/// Reject daughter-track pairs and same-track pairs
215-
/// \param cand is the trigger candidate
216-
/// \param track is the associated track
217-
template <typename TTrigPart, typename TTrack>
218-
bool rejSameEvtPair(const TTrigPart& cand, const TTrack& track)
219-
{
220-
if constexpr (requires { cand.originTrackId(); }) {
221-
// Remove same track pairs for Had-Had correlations
222-
return (cand.originTrackId() == track.originTrackId());
223-
} else {
224-
// Remove pairs with 2- and 3-prong daughters (prong2Id returns -1 for 2-prongs)
225-
return ((cand.prong0Id() == track.originTrackId()) || (cand.prong1Id() == track.originTrackId()) || (cand.prong2Id() == track.originTrackId()));
226-
}
227-
}
217+
// /// Reject daughter-track pairs and same-track pairs
218+
// /// \param cand is the trigger candidate
219+
// /// \param track is the associated track
220+
// template <typename TTrigPart, typename TTrack>
221+
// bool rejSameEvtPair(const TTrigPart& cand, const TTrack& track)
222+
// {
223+
// if constexpr (requires { cand.originTrackId(); }) {
224+
// // Remove same track pairs for Had-Had correlations
225+
// return (cand.originTrackId() == track.originTrackId());
226+
// } else {
227+
// return false;
228+
// // Remove pairs with 2- and 3-prong daughters (prong2Id returns -1 for 2-prongs)
229+
// // return ((cand.prong0Id() == track.originTrackId()) || (cand.prong1Id() == track.originTrackId()) || (cand.prong2Id() == track.originTrackId()));
230+
// }
231+
// }
228232

229233
/// Slice trigger candidates by collision
230234
/// \param cands are the trigger candidates
@@ -251,7 +255,8 @@ struct HfCorrelatorFlowCharmHadronsReduced {
251255
double deltaEta = getEta(assocTrack) - getEta(trigCand);
252256
double deltaPhi = RecoDecay::constrainAngle(getPhi(assocTrack) - getPhi(trigCand), -o2::constants::math::PIHalf);
253257
if (fillTables) {
254-
entryCharmHadPair(trigCand.globalIndex(), assocTrack.globalIndex(), deltaEta, deltaPhi, poolBin);
258+
entryCharmHadPair(-1, -1, deltaEta, deltaPhi, poolBin);
259+
// entryCharmHadPair(trigCand.globalIndex(), assocTrack.globalIndex(), deltaEta, deltaPhi, poolBin);
255260
}
256261
if (fillSparses) {
257262
if constexpr (isMixedEvent) {
@@ -278,7 +283,8 @@ struct HfCorrelatorFlowCharmHadronsReduced {
278283
double deltaEta = getEta(assocTrack) - getEta(trigCand);
279284
double deltaPhi = RecoDecay::constrainAngle(getPhi(assocTrack) - getPhi(trigCand), -o2::constants::math::PIHalf);
280285
if (fillTables) {
281-
entryHadHadPair(trigCand.globalIndex(), assocTrack.globalIndex(), deltaEta, deltaPhi, poolBin);
286+
// entryHadHadPair(trigCand.globalIndex(), assocTrack.globalIndex(), deltaEta, deltaPhi, poolBin);
287+
entryHadHadPair(-1, -1, deltaEta, deltaPhi, poolBin);
282288
}
283289
if (fillSparses) {
284290
if constexpr (isMixedEvent) {
@@ -314,9 +320,9 @@ struct HfCorrelatorFlowCharmHadronsReduced {
314320
registry.fill(HIST("hPhiVsPtTrig"), RecoDecay::constrainAngle(getPhi(trigCand), -o2::constants::math::PIHalf), getPt(trigCand));
315321
registry.fill(HIST("hEtaVsPtTrig"), getEta(trigCand), getPt(trigCand));
316322
for (const auto& assocTrack : assocTracksThisColl) {
317-
if (rejSameEvtPair(trigCand, assocTrack)) {
318-
continue;
319-
}
323+
// if (rejSameEvtPair(trigCand, assocTrack)) {
324+
// continue;
325+
// }
320326
double deltaEta = getEta(assocTrack) - getEta(trigCand);
321327
if (std::abs(deltaEta) < deltaEtaAbsMin || std::abs(deltaEta) > deltaEtaAbsMax) {
322328
continue;
@@ -385,6 +391,13 @@ struct HfCorrelatorFlowCharmHadronsReduced {
385391
if (std::abs(deltaEta) < deltaEtaAbsMin || std::abs(deltaEta) > deltaEtaAbsMax) {
386392
continue;
387393
}
394+
if (downSamplePairsME < 1.) {
395+
float pseudoRndm = getPt(assocTrack) * 1000. - static_cast<int64_t>(getPt(assocTrack) * 1000);
396+
if (getPt(trigCand) < ptMaxForDownSampleME && trigColl.centrality() < centMaxForDownSampleME &&
397+
assocColl.centrality() < centMaxForDownSampleME && pseudoRndm >= downSamplePairsME) {
398+
continue;
399+
}
400+
}
388401
// LOGF(info, "Mixed event tracks pair: (%d, %d) from events (%d, %d), track event: (%d, %d)", trigCand.index(), assocTrack.index(), trigColl.index(), assocColl.index(), trigCand.hfcRedFlowCollId(), assocTrack.hfcRedFlowCollId());
389402
if constexpr (std::is_same_v<TTrigCands, AssocTracks>) {
390403
fillHadHadInfo<true>(trigCand, assocTrack, poolBinCharm);
@@ -396,7 +409,7 @@ struct HfCorrelatorFlowCharmHadronsReduced {
396409
}
397410

398411
void processSameEventCharmHadWCentMix(aod::HfcRedFlowColls const& collisions,
399-
soa::Join<aod::HfcRedCharmTrigs, aod::HfcRedCharmMls> const& candidates,
412+
aod::HfcRedCharmTrigs const& candidates,
400413
AssocTracks const& tracks)
401414
{
402415
ColumnBinningPolicy<aod::hf_collisions_reduced::PosZ, aod::hf_collisions_reduced::Centrality> corrBinningCent{{zPoolBins, centPoolBins}, true};
@@ -405,7 +418,7 @@ struct HfCorrelatorFlowCharmHadronsReduced {
405418
PROCESS_SWITCH(HfCorrelatorFlowCharmHadronsReduced, processSameEventCharmHadWCentMix, "Process Same Event for Charm-Had with centrality pools", true);
406419

407420
void processSameEventCharmHadWMultMix(aod::HfcRedFlowColls const& collisions,
408-
soa::Join<aod::HfcRedCharmTrigs, aod::HfcRedCharmMls> const& candidates,
421+
aod::HfcRedCharmTrigs const& candidates,
409422
AssocTracks const& tracks)
410423
{
411424
ColumnBinningPolicy<aod::hf_collisions_reduced::PosZ, aod::hf_collisions_reduced::Multiplicity> corrBinningMult{{zPoolBins, multPoolBins}, true};
@@ -414,7 +427,7 @@ struct HfCorrelatorFlowCharmHadronsReduced {
414427
PROCESS_SWITCH(HfCorrelatorFlowCharmHadronsReduced, processSameEventCharmHadWMultMix, "Process Same Event for Charm-Had with multiplicity pools", false);
415428

416429
void processMixedEventCharmHadWCentMix(aod::HfcRedFlowColls const& collisions,
417-
soa::Join<aod::HfcRedCharmTrigs, aod::HfcRedCharmMls> const& candidates,
430+
aod::HfcRedCharmTrigs const& candidates,
418431
AssocTracks const& tracks)
419432
{
420433
ColumnBinningPolicy<aod::hf_collisions_reduced::PosZ, aod::hf_collisions_reduced::Centrality> corrBinningCent{{zPoolBins, centPoolBins}, true};
@@ -423,7 +436,7 @@ struct HfCorrelatorFlowCharmHadronsReduced {
423436
PROCESS_SWITCH(HfCorrelatorFlowCharmHadronsReduced, processMixedEventCharmHadWCentMix, "Process Mixed Event for Charm-Had with centrality pools", false);
424437

425438
void processMixedEventCharmHadWMultMix(aod::HfcRedFlowColls const& collisions,
426-
soa::Join<aod::HfcRedCharmTrigs, aod::HfcRedCharmMls> const& candidates,
439+
aod::HfcRedCharmTrigs const& candidates,
427440
AssocTracks const& tracks)
428441
{
429442
ColumnBinningPolicy<aod::hf_collisions_reduced::PosZ, aod::hf_collisions_reduced::Multiplicity> corrBinningMult{{zPoolBins, multPoolBins}, true};

0 commit comments

Comments
 (0)