Project
Loading...
Searching...
No Matches
TRDTrackWriterSpec.cxx
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
11
13
14#include <vector>
21
22using namespace o2::framework;
23using namespace o2::gpu;
24
26
27namespace o2
28{
29namespace trd
30{
31template <typename T>
33
35{
36 using LabelsType = std::vector<o2::MCCompLabel>;
37
38 // A spectator to store the size of the data array for the logger below
39 auto tracksSize = std::make_shared<int>();
40 auto tracksLogger = [tracksSize](std::vector<o2::trd::TrackTRD> const& tracks) {
41 *tracksSize = tracks.size();
42 };
43
44 return MakeRootTreeWriterSpec("trd-track-writer-tpcits",
45 "trdmatches_itstpc.root",
46 "tracksTRD",
47 BranchDefinition<std::vector<o2::trd::TrackTRD>>{InputSpec{"tracks", o2::header::gDataOriginTRD, "MATCH_ITSTPC", 0},
48 "tracks",
49 "tracks-branch-name",
50 1,
51 tracksLogger},
53 "trgrec",
54 "trgrec-branch-name",
55 1},
56 BranchDefinition<LabelsType>{InputSpec{"trdlabels", o2::header::gDataOriginTRD, "MCLB_ITSTPC_TRD", 0},
57 "labelsTRD",
58 (useMC ? 1 : 0), // one branch if mc labels enabled
59 "trdlabels-branch-name"},
60 BranchDefinition<LabelsType>{InputSpec{"matchitstpclabels", o2::header::gDataOriginTRD, "MCLB_ITSTPC", 0},
61 "labels",
62 (useMC ? 1 : 0), // one branch if mc labels enabled
63 "labels-branch-name"})();
64}
65
66DataProcessorSpec getTRDTPCTrackWriterSpec(bool useMC, bool strictMode)
67{
68 using LabelsType = std::vector<o2::MCCompLabel>;
69
70 // A spectator to store the size of the data array for the logger below
71 auto tracksSize = std::make_shared<int>();
72 auto tracksLogger = [tracksSize](std::vector<o2::trd::TrackTRD> const& tracks) {
73 *tracksSize = tracks.size();
74 };
75 uint32_t ss = o2::globaltracking::getSubSpec(strictMode ? o2::globaltracking::MatchingType::Strict : o2::globaltracking::MatchingType::Standard);
76 return MakeRootTreeWriterSpec("trd-track-writer-tpc",
77 "trdmatches_tpc.root",
78 "tracksTRD",
79 BranchDefinition<std::vector<o2::trd::TrackTRD>>{InputSpec{"tracks", o2::header::gDataOriginTRD, "MATCH_TPC", ss},
80 "tracks",
81 "tracks-branch-name",
82 1,
83 tracksLogger},
85 "trgrec",
86 "trgrec-branch-name",
87 1},
89 "labelsTRD",
90 (useMC ? 1 : 0), // one branch if mc labels enabled
91 "trdlabels-branch-name"},
92 BranchDefinition<LabelsType>{InputSpec{"matchtpclabels", o2::header::gDataOriginTRD, "MCLB_TPC", ss},
93 "labels",
94 (useMC ? 1 : 0), // one branch if mc labels enabled
95 "labels-branch-name"})();
96}
97
98} // namespace trd
99} // namespace o2
std::vector< o2::MCCompLabel > LabelsType
Configurable generator for RootTreeWriter processor spec.
Defintions for the inter-detector matching type.
Generate a processor spec for the RootTreeWriter utility.
constexpr o2::header::DataOrigin gDataOriginTRD
Definition DataHeader.h:577
Defining PrimaryVertex explicitly as messageable.
Definition TFIDInfo.h:20
framework::DataProcessorSpec getTRDTPCTrackWriterSpec(bool useMC, bool strictMode=false)
writer for matches with TPC-only tracks
framework::DataProcessorSpec getTRDGlobalTrackWriterSpec(bool useMC)
writer for matches to ITS-TPC tracks
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...