Skip to content

Commit

Permalink
[PWGJE] refactoring the derived data writer (AliceO2Group#9693)
Browse files Browse the repository at this point in the history
  • Loading branch information
nzardosh authored Feb 6, 2025
1 parent c6a5b23 commit 7d73e3f
Show file tree
Hide file tree
Showing 15 changed files with 759 additions and 1,416 deletions.
24 changes: 12 additions & 12 deletions PWGJE/Core/JetCandidateUtilities.h
Original file line number Diff line number Diff line change
Expand Up @@ -373,42 +373,42 @@ float getCandidateInvariantMass(T const& candidate)
}

template <typename T, typename U, typename V>
void fillCandidateCollisionTable(T const& collision, U const& /*candidates*/, V& CandiateCollisionTable, int32_t& CandidateCollisionTableIndex)
void fillCandidateCollisionTable(T const& collision, U const& /*candidates*/, V& CandiateCollisionTable)
{
if constexpr (jethfutilities::isHFTable<U>()) {
jethfutilities::fillHFCollisionTable(collision, CandiateCollisionTable, CandidateCollisionTableIndex);
jethfutilities::fillHFCollisionTable(collision, CandiateCollisionTable);
} else if constexpr (jetdqutilities::isDielectronTable<U>()) {
jetdqutilities::fillDielectronCollisionTable(collision, CandiateCollisionTable, CandidateCollisionTableIndex); // if more dilepton tables are added we would need a fillDQCollisionTable
jetdqutilities::fillDielectronCollisionTable(collision, CandiateCollisionTable); // if more dilepton tables are added we would need a fillDQCollisionTable
}
}

template <typename T, typename U, typename V>
void fillCandidateMcCollisionTable(T const& mcCollision, U const& /*candidates*/, V& CandiateMcCollisionTable, int32_t& CandidateMcCollisionTableIndex)
void fillCandidateMcCollisionTable(T const& mcCollision, U const& /*candidates*/, V& CandiateMcCollisionTable)
{
if constexpr (jethfutilities::isHFMcTable<U>()) {
jethfutilities::fillHFMcCollisionTable(mcCollision, CandiateMcCollisionTable, CandidateMcCollisionTableIndex);
jethfutilities::fillHFMcCollisionTable(mcCollision, CandiateMcCollisionTable);
} else if constexpr (jetdqutilities::isDielectronMcTable<U>()) {
jetdqutilities::fillDielectronMcCollisionTable(mcCollision, CandiateMcCollisionTable, CandidateMcCollisionTableIndex);
jetdqutilities::fillDielectronMcCollisionTable(mcCollision, CandiateMcCollisionTable);
}
}

template <bool isMc, typename T, typename U, typename V, typename M, typename N, typename O, typename P, typename Q, typename S>
void fillCandidateTable(T const& candidate, int32_t collisionIndex, U& BaseTable, V& HFParTable, M& HFParETable, N& HFParDaughterTable, O& HFSelectionFlagTable, P& HFMlTable, Q& HFMlDaughterTable, S& HFMCDTable, int32_t& candidateTableIndex)
void fillCandidateTable(T const& candidate, int32_t collisionIndex, U& BaseTable, V& HFParTable, M& HFParETable, N& HFParDaughterTable, O& HFSelectionFlagTable, P& HFMlTable, Q& HFMlDaughterTable, S& HFMCDTable)
{
if constexpr (jethfutilities::isHFCandidate<T>()) {
jethfutilities::fillHFCandidateTable<isMc>(candidate, collisionIndex, BaseTable, HFParTable, HFParETable, HFParDaughterTable, HFSelectionFlagTable, HFMlTable, HFMlDaughterTable, HFMCDTable, candidateTableIndex);
jethfutilities::fillHFCandidateTable<isMc>(candidate, collisionIndex, BaseTable, HFParTable, HFParETable, HFParDaughterTable, HFSelectionFlagTable, HFMlTable, HFMlDaughterTable, HFMCDTable);
} else if constexpr (jetdqutilities::isDielectronCandidate<T>()) {
jetdqutilities::fillDielectronCandidateTable(candidate, collisionIndex, BaseTable, candidateTableIndex);
jetdqutilities::fillDielectronCandidateTable(candidate, collisionIndex, BaseTable);
}
}

template <typename T, typename U>
void fillCandidateMcTable(T const& candidate, int32_t mcCollisionIndex, U& BaseMcTable, int32_t& candidateTableIndex)
void fillCandidateMcTable(T const& candidate, int32_t mcCollisionIndex, U& BaseMcTable)
{
if constexpr (jethfutilities::isHFMcCandidate<T>()) {
jethfutilities::fillHFCandidateMcTable(candidate, mcCollisionIndex, BaseMcTable, candidateTableIndex);
jethfutilities::fillHFCandidateMcTable(candidate, mcCollisionIndex, BaseMcTable);
} else if constexpr (jetdqutilities::isDielectronMcCandidate<T>()) {
jetdqutilities::fillDielectronCandidateMcTable(candidate, mcCollisionIndex, BaseMcTable, candidateTableIndex);
jetdqutilities::fillDielectronCandidateMcTable(candidate, mcCollisionIndex, BaseMcTable);
}
}

