124 std::vector<InputSpec> inputs;
125 std::vector<OutputSpec> outputs;
127 if (dataDescriptionStr.size() > dataDescription.
size + 1) {
128 LOGP(fatal,
"Size of {} is larger than {}", dataDescriptionStr, dataDescription.
size);
130 for (
size_t i = 0;
i < dataDescriptionStr.size(); ++
i) {
131 dataDescription.
str[
i] = dataDescriptionStr[
i];
133 inputs.emplace_back(
"trackTPC",
"TPC", dataDescription, 0, Lifetime::Timeframe);
134 inputs.emplace_back(
"trackTPCClRefs",
"TPC",
"CLUSREFS", 0, Lifetime::Timeframe);
137 inputs.emplace_back(
"trackTPCMCTruth",
"TPC",
"TRACKSMCLBL", 0, Lifetime::Timeframe);
141 "tpc-track-and-cluster-filter",
144 AlgorithmSpec{adaptFromTask<TrackAndClusterFilterDevice>(writeMC)},
146 {
"output-file", VariantType::String,
"filtered-tracks-and-clusters.root", {
"output file name"}},
147 {
"dont-write-tracks", VariantType::Bool,
false, {
"don't dump filtered tracks and clusters"}},
148 {
"write-global-cluster-info", VariantType::Bool,
false, {
"write simple clusters tree"}},
149 {
"clusters-write-type", VariantType::Int, 0, {
"how to store clusters associated to tracks: 0 - vector in track, 1 - separate branch, 2 - separate tree, 3 - spearate file"}},
150 {
"notrack-clusters-write-type", VariantType::Int, 0, {
"clusters not associated to tracks: 0 - don't write, 1 - separate tree, 2 - spearate file"}},
151 {
"min-dedx", VariantType::Double, 20., {
"minimum dEdx cut"}},
152 {
"max-dedx", VariantType::Double, 1e10, {
"maximum dEdx cut"}},
153 {
"min-momentum", VariantType::Double, 0.2, {
"minimum momentum cut"}},
154 {
"max-momentum", VariantType::Double, 1e10, {
"maximum momentum cut"}},
155 {
"min-clusters", VariantType::Int, 60, {
"minimum number of clusters in a track"}},