Skip to content

Commit dde688c

Browse files
committed
Add CTP to GlobalTrackID, RecoContainer and InputHelper
1 parent e8bdaa7 commit dde688c

8 files changed

Lines changed: 62 additions & 2 deletions

File tree

DataFormats/Detectors/CTP/include/DataFormatsCTP/Digits.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,5 +70,15 @@ struct CTPInputDigit {
7070
ClassDefNV(CTPInputDigit, 1)
7171
};
7272
} // namespace ctp
73+
74+
namespace framework
75+
{
76+
template <typename T>
77+
struct is_messageable;
78+
template <>
79+
struct is_messageable<o2::ctp::CTPDigit> : std::true_type {
80+
};
81+
} // namespace framework
82+
7383
} // namespace o2
7484
#endif //_CTP_DIGITS_H

DataFormats/Detectors/GlobalTracking/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ o2_add_library(
2525
O2::DataFormatsTOF
2626
O2::ReconstructionDataFormats
2727
O2::DataFormatsTRD
28+
O2::DataFormatsCTP
2829
O2::GPUDataTypeHeaders
2930
PRIVATE_LINK_LIBRARIES
3031
O2::Framework)

DataFormats/Detectors/GlobalTracking/include/DataFormatsGlobalTracking/RecoContainer.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,11 @@ class RecPoint;
111111
class ChannelDataFloat;
112112
} // namespace o2::fdd
113113

