33namespace globaltracking
45 void connectTree(
const std::string&
filename);
47 std::unique_ptr<TFile> mFile;
48 std::unique_ptr<TTree> mTree;
49 std::string mFileName =
"";
50 std::vector<o2::dataformats::TrackTPCITS> mTracks, *mTracksPtr = &mTracks;
51 std::vector<o2::itsmft::TrkClusRef> mABTrkClusRefs, *mABTrkClusRefsPtr = &mABTrkClusRefs;
52 std::vector<int> mABTrkClIDs, *mABTrkClIDsPtr = &mABTrkClIDs;
53 std::vector<o2::MCCompLabel> mLabels, *mLabelsPtr = &mLabels;
54 std::vector<o2::MCCompLabel> mLabelsAB, *mLabelsABPtr = &mLabelsAB;
60 ic.
options().
get<std::string>(
"itstpc-track-infile"));
61 connectTree(mFileName);
66 auto ent = mTree->GetReadEntry() + 1;
72 const bool noEntry = ent >= mTree->GetEntries();
74 LOG(info) <<
"no entry to read, publishing empty output";
78 LOG(info) <<
"Pushing " << mTracks.size() <<
" TPC-ITS matches at entry " << ent;
88 if (noEntry || mTree->GetReadEntry() + 1 >= mTree->GetEntries()) {
94void TrackTPCITSReader::connectTree(
const std::string&
filename)
97 mFile.reset(TFile::Open(
filename.c_str()));
98 assert(mFile && !mFile->IsZombie());
99 mTree.reset((TTree*)mFile->Get(
"matchTPCITS"));
101 mTree->SetBranchAddress(
"TPCITS", &mTracksPtr);
102 mTree->SetBranchAddress(
"TPCITSABRefs", &mABTrkClusRefsPtr);
103 mTree->SetBranchAddress(
"TPCITSABCLID", &mABTrkClIDsPtr);
105 mTree->SetBranchAddress(
"MatchMCTruth", &mLabelsPtr);
106 mTree->SetBranchAddress(
"MatchABMCTruth", &mLabelsABPtr);
108 LOG(info) <<
"Loaded tree from " <<
filename <<
" with " << mTree->GetEntries() <<
" entries";
113 std::vector<OutputSpec> outputs;
114 outputs.emplace_back(
"GLO",
"TPCITS", 0, Lifetime::Timeframe);
115 outputs.emplace_back(
"GLO",
"TPCITSAB_REFS", 0, Lifetime::Timeframe);
116 outputs.emplace_back(
"GLO",
"TPCITSAB_CLID", 0, Lifetime::Timeframe);
118 outputs.emplace_back(
"GLO",
"TPCITS_MC", 0, Lifetime::Timeframe);
119 outputs.emplace_back(
"GLO",
"TPCITSAB_MC", 0, Lifetime::Timeframe);
123 "itstpc-track-reader",
128 {
"itstpc-track-infile", VariantType::String,
"o2match_itstpc.root", {
"Name of the input file"}},
129 {
"input-dir", VariantType::String,
"none", {
"Input directory"}}}};
Header of the General Run Parameters object.
Definition of the Names Generator class.
Type wrappers for enfording a specific serialization method.
Result of refitting TPC-ITS matched track.
Reference on ITS/MFT clusters set.
T get(const char *key) const
void snapshot(const Output &spec, T const &object)
ConfigParamRegistry const & options()
DataAllocator & outputs()
The data allocator is used to allocate memory for the output data.
ServiceRegistryRef services()
The services registry associated with this processing context.
virtual void endOfStream(EndOfStreamContext &context)
This is invoked whenever we have an EndOfStream event.
TrackTPCITSReader(bool useMC)
void init(InitContext &ic) final
~TrackTPCITSReader() override=default
void run(ProcessingContext &pc) final
Defining ITS Vertex explicitly as messageable.
std::vector< ConfigParamSpec > Options
std::vector< InputSpec > Inputs
framework::DataProcessorSpec getTrackTPCITSReaderSpec(bool useMC)
create a processor spec
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
static std::string rectifyDirectory(const std::string_view p)
static std::string concat_string(Ts const &... ts)
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"