16#include <fmt/format.h>
68 addInput({
"IRFramesITS",
"ITS",
"IRFRAMES", 0, Lifetime::Timeframe});
74 addInput({
"trackITS",
"ITS",
"TRACKS", 0, Lifetime::Timeframe});
75 addInput({
"trackITSROF",
"ITS",
"ITSTrackROF", 0, Lifetime::Timeframe});
76 addInput({
"trackITSClIdx",
"ITS",
"TRACKCLSID", 0, Lifetime::Timeframe});
77 addInput({
"alpparITS",
"ITS",
"ALPIDEPARAM", 0, Lifetime::Condition,
ccdbParamSpec(
"ITS/Config/AlpideParam")});
79 addInput({
"trackITSMCTR",
"ITS",
"TRACKSMCTR", 0, Lifetime::Timeframe});
86 addInput({
"trackMFT",
"MFT",
"TRACKS", 0, Lifetime::Timeframe});
87 addInput({
"trackMFTROF",
"MFT",
"MFTTrackROF", 0, Lifetime::Timeframe});
88 addInput({
"trackMFTClIdx",
"MFT",
"TRACKCLSID", 0, Lifetime::Timeframe});
89 addInput({
"alpparMFT",
"MFT",
"ALPIDEPARAM", 0, Lifetime::Condition,
ccdbParamSpec(
"MFT/Config/AlpideParam")});
91 addInput({
"trackMFTMCTR",
"MFT",
"TRACKSMCTR", 0, Lifetime::Timeframe});
98 addInput({
"trackMCH",
"MCH",
"TRACKS", 0, Lifetime::Timeframe});
99 addInput({
"trackMCHROF",
"MCH",
"TRACKROFS", 0, Lifetime::Timeframe});
100 addInput({
"trackMCHTRACKCLUSTERS",
"MCH",
"TRACKCLUSTERS", 0, Lifetime::Timeframe});
102 addInput({
"trackMCHMCTR",
"MCH",
"TRACKLABELS", 0, Lifetime::Timeframe});
109 addInput({
"trackMIDROF",
"MID",
"TRACKROFS", 0, Lifetime::Timeframe});
110 addInput({
"trackClMIDROF",
"MID",
"TRCLUSROFS", 0, Lifetime::Timeframe});
111 addInput({
"trackMID",
"MID",
"TRACKS", 0, Lifetime::Timeframe});
112 addInput({
"trackMIDTRACKCLUSTERS",
"MID",
"TRACKCLUSTERS", 0, Lifetime::Timeframe});
114 addInput({
"trackMIDMCTR",
"MID",
"TRACKLABELS", 0, Lifetime::Timeframe});
115 addInput({
"trackMIDMCTRCL",
"MID",
"TRCLUSLABELS", 0, Lifetime::Timeframe});
122 addInput({
"trackTPC",
"TPC",
"TRACKS", 0, Lifetime::Timeframe});
123 addInput({
"trackTPCClRefs",
"TPC",
"CLUSREFS", 0, Lifetime::Timeframe});
125 addInput({
"clusTPCshmap",
"TPC",
"CLSHAREDMAP", 0, Lifetime::Timeframe});
129 addInput({
"trackTPCMCTR",
"TPC",
"TRACKSMCLBL", 0, Lifetime::Timeframe});
136 addInput({
"trackITSTPC",
"GLO",
"TPCITS", 0, Lifetime::Timeframe});
137 addInput({
"trackITSTPCABREFS",
"GLO",
"TPCITSAB_REFS", 0, Lifetime::Timeframe});
138 addInput({
"trackITSTPCABCLID",
"GLO",
"TPCITSAB_CLID", 0, Lifetime::Timeframe});
140 addInput({
"trackITSTPCMCTR",
"GLO",
"TPCITS_MC", 0, Lifetime::Timeframe});
141 addInput({
"trackITSTPCABMCTR",
"GLO",
"TPCITSAB_MC", 0, Lifetime::Timeframe});
148 addInput({
"fwdtracks",
"GLO",
"GLFWD", 0, Lifetime::Timeframe});
150 addInput({
"MCTruth",
"GLO",
"GLFWD_MC", 0, Lifetime::Timeframe});
157 addInput({
"matchMFTMCH",
"GLO",
"MTC_MFTMCH", 0, Lifetime::Timeframe});
163 addInput({
"matchMCHMID",
"GLO",
"MTC_MCHMID", 0, Lifetime::Timeframe});
165 addInput({
"matchMCHMID_MCTR",
"GLO",
"MCMTC_MCHMID", 0, Lifetime::Timeframe});
173 addInput({
"matchTPCTOF",
"TOF",
"MTC_TPC", ss, Lifetime::Timeframe});
174 addInput({
"trackTPCTOF",
"TOF",
"TOFTRACKS_TPC", ss, Lifetime::Timeframe});
176 addInput({
"clsTOF_TPC_MCTR",
"TOF",
"MCMTC_TPC", ss, Lifetime::Timeframe});
183 addInput({
"trackITSTPCTRD",
"TRD",
"MATCH_ITSTPC", 0, Lifetime::Timeframe});
184 addInput({
"trigITSTPCTRD",
"TRD",
"TRGREC_ITSTPC", 0, Lifetime::Timeframe});
186 addInput({
"trackITSTPCTRDMCTR",
"TRD",
"MCLB_ITSTPC", 0, Lifetime::Timeframe});
187 addInput({
"trackITSTPCTRDSAMCTR",
"TRD",
"MCLB_ITSTPC_TRD", 0, Lifetime::Timeframe});
195 addInput({
"trackTPCTRD",
"TRD",
"MATCH_TPC", ss, Lifetime::Timeframe});
196 addInput({
"trigTPCTRD",
"TRD",
"TRGREC_TPC", ss, Lifetime::Timeframe});
198 addInput({
"trackTPCTRDMCTR",
"TRD",
"MCLB_TPC", ss, Lifetime::Timeframe});
199 addInput({
"trackTPCTRDSAMCTR",
"TRD",
"MCLB_TPC_TRD", ss, Lifetime::Timeframe});
207 addInput({
"matchITSTPCTOF",
"TOF",
"MTC_ITSTPC", 0, Lifetime::Timeframe});
209 addInput({
"clsTOF_GLO_MCTR",
"TOF",
"MCMTC_ITSTPC", 0, Lifetime::Timeframe});
214 addInput({
"matchTPCTRDTOF",
"TOF",
"MTC_TPCTRD", 0, Lifetime::Timeframe});
216 addInput({
"clsTOF_GLO2_MCTR",
"TOF",
"MCMTC_TPCTRD", 0, Lifetime::Timeframe});
221 addInput({
"matchITSTPCTRDTOF",
"TOF",
"MTC_ITSTPCTRD", 0, Lifetime::Timeframe});
223 addInput({
"clsTOF_GLO3_MCTR",
"TOF",
"MCMTC_ITSTPCTRD", 0, Lifetime::Timeframe});
231 addInput({
"clusITS",
"ITS",
"COMPCLUSTERS", 0, Lifetime::Timeframe});
232 addInput({
"clusITSPatt",
"ITS",
"PATTERNS", 0, Lifetime::Timeframe});
233 addInput({
"clusITSROF",
"ITS",
"CLUSTERSROF", 0, Lifetime::Timeframe});
234 addInput({
"alpparITS",
"ITS",
"ALPIDEPARAM", 0, Lifetime::Condition,
ccdbParamSpec(
"ITS/Config/AlpideParam")});
236 addInput({
"clusITSMC",
"ITS",
"CLUSTERSMCTR", 0, Lifetime::Timeframe});
238 addInput({
"cldictITS",
"ITS",
"CLUSDICT", 0, Lifetime::Condition,
ccdbParamSpec(
"ITS/Calib/ClusterDictionary")});
242#ifdef ENABLE_UPGRADES
243void DataRequest::requestIT3Clusters(
bool mc)
245 addInput({
"clusITS",
"ITS",
"COMPCLUSTERS", 0, Lifetime::Timeframe});
246 addInput({
"clusITSPatt",
"ITS",
"PATTERNS", 0, Lifetime::Timeframe});
247 addInput({
"clusITSROF",
"ITS",
"CLUSTERSROF", 0, Lifetime::Timeframe});
248 addInput({
"alpparITS",
"ITS",
"ALPIDEPARAM", 0, Lifetime::Condition,
ccdbParamSpec(
"ITS/Config/AlpideParam")});
250 addInput({
"clusITSMC",
"ITS",
"CLUSTERSMCTR", 0, Lifetime::Timeframe});
252 addInput({
"cldictIT3",
"IT3",
"CLUSDICT", 0, Lifetime::Condition,
ccdbParamSpec(
"IT3/Calib/ClusterDictionary")});
259 addInput({
"clusMFT",
"MFT",
"COMPCLUSTERS", 0, Lifetime::Timeframe});
260 addInput({
"clusMFTPatt",
"MFT",
"PATTERNS", 0, Lifetime::Timeframe});
261 addInput({
"clusMFTROF",
"MFT",
"CLUSTERSROF", 0, Lifetime::Timeframe});
262 addInput({
"cldictMFT",
"MFT",
"CLUSDICT", 0, Lifetime::Condition,
ccdbParamSpec(
"MFT/Calib/ClusterDictionary")});
263 addInput({
"alpparMFT",
"MFT",
"ALPIDEPARAM", 0, Lifetime::Condition,
ccdbParamSpec(
"MFT/Config/AlpideParam")});
265 addInput({
"clusMFTMC",
"MFT",
"CLUSTERSMCTR", 0, Lifetime::Timeframe});
272 addInput({
"clusTPCoccmap",
"TPC",
"TPCOCCUPANCYMAP", 0, Lifetime::Timeframe});
279 if (!getenv(
"DPL_DISABLE_TPC_TRIGGER_READER") || atoi(getenv(
"DPL_DISABLE_TPC_TRIGGER_READER")) != 1) {
283 addInput({
"clusTPCshmap",
"TPC",
"CLSHAREDMAP", 0, Lifetime::Timeframe});
294 addInput({
"trigTPC",
"TPC",
"TRIGGERWORDS", 0, Lifetime::Timeframe});
300 addInput({
"tofcluster",
"TOF",
"CLUSTERS", 0, Lifetime::Timeframe});
302 addInput({
"tofclusterlabel",
"TOF",
"CLUSTERSMCTR", 0, Lifetime::Timeframe});
310 LOG(warn) <<
"MCH global clusters do not support MC lables, disabling";
313 addInput({
"clusMCH",
"MCH",
"GLOBALCLUSTERS", 0, Lifetime::Timeframe});
314 addInput({
"clusMCHROF",
"MCH",
"CLUSTERROFS", 0, Lifetime::Timeframe});
316 addInput({
"clusMCHMC",
"MCH",
"CLUSTERLABELS", 0, Lifetime::Timeframe});
324 LOG(warn) <<
"HMP clusters do not support MC lables, disabling";
327 addInput({
"hmpidcluster",
"HMP",
"CLUSTERS", 0, Lifetime::Timeframe});
328 addInput({
"hmpidtriggers",
"HMP",
"INTRECORDS1", 0, Lifetime::Timeframe});
330 addInput({
"hmpidclusterlabel",
"HMP",
"CLUSTERSMCTR", 0, Lifetime::Timeframe});
337 addInput({
"clusMID",
"MID",
"CLUSTERS", 0, Lifetime::Timeframe});
338 addInput({
"clusMIDROF",
"MID",
"CLUSTERSROF", 0, Lifetime::Timeframe});
340 addInput({
"clusMIDMC",
"MID",
"CLUSTERSLABELS", 0, Lifetime::Timeframe});
359 addInput({
"ft0recpoints",
"FT0",
"RECPOINTS", 0, Lifetime::Timeframe});
360 addInput({
"ft0channels",
"FT0",
"RECCHDATA", 0, Lifetime::Timeframe});
362 LOG(error) <<
"FT0 RecPoint does not support MC truth";
369 addInput({
"fv0recpoints",
"FV0",
"RECPOINTS", 0, Lifetime::Timeframe});
370 addInput({
"fv0channels",
"FV0",
"RECCHDATA", 0, Lifetime::Timeframe});
372 LOG(error) <<
"FV0 RecPoint does not support MC truth";
379 addInput({
"fddrecpoints",
"FDD",
"RECPOINTS", 0, Lifetime::Timeframe});
380 addInput({
"fddchannels",
"FDD",
"RECCHDATA", 0, Lifetime::Timeframe});
382 LOG(error) <<
"FDD RecPoint does not support MC truth";
389 addInput({
"zdcbcrec",
"ZDC",
"BCREC", 0, Lifetime::Timeframe});
390 addInput({
"zdcenergy",
"ZDC",
"ENERGY", 0, Lifetime::Timeframe});
391 addInput({
"zdctdcdata",
"ZDC",
"TDCDATA", 0, Lifetime::Timeframe});
392 addInput({
"zdcinfo",
"ZDC",
"INFO", 0, Lifetime::Timeframe});
394 LOG(error) <<
"ZDC RecEvent does not support MC truth";
401 addInput({
"cosmics",
"GLO",
"COSMICTRC", 0, Lifetime::Timeframe});
403 addInput({
"cosmicsMC",
"GLO",
"COSMICTRC_MC", 0, Lifetime::Timeframe});
410 addInput({
"pvtx",
"GLO",
"PVTX", 0, Lifetime::Timeframe});
411 addInput({
"pvtx_trmtc",
"GLO",
"PVTX_TRMTC", 0, Lifetime::Timeframe});
412 addInput({
"pvtx_tref",
"GLO",
"PVTX_TRMTCREFS", 0, Lifetime::Timeframe});
414 addInput({
"pvtx_mc",
"GLO",
"PVTX_MCTR", 0, Lifetime::Timeframe});
421 addInput({
"pvtx",
"GLO",
"PVTX", 0, Lifetime::Timeframe});
422 addInput({
"pvtx_cont",
"GLO",
"PVTX_CONTID", 0, Lifetime::Timeframe});
423 addInput({
"pvtx_contref",
"GLO",
"PVTX_CONTIDREFS", 0, Lifetime::Timeframe});
425 addInput({
"pvtx_mc",
"GLO",
"PVTX_MCTR", 0, Lifetime::Timeframe});
432 addInput({
"v0sIdx",
"GLO",
"V0S_IDX", 0, Lifetime::Timeframe});
433 addInput({
"v0s",
"GLO",
"V0S", 0, Lifetime::Timeframe});
434 addInput({
"p2v0s",
"GLO",
"PVTX_V0REFS", 0, Lifetime::Timeframe});
435 addInput({
"cascsIdx",
"GLO",
"CASCS_IDX", 0, Lifetime::Timeframe});
436 addInput({
"cascs",
"GLO",
"CASCS", 0, Lifetime::Timeframe});
437 addInput({
"p2cascs",
"GLO",
"PVTX_CASCREFS", 0, Lifetime::Timeframe});
438 addInput({
"decay3bodyIdx",
"GLO",
"DECAYS3BODY_IDX", 0, Lifetime::Timeframe});
439 addInput({
"decay3body",
"GLO",
"DECAYS3BODY", 0, Lifetime::Timeframe});
440 addInput({
"p2decay3body",
"GLO",
"PVTX_3BODYREFS", 0, Lifetime::Timeframe});
446 addInput({
"strangetracks",
"GLO",
"STRANGETRACKS", 0, Lifetime::Timeframe});
448 addInput({
"strack_mc",
"GLO",
"STRANGETRACKS_MC", 0, Lifetime::Timeframe});
455 addInput({
"CTPDigits",
"CTP",
"DIGITS", 0, Lifetime::Timeframe});
456 addInput({
"CTPLumi",
"CTP",
"LUMI", 0, Lifetime::Timeframe});
458 LOG(warning) <<
"MC truth not implemented for CTP";
466 addInput({
"CPVClusters",
"CPV",
"CLUSTERS", 0, Lifetime::Timeframe});
467 addInput({
"CPVTriggers",
"CPV",
"CLUSTERTRIGRECS", 0, Lifetime::Timeframe});
469 addInput({
"CPVClustersMC",
"CPV",
"CLUSTERTRUEMC", 0, Lifetime::Timeframe});
476 addInput({
"PHSCells",
"PHS",
"CELLS", 0, Lifetime::Timeframe});
477 addInput({
"PHSTriggers",
"PHS",
"CELLTRIGREC", 0, Lifetime::Timeframe});
479 addInput({
"PHSCellsMC",
"PHS",
"CELLSMCTR", 0, Lifetime::Timeframe});
486 addInput({
"EMCCells",
"EMC",
"CELLS", 0, Lifetime::Timeframe});
487 addInput({
"EMCTriggers",
"EMC",
"CELLSTRGR", 0, Lifetime::Timeframe});
489 addInput({
"EMCCellsMC",
"EMC",
"CELLSMCTR", 0, Lifetime::Timeframe});
496 addInput({
"matchHMP",
"HMP",
"MATCHES", 0, Lifetime::Timeframe});
498 addInput({
"clsHMP_GLO_MCTR",
"HMP",
"MCLABELS", 0, Lifetime::Timeframe});
621 auto req = reqMap.find(
"trackITS");
622 if (req != reqMap.end()) {
626 req = reqMap.find(
"trackMFT");
627 if (req != reqMap.end()) {
631 req = reqMap.find(
"trackMCH");
632 if (req != reqMap.end()) {
636 req = reqMap.find(
"trackMID");
637 if (req != reqMap.end()) {
641 req = reqMap.find(
"trackTPC");
642 if (req != reqMap.end()) {
646 req = reqMap.find(
"trackITSTPC");
647 if (req != reqMap.end()) {
651 req = reqMap.find(
"fwdtracks");
652 if (req != reqMap.end()) {
656 req = reqMap.find(
"matchMFTMCH");
657 if (req != reqMap.end()) {
661 req = reqMap.find(
"matchMCHMID");
662 if (req != reqMap.end()) {
666 req = reqMap.find(
"trackITSTPCTRD");
667 if (req != reqMap.end()) {
671 req = reqMap.find(
"trackTPCTRD");
672 if (req != reqMap.end()) {
676 req = reqMap.find(
"trackTPCTOF");
677 if (req != reqMap.end()) {
681 req = reqMap.find(
"matchTOF_ITSTPC");
682 if (req != reqMap.end()) {
686 req = reqMap.find(
"matchTOF_TPCTRD");
687 if (req != reqMap.end()) {
691 req = reqMap.find(
"matchTOF_ITSTPCTRD");
692 if (req != reqMap.end()) {
696 req = reqMap.find(
"clusITS");
697 if (req != reqMap.end()) {
701#ifdef ENABLE_UPGRADES
702 req = reqMap.find(
"clusIT3");
703 if (req != reqMap.end()) {
704 addIT3Clusters(pc, req->second);
708 req = reqMap.find(
"clusMFT");
709 if (req != reqMap.end()) {
713 req = reqMap.find(
"TPCOcc");
714 bool TPCOccDone =
false;
715 if (req != reqMap.end()) {
720 req = reqMap.find(
"clusTPC");
721 if (req != reqMap.end()) {
722 auto tracksON = reqMap.find(
"trackTPC") != reqMap.end();
723 addTPCClusters(pc, req->second, tracksON, tracksON && (!TPCOccDone));
726 req = reqMap.find(
"trigTPC");
727 if (req != reqMap.end()) {
731 req = reqMap.find(
"clusTOF");
732 if (req != reqMap.end()) {
736 req = reqMap.find(
"clusHMP");
737 if (req != reqMap.end()) {
741 req = reqMap.find(
"CTPDigits");
742 if (req != reqMap.end()) {
746 req = reqMap.find(
"CPVClusters");
747 if (req != reqMap.end()) {
751 req = reqMap.find(
"PHSCells");
752 if (req != reqMap.end()) {
756 req = reqMap.find(
"EMCCells");
757 if (req != reqMap.end()) {
761 req = reqMap.find(
"clusMCH");
762 if (req != reqMap.end()) {
766 req = reqMap.find(
"clusMID");
767 if (req != reqMap.end()) {
771 req = reqMap.find(
"FT0");
772 if (req != reqMap.end()) {
776 req = reqMap.find(
"FV0");
777 if (req != reqMap.end()) {
781 req = reqMap.find(
"FDD");
782 if (req != reqMap.end()) {
786 req = reqMap.find(
"ZDC");
787 if (req != reqMap.end()) {
791 req = reqMap.find(
"trackletTRD");
792 if (req != reqMap.end()) {
796 req = reqMap.find(
"Cosmics");
797 if (req != reqMap.end()) {
801 req = reqMap.find(
"PVertex");
802 if (req != reqMap.end()) {
806 req = reqMap.find(
"PVertexTMP");
807 if (req != reqMap.end()) {
811 req = reqMap.find(
"SVertex");
812 if (req != reqMap.end()) {
816 req = reqMap.find(
"STracker");
817 if (req != reqMap.end()) {
821 req = reqMap.find(
"IRFramesITS");
822 if (req != reqMap.end()) {
825 req = reqMap.find(
"matchHMP");
826 if (req != reqMap.end()) {
1085#ifdef ENABLE_UPGRADES
1233 LOG(error) <<
"FT0 RecPoint does not support MC truth";
1244 LOG(error) <<
"FV0 RecPoint does not support MC truth";
1255 LOG(error) <<
"FDD RecPoint does not support MC truth";
1268 LOG(error) <<
"ZDC RecEvent does not support MC truth";
1289 static int countWarnings = 0;
1291 if (countWarnings < 1) {
1292 LOG(warning) <<
"No TRD triggers";
1295 return gsl::span<const o2::trd::TriggerRecord>();
1303 return inputsTRD->mTrackletLabels.get();
1315 auto trSrc = gidx.getSource();
1317 return getTrack<o2d::TrackTPCITS>(gidx).getParamOut();
1319 return getTrack<o2d::TrackTPCITS>(
getTOFMatch(gidx).getTrackRef()).getParamOut();
1321 return getTrack<o2d::TrackTPCTOF>(gidx).getParamOut();
1323 return getTrack<o2::trd::TrackTRD>(
getTOFMatch(gidx).getTrackRef()).getOuterParam();
1326 return getTrack<o2::trd::TrackTRD>(
getTOFMatch(gidx).getTrackRef()).getOuterParam();
1328 return getTrack<o2::trd::TrackTRD>(gidx).getOuterParam();
1331 return getTrack<o2::trd::TrackTRD>(gidx).getOuterParam();
1333 return getTrack<o2::its::TrackITS>(gidx).getParamOut();
1335 return getTrack<o2::tpc::TrackTPC>(gidx).getParamOut();
1337 throw std::runtime_error(fmt::format(
"not defined for tracks of source {:d}",
int(trSrc)));
1369 auto trSrc = gidx.getSource();
1373 return getObject<o2::track::TrackParCov>(gidx,
TRACKS);
1388 mcinfo.reserve(gids.size());
1389 for (
auto gid : gids) {
1397 createTracksVariadic([&creator](
const auto& _tr,
GTrackID _origID,
float t0,
float terr) {
1399 return creator(_tr, _origID);
1411 auto src = gidx.getSource();
1414 const auto& parent0 = getITSTPCTRDTrack<o2::trd::TrackTRD>(gidx);
1415 const auto& parent1 =
getTPCITSTrack(parent0.getRefGlobalTrackId());
1417 table[parent1.getRefITS().getSource()] = parent1.getRefITS();
1421 const auto& parent0 = getTPCTRDTrack<o2::trd::TrackTRD>(gidx);
1430 table[parent1.getRefITS().getSource()] = parent1.getRefITS();
1433 const auto& parent1 = getITSTPCTRDTrack<o2::trd::TrackTRD>(parent0.getTrackRef());
1434 const auto& parent2 =
getTPCITSTrack(parent1.getRefGlobalTrackId());
1439 table[parent2.getRefITS().getSource()] = parent2.getRefITS();
1443 const auto& parent1 = getITSTPCTRDTrack<o2::trd::TrackTRD>(parent0.getTrackRef());
1444 const auto& parent2 =
getTPCITSTrack(parent1.getRefGlobalTrackId());
1456 table[parent0.getRefITS().getSource()] = parent0.getRefITS();
1461 if (parent0.getMIDTrackID() != -1) {
1477 auto src = gidx.getSource();
1479 const auto& parent0 = getITSTPCTRDTrack<o2::trd::TrackTRD>(gidx);
1480 const auto& parent1 =
getTPCITSTrack(parent0.getRefGlobalTrackId());
1481 return parent1.getRefTPC();
1485 return parent1.getRefTPC();
1488 const auto& parent1 = getITSTPCTRDTrack<o2::trd::TrackTRD>(parent0.getTrackRef());
1489 const auto& parent2 =
getTPCITSTrack(parent1.getRefGlobalTrackId());
1490 return parent2.getRefTPC();
1493 return parent0.getTrackRef();
1496 const auto& parent1 = getTPCTRDTrack<o2::trd::TrackTRD>(parent0.getTrackRef());
1497 return parent1.getRefGlobalTrackId();
1499 const auto& parent0 = getTPCTRDTrack<o2::trd::TrackTRD>(gidx);
1500 return parent0.getRefGlobalTrackId();
1503 return parent0.getRefTPC();
1513 auto src = gidx.getSource();
1515 const auto& parent0 = getITSTPCTRDTrack<o2::trd::TrackTRD>(gidx);
1516 const auto& parent1 =
getTPCITSTrack(parent0.getRefGlobalTrackId());
1517 return parent1.getRefITS();
1521 return parent1.getRefITS();
1524 const auto& parent1 = getITSTPCTRDTrack<o2::trd::TrackTRD>(parent0.getTrackRef());
1525 const auto& parent2 =
getTPCITSTrack(parent1.getRefGlobalTrackId());
1526 return parent2.getRefITS();
1529 return parent0.getRefITS();
1550 auto gidx =
match.getTrackRef();
1560 auto gidx =
match.getTrackRef();
1570 auto gidx =
match.getTrackRef();
1581 for (
const auto& trig : trigITSTPCTRD) {
1582 if (trig.getTrackRefs().getEntriesBound() > gid.getIndex()) {
1585 const auto& trc = getITSTPCTRDTracks<o2::trd::TrackTRD>()[gid];
1586 if (trc.hasPileUpInfo()) {
1587 tErr += trc.getPileUpTimeErrorMUS();
1599 for (
const auto& trig : trigTPCTRD) {
1600 if (trig.getTrackRefs().getEntriesBound() > gid.getIndex()) {
1603 const auto& trc = getTPCTRDTracks<o2::trd::TrackTRD>()[gid];
1604 if (trc.hasPileUpInfo()) {
1605 tErr += trc.getPileUpTimeErrorMUS();
1616 t = trc.getTimeMUS().getTimeStamp();
1617 tErr = trc.getTimeMUS().getTimeStampError();
1624 t = trc.getTimeMUS().getTimeStamp();
1625 tErr = trc.getTimeMUS().getTimeStampError();
1632 for (
const auto& rof : rofrs) {
1633 if (gid.getIndex() < rof.getFirstEntry() + rof.getNEntries()) {
1645 t = trc.getTime0() + 0.5 * (trc.getDeltaTFwd() - trc.getDeltaTBwd());
1646 tErr = 0.5 * (trc.getDeltaTFwd() + trc.getDeltaTBwd());
1652 auto src = gid.getSource();
Definition of the BuildTopologyDictionary class for ITS3.
Class to delimit start and end IR of certain time period.
Wrapper container for different reconstructed object types.
Result of top-bottom cosmic tracks leg matching.
Definition of the MUON track.
Reference on ITS/MFT clusters set.
Extention of GlobalTrackID by flags relevant for verter-track association.
Referenc on track indices contributing to the vertex, with possibility chose tracks from specific sou...
Static class with identifiers, bitmasks and names for ALICE detectors.
InputRecord & inputs()
The inputs associated with this processing context.
ServiceRegistryRef services()
The services registry associated with this processing context.
bool match(const std::vector< std::string > &queries, const char *pattern)
GLuint GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat t0
constexpr o2::header::DataOrigin gDataOriginTRD
constexpr double LHCBunchSpacingMUS
Defining PrimaryVertex explicitly as messageable.
std::vector< ConfigParamSpec > ccdbParamSpec(std::string const &path, int runDependent, std::vector< CCDBMetadata > metadata={}, int qrate=0)
auto getRecoInputContainer(o2::framework::ProcessingContext &pc, o2::gpu::GPUTrackingInOutPointers *ptrs, const o2::globaltracking::RecoContainer *inputTracks, bool mc=false)
bool globalRunNumberChanged
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 requestTPCTOFTracks(bool mc)
void requestMCHTracks(bool mc)
void requestFT0RecPoints(bool mc)
void requestCPVClusters(bool mc)
void requestMFTClusters(bool mc)
void requestHMPClusters(bool mc)
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 requestTPCTracks(bool mc)
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 requestSecondaryVertices(bool mc)
void requestStrangeTracks(bool mc)
void requestCTPDigits(bool mc)
void requestPrimaryVerticesTMP(bool mc)
void requestPHOSCells(bool mc)
uint32_t getMatchingInputSubSpec() const
void requestTOFClusters(bool mc)
void addFDDRecPoints(o2::framework::ProcessingContext &pc, bool mc)
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
void addITSTracks(o2::framework::ProcessingContext &pc, bool mc)
void addHMPMatches(o2::framework::ProcessingContext &pc, bool mc)
bool isTrackSourceLoaded(int src) const
void addTPCTOFTracks(o2::framework::ProcessingContext &pc, bool mc)
o2::InteractionRecord startIR
GlobalIDSet getSingleDetectorRefs(GTrackID gidx) const
std::unique_ptr< const o2::dataformats::MCTruthContainer< o2::MCCompLabel > > mcTOFClusters
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)
gsl::span< const o2::trd::CalibratedTracklet > getTRDCalibratedTracklets() const
const o2::dataformats::TrackMCHMID & getMCHMIDMatch(GTrackID gid) const
void addTPCTriggers(o2::framework::ProcessingContext &pc)
void addCosmicTracks(o2::framework::ProcessingContext &pc, bool mc)
auto getITSTPCTOFMatches() 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
void addMCHClusters(o2::framework::ProcessingContext &pc, bool mc)
void addPVerticesTMP(o2::framework::ProcessingContext &pc, bool mc)
void addITSTPCTracks(o2::framework::ProcessingContext &pc, bool mc)
const o2::tpc::ClusterNativeAccess & getTPCClusters() const
void addMCHTracks(o2::framework::ProcessingContext &pc, bool mc)
void getTrackTimeTPCTRD(GTrackID gid, float &t, float &tErr) 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)
void getTrackTimeITSTPCTRDTOF(GTrackID gid, float &t, float &tErr) const
void getTrackTimeITSTPCTOF(GTrackID gid, float &t, float &tErr) const
void getTrackTimeTPC(GTrackID gid, float &t, float &tErr) const
void addZDCRecEvents(o2::framework::ProcessingContext &pc, bool mc)
void addMCHMIDMatches(o2::framework::ProcessingContext &pc, bool mc)
gsl::span< const o2::trd::TriggerRecord > getTRDTriggerRecords() 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
void addTOFClusters(o2::framework::ProcessingContext &pc, bool mc)
o2::MCCompLabel getTrackMCLabel(GTrackID id) const
GTrackID getTPCContributorGID(GTrackID source) 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
std::unique_ptr< const o2::dataformats::MCTruthContainer< o2::MCCompLabel > > mcITSClusters
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)
void addTPCTRDTracks(o2::framework::ProcessingContext &pc, bool mc)
const o2::dataformats::ConstMCTruthContainerView< o2::MCCompLabel > * getTPCClustersMCLabels() const
std::unique_ptr< const o2::dataformats::MCTruthContainer< o2::MCCompLabel > > mcMCHClusters
gsl::span< const unsigned char > clusterShMapTPC
externally set TPC clusters sharing map
void addTRDTracklets(o2::framework::ProcessingContext &pc, bool mc)
void getTrackTimeITSTPC(GTrackID gid, float &t, float &tErr) 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)
std::unique_ptr< const o2::dataformats::MCTruthContainer< o2::phos::MCLabel > > mcPHSCells
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
void addMFTMCHMatches(o2::framework::ProcessingContext &pc, bool mc)
void getTrackTimeTPCTOF(GTrackID gid, float &t, float &tErr) const
void addTOFMatchesTPCTRD(o2::framework::ProcessingContext &pc, bool mc)
std::unique_ptr< const o2::dataformats::MCTruthContainer< o2::mid::MCClusterLabel > > mcMIDClusters
std::unique_ptr< const o2::dataformats::MCTruthContainer< o2::emcal::MCLabel > > mcEMCCells
std::unique_ptr< o2::tpc::internal::getWorkflowTPCInput_ret > inputsTPCclusters
auto getITSTracksROFRecords() const
void addCTPDigits(o2::framework::ProcessingContext &pc, bool mc)
void addTPCTracks(o2::framework::ProcessingContext &pc, bool mc)
std::unique_ptr< const o2::dataformats::MCTruthContainer< o2::MCCompLabel > > mcCPVClusters
void addFV0RecPoints(o2::framework::ProcessingContext &pc, bool mc)
auto getITSTPCTRDTriggers() const
void createTracks(std::function< bool(const o2::track::TrackParCov &, GTrackID)> const &creator) const
void getTrackTime(GTrackID gid, float &t, float &tErr) const
void addSVertices(o2::framework::ProcessingContext &pc, bool)
void addITSClusters(o2::framework::ProcessingContext &pc, bool mc)
void addHMPClusters(o2::framework::ProcessingContext &pc, bool mc)
gsl::span< const unsigned int > occupancyMapTPC
externally set TPC clusters occupancy map
auto getITSTPCTRDTOFMatches() const
std::unique_ptr< const o2::dataformats::MCTruthContainer< o2::MCCompLabel > > mcHMPClusters
std::array< GTrackID, GTrackID::NSources > GlobalIDSet
static constexpr float PS2MUS
gsl::span< const o2::trd::Tracklet64 > getTRDTracklets() const
const o2::dataformats::MCTruthContainer< o2::emcal::MCLabel > * getEMCALCellsMCLabels() const
const o2::dataformats::MatchInfoTOF & getTOFMatch(GTrackID id) const
const o2::dataformats::MCTruthContainer< o2::mid::MCClusterLabel > * getMIDTracksClusterMCLabels() const
const o2::dataformats::GlobalFwdTrack & getGlobalFwdTrack(GTrackID gid) const
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"