16#ifndef ALICE_O2_EVENTVISUALISATION_WORKFLOW_EVEWORKFLOWHELPER_H
17#define ALICE_O2_EVENTVISUALISATION_WORKFLOW_EVEWORKFLOWHELPER_H
26#include "MFTBase/GeometryTGeo.h"
38class TopologyDictionary;
59class CellRecalibrator;
65using PNT = std::array<float, 3>;
74 struct PropagationRange {
81 static constexpr EveWorkflowHelper::PropagationRange prITS = {1.f, 40.f, -74.f, 74.f};
82 static constexpr EveWorkflowHelper::PropagationRange prTPC = {85.f, 240.f, -260.f, 260.f};
83 static constexpr EveWorkflowHelper::PropagationRange prTRD = {-1.f, 372.f, -375.f, 375.f};
84 static constexpr EveWorkflowHelper::PropagationRange prTOF = {-1.f, 405.f, -375.f, 375.f};
86 static const std::unordered_map<GID::Source, PropagationRange> propagationRanges;
88 std::unique_ptr<gpu::TPCFastTransform> mTPCFastTransform;
90 static constexpr int TIME_OFFSET = 23000;
91 static constexpr int MAXBCDiffErrCount = 5;
93 static constexpr std::array<const double, 4> mftZPositions = {-40., -45., -65., -85.};
95 static constexpr std::array<const double, 20> mchZPositions = {
137 void draw(std::size_t primaryVertexIdx,
bool sortTracks);
138 void drawTPC(
GID gid,
float trackTime,
float dz = 0.f);
186 void save(
const std::string& jsonPath,
const std::string& ext,
int numberOfFiles);
Useful geometrical parameters for MID.
Global index for barrel track: provides provenance (detectors combination), index in respective array...
Definition of the GeometryTGeo class.
Base forward track model, params only, w/o covariance.
Definition of the MCH track parameters for internal use.
calibration data from laser track calibration
Tool for recalibration at cell level.
EMCAL geometry definition.
void drawMCHClusters(GID gid)
void drawMFTTrack(GID gid, o2::track::TrackParFwd track, float trackTime)
std::unordered_map< std::size_t, std::vector< GID > > mPrimaryVertexTriggerGIDs
o2::mch::TrackParam forwardTrackToMCHTrack(const o2::track::TrackParFwd &track)
void drawITS(GID gid, float trackTime)
void drawTPCTRDTOF(GID gid, float trackTime)
void drawMCHMID(GID gid, float trackTime)
GID::Source detectorMapToGIDSource(uint8_t dm)
AODBarrelTracks::iterator AODBarrelTrack
void drawMFT(GID gid, float trackTime)
void save(const std::string &jsonPath, const std::string &ext, int numberOfFiles)
void drawTPCTOF(GID gid, float trackTime)
o2::event_visualisation::VisualisationEvent mEvent
const o2::tpc::VDriftCorrFact * mTPCVDrift
void drawTPC(GID gid, float trackTime, float dz=0.f)
void drawMID(GID gid, float trackTime)
AODMFTTracks::iterator AODMFTTrack
void drawMFTMCH(GID gid, float trackTime)
const o2::globaltracking::RecoContainer * getRecoContainer() const
float findLastMIDClusterPosition(const o2::mid::Track &track)
std::unordered_map< GID, unsigned int > mGIDTrackTime
void setRecoContainer(const o2::globaltracking::RecoContainer *rc)
void drawMFTClusters(GID gid)
o2::emcal::CellRecalibrator * mEMCALCalib
float mITSROFrameLengthMUS
ITS RO frame in mus.
float findLastMCHClusterPosition(const o2::mch::TrackMCH &track)
void setTPCVDrift(const o2::tpc::VDriftCorrFact *v)
std::vector< Bracket > mItsROFBrackets
void drawPoint(const float xyz[])
void drawITSClusters(GID gid)
o2::phos::Geometry * mPHOSGeom
aod::MFTTracks AODMFTTracks
o2::its::GeometryTGeo * mITSGeom
static std::vector< PNT > getTrackPoints(const o2::track::TrackPar &trc, float minR, float maxR, float maxStep, float minZ=-25000, float maxZ=25000)
void drawTOFClusters(GID gid)
void drawTRDClusters(const o2::trd::TrackTRD &trc)
void draw(std::size_t primaryVertexIdx, bool sortTracks)
aod::FwdTracks AODForwardTracks
float mMFTROFrameLengthMUS
MFT RO frame in mus.
const o2::globaltracking::RecoContainer * mRecoCont
void drawITSTPCTRD(GID gid, float trackTime, GID::Source source=GID::ITSTPCTRD)
void drawMCH(GID gid, float trackTime)
void drawMIDClusters(GID gid)
void selectTracks(const CalibObjectsConst *calib, GID::mask_t maskCl, GID::mask_t maskTrk, GID::mask_t maskMatch)
std::vector< o2::BaseCluster< float > > mITSClustersArray
o2::mft::GeometryTGeo * mMFTGeom
o2::emcal::Geometry * mEMCALGeom
double bcDiffToTFTimeMUS(const o2::InteractionRecord &ir)
void setEMCALCellRecalibrator(o2::emcal::CellRecalibrator *calibrator)
void prepareITSClusters(const o2::itsmft::TopologyDictionary *dict)
void drawMFTMCHMID(GID gid, float trackTime)
void drawAODFwd(AODForwardTrack const &track, float trackTime)
void addTrackToEvent(const o2::track::TrackPar &tr, GID gid, float trackTime, float dz, GID::Source source=GID::NSources, float maxStep=4.f)
void drawForwardTrack(GID gid, mch::TrackParam track, float startZ, float endZ, float trackTime)
void prepareMFTClusters(const o2::itsmft::TopologyDictionary *dict)
void drawAODBarrel(AODBarrelTrack const &track, float trackTime)
o2::math_utils::Bracketf_t Bracket
void drawITSTPCTOF(GID gid, float trackTime, GID::Source source=GID::ITSTPCTOF)
std::vector< o2::BaseCluster< float > > mMFTClustersArray
void drawTPCClusters(GID gid, float trackTimeTB=-2.e9)
std::unordered_map< std::size_t, std::vector< GID > > mPrimaryVertexTrackGIDs
static int BCDiffErrCount
void drawTPCTRD(GID gid, float trackTime, GID::Source source=GID::TPCTRD)
AODForwardTracks::iterator AODForwardTrack
bool isInsideTimeBracket(const Bracket &br)
bool isInsideITSROF(const Bracket &br)
void drawAODMFT(AODMFTTrack const &track, float trackTime)
const o2::vertexing::PVertexerParams * mPVParams
void drawGlobalPoint(const TVector3 &xyx, GID gid, float time)
void drawITSTPC(GID gid, float trackTime, GID::Source source=GID::ITSTPC)
void drawITSTPCTRDTOF(GID gid, float trackTime)
std::unordered_set< GID > mTotalAcceptedDataTypes
std::unordered_map< GID, std::size_t > mTotalDataTypes
void addGlobalCluster(float *xyz, float time, o2::dataformats::GlobalTrackID gid)
VisualisationCluster & addCluster(const float *xyz)
MCH track external format.
track parameters for internal use
This class defines the MID track.
GLsizei GLsizei GLchar * source
GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat maxZ
std::array< float, 3 > PNT
detail::Bracket< float > Bracketf_t
constexpr std::array< const double, 4 > DefaultChamberZ
Array of default z position of the chamber.
std::vector< GID > trackGID
std::vector< float > trackTime
table_t::template iterator_template< DefaultIndexPolicy, self_t, Ts... > iterator
o2::InteractionRecord ir(0, 0)