4#ifndef ANALYSISTREE_INFRA_UTILS_HPP
5#define ANALYSISTREE_INFRA_UTILS_HPP
8#define __has_include(MACRO) 0
11#if __has_include(<variant>) && __cplusplus > 201402L
13#define ANALYSISTREE_STD_VARIANT 1
14#define ANALYSISTREE_UTILS_VARIANT std::variant
15#define ANALYSISTREE_UTILS_VISIT std::visit
16#define ANALYSISTREE_UTILS_GET std::get
17#elif __has_include(<boost/variant.hpp>)
18#include <boost/variant.hpp>
19#include <boost/variant/static_visitor.hpp>
20#define ANALYSISTREE_BOOST_VARIANT 1
21#define ANALYSISTREE_UTILS_VARIANT boost::variant
22#define ANALYSISTREE_UTILS_VISIT boost::apply_visitor
23#define ANALYSISTREE_UTILS_GET boost::get
26#include "Detector.hpp"
36using BranchPointer = ANALYSISTREE_UTILS_VARIANT<HitDetector*, ModuleDetector*, TrackDetector*, EventHeader*, Particles*>;
37using ChannelPointer = ANALYSISTREE_UTILS_VARIANT<Hit*, Module*, Track*, EventHeader*, Particle*>;
41template<
typename RetType>
43#if defined(ANALYSISTREE_BOOST_VARIANT)
44 :
public boost::static_visitor<RetType>
48#if defined(ANALYSISTREE_STD_VARIANT)
49 typedef RetType result_type;
Cuts keep list of SimpleCuts. Logical AND is applied for all SimpleCut in the Cuts object.
Definition BranchConfig.cpp:10