AnalysisTree
Toggle main menu visibility
Loading...
Searching...
No Matches
infra
PlainTreeFiller.hpp
1
/* Copyright (C) 2019-2021 GSI, Universität Tübingen
2
SPDX-License-Identifier: GPL-3.0-only
3
Authors: Viktor Klochkov, Ilya Selyuzhenkov */
4
#ifndef ANALYSISTREE_PLAINTREEFILLER_H_
5
#define ANALYSISTREE_PLAINTREEFILLER_H_
6
7
#include <utility>
8
9
#include "AnalysisTask.hpp"
10
#include "Detector.hpp"
11
#include "Variable.hpp"
12
13
namespace
AnalysisTree
{
14
15
struct
FIB
{
16
float
float_{-299.f};
17
int
int_{-299};
18
bool
bool_{
false
};
19
Types type_{Types::kNumberOfTypes};
20
};
21
22
class
PlainTreeFiller :
public
AnalysisTask {
23
public
:
24
PlainTreeFiller() =
default
;
25
26
void
AddBranch(
const
std::string& branch_name);
27
28
void
Init()
override
;
29
void
Exec()
override
;
30
void
Finish()
override
;
31
32
void
SetOutputName(std::string file, std::string tree) {
33
file_name_ = std::move(file);
34
tree_name_ = std::move(tree);
35
}
36
37
void
SetFieldsToIgnore(
const
std::vector<std::string>& fields_to_ignore);
38
void
SetFieldsToPreserve(
const
std::vector<std::string>& fields_to_preserve);
39
void
SetFieldsToRename(
const
std::vector<std::pair<std::string, std::string>>& fields_to_rename);
40
41
void
SetIsIgnoreDefaultFields(
bool
is =
true
) { is_ignore_defual_fields_ = is; }
42
void
SetIsPrependLeavesWithBranchName(
bool
is =
true
) { is_prepend_leaves_with_branchname_ = is; }
43
44
protected
:
45
void
CheckIgnorePreserveRenameFields(
const
std::vector<std::string>& leafNames)
const
;
46
47
TFile* file_{
nullptr
};
48
TTree* plain_tree_{
nullptr
};
49
50
std::string file_name_{
"PlainTree.root"
};
51
std::string tree_name_{
"PlainTree"
};
52
std::string branch_name_;
53
54
std::vector<FIB> vars_;
55
std::vector<std::string> fields_to_ignore_{};
56
std::vector<std::string> fields_to_preserve_{};
57
std::map<std::string, std::string> fields_to_rename_{};
58
59
bool
is_ignore_defual_fields_{
false
};
60
bool
is_prepend_leaves_with_branchname_{
true
};
61
};
62
63
}
// namespace AnalysisTree
64
65
#endif
//ANALYSISTREE_PLAINTREEFILLER_H_
AnalysisTree
Cuts keep list of SimpleCuts. Logical AND is applied for all SimpleCut in the Cuts object.
Definition
BranchConfig.cpp:10
AnalysisTree::FIB
Definition
PlainTreeFiller.hpp:15
Generated by
1.17.0