34 auto rofs = pc.
inputs().
get<gsl::span<o2::itsmft::ROFRecord>>(
"ROframes");
36 gsl::span<const o2::itsmft::MC2ROFRecord> mc2rofs;
37 gsl::span<const char> labelbuffer;
39 labelbuffer = pc.
inputs().
get<gsl::span<char>>(
"labels");
40 mc2rofs = pc.
inputs().
get<gsl::span<o2::itsmft::MC2ROFRecord>>(
"MC2ROframes");
44 std::vector<o2::trk::Cluster>
clusters;
45 std::vector<unsigned char> patterns;
46 std::vector<o2::trk::ROFRecord> clusterROFs;
47 std::unique_ptr<o2::dataformats::MCTruthContainer<o2::MCCompLabel>> clusterLabels;
48 std::vector<o2::trk::MC2ROFRecord> clusterMC2ROFs;
50 clusterLabels = std::make_unique<o2::dataformats::MCTruthContainer<o2::MCCompLabel>>();
56 LOG(info) <<
"Running TRKClusterer with ACTS";
57 mClustererACTS.process(
digits,
62 mUseMC ? &
labels :
nullptr,
65 mUseMC ? &clusterMC2ROFs :
nullptr);
69 LOG(info) <<
"Running TRKClusterer";
75 mUseMC ? &
labels :
nullptr,
78 mUseMC ? &clusterMC2ROFs :
nullptr);
90 LOGP(info,
"TRKClusterer pushed {} clusters in {} ROFs",
clusters.size(), clusterROFs.size());
95 std::vector<o2::framework::InputSpec> inputs;
96 inputs.emplace_back(
"digits",
"TRK",
"DIGITS", 0, o2::framework::Lifetime::Timeframe);
97 inputs.emplace_back(
"ROframes",
"TRK",
"DIGITSROF", 0, o2::framework::Lifetime::Timeframe);
99 std::vector<o2::framework::OutputSpec> outputs;
100 outputs.emplace_back(
"TRK",
"COMPCLUSTERS", 0, o2::framework::Lifetime::Timeframe);
101 outputs.emplace_back(
"TRK",
"PATTERNS", 0, o2::framework::Lifetime::Timeframe);
102 outputs.emplace_back(
"TRK",
"CLUSTERSROF", 0, o2::framework::Lifetime::Timeframe);
105 inputs.emplace_back(
"labels",
"TRK",
"DIGITSMCTR", 0, o2::framework::Lifetime::Timeframe);
106 inputs.emplace_back(
"MC2ROframes",
"TRK",
"DIGITSMC2ROF", 0, o2::framework::Lifetime::Timeframe);
107 outputs.emplace_back(
"TRK",
"CLUSTERSMCTR", 0, o2::framework::Lifetime::Timeframe);
108 outputs.emplace_back(
"TRK",
"CLUSTERSMC2ROF", 0, o2::framework::Lifetime::Timeframe);
ConfigParamRegistry const & options()
DataAllocator & outputs()
The data allocator is used to allocate memory for the output data.
InputRecord & inputs()
The inputs associated with this processing context.
virtual void process(gsl::span< const Digit > digits, gsl::span< const DigROFRecord > digitROFs, std::vector< o2::trk::Cluster > &clusters, std::vector< unsigned char > &patterns, std::vector< o2::trk::ROFRecord > &clusterROFs, const ConstDigitTruth *digitLabels=nullptr, ClusterTruth *clusterLabels=nullptr, gsl::span< const DigMC2ROFRecord > digMC2ROFs={}, std::vector< o2::trk::MC2ROFRecord > *clusterMC2ROFs=nullptr)