File indexing completed on 2024-11-15 09:55:44
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 #ifndef ROOT_RJITTEDVARIATION
0012 #define ROOT_RJITTEDVARIATION
0013
0014 #include "ROOT/RDF/RVariationBase.hxx"
0015 #include "ROOT/RStringView.hxx"
0016
0017 #include <memory>
0018
0019 class TTreeReader;
0020
0021 namespace ROOT {
0022 namespace Internal {
0023 namespace RDF {
0024
0025
0026
0027
0028
0029 class RJittedVariation : public RVariationBase {
0030 std::unique_ptr<RVariationBase> fConcreteVariation = nullptr;
0031
0032 public:
0033 RJittedVariation(const std::vector<std::string> &colNames, std::string_view variationName,
0034 const std::vector<std::string> &variationTags, std::string_view type,
0035 const RColumnRegister &colRegister, RLoopManager &lm, const ColumnNames_t &inputColNames)
0036 : RVariationBase(colNames, variationName, variationTags, type, colRegister, lm, inputColNames)
0037 {
0038 }
0039 ~RJittedVariation() override;
0040
0041 void SetVariation(std::unique_ptr<RVariationBase> c) { fConcreteVariation = std::move(c); }
0042
0043 void InitSlot(TTreeReader *r, unsigned int slot) final;
0044 void *GetValuePtr(unsigned int slot, const std::string &column, const std::string &variation) final;
0045 const std::type_info &GetTypeId() const final;
0046 void Update(unsigned int slot, Long64_t entry) final;
0047 void FinalizeSlot(unsigned int slot) final;
0048 };
0049
0050 }
0051 }
0052 }
0053
0054 #endif