Warning, file /include/DDDigi/DigiROOTInput.h was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #ifndef DDDIGI_DIGIROOTINPUT_H
0014 #define DDDIGI_DIGIROOTINPUT_H
0015
0016
0017 #include <DDDigi/DigiInputAction.h>
0018
0019
0020 #include <memory>
0021
0022
0023 class TBranch;
0024 class TClass;
0025
0026
0027 namespace dd4hep {
0028
0029
0030 namespace digi {
0031
0032
0033 class DigiROOTInput;
0034
0035
0036
0037
0038
0039
0040
0041
0042 class DigiROOTInput : public DigiInputAction {
0043
0044 public:
0045
0046 class internals_t;
0047 class inputsource_t;
0048 class container_t {
0049 public:
0050 Key key;
0051 TBranch& branch;
0052 TClass& clazz;
0053 container_t(Key k, TBranch& b, TClass& c) : key(std::move(k)), branch(b), clazz(c) {}
0054 };
0055 class work_t {
0056 public:
0057 DataSegment& segment;
0058 container_t& container;
0059 };
0060
0061
0062 protected:
0063
0064 mutable std::unique_ptr<internals_t> imp;
0065
0066 protected:
0067
0068 DDDIGI_DEFINE_ACTION_CONSTRUCTORS(DigiROOTInput);
0069
0070 public:
0071
0072 DigiROOTInput(const DigiKernel& kernel, const std::string& nam);
0073
0074 virtual ~DigiROOTInput();
0075
0076
0077 virtual void execute(DigiContext& context) const override;
0078
0079 virtual void operator()(DigiContext& context, work_t& work) const = 0;
0080 };
0081
0082 }
0083 }
0084 #endif