114+
namespace o2::ctp
115+
{
116+
class CTPDigit;
117+
} // namespace o2::ctp
118+
114119
namespace o2::dataformats
115120
{
116121
class TrackTPCITS;
@@ -174,6 +179,8 @@ struct DataRequest {
174179
void requestTOFClusters(bool mc);
175180
void requestTRDTracklets(bool mc);
176181

182+
void requestCTPDigits(bool mc);
183+
177184
void requestCoscmicTracks(bool mc);
178185

179186
void requestPrimaryVertertices(bool mc);
@@ -283,6 +290,8 @@ struct RecoContainer {
283290

284291
void addZDCRecEvents(o2::framework::ProcessingContext& pc, bool mc);
285292

293+
void addCTPDigits(o2::framework::ProcessingContext& pc, bool mc);
294+
286295
void addCosmicTracks(o2::framework::ProcessingContext& pc, bool mc);
287296

288297
void addPVertices(o2::framework::ProcessingContext& pc, bool mc);
@@ -511,6 +520,9 @@ struct RecoContainer {
511520
auto getZDCTDCData() const { return getSpan<o2::zdc::ZDCTDCData>(GTrackID::ZDC, CLUSTERS); }
512521
auto getZDCInfo() const { return getSpan<uint16_t>(GTrackID::ZDC, PATTERNS); }
513522

523+
// CTP
524+
auto getCTPDigits() const { return getSpan<const o2::ctp::CTPDigit>(GTrackID::CTP, CLUSTERS); }
525+
514526
// Primary vertices
515527
const o2::dataformats::PrimaryVertex& getPrimaryVertex(int i) const { return pvtxPool.get_as<o2::dataformats::PrimaryVertex>(PVTX, i); }
516528
const o2::MCEventLabel& getPrimaryVertexMCLabel(int i) const { return pvtxPool.get_as<o2::MCEventLabel>(PVTX_MCTR, i); }

DataFormats/Detectors/GlobalTracking/include/DataFormatsGlobalTracking/RecoContainerCreateTracksVariadic.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include "DataFormatsZDC/RecEvent.h"
3434
#include "DataFormatsTRD/TrackTRD.h"
3535
#include "DataFormatsTRD/TrackTriggerRecord.h"
36+
#include "DataFormatsCTP/Digits.h"
3637
#include "ReconstructionDataFormats/TrackTPCITS.h"
3738
#include "ReconstructionDataFormats/TrackTPCTOF.h"
3839
#include "ReconstructionDataFormats/MatchInfoTOF.h"

DataFormats/Detectors/GlobalTracking/src/RecoContainer.cxx

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,16 @@ void DataRequest::requestSecondaryVertertices(bool)
304304
requestMap["SVertex"] = false; // no MC provided for secondary vertices
305305
}
306306

307+
void DataRequest::requestCTPDigits(bool mc)
308+
{
309+
addInput({"CTPDigits", "CTP", "DIGITS", 0, Lifetime::Timeframe});
310+
if (mc) {
311+
LOG(WARNING) << "MC truth not implemented for CTP";
312+
//addInput({"CTPDigitsMC", "CTP", "DIGITSMCTR", 0, Lifetime::Timeframe});
313+
}
314+
requestMap["CTPDigits"] = false;
315+
}
316+
307317
void DataRequest::requestTracks(GTrackID::mask_t src, bool useMC)
308318
{
309319
// request tracks for sources probided by the mask
@@ -361,6 +371,9 @@ void DataRequest::requestClusters(GTrackID::mask_t src, bool useMC)
361371
if (GTrackID::includesDet(DetID::TRD, src)) {
362372
requestTRDTracklets(useMC);
363373
}
374+
if (GTrackID::includesDet(DetID::CTP, src)) {
375+
requestCTPDigits(useMC);
376+
}
364377
}
365378

366379
//__________________________________________________________________
@@ -441,6 +454,11 @@ void RecoContainer::collectData(ProcessingContext& pc, const DataRequest& reques
441454
addTOFClusters(pc, req->second);
442455
}
443456

457+
req = reqMap.find("CTPDigits");
458+
if (req != reqMap.end()) {
459+
addCTPDigits(pc, req->second);
460+
}
461+
444462
req = reqMap.find("FT0");
445463
if (req != reqMap.end()) {
446464
addFT0RecPoints(pc, req->second);
@@ -694,6 +712,15 @@ void RecoContainer::addTOFClusters(ProcessingContext& pc, bool mc)
694712
}
695713
}
696714

715+
//__________________________________________________________
716+
void RecoContainer::addCTPDigits(ProcessingContext& pc, bool mc)
717+
{
718+
commonPool[GTrackID::CTP].registerContainer(pc.inputs().get<gsl::span<o2::ctp::CTPDigit>>("CTPDigits"), CLUSTERS);
719+
if (mc) {
720+
// pc.inputs().get<const dataformats::MCTruthContainer<MCCompLabel>*>("CTPDigitsMC");
721+
}
722+
}
723+
697724
//__________________________________________________________
698725
void RecoContainer::addFT0RecPoints(ProcessingContext& pc, bool mc)
699726
{

DataFormats/Reconstruction/include/ReconstructionDataFormats/GlobalTrackID.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ class GlobalTrackID : public AbstractRef<25, 5, 2>
6363
MFTMCHMID,
6464
ITSTPCTRDTOF, // full barrel track
6565
ITSAB, // ITS AfterBurner tracklets
66+
CTP,
6667
//
6768
NSources
6869
};
@@ -138,15 +139,17 @@ GPUconstexpr() DetID::mask_t SourceDetectorsMasks[GlobalTrackID::NSources] = {
138139
DetID::mask_t(DetID::getMask(DetID::TPC) | DetID::getMask(DetID::TRD) | DetID::getMask(DetID::TOF)),
139140
DetID::mask_t(DetID::getMask(DetID::MFT) | DetID::getMask(DetID::MCH) | DetID::getMask(DetID::MID)),
140141
DetID::mask_t(DetID::getMask(DetID::ITS) | DetID::getMask(DetID::TPC) | DetID::getMask(DetID::TRD) | DetID::getMask(DetID::TOF)),
141-
DetID::mask_t(DetID::getMask(DetID::ITS))};
142+
DetID::mask_t(DetID::getMask(DetID::ITS)),
143+
DetID::mask_t(DetID::getMask(DetID::CTP))};
142144

143145
GPUconstexpr() GlobalTrackID::mask_t sMasks[GlobalTrackID::NSources] = ///< detector masks
144146
{GlobalTrackID::mask_t(math_utils::bit2Mask(GlobalTrackID::ITS)), GlobalTrackID::mask_t(math_utils::bit2Mask(GlobalTrackID::TPC)), GlobalTrackID::mask_t(math_utils::bit2Mask(GlobalTrackID::TRD)), GlobalTrackID::mask_t(math_utils::bit2Mask(GlobalTrackID::TOF)), GlobalTrackID::mask_t(math_utils::bit2Mask(GlobalTrackID::PHS)),
145147
GlobalTrackID::mask_t(math_utils::bit2Mask(GlobalTrackID::CPV)), GlobalTrackID::mask_t(math_utils::bit2Mask(GlobalTrackID::EMC)), GlobalTrackID::mask_t(math_utils::bit2Mask(GlobalTrackID::HMP)), GlobalTrackID::mask_t(math_utils::bit2Mask(GlobalTrackID::MFT)), GlobalTrackID::mask_t(math_utils::bit2Mask(GlobalTrackID::MCH)),
146148
GlobalTrackID::mask_t(math_utils::bit2Mask(GlobalTrackID::MID)), GlobalTrackID::mask_t(math_utils::bit2Mask(GlobalTrackID::ZDC)), GlobalTrackID::mask_t(math_utils::bit2Mask(GlobalTrackID::FT0)), GlobalTrackID::mask_t(math_utils::bit2Mask(GlobalTrackID::FV0)), GlobalTrackID::mask_t(math_utils::bit2Mask(GlobalTrackID::FDD)),
147149
GlobalTrackID::mask_t(math_utils::bit2Mask(GlobalTrackID::ITSTPC)), GlobalTrackID::mask_t(math_utils::bit2Mask(GlobalTrackID::TPCTOF)), GlobalTrackID::mask_t(math_utils::bit2Mask(GlobalTrackID::TPCTRD)), GlobalTrackID::mask_t(math_utils::bit2Mask(GlobalTrackID::MFTMCH)), GlobalTrackID::mask_t(math_utils::bit2Mask(GlobalTrackID::ITSTPCTRD)),
148150
GlobalTrackID::mask_t(math_utils::bit2Mask(GlobalTrackID::ITSTPCTOF)), GlobalTrackID::mask_t(math_utils::bit2Mask(GlobalTrackID::TPCTRDTOF)), GlobalTrackID::mask_t(math_utils::bit2Mask(GlobalTrackID::ITSTPCTRDTOF)), GlobalTrackID::mask_t(math_utils::bit2Mask(GlobalTrackID::MFTMCHMID)),
149-
GlobalTrackID::mask_t(math_utils::bit2Mask(GlobalTrackID::ITSAB))};
151+
GlobalTrackID::mask_t(math_utils::bit2Mask(GlobalTrackID::ITSAB)),
152+
GlobalTrackID::mask_t(math_utils::bit2Mask(GlobalTrackID::CTP))};
150153
} // namespace globaltrackid_internal
151154

