15#ifdef HAS_RNTUPLE_SUPPORT
16#include <ROOT/RNTupleModel.hxx>
24#ifdef __USE_DATABASE__
28template<
typename T>
class QwClock;
67 virtual void SetSingleEventCuts(UInt_t errorflag,Double_t min, Double_t max, Double_t stability, Double_t burplevel) = 0;
69 { std::cerr <<
"Ratio not defined! (VQwClock)" << std::endl; }
73 virtual void InitializeChannel(TString subsystem, TString name, TString datatosave, TString type =
"") = 0;
83 virtual void Scale(Double_t factor) = 0;
91#ifdef HAS_RNTUPLE_SUPPORT
92 virtual void ConstructNTupleAndVector(std::unique_ptr<ROOT::RNTupleModel>& model, TString& prefix, std::vector<Double_t>& values, std::vector<std::shared_ptr<Double_t>>& fieldPtrs) = 0;
93 virtual void FillNTupleVector(std::vector<Double_t>& values)
const = 0;
96#ifdef __USE_DATABASE__
97 virtual std::vector<QwDBInterface> GetDBEntry() = 0;
106 static VQwClock*
Create(TString subsystemname, TString type, TString name);
Parameter file parsing and management.
Definition of the pure virtual base class of all data elements.
std::shared_ptr< VQwClock > VQwClock_ptr
const TString QwBPMStripline< T >::subelement[4]
Configuration file parser with flexible tokenization and search capabilities.
A helper class to manage a vector of branch entries for ROOT trees.
VQwDataElement()
Default constructor.
Abstract base for concrete hardware channels implementing dual-operator pattern.
Standard clock channel with calibration representing frequency.
virtual void ConstructBranch(TTree *tree, TString &prefix)=0
virtual void DeaccumulateRunningSum(VQwClock &value, Int_t ErrorMask=0xFFFFFFF)=0
virtual VQwClock & operator-=(const VQwClock &value)=0
VQwClock(const VQwClock &source)
virtual void CalculateRunningAverage()=0
virtual void AccumulateRunningSum(const VQwClock &value, Int_t count=0, Int_t ErrorMask=0xFFFFFFF)=0
void LoadChannelParameters(QwParameterFile ¶mfile) override=0
virtual const VQwHardwareChannel * GetTime() const =0
virtual void Scale(Double_t factor)=0
virtual void SetPedestal(Double_t ped)=0
Int_t ProcessEvBuffer(UInt_t *buffer, UInt_t word_position_in_buffer, UInt_t subelement=0) override=0
Process the CODA event buffer for this element.
virtual void IncrementErrorCounters()=0
virtual void InitializeChannel(TString subsystem, TString name, TString datatosave, TString type="")=0
void ClearEventData() override=0
Clear the event data in this element.
virtual void FillTreeVector(QwRootTreeBranchVector &values) const =0
virtual void ConstructBranch(TTree *tree, TString &prefix, QwParameterFile &modulelist)=0
virtual void Ratio(const VQwClock &, const VQwClock &)
virtual VQwClock & operator=(const VQwClock &value)=0
virtual VQwClock & operator+=(const VQwClock &value)=0
virtual Bool_t ApplySingleEventCuts()=0
Double_t GetNormClockValue() override=0
virtual void ProcessEvent()=0
static VQwClock * Create(TString subsystemname, TString type, TString name)
virtual void ConstructBranchAndVector(TTree *tree, TString &prefix, QwRootTreeBranchVector &values)=0
void FillHistograms() override=0
Fill the histograms for this data element.
virtual void SetSingleEventCuts(UInt_t errorflag, Double_t min, Double_t max, Double_t stability, Double_t burplevel)=0
Inherited from VQwDataElement to set the upper and lower limits (fULimit and fLLimit),...
virtual void SetEventCutMode(Int_t bcuts)=0
virtual Double_t GetStandardClockValue()=0
virtual void SetCalibrationFactor(Double_t calib)=0
virtual Bool_t CheckForBurpFail(const VQwClock *ev_error)=0
void ConstructHistograms(TDirectory *folder, TString &prefix) override=0
Construct the histograms for this data element.