12#ifndef MC_KINEMATICS_READER_H
13#define MC_KINEMATICS_READER_H
120 return mDigitizationContext;
124 void initTracksForSource(
int source)
const;
125 void loadTracksForSourceAndEvent(
int source,
int eventID)
const;
126 void loadHeadersForSource(
int source)
const;
127 void loadTrackRefsForSource(
int source)
const;
131 bool mOwningDigiContext =
false;
134 std::vector<TChain*> mInputChains;
137 mutable std::vector<std::vector<std::vector<o2::MCTrack>*>> mTracks;
138 mutable std::vector<std::vector<o2::dataformats::MCEventHeader>> mHeaders;
139 mutable std::vector<std::vector<o2::dataformats::MCTruthContainer<o2::TrackReference>>> mIndexedTrackRefs;
141 bool mInitialized =
false;
147 const auto event =
label.getEventID();
148 const auto track =
label.getTrackID();
165 initTracksForSource(
source);
180 if (mHeaders.at(
source).size() == 0) {
181 loadHeadersForSource(
source);
189 loadTrackRefsForSource(
source);
191 return mIndexedTrackRefs[
source][
event].getLabels(track);
197 loadTrackRefsForSource(
source);
199 return mIndexedTrackRefs[
source][
event].getTruthArray();
209 return mTracks.size();
215 initTracksForSource(
source);
217 return mTracks[
source].size();
Definition of the MCTrack class.
Definition of a container to keep Monte Carlo truth external to simulation objects.
bool initFromKinematics(std::string_view filename)
inits the reader from a simple kinematics file
bool isInitialized() const
bool initFromDigitContext(std::string_view filename)
DigitizationContext const * getDigitizationContext() const
MCKinematicsReader()=default
default constructor
MCTrack const * getTrack(o2::MCCompLabel const &) const
size_t getNEvents(int source) const
Get number of events.
~MCKinematicsReader()
destructor
MCKinematicsReader(std::string_view name, Mode mode=Mode::kDigiContext)
o2::dataformats::MCEventHeader const & getMCEventHeader(int source, int event) const
retrieves the MCEventHeader for a given eventID and sourceID
void releaseTracksForSourceAndEvent(int source, int event)
API to ask releasing tracks (freeing memory) for source + event.
size_t getNSources() const
Get number of sources.
const std::vector< o2::TrackReference > & getTrackRefsByEvent(int source, int event) const
return all track references associated to a source/event
MCKinematicsReader(o2::steer::DigitizationContext const *context)
constructing directly from a digitization context
gsl::span< o2::TrackReference > getTrackRefs(int source, int event, int track) const
get all primaries for a certain event
std::vector< MCTrack > const & getTracks(int source, int event) const
variant returning all tracks for source and event at once
GLuint const GLchar * name
GLsizei GLsizei GLchar * source
GLuint GLsizei const GLchar * label
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...