22#ifdef HAS_RNTUPLE_SUPPORT
23#include "ROOT/RNTupleModel.hxx"
99 fTargetX.InitializeChannel(
"x_targ",
"derived");
100 fTargetY.InitializeChannel(
"y_targ",
"derived");
179#ifdef HAS_RNTUPLE_SUPPORT
180 void ConstructNTupleAndVector(std::unique_ptr<ROOT::RNTupleModel>& model, TString& prefix, std::vector<Double_t>& values, std::vector<std::shared_ptr<Double_t>>& fieldPtrs)
override;
181 void FillNTupleVector(std::vector<Double_t>& values)
const override;
184#ifdef __USE_DATABASE__
185 void FillDB(QwParityDB *db, TString datatype);
186 void FillErrDB(QwParityDB *db, TString datatype);
200 void Scale(Double_t factor)
override;
215 Bool_t status = kTRUE;
class QwMollerADC_Channel QwBeamCharge
class QwMollerADC_Channel QwBeamEnergy
static const UInt_t kInvalidSubelementIndex
class QwMollerADC_Channel QwBeamAngle
class QwMollerADC_Channel QwBeamPosition
Combined PMT detector using Moller ADC channels.
Virtual base class for parity analysis subsystems.
Integration PMT detector for charge and asymmetry measurements.
Command-line and configuration file options processor.
Configuration file parser with flexible tokenization and search capabilities.
A helper class to manage a vector of branch entries for ROOT trees.
The pure virtual base class of all data elements.
Base class for subsystems implementing container-delegation pattern.
virtual void ConstructHistograms()
Construct the histograms for this subsystem.
static void DefineOptions()
Define options function (note: no virtual static functions in C++)
VQwSubsystem(const TString &name)
Constructor with name.
virtual void ConstructBranchAndVector(TTree *tree, TString &prefix, QwRootTreeBranchVector &values)=0
Construct the branch and tree vector.
Combines multiple integration PMTs into weighted sum/average.
Integration PMT providing yield/diff/asym readout from Moller ADC.
std::vector< Double_t > fWeight
std::vector< TString > fCombinedChannelNames
EQwPMTInstrumentType fTypeID
Int_t LoadInputParameters(TString pedestalfile) override
Mandatory parameter file definition.
Bool_t ApplySingleEventCuts() override
Apply the single event cuts.
VQwDetectorArray(const VQwDetectorArray &source)
Copy constructor.
void LoadEventCuts_Fin(Int_t &eventcut_flag) override
const QwCombinedPMT * GetCombinedPMT(const TString name) const
void Ratio(VQwSubsystem *numer, VQwSubsystem *denom) override
Int_t GetDetectorIndex(EQwPMTInstrumentType TypeID, TString name)
void ProcessOptions(QwOptions &options) override
void ConstructHistograms(TDirectory *folder) override
Construct the histograms for this subsystem in a folder.
void AccumulateRunningSum(VQwSubsystem *value, Int_t count=0, Int_t ErrorMask=0xFFFFFFF) override
Update the running sums for devices.
const QwIntegrationPMT * GetChannel(const TString name) const
EQwPMTInstrumentType GetDetectorTypeID(TString name)
void DoNormalization(Double_t factor=1.0)
void LoadMockDataParameters(TString pedestalfile) override
VQwDetectorArray()
Private default constructor (not implemented, will throw linker error on use)
QwBeamAngle fTargetXprime
void FillTreeVector(QwRootTreeBranchVector &values) const override
Fill the tree vector.
Int_t LoadChannelMap(TString mapfile) override
void IncrementErrorCounters() override
Increment the error counters.
void DeaccumulateRunningSum(VQwSubsystem *value, Int_t ErrorMask=0xFFFFFFF) override
remove one entry from the running sums for devices
void ConstructBranch(TTree *tree, TString &prefix) override
Construct the branch and tree vector.
void WritePromptSummary(QwPromptSummary *ps, TString type) override
Int_t ProcessEvBuffer(const ROCID_t roc_id, const BankID_t bank_id, UInt_t *buffer, UInt_t num_words) override
TODO: The non-event-type-aware ProcessEvBuffer routine should be replaced with the event-type-aware v...
std::vector< QwIntegrationPMT > fIntegrationPMT
virtual void ConstructHistograms()
Construct the histograms for this subsystem.
Bool_t CheckForBurpFail(const VQwSubsystem *subsys) override
Report the number of events failed due to HW and event cut failures.
void LoadEventCuts_Init() override
void LoadEventCuts_Line(QwParameterFile &mapstr, TString &varvalue, Int_t &eventcut_flag) override
Bool_t Compare(VQwSubsystem *source)
VQwSubsystem & operator-=(VQwSubsystem *value) override
void PrintDetectorID() const
void PrintErrorCounters() const override
Bool_t bIsExchangedDataValid
QwBeamAngle fTargetYprime
Int_t ProcessConfigurationBuffer(const ROCID_t roc_id, const BankID_t bank_id, UInt_t *buffer, UInt_t num_words) override
static const Bool_t bDEBUG
VQwDetectorArray(const TString &name)
Constructor with name.
void ExchangeProcessedData() override
Bool_t PublishInternalValues() const override
std::vector< QwDetectorArrayID > fMainDetID
~VQwDetectorArray() override
Virtual destructor.
void EncodeEventData(std::vector< UInt_t > &buffer) override
void Normalize(VQwDataElement *denom)
VQwSubsystem & operator+=(VQwSubsystem *value) override
QwBeamCharge fTargetCharge
std::vector< QwCombinedPMT > fCombinedPMT
VQwSubsystem & operator=(VQwSubsystem *value) override
Assignment Note: Must be called at the beginning of all subsystems routine call to operator=(VQwSubsy...
void PrintValue() const override
Print values of all channels.
void SetRandomEventAsymmetry(Double_t asymmetry)
void ConstructBranchAndVector(TTree *tree, TString &prefix, QwRootTreeBranchVector &values) override
Construct the branch and tree vector.
UInt_t GetEventcutErrorFlag() override
Return the error flag to the top level routines related to stability checks and ErrorFlag updates.
Bool_t PublishByRequest(TString device_name) override
void SetRandomEventParameters(Double_t mean, Double_t sigma)
void PrintInfo() const override
Print some information about the subsystem.
void CalculateRunningAverage() override
Calculate the average for all good events.
void Scale(Double_t factor) override
void ProcessEvent() override
void RandomizeMollerEvent(int helicity)
void ClearEventData() override
void ProcessEvent_2() override
Process the event data again, including data from other subsystems. Not all derived classes will requ...
const QwIntegrationPMT * GetIntegrationPMT(const TString name) const
void RandomizeEventData(int helicity=0, Double_t time=0.0) override
QwBeamEnergy fTargetEnergy
void FillHistograms() override
Fill the histograms for this subsystem.
VQwSubsystemParity()
Private default constructor (not implemented, will throw linker error on use)
virtual void FillDB(QwParityDB *, TString)
Fill the database.
virtual UInt_t UpdateErrorFlag()
Uses the error flags of contained data elements to update Returns the error flag to the top level rou...
virtual void FillErrDB(QwParityDB *, TString)