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});
126 addInput({
"clusTPCoccmap",
"TPC",
"TPCOCCUPANCYMAP", 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});
273 if (!getenv(
"DPL_DISABLE_TPC_TRIGGER_READER") || atoi(getenv(
"DPL_DISABLE_TPC_TRIGGER_READER")) != 1) {
277 addInput({
"clusTPCshmap",
"TPC",
"CLSHAREDMAP", 0, Lifetime::Timeframe});
278 addInput({
"clusTPCoccmap",
"TPC",
"TPCOCCUPANCYMAP", 0, Lifetime::Timeframe});
288 addInput({
"trigTPC",
"TPC",
"TRIGGERWORDS", 0, Lifetime::Timeframe});
294 addInput({
"tofcluster",
"TOF",
"CLUSTERS", 0, Lifetime::Timeframe});
296 addInput({
"tofclusterlabel",
"TOF",
"CLUSTERSMCTR", 0, Lifetime::Timeframe});
304 LOG(warn) <<
"MCH global clusters do not support MC lables, disabling";
307 addInput({
"clusMCH",
"MCH",
"GLOBALCLUSTERS", 0, Lifetime::Timeframe});
308 addInput({
"clusMCHROF",
"MCH",
"CLUSTERROFS", 0, Lifetime::Timeframe});
310 addInput({
"clusMCHMC",
"MCH",
"CLUSTERLABELS", 0, Lifetime::Timeframe});
318 LOG(warn) <<
"HMP clusters do not support MC lables, disabling";
321 addInput({
"hmpidcluster",
"HMP",
"CLUSTERS", 0, Lifetime::Timeframe});
322 addInput({
"hmpidtriggers",
"HMP",
"INTRECORDS1", 0, Lifetime::Timeframe});
324 addInput({
"hmpidclusterlabel",
"HMP",
"CLUSTERSMCTR", 0, Lifetime::Timeframe});
331 addInput({
"clusMID",
"MID",
"CLUSTERS", 0, Lifetime::Timeframe});
332 addInput({
"clusMIDROF",
"MID",
"CLUSTERSROF", 0, Lifetime::Timeframe});
334 addInput({
"clusMIDMC",
"MID",
"CLUSTERSLABELS", 0, Lifetime::Timeframe});
353 addInput({
"ft0recpoints",
"FT0",
"RECPOINTS", 0, Lifetime::Timeframe});
354 addInput({
"ft0channels",
"FT0",
"RECCHDATA", 0, Lifetime::Timeframe});
356 LOG(error) <<
"FT0 RecPoint does not support MC truth";
363 addInput({
"fv0recpoints",
"FV0",
"RECPOINTS", 0, Lifetime::Timeframe});
364 addInput({
"fv0channels",
"FV0",
"RECCHDATA", 0, Lifetime::Timeframe});
366 LOG(error) <<
"FV0 RecPoint does not support MC truth";
373 addInput({
"fddrecpoints",
"FDD",
"RECPOINTS", 0, Lifetime::Timeframe});
374 addInput({
"fddchannels",
"FDD",
"RECCHDATA", 0, Lifetime::Timeframe});
376 LOG(error) <<
"FDD RecPoint does not support MC truth";
383 addInput({
"zdcbcrec",
"ZDC",
"BCREC", 0, Lifetime::Timeframe});
384 addInput({
"zdcenergy",
"ZDC",
"ENERGY", 0, Lifetime::Timeframe});
385 addInput({
"zdctdcdata",
"ZDC",
"TDCDATA", 0, Lifetime::Timeframe});
386 addInput({
"zdcinfo",
"ZDC",
"INFO", 0, Lifetime::Timeframe});
388 LOG(error) <<
"ZDC RecEvent does not support MC truth";
395 addInput({
"cosmics",
"GLO",
"COSMICTRC", 0, Lifetime::Timeframe});
397 addInput({
"cosmicsMC",
"GLO",
"COSMICTRC_MC", 0, Lifetime::Timeframe});
404 addInput({
"pvtx",
"GLO",
"PVTX", 0, Lifetime::Timeframe});
405 addInput({
"pvtx_trmtc",
"GLO",
"PVTX_TRMTC", 0, Lifetime::Timeframe});
406 addInput({
"pvtx_tref",
"GLO",
"PVTX_TRMTCREFS", 0, Lifetime::Timeframe});
408 addInput({
"pvtx_mc",
"GLO",
"PVTX_MCTR", 0, Lifetime::Timeframe});
415 addInput({
"pvtx",
"GLO",
"PVTX", 0, Lifetime::Timeframe});
416 addInput({
"pvtx_cont",
"GLO",
"PVTX_CONTID", 0, Lifetime::Timeframe});
417 addInput({
"pvtx_contref",
"GLO",
"PVTX_CONTIDREFS", 0, Lifetime::Timeframe});
419 addInput({
"pvtx_mc",
"GLO",
"PVTX_MCTR", 0, Lifetime::Timeframe});
426 addInput({
"v0sIdx",
"GLO",
"V0S_IDX", 0, Lifetime::Timeframe});
427 addInput({
"v0s",
"GLO",
"V0S", 0, Lifetime::Timeframe});
428 addInput({
"p2v0s",
"GLO",
"PVTX_V0REFS", 0, Lifetime::Timeframe});
429 addInput({
"cascsIdx",
"GLO",
"CASCS_IDX", 0, Lifetime::Timeframe});
430 addInput({
"cascs",
"GLO",
"CASCS", 0, Lifetime::Timeframe});
431 addInput({
"p2cascs",
"GLO",
"PVTX_CASCREFS", 0, Lifetime::Timeframe});
432 addInput({
"decay3bodyIdx",
"GLO",
"DECAYS3BODY_IDX", 0, Lifetime::Timeframe});
433 addInput({
"decay3body",
"GLO",
"DECAYS3BODY", 0, Lifetime::Timeframe});
434 addInput({
"p2decay3body",
"GLO",
"PVTX_3BODYREFS", 0, Lifetime::Timeframe});
440 addInput({
"strangetracks",
"GLO",
"STRANGETRACKS", 0, Lifetime::Timeframe});
442 addInput({
"strack_mc",
"GLO",
"STRANGETRACKS_MC", 0, Lifetime::Timeframe});
449 addInput({
"CTPDigits",
"CTP",
"DIGITS", 0, Lifetime::Timeframe});
450 addInput({
"CTPLumi",
"CTP",
"LUMI", 0, Lifetime::Timeframe});
452 LOG(warning) <<
"MC truth not implemented for CTP";
460 addInput({
"CPVClusters",
"CPV",
"CLUSTERS", 0, Lifetime::Timeframe});
461 addInput({
"CPVTriggers",
"CPV",
"CLUSTERTRIGRECS", 0, Lifetime::Timeframe});
463 addInput({
"CPVClustersMC",
"CPV",
"CLUSTERTRUEMC", 0, Lifetime::Timeframe});
470 addInput({
"PHSCells",
"PHS",
"CELLS", 0, Lifetime::Timeframe});
471 addInput({
"PHSTriggers",
"PHS",
"CELLTRIGREC", 0, Lifetime::Timeframe});
473 addInput({
"PHSCellsMC",
"PHS",
"CELLSMCTR", 0, Lifetime::Timeframe});
480 addInput({
"EMCCells",
"EMC",
"CELLS", 0, Lifetime::Timeframe});
481 addInput({
"EMCTriggers",
"EMC",
"CELLSTRGR", 0, Lifetime::Timeframe});
483 addInput({
"EMCCellsMC",
"EMC",
"CELLSMCTR", 0, Lifetime::Timeframe});
490 addInput({
"matchHMP",
"HMP",
"MATCHES", 0, Lifetime::Timeframe});
492 addInput({
"clsHMP_GLO_MCTR",
"HMP",
"MCLABELS", 0, Lifetime::Timeframe});
615 auto req = reqMap.find(
"trackITS");
616 if (req != reqMap.end()) {
620 req = reqMap.find(
"trackMFT");
621 if (req != reqMap.end()) {
625 req = reqMap.find(
"trackMCH");
626 if (req != reqMap.end()) {
630 req = reqMap.find(
"trackMID");
631 if (req != reqMap.end()) {
635 req = reqMap.find(
"trackTPC");
636 if (req != reqMap.end()) {
640 req = reqMap.find(
"trackITSTPC");
641 if (req != reqMap.end()) {
645 req = reqMap.find(
"fwdtracks");
646 if (req != reqMap.end()) {
650 req = reqMap.find(
"matchMFTMCH");
651 if (req != reqMap.end()) {
655 req = reqMap.find(
"matchMCHMID");
656 if (req != reqMap.end()) {
660 req = reqMap.find(
"trackITSTPCTRD");
661 if (req != reqMap.end()) {
665 req = reqMap.find(
"trackTPCTRD");
666 if (req != reqMap.end()) {
670 req = reqMap.find(
"trackTPCTOF");
671 if (req != reqMap.end()) {
675 req = reqMap.find(
"matchTOF_ITSTPC");
676 if (req != reqMap.end()) {
680 req = reqMap.find(
"matchTOF_TPCTRD");
681 if (req != reqMap.end()) {
685 req = reqMap.find(
"matchTOF_ITSTPCTRD");
686 if (req != reqMap.end()) {
690 req = reqMap.find(
"clusITS");
691 if (req != reqMap.end()) {
695#ifdef ENABLE_UPGRADES
696 req = reqMap.find(
"clusIT3");
697 if (req != reqMap.end()) {
698 addIT3Clusters(pc, req->second);
702 req = reqMap.find(
"clusMFT");
703 if (req != reqMap.end()) {
707 req = reqMap.find(
"clusTPC");
708 if (req != reqMap.end()) {
709 auto tracksON = reqMap.find(
"trackTPC") != reqMap.end();
713 req = reqMap.find(
"trigTPC");
714 if (req != reqMap.end()) {
718 req = reqMap.find(
"clusTOF");
719 if (req != reqMap.end()) {
723 req = reqMap.find(
"clusHMP");
724 if (req != reqMap.end()) {
728 req = reqMap.find(
"CTPDigits");
729 if (req != reqMap.end()) {
733 req = reqMap.find(
"CPVClusters");
734 if (req != reqMap.end()) {
738 req = reqMap.find(
"PHSCells");
739 if (req != reqMap.end()) {
743 req = reqMap.find(
"EMCCells");
744 if (req != reqMap.end()) {
748 req = reqMap.find(
"clusMCH");
749 if (req != reqMap.end()) {
753 req = reqMap.find(
"clusMID");
754 if (req != reqMap.end()) {
758 req = reqMap.find(
"FT0");
759 if (req != reqMap.end()) {
763 req = reqMap.find(
"FV0");
764 if (req != reqMap.end()) {
768 req = reqMap.find(
"FDD");
769 if (req != reqMap.end()) {
773 req = reqMap.find(
"ZDC");
774 if (req != reqMap.end()) {
778 req = reqMap.find(
"trackletTRD");
779 if (req != reqMap.end()) {
783 req = reqMap.find(
"Cosmics");
784 if (req != reqMap.end()) {
788 req = reqMap.find(
"PVertex");
789 if (req != reqMap.end()) {
793 req = reqMap.find(
"PVertexTMP");
794 if (req != reqMap.end()) {
798 req = reqMap.find(
"SVertex");
799 if (req != reqMap.end()) {
803 req = reqMap.find(
"STracker");
804 if (req != reqMap.end()) {
808 req = reqMap.find(
"IRFramesITS");
809 if (req != reqMap.end()) {
812 req = reqMap.find(
"matchHMP");
813 if (req != reqMap.end()) {
1072#ifdef ENABLE_UPGRADES
1214 LOG(error) <<
"FT0 RecPoint does not support MC truth";
1225 LOG(error) <<
"FV0 RecPoint does not support MC truth";
1236 LOG(error) <<
"FDD RecPoint does not support MC truth";
1249 LOG(error) <<
"ZDC RecEvent does not support MC truth";
1270 static int countWarnings = 0;
1272 if (countWarnings < 1) {
1273 LOG(warning) <<
"No TRD triggers";
1276 return gsl::span<const o2::trd::TriggerRecord>();
1284 return inputsTRD->mTrackletLabels.get();
1296 auto trSrc = gidx.getSource();
1298 return getTrack<o2d::TrackTPCITS>(gidx).getParamOut();
1300 return getTrack<o2d::TrackTPCITS>(
getTOFMatch(gidx).getTrackRef()).getParamOut();
1302 return getTrack<o2d::TrackTPCTOF>(gidx).getParamOut();
1304 return getTrack<o2::trd::TrackTRD>(
getTOFMatch(gidx).getTrackRef()).getOuterParam();
1307 return getTrack<o2::trd::TrackTRD>(
getTOFMatch(gidx).getTrackRef()).getOuterParam();
1309 return getTrack<o2::trd::TrackTRD>(gidx).getOuterParam();
1312 return getTrack<o2::trd::TrackTRD>(gidx).getOuterParam();
1314 return getTrack<o2::its::TrackITS>(gidx).getParamOut();
1316 return getTrack<o2::tpc::TrackTPC>(gidx).getParamOut();
1318 throw std::runtime_error(fmt::format(
"not defined for tracks of source {:d}",
int(trSrc)));
1350 auto trSrc = gidx.getSource();
1354 return getObject<o2::track::TrackParCov>(gidx,
TRACKS);
1369 mcinfo.reserve(gids.size());
1370 for (
auto gid : gids) {
1378 createTracksVariadic([&creator](
const auto& _tr,
GTrackID _origID,
float t0,
float terr) {
1380 return creator(_tr, _origID);
1392 auto src = gidx.getSource();
1395 const auto& parent0 = getITSTPCTRDTrack<o2::trd::TrackTRD>(gidx);
1396 const auto& parent1 =
getTPCITSTrack(parent0.getRefGlobalTrackId());
1398 table[parent1.getRefITS().getSource()] = parent1.getRefITS();
1402 const auto& parent0 = getTPCTRDTrack<o2::trd::TrackTRD>(gidx);
1411 table[parent1.getRefITS().getSource()] = parent1.getRefITS();
1414 const auto& parent1 = getITSTPCTRDTrack<o2::trd::TrackTRD>(parent0.getTrackRef());
1415 const auto& parent2 =
getTPCITSTrack(parent1.getRefGlobalTrackId());
1420 table[parent2.getRefITS().getSource()] = parent2.getRefITS();
1424 const auto& parent1 = getITSTPCTRDTrack<o2::trd::TrackTRD>(parent0.getTrackRef());
1425 const auto& parent2 =
getTPCITSTrack(parent1.getRefGlobalTrackId());
1437 table[parent0.getRefITS().getSource()] = parent0.getRefITS();
1442 if (parent0.getMIDTrackID() != -1) {
1458 auto src = gidx.getSource();
1460 const auto& parent0 = getITSTPCTRDTrack<o2::trd::TrackTRD>(gidx);
1461 const auto& parent1 =
getTPCITSTrack(parent0.getRefGlobalTrackId());
1462 return parent1.getRefTPC();
1466 return parent1.getRefTPC();
1469 const auto& parent1 = getITSTPCTRDTrack<o2::trd::TrackTRD>(parent0.getTrackRef());
1470 const auto& parent2 =
getTPCITSTrack(parent1.getRefGlobalTrackId());
1471 return parent2.getRefTPC();
1474 return parent0.getTrackRef();
1477 const auto& parent1 = getTPCTRDTrack<o2::trd::TrackTRD>(parent0.getTrackRef());
1478 return parent1.getRefGlobalTrackId();
1480 const auto& parent0 = getTPCTRDTrack<o2::trd::TrackTRD>(gidx);
1481 return parent0.getRefGlobalTrackId();
1484 return parent0.getRefTPC();
1494 auto src = gidx.getSource();
1496 const auto& parent0 = getITSTPCTRDTrack<o2::trd::TrackTRD>(gidx);
1497 const auto& parent1 =
getTPCITSTrack(parent0.getRefGlobalTrackId());
1498 return parent1.getRefITS();
1502 return parent1.getRefITS();
1505 const auto& parent1 = getITSTPCTRDTrack<o2::trd::TrackTRD>(parent0.getTrackRef());
1506 const auto& parent2 =
getTPCITSTrack(parent1.getRefGlobalTrackId());
1507 return parent2.getRefITS();
1510 return parent0.getRefITS();
1531 auto gidx =
match.getTrackRef();
1541 auto gidx =
match.getTrackRef();
1551 auto gidx =
match.getTrackRef();
1562 for (
const auto& trig : trigITSTPCTRD) {
1563 if (trig.getTrackRefs().getEntriesBound() > gid.getIndex()) {
1566 const auto& trc = getITSTPCTRDTracks<o2::trd::TrackTRD>()[gid];
1567 if (trc.hasPileUpInfo()) {
1568 tErr += trc.getPileUpTimeErrorMUS();
1580 for (
const auto& trig : trigTPCTRD) {
1581 if (trig.getTrackRefs().getEntriesBound() > gid.getIndex()) {
1584 const auto& trc = getTPCTRDTracks<o2::trd::TrackTRD>()[gid];
1585 if (trc.hasPileUpInfo()) {
1586 tErr += trc.getPileUpTimeErrorMUS();
1597 t = trc.getTimeMUS().getTimeStamp();
1598 tErr = trc.getTimeMUS().getTimeStampError();
1605 t = trc.getTimeMUS().getTimeStamp();
1606 tErr = trc.getTimeMUS().getTimeStampError();
1613 for (
const auto& rof : rofrs) {
1614 if (gid.getIndex() < rof.getFirstEntry() + rof.getNEntries()) {
1626 t = trc.getTime0() + 0.5 * (trc.getDeltaTFwd() - trc.getDeltaTBwd());
1627 tErr = 0.5 * (trc.getDeltaTFwd() + trc.getDeltaTBwd());
1633 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 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"