Expand Down
12 changes: 4 additions & 8 deletions PWGJE/Core/JetDQUtilities.h
Original file line number Diff line number Diff line change
Expand Up @@ -312,31 +312,27 @@ uint8_t setDielectronParticleDecayBit(T const& particles, U const& particle)
}

template <typename T, typename U>
void fillDielectronCollisionTable(T const& collision, U& DielectronCollisionTable, int32_t& DielectronCollisionTableIndex)
void fillDielectronCollisionTable(T const& collision, U& DielectronCollisionTable)
{
DielectronCollisionTable(collision.tag_raw(), collision.runNumber(), collision.posX(), collision.posY(), collision.posZ(), collision.numContrib(), collision.collisionTime(), collision.collisionTimeRes());
DielectronCollisionTableIndex = DielectronCollisionTable.lastIndex();
}

template <typename T, typename U>
void fillDielectronMcCollisionTable(T const& mcCollision, U& DielectronMcCollisionTable, int32_t& DielectronMcCollisionTableIndex)
void fillDielectronMcCollisionTable(T const& mcCollision, U& DielectronMcCollisionTable)
{
DielectronMcCollisionTable(mcCollision.posX(), mcCollision.posY(), mcCollision.posZ());
DielectronMcCollisionTableIndex = DielectronMcCollisionTable.lastIndex();
}

template <typename T, typename U>
void fillDielectronCandidateTable(T const& candidate, int32_t collisionIndex, U& DielectronTable, int32_t& DielectronCandidateTableIndex)
void fillDielectronCandidateTable(T const& candidate, int32_t collisionIndex, U& DielectronTable)
{
DielectronTable(collisionIndex, candidate.mass(), candidate.pt(), candidate.eta(), candidate.phi(), candidate.sign(), candidate.filterMap_raw(), candidate.mcDecision());
DielectronCandidateTableIndex = DielectronTable.lastIndex();
}

template <typename T, typename U>
void fillDielectronCandidateMcTable(T const& candidate, int32_t mcCollisionIndex, U& DielectronMcTable, int32_t& DielectronCandidateTableIndex)
void fillDielectronCandidateMcTable(T const& candidate, int32_t mcCollisionIndex, U& DielectronMcTable)
{
DielectronMcTable(mcCollisionIndex, candidate.pt(), candidate.eta(), candidate.phi(), candidate.y(), candidate.e(), candidate.m(), candidate.pdgCode(), candidate.getGenStatusCode(), candidate.getHepMCStatusCode(), candidate.isPhysicalPrimary(), candidate.decayFlag(), candidate.origin());
DielectronCandidateTableIndex = DielectronMcTable.lastIndex();
}

}; // namespace jetdqutilities
Expand Down
12 changes: 4 additions & 8 deletions PWGJE/Core/JetHFUtilities.h
Original file line number Diff line number Diff line change
Expand Up @@ -481,17 +481,15 @@ float getHFCandidateInvariantMass(T const& candidate)
}

template <typename T, typename U>
void fillHFCollisionTable(T const& collision, U& HFCollisionTable, int32_t& HFCollisionTableIndex)
void fillHFCollisionTable(T const& collision, U& HFCollisionTable)
{
HFCollisionTable(collision.posX(), collision.posY(), collision.posZ(), collision.numContrib(), collision.centFT0A(), collision.centFT0C(), collision.centFT0M(), collision.centFV0A(), collision.multZeqNTracksPV());
HFCollisionTableIndex = HFCollisionTable.lastIndex();
}

template <typename T, typename U>
void fillHFMcCollisionTable(T const& mcCollision, U& HFMcCollisionTable, int32_t& HFMcCollisionTableIndex)
void fillHFMcCollisionTable(T const& mcCollision, U& HFMcCollisionTable)
{
HFMcCollisionTable(mcCollision.posX(), mcCollision.posY(), mcCollision.posZ(), mcCollision.centFT0M());
HFMcCollisionTableIndex = HFMcCollisionTable.lastIndex();
}

template <bool isMc, typename T, typename U, typename V, typename M, typename N>
Expand Down Expand Up @@ -706,10 +704,9 @@ void fillBplusCandidateTable(T const& candidate, U& BplusParTable, V& BplusParET
}