152155
GPUdi() constexpr GlobalTrackID::DetID::mask_t GlobalTrackID::getSourceDetectorsMask(int i) { return globaltrackid_internal::SourceDetectorsMasks[i]; }

Detectors/GlobalTrackingWorkflow/helpers/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ o2_add_library(GlobalTrackingWorkflowHelpers
2727
O2::ZDCWorkflow
2828
O2::ITSMFTWorkflow
2929
O2::TRDWorkflowIO
30+
O2::CTPWorkflowIO
3031
O2::TPCReaderWorkflow
3132
O2::SimulationDataFormat)
3233

Detectors/GlobalTrackingWorkflow/helpers/src/InputHelper.cxx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include "ZDCWorkflow/RecEventReaderSpec.h"
3434
#include "TRDWorkflowIO/TRDTrackletReaderSpec.h"
3535
#include "TRDWorkflowIO/TRDTrackReaderSpec.h"
36+
#include "CTPWorkflowIO/DigitReaderSpec.h"
3637
#include "MCHWorkflow/TrackReaderSpec.h"
3738

3839
using namespace o2::framework;
@@ -117,6 +118,10 @@ int InputHelper::addInputSpecs(const ConfigContext& configcontext, WorkflowSpec&
117118
if (maskTracks[GID::MFTMCH]) {
118119
specs.emplace_back(o2::globaltracking::getGlobalFwdTrackReaderSpec(maskTracksMC[GID::MFTMCH]));
119120
}
121+
if (maskTracks[GID::CTP] && maskClusters[GID::CTP]) {
122+
specs.emplace_back(o2::ctp::getDigitsReaderSpec(maskTracksMC[GID::CTP] || maskTracksMC[GID::CTP]));
123+
}
124+
120125
return 0;
121126
}
122127

0 commit comments

Comments
 (0)