13 #include <boost/shared_ptr.hpp>
27 template<
typename T>
class QwBCM;
48 virtual Int_t
ProcessEvBuffer(UInt_t* buffer, UInt_t word_position_in_buffer, UInt_t subelement=0) = 0;
54 { std::cerr <<
"Ratio not defined! (VQwBCM)" << std::endl; }
60 virtual void InitializeChannel(TString subsystem, TString name, TString datatosave) = 0;
79 virtual void Scale(Double_t factor) = 0;
86 virtual void FillTreeVector(std::vector<Double_t> &values)
const = 0;
88 virtual std::vector<QwDBInterface>
GetDBEntry() = 0;
111 static VQwBCM*
Create(TString subsystemname, TString type, TString name, TString clock =
"");
virtual void SetRandomEventAsymmetry(Double_t asymmetry)=0
boost::shared_ptr< VQwBCM > VQwBCM_ptr
virtual void Scale(Double_t factor)=0
static VQwBCM * Create(TString subsystemname, TString type, TString name, TString clock="")
A fast way of creating a BCM of specified type.
virtual UInt_t UpdateErrorFlag()
Update the error flag based on the error flags of internally contained objects Return paramter is the...
virtual void ConstructBranchAndVector(TTree *tree, TString &prefix, std::vector< Double_t > &values)=0
virtual Double_t GetNormClockValue()=0
VQwDataElement & fBeamCurrent_ref
virtual Bool_t NeedsExternalClock()=0
virtual void CalculateRunningAverage()=0
virtual void FillTreeVector(std::vector< Double_t > &values) const =0
virtual void DeaccumulateRunningSum(VQwBCM &value)=0
virtual void AccumulateRunningSum(const VQwBCM &value)=0
virtual void SetDefaultSampleSize(Int_t sample_size)=0
virtual void FillHistograms()=0
Fill the histograms for this data element.
virtual void ConstructBranch(TTree *tree, TString &prefix)=0
virtual std::vector< QwErrDBInterface > GetErrDBEntry()=0
virtual void SetBCMForCombo(VQwBCM *bcm, Double_t weight, Double_t sumqw)=0
virtual void Ratio(const VQwBCM &numer, const VQwBCM &denom)
virtual void SetSingleEventCuts(UInt_t errorflag, Double_t min, Double_t max, Double_t stability)=0
Inherited from VQwDataElement to set the upper and lower limits (fULimit and fLLimit), stability % and the error flag on this channel.
Definition of the pure virtual base class of all data elements.
virtual void SetEventCutMode(Int_t bcuts)=0
virtual void EncodeEventData(std::vector< UInt_t > &buffer)=0
The pure virtual base class of all data elements.
virtual UInt_t GetEventcutErrorFlag()
return the error flag on this channel/device
virtual void RandomizeEventData(int helicity, double time)=0
virtual void SetExternalClockName(const std::string name)=0
virtual Bool_t ApplySingleEventCuts()=0
virtual Double_t GetValueError()=0
virtual std::vector< QwDBInterface > GetDBEntry()=0
virtual VQwBCM & operator=(const VQwBCM &value)=0
virtual Double_t GetValue()=0
VQwBCM(VQwDataElement &beamcurrent)
virtual VQwBCM & operator+=(const VQwBCM &value)=0
virtual void InitializeChannel(TString name, TString datatosave)=0
virtual void ConstructHistograms(TDirectory *folder, TString &prefix)=0
Construct the histograms for this data element.
virtual void SetRandomEventParameters(Double_t mean, Double_t sigma)=0
virtual Double_t GetValueWidth()=0
virtual void AddRandomEventDriftParameters(Double_t amplitude, Double_t phase, Double_t frequency)=0
virtual VQwBCM & operator-=(const VQwBCM &value)=0
VQwBCM(VQwDataElement &beamcurrent, TString name)
virtual void SetCalibrationFactor(Double_t calib)=0
virtual const VQwHardwareChannel * GetCharge() const =0
virtual Int_t ProcessEvBuffer(UInt_t *buffer, UInt_t word_position_in_buffer, UInt_t subelement=0)=0
Process the CODA event buffer for this element.
virtual void ClearEventData()=0
Clear the event data in this element.
virtual void ProcessEvent()=0
virtual void IncrementErrorCounters()=0
virtual void SetExternalClockPtr(const VQwHardwareChannel *clock)=0
virtual void SetPedestal(Double_t ped)=0
static VQwBCM * CreateCombo(TString subsystemname, TString type, TString name)
A fast way of creating a combo BCM of specified type.
virtual void LoadChannelParameters(QwParameterFile ¶mfile)=0