16#ifndef ALICEO2_RECO_CONTAINER
17#define ALICEO2_RECO_CONTAINER
51class CalibratedTracklet;
53class TrackTriggerRecord;
55struct RecoInputContainer;
60class ProcessingContext;
111class ChannelDataFloat;
117class ChannelDataFloat;
130class ChannelDataFloat;
188namespace globaltracking
197 std::vector<o2::framework::InputSpec>
inputs;
264#ifdef ENABLE_UPGRADES
265 void requestIT3Clusters(
bool mc);
363 std::unique_ptr<const o2::dataformats::MCTruthContainer<o2::MCCompLabel>>
mcTOFClusters;
364 std::unique_ptr<const o2::dataformats::MCTruthContainer<o2::MCCompLabel>>
mcHMPClusters;
365 std::unique_ptr<const o2::dataformats::MCTruthContainer<o2::MCCompLabel>>
mcCPVClusters;
366 std::unique_ptr<const o2::dataformats::MCTruthContainer<o2::MCCompLabel>>
mcMCHClusters;
367 std::unique_ptr<const o2::dataformats::MCTruthContainer<o2::phos::MCLabel>>
mcPHSCells;
368 std::unique_ptr<const o2::dataformats::MCTruthContainer<o2::emcal::MCLabel>>
mcEMCCells;
369 std::unique_ptr<const o2::dataformats::MCTruthContainer<o2::mid::MCClusterLabel>>
mcMIDTrackClusters;
370 std::unique_ptr<const o2::dataformats::MCTruthContainer<o2::mid::MCClusterLabel>>
mcMIDClusters;
387 void fillTrackMCLabels(
const gsl::span<GTrackID> gids, std::vector<o2::MCCompLabel>& mcinfo)
const;
441#ifdef ENABLE_UPGRADES
466 template <
typename U>
473 template <
typename U>
478 template <
typename U>
481 return getObject<U>(gid.getSource(), gid.getIndex(), slotID);
487 template <
typename U>
493 template <
typename U>
499 template <
typename U>
502 return getObject<U>(gid,
TRACKS);
606 return getTrack<U>(
id);
626 return getTrack<U>(
id);
Accessor for objects of the same base class located in different containers.
Composition/decomposition of the ITS/MFT cluster IDs referring to per-layer cluster arrays.
A const (ready only) version of MCTruthContainer.
Accessor for TrackParCov derived objects from multiple containers.
Global index for barrel track: provides provenance (detectors combination), index in respective array...
Definition of a container to keep Monte Carlo truth external to simulation objects.
Defintions for the inter-detector matching type.
Class to refer to the 1st entry and N elements of some group in the continuous container.
TO BE DONE: extend to generic N body vertex.
HMPID cluster implementation.
HMPID Trigger declaration.
MCH track external format.
This class defines the MID track.
GLsizei GLsizei GLchar * source
GLenum GLuint GLint GLint layer
Defining ITS Vertex explicitly as messageable.
constexpr int MaxMFTLayers
constexpr int MaxITSLayers
constexpr int MaxITSClusLayers
constexpr int MaxMFTClusLayers
o2::dataformats::StrangeTrack StrangeTrack
Global TPC definitions and constants.
o2::dataformats::Decay3BodyIndex Decay3BodyIndex
o2::dataformats::CascadeIndex CascadeIndex
o2::dataformats::V0Index V0Index
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
void requestITSTPCTRDTracks(bool mc)
void requestEMCALCells(bool mc)
void requestTRDTracklets(bool mc)
void addInput(const o2::framework::InputSpec &&isp)
void requestMIDClusters(bool mc)
void requestMFTMCHMatches(bool mc)
void requestTOFMatches(o2::dataformats::GlobalTrackID::mask_t src, bool mc)
void requestITSTracks(bool mc)
std::unordered_map< std::string, bool > requestMap
void requestMIDTracks(bool mc)
void requestPrimaryVertices(bool mc)
void requestZDCRecEvents(bool mc)
void requestGlobalFwdTracks(bool mc)
void requestITSClusters(bool mc)
void setMFTPerLayer(bool v=true)
void requestTPCTOFTracks(bool mc)
void requestMCHTracks(bool mc)
void requestFT0RecPoints(bool mc)
void requestCPVClusters(bool mc)
void requestMFTClusters(bool mc)
void requestHMPClusters(bool mc)
auto getITSPerLayer() const
void requestMCHMIDMatches(bool mc)
void requestMCHClusters(bool mc)
void requestTPCClusters(bool mc)
void requestTracks(o2::dataformats::GlobalTrackID::mask_t src, bool mc)
void requestIRFramesITS()
void requestTPCTRDTracks(bool mc)
void requestFDDRecPoints(bool mc)
void requestFV0RecPoints(bool mc)
void requestClusters(o2::dataformats::GlobalTrackID::mask_t src, bool useMC, o2::detectors::DetID::mask_t skipDetClusters={})
void setMatchingInputFull()
MatchingType matchingInputType
void requestTPCTracks(bool mc)
void setMatchingInputStandard()
auto getMFTPerLayer() const
void requestCoscmicTracks(bool mc)
void requestHMPMatches(bool mc)
std::vector< o2::framework::InputSpec > inputs
void requestITSTPCTracks(bool mc)
void requestTPCTriggers()
void requestMFTTracks(bool mc)
void setMatchingInputStrict()
void requestSecondaryVertices(bool mc)
void requestStrangeTracks(bool mc)
void requestCTPDigits(bool mc)
void requestPrimaryVerticesTMP(bool mc)
void requestPHOSCells(bool mc)
uint32_t getMatchingInputSubSpec() const
bool isRequested(const std::string &t) const
auto getMatchingInputType() const
void requestTOFClusters(bool mc)
void setITSPerLayer(bool v=true)
void addFDDRecPoints(o2::framework::ProcessingContext &pc, bool mc)
auto getZDCTDCData() const
auto getStrangeTracks() const
auto getITSPerLayer() const
auto getFDDRecPoints() const
auto getITSTracks() const
void addGlobalFwdTracks(o2::framework::ProcessingContext &pc, bool mc)
void addTOFMatchesITSTPCTRD(o2::framework::ProcessingContext &pc, bool mc)
GTrackID getITSContributorGID(GTrackID source) const
const o2::dataformats::MatchInfoTOF & getTPCTOFMatch(GTrackID id) const
auto getMCHMIDMatches() const
void addITSTracks(o2::framework::ProcessingContext &pc, bool mc)
void addHMPMatches(o2::framework::ProcessingContext &pc, bool mc)
const U & getTrack(int src, int id) const
bool isTrackSourceLoaded(int src) const
void addTPCTOFTracks(o2::framework::ProcessingContext &pc, bool mc)
auto getStrangeTracksMCLabels() const
o2::InteractionRecord startIR
GlobalIDSet getSingleDetectorRefs(GTrackID gidx) const
auto getDecays3BodyIdx() const
std::unique_ptr< const o2::dataformats::MCTruthContainer< o2::MCCompLabel > > mcTOFClusters
auto getMIDTracksMCLabels() const
const o2::dataformats::MCTruthContainer< o2::phos::MCLabel > * getPHOSCellsMCLabels() const
const o2::tpc::TrackTPC & getTPCTrack(GTrackID id) const
std::array< AccSlots, GTrackID::NSources > commonPool
void addFT0RecPoints(o2::framework::ProcessingContext &pc, bool mc)
auto getGlobalFwdTracks() const
auto getMIDTracks() const
auto getMCHClusterROFRecords() const
auto getMCHClustersMCLabels() const
gsl::span< const o2::trd::CalibratedTracklet > getTRDCalibratedTracklets() const
const o2::dataformats::TrackMCHMID & getMCHMIDMatch(GTrackID gid) const
const U & getObject(GTrackID gid, int slotID) const
void addTPCTriggers(o2::framework::ProcessingContext &pc)
const o2::mch::TrackMCH & getMCHTrack(GTrackID gid) const
void addCosmicTracks(o2::framework::ProcessingContext &pc, bool mc)
std::unique_ptr< const std::vector< o2::MCCompLabel > > mcMIDTracks
auto getMIDClusters() const
auto getTPCTRDTriggers() const
auto getMFTClustersPatterns(int layer=0) const
auto getITSTPCTOFMatches() const
auto getHMPClustersMCLabels() const
auto getITSTPCTRDTracksMCLabels() const
auto getITSTracksClusterRefs() const
auto getIRFramesITS() const
void addStrangeTracks(o2::framework::ProcessingContext &pc, bool mc)
std::unique_ptr< const o2::dataformats::MCTruthContainer< o2::mid::MCClusterLabel > > mcMIDTrackClusters
auto getTPCTRDTOFMatches() const
bool isMatchSourceLoaded(int src) const
auto getPrimaryVertices() const
void addMCHClusters(o2::framework::ProcessingContext &pc, bool mc)
void addPVerticesTMP(o2::framework::ProcessingContext &pc, bool mc)
void addITSTPCTracks(o2::framework::ProcessingContext &pc, bool mc)
auto getITSTPCTRDSATracksMCLabels() const
auto getTPCTRDTrack(GTrackID id) const
auto getTPCTRDTrackMCLabel(GTrackID id) const
auto getTPCITSTrackMCLabel(GTrackID id) const
auto getPrimaryVertexMatchedTracks() const
const o2::tpc::ClusterNativeAccess & getTPCClusters() const
auto getTPCITSTracks() const
void addMCHTracks(o2::framework::ProcessingContext &pc, bool mc)
std::array< std::unique_ptr< const o2::dataformats::MCTruthContainer< o2::MCCompLabel > >, MaxMFTLayers > mcMFTClusters
auto getMCHTrackClusters() const
auto getMCHTracksROFRecords() const
void getTrackTimeTPCTRD(GTrackID gid, float &t, float &tErr) const
auto getITSClustersROFRecords(int layer=0) const
void createTracksVariadic(T creator, GTrackID::mask_t srcSel=GTrackID::getSourcesMask("all")) const
void addTPCClusters(o2::framework::ProcessingContext &pc, bool mc, bool shmap, bool occmap)
void addEMCALCells(o2::framework::ProcessingContext &pc, bool mc)
void addMIDTracks(o2::framework::ProcessingContext &pc, bool mc)
void addMFTTracks(o2::framework::ProcessingContext &pc, bool mc)
auto getTPCTRDTracksMCLabels() const
void getTrackTimeITSTPCTRDTOF(GTrackID gid, float &t, float &tErr) const
auto getITSABRefs() const
auto getCTPDigits() const
void getTrackTimeITSTPCTOF(GTrackID gid, float &t, float &tErr) const
auto getMIDTracksROFRecords() const
void getTrackTimeTPC(GTrackID gid, float &t, float &tErr) const
auto getCPVClustersMCLabels() const
auto getTPCTOFTracks() const
void addZDCRecEvents(o2::framework::ProcessingContext &pc, bool mc)
auto getCascadesIdx() const
auto getTPCTracksClusterRefs() const
auto getPrimaryVertexMatchedTrackRefs() const
const o2::dataformats::V0Index & getV0Idx(int i) const
const o2::itsmft::TrkClusRef & getITSABRef(GTrackID gid) const
void addMCHMIDMatches(o2::framework::ProcessingContext &pc, bool mc)
auto getTPCTOFTrackMCLabel(GTrackID id) const
gsl::span< const o2::trd::TriggerRecord > getTRDTriggerRecords() const
auto getMFTMCHMatches() const
auto getITSClustersPatterns(int layer=0) const
auto getCPVClusters() const
auto getMCHClusters() const
const o2::dataformats::MCTruthContainer< o2::MCCompLabel > * getTRDTrackletsMCLabels() const
void addPVertices(o2::framework::ProcessingContext &pc, bool mc)
void getTrackTimeTPCTRDTOF(GTrackID gid, float &t, float &tErr) const
void addTPCOccMap(o2::framework::ProcessingContext &pc)
void getTrackTimeITS(GTrackID gid, float &t, float &tErr) const
o2::ctp::LumiInfo mCTPLumi
void addTOFMatchesITSTPC(o2::framework::ProcessingContext &pc, bool mc)
void addIRFramesITS(o2::framework::ProcessingContext &pc)
const o2::dataformats::TrackTPCITS & getITSTPCTOFTrack(GTrackID id) const
const o2::dataformats::TrackTPCTOF & getTPCTOFTrack(GTrackID gid) const
auto getTPCTrackMCLabel(GTrackID id) const
const o2::mid::Track & getMIDTrack(GTrackID gid) const
void addTOFClusters(o2::framework::ProcessingContext &pc, bool mc)
const o2::dataformats::CascadeIndex & getCascadeIdx(int i) const
o2::MCCompLabel getTrackMCLabel(GTrackID id) const
GTrackID getTPCContributorGID(GTrackID source) const
auto getTOFClustersMCLabels() const
std::array< std::unique_ptr< const o2::dataformats::MCTruthContainer< o2::MCCompLabel > >, MaxITSLayers > mcITSClusters
auto getMIDTrackClustersROFRecords() const
std::unique_ptr< o2::trd::RecoInputContainer > inputsTRD
const o2::dataformats::MCTruthContainer< o2::mid::MCClusterLabel > * getMIDClustersMCLabels() const
const o2::track::TrackParCov & getTrackParam(GTrackID gidx) const
void getTrackTimeITSTPCTRD(GTrackID gid, float &t, float &tErr) const
void addMFTClusters(o2::framework::ProcessingContext &pc, bool mc)
void addMIDClusters(o2::framework::ProcessingContext &pc, bool mc)
auto getFV0ChannelsData() const
auto getTPCTOFTracksMCLabels() const
auto getMFTTracksROFRecords() const
auto getITSTPCTOFMatchesMCLabels() const
void addTPCTRDTracks(o2::framework::ProcessingContext &pc, bool mc)
const o2::dataformats::ConstMCTruthContainerView< o2::MCCompLabel > * getTPCClustersMCLabels() const
auto getTOFClusters() const
std::unique_ptr< const o2::dataformats::MCTruthContainer< o2::MCCompLabel > > mcMCHClusters
gsl::span< const unsigned char > clusterShMapTPC
externally set TPC clusters sharing map
const o2::MCEventLabel & getPrimaryVertexMCLabel(int i) const
void addTRDTracklets(o2::framework::ProcessingContext &pc, bool mc)
auto getMIDTrackClusters() const
auto getPrimaryVertexContributors() const
void getTrackTimeITSTPC(GTrackID gid, float &t, float &tErr) const
auto getCPVTriggers() const
const o2::dataformats::TrackTPCITS & getTPCITSTrack(GTrackID gid) const
void collectData(o2::framework::ProcessingContext &pc, const DataRequest &request)
void addPHOSCells(o2::framework::ProcessingContext &pc, bool mc)
auto getHMPClusterTriggers() const
std::unique_ptr< const o2::dataformats::MCTruthContainer< o2::phos::MCLabel > > mcPHSCells
auto getTPCTracksMCLabels() const
auto getMFTTracksClusterRefs() const
const o2::mft::TrackMFT & getMFTTrack(GTrackID gid) const
void addCPVClusters(o2::framework::ProcessingContext &pc, bool mc)
void addITSTPCTRDTracks(o2::framework::ProcessingContext &pc, bool mc)
const o2::track::TrackParCov & getTrackParamOut(GTrackID gidx) const
void fillTrackMCLabels(const gsl::span< GTrackID > gids, std::vector< o2::MCCompLabel > &mcinfo) const
auto getPrimaryVertexMCLabels() const
const o2::dataformats::Cascade & getCascade(int i) const
auto getZDCEnergy() const
auto getTPCTRDTracks() const
void addMFTMCHMatches(o2::framework::ProcessingContext &pc, bool mc)
auto getPV2Decays3BodyRefs()
auto getMFTPerLayer() const
void getTrackTimeTPCTOF(GTrackID gid, float &t, float &tErr) const
const o2::dataformats::PrimaryVertex & getPrimaryVertex(int i) const
void addTOFMatchesTPCTRD(o2::framework::ProcessingContext &pc, bool mc)
auto getITSTPCTRDTOFMatchesMCLabels() const
const o2::its::TrackITS & getITSTrack(GTrackID gid) const
const U & getObject(int src, int index, int slotID) const
std::unique_ptr< const o2::dataformats::MCTruthContainer< o2::mid::MCClusterLabel > > mcMIDClusters
std::unique_ptr< const o2::dataformats::MCTruthContainer< o2::emcal::MCLabel > > mcEMCCells
auto getFT0RecPoints() const
std::unique_ptr< o2::tpc::internal::getWorkflowTPCInput_ret > inputsTPCclusters
auto getITSTracksROFRecords() const
auto getMCHTracks() const
void addCTPDigits(o2::framework::ProcessingContext &pc, bool mc)
void addTPCTracks(o2::framework::ProcessingContext &pc, bool mc)
const o2::dataformats::TrackCosmics & getCosmicTrack(int i) const
std::unique_ptr< const o2::dataformats::MCTruthContainer< o2::MCCompLabel > > mcCPVClusters
auto getFV0RecPoints() const
void addFV0RecPoints(o2::framework::ProcessingContext &pc, bool mc)
auto getMFTClustersROFRecords(int layer=0) const
auto getHMPMatches() const
auto getEMCALCells() const
auto getITSTPCTRDTriggers() const
auto getITSABMCLabels() const
gsl::span< const U > getTracks(int src) const
auto getPrimaryVertexContributorsRefs() const
auto getTPCTracks() const
void createTracks(std::function< bool(const o2::track::TrackParCov &, GTrackID)> const &creator) const
void getTrackTime(GTrackID gid, float &t, float &tErr) const
auto getTPCTRDSATracksMCLabels() const
std::array< ITSClusAccessor, NITSMFTCLUSSLOTS > ITSClustersData
void addSVertices(o2::framework::ProcessingContext &pc, bool)
auto getITSTPCTRDTracks() const
auto getFT0ChannelsData() const
auto getMFTTracksMCLabels() const
const U & getTrack(GTrackID gid) const
auto getMCHMIDMatchesMCLabels() const
auto getITSTPCTRDTrack(GTrackID id) const
void addITSClusters(o2::framework::ProcessingContext &pc, bool mc)
auto getITSTPCTRDTrackMCLabel(GTrackID id) const
void addHMPClusters(o2::framework::ProcessingContext &pc, bool mc)
const o2::ctp::LumiInfo & getCTPLumi() const
gsl::span< const unsigned int > occupancyMapTPC
externally set TPC clusters occupancy map
auto getITSTPCTRDSATrackMCLabel(GTrackID id) const
auto getMIDClusterROFRecords() const
std::array< MFTClusAccessor, NITSMFTCLUSSLOTS > MFTClustersData
auto getHMPClusters() const
auto getMFTClusters(int layer=0) const
auto getFDDChannelsData() const
auto getITSClusters(int layer=0) const
auto getITSTPCTRDTOFMatches() const
auto getMFTClustersMCLabels(int layer=0) const
auto getZDCBCRecData() const
auto getPV2CascadesRefs()
auto getGlobalFwdTracksMCLabels() const
auto getEMCALTriggers() const
std::unique_ptr< const o2::dataformats::MCTruthContainer< o2::MCCompLabel > > mcHMPClusters
auto getITSABClusterRefs() const
const o2::dataformats::V0 & getV0(int i) const
auto getCosmicTracks() const
std::array< GTrackID, GTrackID::NSources > GlobalIDSet
auto getTPCTRDSATrackMCLabel(GTrackID id) const
auto getCosmicTrackMCLabel(int i) const
auto getITSTracksMCLabels() const
static constexpr float PS2MUS
const o2::dataformats::StrangeTrack & getStrangeTrack(int i) const
auto getPHOSCells() const
auto getTPCITSTracksMCLabels() const
auto getTPCTriggers() const
auto getHMPMatchesMCLabels() const
auto getTPCTRDTOFTracksMCLabels() const
auto getMFTTracks() const
gsl::span< const o2::trd::Tracklet64 > getTRDTracklets() const
const o2::dataformats::MCTruthContainer< o2::emcal::MCLabel > * getEMCALCellsMCLabels() const
auto getPHOSTriggers() const
auto getDecays3Body() const
auto getCosmicTrackMCLabels() const
const o2::dataformats::MatchInfoTOF & getTOFMatch(GTrackID id) const
auto getMCHTracksMCLabels() const
gsl::span< const U > getSpan(int src, int slotID) const
const o2::dataformats::MCTruthContainer< o2::mid::MCClusterLabel > * getMIDTracksClusterMCLabels() const
auto getITSClustersMCLabels(int layer=0) const
const o2::dataformats::GlobalFwdTrack & getGlobalFwdTrack(GTrackID gid) const
auto getTPCTOFMatches() const
Trigger info including the orbit.