https://heavyionanalysis.github.io/AnalysisTreeQA/
This is a package for Quality Assurance and some basic analysis of AnalysisTree data.
ROOT6 is needed for installation. Version compiled with c++17 flag is preferred, otherwise CMAKE_CXX_STANDARD flag needs to be implicitly specified (see below).
git clone [email protected]:HeavyIonAnalysis/AnalysisTreeQA.git
cd AnalysisTreeQA
mkdir build install
cd build
source /path/to/your/thisroot.sh
cmake -DCMAKE_INSTALL_PREFIX=../install ../
make -j install
To apply the flag use -D{Name}={value}, for example, if you want to compile using c++11:
cmake -DCMAKE_CXX_STANDARD=11 ../
Name | Default value | Possible values |
---|---|---|
CMAKE_BUILD_TYPE | RELEASE | RELEASE/DEBUG |
CMAKE_CXX_STANDARD | 17 | 11/14/17 |
AnalysisTreeQA_BUILD_TESTS | ON | ON/OFF |
AnalysisTreeQA_BUILD_TASKS | OFF | ON/OFF |
AnalysisTreeQA_BUNDLED_AT | ON | ON/OFF |
AnalysisTreeQA_BUNDLED_AT_VERSION | v2.2.8 | master/v2.0.1/... |
AnalysisTreeQA_BUNDLED_AT_GIT_SHALLOW | ON | ON/OFF |
If AnalysisTreeQA_BUNDLED_AT_VERSION variable shows not on the tag (but branch name or commit hash) then AnalysisTreeQA_BUNDLED_AT_GIT_SHALLOW variable must be set OFF.
Simple program:
// Manager instance: filelist1, filelist2, ...; treename1, treename2, ...
QA::Manager man({filelist1, filelist2}, {"aTree", "bTree"});
man.SetOutFileName("test_qa.root");
auto* task = QA::Task();
// 1D histo: {branch_name, field_name}, {nbins, min, max}
task->AddH1({"N_{hits}", {"VtxTracks", "nhits"}, {15, 0, 15}});
// AnalysisTree::Variable in case of more complicated plot
Variable chi2_over_ndf("chi2/ndf", {{"VtxTracks", "chi2"}, {"VtxTracks", "ndf"}}, []( std::vector<double>& var ) { return var.at(0)/var.at(1); });
task->AddH1({"#chi^{2}/NDF", chi2_over_ndf, {100, 0, 100}});
// 2D histo:
task->AddH2({"DCA_{x}", {"VtxTracks", "dcax"}, {100, -1, 1}}, {"DCA_{y}", {"VtxTracks", "dcay"}, {100, -1, 1}});
// Histogramm with additional cut:
Cuts* mc_protons = new Cuts("McProtons", {{"SimTracks","pid"}, 2212});
task->AddH1({"N_{hits}", {"VtxTracks", "nhits"}, {15, 0, 15}}, mc_protons);
man.Run();
- Matching between 3 branches is not available (i. e. TofHits.m2 vs. VtxTracks.p with cut on MC-true protons)