template <bool isMc, typename T, typename U, typename V, typename M, typename N, typename O, typename P, typename Q, typename S>
void fillHFCandidateTable(T const& candidate, int32_t collisionIndex, U& HFBaseTable, V& HFParTable, M& HFParETable, N& HFParDaughterTable, O& HFSelectionFlagTable, P& HFMlTable, Q& HFMlDaughterTable, S& HFMCDTable, int32_t& HFCandidateTableIndex)
void fillHFCandidateTable(T const& candidate, int32_t collisionIndex, U& HFBaseTable, V& HFParTable, M& HFParETable, N& HFParDaughterTable, O& HFSelectionFlagTable, P& HFMlTable, Q& HFMlDaughterTable, S& HFMCDTable)
{
HFBaseTable(collisionIndex, candidate.pt(), candidate.eta(), candidate.phi(), candidate.m(), candidate.y());
HFCandidateTableIndex = HFBaseTable.lastIndex();
HFSelectionFlagTable(candidate.candidateSelFlag());

if constexpr (isD0Candidate<T>()) {
Expand All @@ -724,10 +721,9 @@ void fillHFCandidateTable(T const& candidate, int32_t collisionIndex, U& HFBaseT
}

template <typename T, typename U>
void fillHFCandidateMcTable(T const& candidate, int32_t mcCollisionIndex, U& BaseMcTable, int32_t& candidateTableIndex)
void fillHFCandidateMcTable(T const& candidate, int32_t mcCollisionIndex, U& BaseMcTable)
{
BaseMcTable(mcCollisionIndex, candidate.pt(), candidate.eta(), candidate.phi(), candidate.y(), candidate.flagMcMatchGen(), candidate.originMcGen());
candidateTableIndex = BaseMcTable.lastIndex();
}

}; // namespace jethfutilities
Expand Down
39 changes: 39 additions & 0 deletions PWGJE/DataModel/JetReducedDataSelector.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
// All rights not expressly granted are reserved.
//
// This software is distributed under the terms of the GNU General Public
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
//
// In applying this license CERN does not waive the privileges and immunities
// granted to it by virtue of its status as an Intergovernmental Organization
// or submit itself to any jurisdiction.

///
/// \brief Table definitions for selectors for writing out reduced data model for jets
///
/// \author Nima Zardoshti <[email protected]>

#ifndef PWGJE_DATAMODEL_JETREDUCEDDATASELECTOR_H_
#define PWGJE_DATAMODEL_JETREDUCEDDATASELECTOR_H_

#include <cmath>
#include <vector>
#include "Framework/AnalysisDataModel.h"

namespace o2::aod
{
namespace jetreduceddataselector
{
DECLARE_SOA_COLUMN(IsCollisionSelected, isCollisionSelected, bool);
DECLARE_SOA_COLUMN(IsMcCollisionSelected, isMcCollisionSelected, bool);

} // namespace jetreduceddataselector
DECLARE_SOA_TABLE(JCollisionSelections, "AOD", "JCOLLSELECTION",
jetreduceddataselector::IsCollisionSelected);

DECLARE_SOA_TABLE(JMcCollisionSelections, "AOD", "JMCCOLLSELECTION",
jetreduceddataselector::IsMcCollisionSelected);
} // namespace o2::aod

#endif // PWGJE_DATAMODEL_JETREDUCEDDATASELECTOR_H_
29 changes: 2 additions & 27 deletions PWGJE/TableProducer/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,33 +23,8 @@ o2physics_add_dpl_workflow(jet-deriveddata-trigger-producer
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::PWGJECore O2Physics::AnalysisCore
COMPONENT_NAME Analysis)

o2physics_add_dpl_workflow(jet-deriveddata-producer-dummy
SOURCES derivedDataProducerDummy.cxx
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::PWGJECore O2Physics::AnalysisCore
COMPONENT_NAME Analysis)

o2physics_add_dpl_workflow(jet-deriveddata-producer-dummy-charged
SOURCES derivedDataProducerDummyCharged.cxx
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::PWGJECore O2Physics::AnalysisCore
COMPONENT_NAME Analysis)

o2physics_add_dpl_workflow(jet-deriveddata-producer-dummy-d0
SOURCES derivedDataProducerDummyD0.cxx
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::PWGJECore O2Physics::AnalysisCore
COMPONENT_NAME Analysis)

o2physics_add_dpl_workflow(jet-deriveddata-producer-dummy-lc
SOURCES derivedDataProducerDummyLc.cxx
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::PWGJECore O2Physics::AnalysisCore
COMPONENT_NAME Analysis)

o2physics_add_dpl_workflow(jet-deriveddata-producer-dummy-bplus
SOURCES derivedDataProducerDummyBplus.cxx
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::PWGJECore O2Physics::AnalysisCore
COMPONENT_NAME Analysis)

o2physics_add_dpl_workflow(jet-deriveddata-producer-dummy-dielectron
SOURCES derivedDataProducerDummyDielectron.cxx
o2physics_add_dpl_workflow(jet-deriveddata-selector
SOURCES derivedDataSelector.cxx
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::PWGJECore O2Physics::AnalysisCore
COMPONENT_NAME Analysis)

Expand Down
82 changes: 0 additions & 82 deletions PWGJE/TableProducer/derivedDataProducerDummy.cxx

This file was deleted.

69 changes: 0 additions & 69 deletions PWGJE/TableProducer/derivedDataProducerDummyBplus.cxx

This file was deleted.

Loading

0 comments on commit 7d73e3f

Please sign in to comment.