Skip to content

Commit 4bda01b

Browse files
committed
Adding embedding for jets
1 parent 84dd4a8 commit 4bda01b

19 files changed

Lines changed: 1531 additions & 30 deletions

‎Common/DataModel/Multiplicity.h‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,8 @@ DECLARE_SOA_TABLE_VERSIONED(MultMCExtras_001, "AOD", "MULTMCEXTRA", 1, //! Table
216216
using MultMCExtras = MultMCExtras_001;
217217
using MultMCExtra = MultMCExtras::iterator;
218218
using MultsExtraMC = MultMCExtras; // for backwards compatibility with previous naming scheme
219+
template <aod::is_origin_hash O>
220+
using MultsExtraMCFrom = MultMCExtras_001From<O>;
219221

220222
// crosslinks
221223
namespace mult

‎PWGJE/Core/JetDerivedDataUtilities.h‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -653,12 +653,12 @@ bool applyTrackKinematics(T const& track, float pTMin = 0.15, float pTMax = 100.
653653
}
654654

655655
template <typename T>
656-
bool selectTrack(T const& track, int trackSelection, bool isEmbedded = false)
656+
bool selectTrack(T const& track, int trackSelection, bool rejectEmbedded = false)
657657
{
658658
if (!(track.trackSel() & (1ULL << JTrackSel::notBadMcTrack))) {
659659
return false;
660660
}
661-
if (isEmbedded && !(track.trackSel() & (1ULL << JTrackSel::embeddedTrack))) { // will get rid of non embedded tracks
661+
if (rejectEmbedded && !(track.trackSel() & (1ULL << JTrackSel::embeddedTrack))) { // will get rid of non embedded tracks
662662
return false;
663663
}
664664
if (trackSelection == -1) {

‎PWGJE/Core/JetFindingUtilities.h‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -91,10 +91,10 @@ constexpr bool isEMCALClusterTable()
9191
*/
9292

9393
template <typename T, typename U>
94-
bool isTrackSelected(T const& track, int trackSelection, const U* candidate = nullptr)
94+
bool isTrackSelected(T const& track, int trackSelection, bool rejectEmbedded = false, const U* candidate = nullptr)
9595
{
9696

97-
if (!jetderiveddatautilities::selectTrack(track, trackSelection)) {
97+
if (!jetderiveddatautilities::selectTrack(track, trackSelection, rejectEmbedded)) {
9898
return false;
9999
}
100100
if (candidate != nullptr) {
@@ -115,10 +115,10 @@ bool isTrackSelected(T const& track, int trackSelection, const U* candidate = nu
115115
*/
116116

117117
template <typename T, typename U>
118-
void analyseTracks(std::vector<fastjet::PseudoJet>& inputParticles, T const& tracks, int trackSelection, const U* candidate = nullptr)
118+
void analyseTracks(std::vector<fastjet::PseudoJet>& inputParticles, T const& tracks, int trackSelection, bool rejectEmbedded = false, const U* candidate = nullptr)
119119
{
120120
for (auto& track : tracks) {
121-
if (isTrackSelected(track, trackSelection, candidate)) {
121+
if (isTrackSelected(track, trackSelection, rejectEmbedded, candidate)) {
122122
fastjetutilities::fillTracks(track, inputParticles, track.globalIndex());
123123
}
124124
}
@@ -134,11 +134,11 @@ void analyseTracks(std::vector<fastjet::PseudoJet>& inputParticles, T const& tra
134134
*/
135135

136136
template <typename T, typename U>
137-
void analyseTracksMultipleCandidates(std::vector<fastjet::PseudoJet>& inputParticles, T const& tracks, int trackSelection, U const& candidates)
137+
void analyseTracksMultipleCandidates(std::vector<fastjet::PseudoJet>& inputParticles, T const& tracks, int trackSelection, bool rejectEmbedded, U const& candidates)
138138
{
139139
for (auto& track : tracks) {
140140
bool isSelected = true;
141-
if (!jetderiveddatautilities::selectTrack(track, trackSelection)) {
141+
if (!jetderiveddatautilities::selectTrack(track, trackSelection, rejectEmbedded)) {
142142
continue;
143143
}
144144
for (auto& candidate : candidates) {

‎PWGJE/DataModel/Jet.h‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,8 @@ DECLARE_SOA_DYNAMIC_COLUMN(P, p, //! absolute p
156156
DECLARE_JET_TABLES(JCollision, _jet_type_##EventWiseSubtracted, _subtracted_track_type_, _hfcand_type_, _shortname_ "EWSJET") \
157157
DECLARE_JETMATCHING_TABLE(_jet_type_, _jet_type_##EventWiseSubtracted, _shortname_ "JET2EWS") \
158158
DECLARE_JETMATCHING_TABLE(_jet_type_##EventWiseSubtracted, _jet_type_, _shortname_ "EWSJET2") \
159+
DECLARE_JETMATCHING_TABLE(_jet_type_##MCDetectorLevel, _jet_type_##EventWiseSubtracted, _shortname_ "DJET2EWS") \
160+
DECLARE_JETMATCHING_TABLE(_jet_type_##EventWiseSubtracted, _jet_type_##MCDetectorLevel, _shortname_ "EWSJET2D") \
159161
DECLARE_JET_TABLES(JCollision, _jet_type_##MCDetectorLevelEventWiseSubtracted, _subtracted_track_type_, _hfcand_type_, _shortname_ "DEWSJET") \
160162
DECLARE_MCEVENTWEIGHT_TABLE(_jet_type_##MCDetectorLevelEventWiseSubtracted, _jet_type_##MCDetectorLevelEventWiseSubtracted, _shortname_ "DJETEWSW") \
161163
DECLARE_JETMATCHING_TABLE(_jet_type_##MCDetectorLevel, _jet_type_##MCDetectorLevelEventWiseSubtracted, _shortname_ "DJET2DEWS") \

‎PWGJE/JetFinders/jetFinder.h‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ struct JetFinderTask {
6464
o2::framework::Configurable<std::string> triggerMasks{"triggerMasks", "", "possible JE Trigger masks: fJetChLowPt,fJetChHighPt,fTrackLowPt,fTrackHighPt,fJetD0ChLowPt,fJetD0ChHighPt,fJetLcChLowPt,fJetLcChHighPt,fEMCALReadout,fJetFullHighPt,fJetFullLowPt,fJetNeutralHighPt,fJetNeutralLowPt,fGammaVeryHighPtEMCAL,fGammaVeryHighPtDCAL,fGammaHighPtEMCAL,fGammaHighPtDCAL,fGammaLowPtEMCAL,fGammaLowPtDCAL,fGammaVeryLowPtEMCAL,fGammaVeryLowPtDCAL"};
6565
o2::framework::Configurable<bool> skipMBGapEvents{"skipMBGapEvents", true, "decide to run over MB gap events or not"};
6666
o2::framework::Configurable<bool> applyRCTSelections{"applyRCTSelections", true, "decide to apply RCT selections"};
67+
o2::framework::Configurable<bool> isEmbedding{"isEmbedding", false, "running on an embedded dataset"};
6768

6869
// track level configurables
6970
o2::framework::Configurable<float> trackPtMin{"trackPtMin", 0.15, "minimum track pT"};
@@ -207,7 +208,7 @@ struct JetFinderTask {
207208
return;
208209
}
209210
inputParticles.clear();
210-
jetfindingutilities::analyseTracks<o2::soa::Filtered<o2::aod::JetTracks>, o2::soa::Filtered<o2::aod::JetTracks>::iterator>(inputParticles, tracks, trackSelection);
211+
jetfindingutilities::analyseTracks<o2::soa::Filtered<o2::aod::JetTracks>, o2::soa::Filtered<o2::aod::JetTracks>::iterator>(inputParticles, tracks, trackSelection, isEmbedding);
211212
jetfindingutilities::findJets(jetFinder, inputParticles, jetPtMin, jetPtMax, jetRadius, jetAreaFractionMin, collision, jetsTable, constituentsTable, fillTHnSparse ? registry.get<THn>(HIST("hJet")) : std::shared_ptr<THn>(nullptr), fillTHnSparse);
212213
}
213214

@@ -220,7 +221,7 @@ struct JetFinderTask {
220221
return;
221222
}
222223
inputParticles.clear();
223-
jetfindingutilities::analyseTracks<o2::soa::Filtered<o2::aod::JetTracksSub>, o2::soa::Filtered<o2::aod::JetTracksSub>::iterator>(inputParticles, tracks, trackSelection);
224+
jetfindingutilities::analyseTracks<o2::soa::Filtered<o2::aod::JetTracksSub>, o2::soa::Filtered<o2::aod::JetTracksSub>::iterator>(inputParticles, tracks, trackSelection, isEmbedding);
224225
jetfindingutilities::findJets(jetFinder, inputParticles, jetEWSPtMin, jetEWSPtMax, jetRadius, jetAreaFractionMin, collision, jetsEvtWiseSubTable, constituentsEvtWiseSubTable, fillTHnSparse ? registry.get<THn>(HIST("hJetEWS")) : std::shared_ptr<THn>(nullptr), fillTHnSparse);
225226
}
226227

@@ -252,7 +253,7 @@ struct JetFinderTask {
252253
for (auto const& clusterDefinition : clusterDefinitionsVec) {
253254
for (auto const& hadronicCorrectionType : hadronicCorrectionTypesVec) {
254255
inputParticles.clear();
255-
jetfindingutilities::analyseTracks<o2::soa::Filtered<o2::aod::JetTracks>, o2::soa::Filtered<o2::aod::JetTracks>::iterator>(inputParticles, tracks, trackSelection);
256+
jetfindingutilities::analyseTracks<o2::soa::Filtered<o2::aod::JetTracks>, o2::soa::Filtered<o2::aod::JetTracks>::iterator>(inputParticles, tracks, trackSelection, isEmbedding);
256257
jetfindingutilities::analyseClusters(inputParticles, clusters, clusterDefinition, hadronicCorrectionType);
257258
jetfindingutilities::findJets(jetFinder, inputParticles, jetPtMin, jetPtMax, jetRadius, jetAreaFractionMin, collision, jetsTable, constituentsTable, fillTHnSparse ? registry.get<THn>(HIST("hJet")) : std::shared_ptr<THn>(nullptr), fillTHnSparse);
258259
}

‎PWGJE/JetFinders/jetFinderHF.h‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ struct JetFinderHFTask {
6565
o2::framework::Configurable<std::string> triggerMasks{"triggerMasks", "", "possible JE Trigger masks: fJetChLowPt,fJetChHighPt,fTrackLowPt,fTrackHighPt,fJetD0ChLowPt,fJetD0ChHighPt,fJetLcChLowPt,fJetLcChHighPt,fEMCALReadout,fJetFullHighPt,fJetFullLowPt,fJetNeutralHighPt,fJetNeutralLowPt,fGammaVeryHighPtEMCAL,fGammaVeryHighPtDCAL,fGammaHighPtEMCAL,fGammaHighPtDCAL,fGammaLowPtEMCAL,fGammaLowPtDCAL,fGammaVeryLowPtEMCAL,fGammaVeryLowPtDCAL"};
6666
o2::framework::Configurable<bool> skipMBGapEvents{"skipMBGapEvents", true, "decide to run over MB gap events or not"};
6767
o2::framework::Configurable<bool> applyRCTSelections{"applyRCTSelections", true, "decide to apply RCT selections"};
68+
o2::framework::Configurable<bool> isEmbedding{"isEmbedding", false, "running on an embedded dataset"};
6869

6970
// track level configurables
7071
o2::framework::Configurable<float> trackPtMin{"trackPtMin", 0.15, "minimum track pT"};
@@ -239,9 +240,9 @@ struct JetFinderHFTask {
239240
}
240241
}
241242
if constexpr (isEvtWiseSub) {
242-
jetfindingutilities::analyseTracks<U, typename U::iterator>(inputParticles, tracks, trackSelection);
243+
jetfindingutilities::analyseTracks<U, typename U::iterator>(inputParticles, tracks, trackSelection, isEmbedding);
243244
} else {
244-
jetfindingutilities::analyseTracks(inputParticles, tracks, trackSelection, &candidate);
245+
jetfindingutilities::analyseTracks(inputParticles, tracks, trackSelection, isEmbedding, &candidate);
245246
}
246247
jetfindingutilities::findJets(jetFinder, inputParticles, minJetPt, maxJetPt, jetRadius, jetAreaFractionMin, collision, jetsTableInput, constituentsTableInput, registry.get<THn>(HIST("hJet")), fillTHnSparse, true);
247248
}

‎PWGJE/JetFinders/jetFinderHFHFBar.h‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ struct JetFinderHFHFBarTask {
6565
o2::framework::Configurable<std::string> triggerMasks{"triggerMasks", "", "possible JE Trigger masks: fJetChLowPt,fJetChHighPt,fTrackLowPt,fTrackHighPt,fJetD0ChLowPt,fJetD0ChHighPt,fJetLcChLowPt,fJetLcChHighPt,fEMCALReadout,fJetFullHighPt,fJetFullLowPt,fJetNeutralHighPt,fJetNeutralLowPt,fGammaVeryHighPtEMCAL,fGammaVeryHighPtDCAL,fGammaHighPtEMCAL,fGammaHighPtDCAL,fGammaLowPtEMCAL,fGammaLowPtDCAL,fGammaVeryLowPtEMCAL,fGammaVeryLowPtDCAL"};
6666
o2::framework::Configurable<bool> skipMBGapEvents{"skipMBGapEvents", true, "decide to run over MB gap events or not"};
6767
o2::framework::Configurable<bool> applyRCTSelections{"applyRCTSelections", true, "decide to apply RCT selections"};
68+
o2::framework::Configurable<bool> isEmbedding{"isEmbedding", false, "running on an embedded dataset"};
6869

6970
// track level configurables
7071
o2::framework::Configurable<float> trackPtMin{"trackPtMin", 0.15, "minimum track pT"};
@@ -244,7 +245,7 @@ struct JetFinderHFHFBarTask {
244245
return;
245246
}
246247
}
247-
jetfindingutilities::analyseTracks(inputParticles, tracks, trackSelection, &candidate);
248+
jetfindingutilities::analyseTracks(inputParticles, tracks, trackSelection, isEmbedding, &candidate);
248249

249250
jetfindingutilities::findJets(jetFinder, inputParticles, minJetPt, maxJetPt, jetRadius, jetAreaFractionMin, collision, jetsTableInput, constituentsTableInput, registry.get<THn>(HIST("hJet")), fillTHnSparse, true);
250251
}

‎PWGJE/JetFinders/jetFinderV0.h‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ struct JetFinderV0Task {
6060
o2::framework::Configurable<std::string> triggerMasks{"triggerMasks", "", "possible JE Trigger masks: fJetChLowPt,fJetChHighPt,fTrackLowPt,fTrackHighPt,fJetD0ChLowPt,fJetD0ChHighPt,fJetLcChLowPt,fJetLcChHighPt,fEMCALReadout,fJetFullHighPt,fJetFullLowPt,fJetNeutralHighPt,fJetNeutralLowPt,fGammaVeryHighPtEMCAL,fGammaVeryHighPtDCAL,fGammaHighPtEMCAL,fGammaHighPtDCAL,fGammaLowPtEMCAL,fGammaLowPtDCAL,fGammaVeryLowPtEMCAL,fGammaVeryLowPtDCAL"};
6161
o2::framework::Configurable<bool> skipMBGapEvents{"skipMBGapEvents", true, "decide to run over MB gap events or not"};
6262
o2::framework::Configurable<bool> applyRCTSelections{"applyRCTSelections", true, "decide to apply RCT selections"};
63+
o2::framework::Configurable<bool> isEmbedding{"isEmbedding", false, "running on an embedded dataset"};
6364

6465
// track level configurables
6566
o2::framework::Configurable<float> trackPtMin{"trackPtMin", 0.15, "minimum track pT"};
@@ -208,7 +209,7 @@ struct JetFinderV0Task {
208209
}
209210
}
210211
*/
211-
jetfindingutilities::analyseTracksMultipleCandidates(inputParticles, tracks, trackSelection, candidates);
212+
jetfindingutilities::analyseTracksMultipleCandidates(inputParticles, tracks, trackSelection, isEmbedding, candidates);
212213

213214
jetfindingutilities::findJets(jetFinder, inputParticles, minJetPt, maxJetPt, jetRadius, jetAreaFractionMin, collision, jetsTableInput, constituentsTableInput, registry.get<THn>(HIST("hJet")), fillTHnSparse, saveJetsWithCandidatesOnly);
214215
}

‎PWGJE/TableProducer/CMakeLists.txt‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@ o2physics_add_dpl_workflow(jet-deriveddata-producer
1818
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::PWGJECore O2Physics::AnalysisCore O2Physics::AnalysisCCDB O2Physics::EventFilteringUtils O2Physics::SGCutParHolder
1919
COMPONENT_NAME Analysis)
2020

21+
o2physics_add_dpl_workflow(jet-deriveddata-embedding-producer
22+
SOURCES derivedDataProducerEmbedding.cxx
23+
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::PWGJECore O2Physics::AnalysisCore O2Physics::AnalysisCCDB O2Physics::EventFilteringUtils O2Physics::SGCutParHolder
24+
COMPONENT_NAME Analysis)
25+
2126
o2physics_add_dpl_workflow(jet-deriveddata-trigger-producer
2227
SOURCES derivedDataTriggerProducer.cxx
2328
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::PWGJECore O2Physics::AnalysisCore

‎PWGJE/TableProducer/Matching/CMakeLists.txt‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,4 +179,9 @@ o2physics_add_dpl_workflow(jet-matching-sub-dielectron-ch
179179
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::PWGJECore O2Physics::AnalysisCore O2::FrameworkPhysicsSupport
180180
COMPONENT_NAME Analysis)
181181

182+
o2physics_add_dpl_workflow(jet-matching-mcd-sub-ch
183+
SOURCES jetMatchingMCDSubCharged.cxx
184+
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::PWGJECore O2Physics::AnalysisCore O2::FrameworkPhysicsSupport
185+
COMPONENT_NAME Analysis)
186+
182187
endif()

0 commit comments

Comments
 (0)