16#ifndef O2_AODMCPRODUCER_HELPERS
17#define O2_AODMCPRODUCER_HELPERS
25#include <unordered_map>
77template <
typename Table>
117 const std::vector<std::string>& keys,
118 bool anyNotall =
true);
132 std::string
const&
key,
138 bool isValid =
false;
164 short generatorId = 0,
166 unsigned int mask = 0xFFFFFFF0);
248 std::vector<MCTrack>
const& tracks,
250 uint32_t weightMask = 0xFFFFFFF0,
251 uint32_t momentumMask = 0xFFFFFFF0,
252 uint32_t positionMask = 0xFFFFFFF0);
311 std::vector<MCTrack>
const& tracks,
315 bool background =
false,
316 uint32_t weightMask = 0xFFFFFFF0,
317 uint32_t momentumMask = 0xFFFFFFF0,
318 uint32_t positionMask = 0xFFFFFFF0);
Definition of the MCTrack class.
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter
TableCursor< aod::HepMCPdfInfos >::type PdfInfoCursor
bool updateHepMCHeavyIon(const HeavyIonCursor &cursor, int collisionID, short generatorID, o2::dataformats::MCEventHeader const &header, HepMCUpdate when=HepMCUpdate::anyKey)
bool hasKeys(o2::dataformats::MCEventHeader const &header, const std::vector< std::string > &keys, bool anyNotall=true)
TableCursor< aod::StoredMcParticles_001 >::type ParticleCursor
std::unordered_map< int, int > TrackToIndex
short updateMCCollisions(const CollisionCursor &cursor, int bcId, float time, o2::dataformats::MCEventHeader const &header, short generatorId=0, int sourceId=0, unsigned int mask=0xFFFFFFF0)
bool updateHepMCPdfInfo(const PdfInfoCursor &cursor, int collisionID, short generatorID, o2::dataformats::MCEventHeader const &header, HepMCUpdate when=HepMCUpdate::anyKey)
TableCursor< aod::HepMCHeavyIons >::type HeavyIonCursor
TableCursor< aod::HepMCXSections >::type XSectionCursor
uint32_t updateParticles(const ParticleCursor &cursor, int collisionID, std::vector< MCTrack > const &tracks, TrackToIndex &preselect, uint32_t offset=0, bool filter=false, bool background=false, uint32_t weightMask=0xFFFFFFF0, uint32_t momentumMask=0xFFFFFFF0, uint32_t positionMask=0xFFFFFFF0)
TableCursor< aod::McCollisions >::type CollisionCursor
bool updateHepMCXSection(const XSectionCursor &cursor, int collisionID, short generatorID, o2::dataformats::MCEventHeader const &header, HepMCUpdate when=HepMCUpdate::anyKey)
void updateParticle(const ParticleCursor &cursor, const TrackToIndex &toStore, int collisionID, o2::MCTrack const &track, std::vector< MCTrack > const &tracks, uint8_t flags=0, uint32_t weightMask=0xFFFFFFF0, uint32_t momentumMask=0xFFFFFFF0, uint32_t positionMask=0xFFFFFFF0)
const T getEventInfo(o2::dataformats::MCEventHeader const &header, std::string const &key, T const &def)
memfun_type< decltype(&F::operator())>::type FFL(F const &func)
decltype(framework::FFL(std::declval< framework::TableBuilder >() .cursor< Table >())) type