16#include <ROOT/RNTupleModel.hxx>
25#ifdef __USE_DATABASE__
69 for(Short_t i=0;i<4;i++)
77 UInt_t word_position_in_buffer,UInt_t indexnumber)
override;
82 TString loc=
"QwQPD::GetPosition for "
84 throw std::out_of_range(loc.Data());
97 void SetSingleEventCuts(TString ch_name, UInt_t errorflag,Double_t minX, Double_t maxX, Double_t stability, Double_t burplevel);
110 void SetEventData(Double_t* block, UInt_t sequencenumber);
116 void Scale(Double_t factor)
override;
139#ifdef HAS_RNTUPLE_SUPPORT
140 void ConstructNTupleAndVector(std::unique_ptr<ROOT::RNTupleModel>& model, TString& prefix, std::vector<Double_t>& values, std::vector<std::shared_ptr<Double_t>>& fieldPtrs)
override;
141 void FillNTupleVector(std::vector<Double_t>& values)
const override;
145#ifdef __USE_DATABASE__
146 std::vector<QwDBInterface> GetDBEntry();
147 std::vector<QwErrDBInterface> GetErrDBEntry();
Parameter file parsing and management.
Decoding and management for VQWK ADC channels (6x32-bit datawords)
Helper functions and utilities for analysis operations.
void QwCopyArray(const T &a, T &b)
Virtual base class for beam position monitors.
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.
Concrete hardware channel for VQWK ADC modules (6x32-bit words)
The pure virtual base class of all data elements.
void SetSubsystemName(TString sysname)
Set the name of the inheriting subsystem name.
virtual const TString & GetElementName() const
Get the name of this element.
Abstract base for concrete hardware channels implementing dual-operator pattern.
Quadrant photodiode BPM computing X/Y and effective charge.
static UInt_t GetSubElementIndex(TString subname)
QwQPD(const QwQPD &source)
void ClearEventData() override
void AccumulateRunningSum(const QwQPD &value, Int_t count=0, Int_t ErrorMask=0xFFFFFFF)
void GetCalibrationFactors(Double_t AlphaX, Double_t AlphaY)
Bool_t CheckForBurpFail(const VQwDataElement *ev_error) override
void ConstructBranch(TTree *tree, TString &prefix) override
void SetEventCutMode(Int_t bcuts) override
TString GetSubElementName(Int_t subindex) override
void ConstructHistograms(TDirectory *folder, TString &prefix) override
Construct the histograms for this data element.
void ConstructBranchAndVector(TTree *tree, TString &prefix, QwRootTreeBranchVector &values) override
std::array< QwVQWK_Channel, 4 > fPhotodiode
void Scale(Double_t factor) override
void GetAbsolutePosition() override
void LoadChannelParameters(QwParameterFile ¶mfile) override
std::array< QwVQWK_Channel, 2 > fAbsPos
void ProcessEvent() override
UInt_t GetEventcutErrorFlag() override
VQwHardwareChannel * GetSubelementByName(TString ch_name) override
void SetDefaultSampleSize(Int_t sample_size) override
VQwBPM & operator-=(const VQwBPM &value) override
const VQwHardwareChannel * GetPosition(EBeamPositionMonitorAxis axis) const override
Int_t ProcessEvBuffer(UInt_t *buffer, UInt_t word_position_in_buffer, UInt_t indexnumber) override
QwVQWK_Channel fEffectiveCharge
VQwBPM & operator+=(const VQwBPM &value) override
void SetSubElementPedestal(Int_t j, Double_t value) override
std::vector< QwVQWK_Channel > fQPDElementList
QwQPD(TString subsystemname, TString name)
const VQwHardwareChannel * GetEffectiveCharge() const override
UInt_t UpdateErrorFlag() override
Bool_t ApplySingleEventCuts() override
void CalculateRunningAverage() override
void Ratio(QwQPD &numer, QwQPD &denom)
void SetRandomEventParameters(Double_t meanX, Double_t sigmaX, Double_t meanY, Double_t sigmaY) override
void PrintErrorCounters() const override
void SetSubElementCalibrationFactor(Int_t j, Double_t value) override
void InitializeChannel(TString name)
Double_t fQwQPDCalibration[2]
void EncodeEventData(std::vector< UInt_t > &buffer) override
void DeaccumulateRunningSum(VQwBPM &value, Int_t ErrorMask=0xFFFFFFF) override
void FillHistograms() override
Fill the histograms for this data element.
VQwBPM & operator=(const VQwBPM &value) override
std::array< QwVQWK_Channel, 2 > fRelPos
void IncrementErrorCounters() override
void FillTreeVector(QwRootTreeBranchVector &values) const override
void SetSingleEventCuts(TString ch_name, UInt_t errorflag, Double_t minX, Double_t maxX, Double_t stability, Double_t burplevel)
Inherited from VQwDataElement to set the upper and lower limits (fULimit and fLLimit),...
void RandomizeEventData(int helicity=0, double time=0.0) override
void SetEventData(Double_t *block, UInt_t sequencenumber)
Abstract base for beam position monitors (BPMs)
static const TString axis[3]