8 #ifndef __QwCOMBINEDBPM__
9 #define __QwCOMBINEDBPM__
72 UInt_t word_position_in_buffer,UInt_t indexnumber);
78 if (axis<0 || axis>2){
79 TString loc=
"QwLinearDiodeArray::GetPosition for "
81 throw std::out_of_range(loc.Data());
87 if (axis<0 || axis>2){
88 TString loc=
"QwLinearDiodeArray::GetPosition for "
90 throw std::out_of_range(loc.Data());
112 void SetBPMForCombo(
const VQwBPM* bpm, Double_t charge_weight, Double_t x_weight, Double_t y_weight,Double_t sumqw);
116 void Scale(Double_t factor);
169 Double_t
SumOver( std::vector <Double_t> weight , std::vector <T> val);
180 Double_t
A[2],
B[2],
D[2],
m[2];
void PrintErrorCounters() const
report number of events failed due to HW and event cut failure
void CalculateRunningAverage()
VQwHardwareChannel * GetAngleY()
std::vector< Double_t > fXWeights
void InitializeChannel(TString name)
void IncrementErrorCounters()
VQwBPM & operator-=(const VQwBPM &value)
void CalculateFixedParameter(std::vector< Double_t > fWeights, Int_t pos)
VQwBPM & operator=(const VQwBPM &value)
void SetEventCutMode(Int_t bcuts)
Inherited from VQwDataElement to set the upper and lower limits (fULimit and fLLimit), stability % and the error flag on this channel.
const VQwHardwareChannel * GetAngleY() const
Bool_t ApplySingleEventCuts()
const VQwHardwareChannel * GetAngleX() const
void FillTreeVector(std::vector< Double_t > &values) const
void ConstructBranchAndVector(TTree *tree, TString &prefix, std::vector< Double_t > &values)
const VQwHardwareChannel * GetPosition(EBeamPositionMonitorAxis axis) const
UInt_t UpdateErrorFlag()
Update the error flag based on the error flags of internally contained objects Return paramter is the...
Double_t SumOver(std::vector< Double_t > weight, std::vector< T > val)
void ClearEventData()
Clear the event data in this element.
VQwHardwareChannel * GetSubelementByName(TString ch_name)
void FillHistograms()
Fill the histograms for this data element.
QwCombinedBPM(TString subsystem, TString name, TString type)
UInt_t GetEventcutErrorFlag()
return the error flag on this channel/device
void DeaccumulateRunningSum(VQwBPM &value)
Bool_t fixedParamCalculated
void LeastSquareFit(VQwBPM::EBeamPositionMonitorAxis axis, std::vector< Double_t > fWeights)
void Scale(Double_t factor)
static const TString axis[3]
void SetBPMForCombo(const VQwBPM *bpm, Double_t charge_weight, Double_t x_weight, Double_t y_weight, Double_t sumqw)
QwCombinedBPM(TString name)
static const double T
Magnetic field: base unit is T.
QwCombinedBPM(TString subsystem, TString name)
void ConstructHistograms(TDirectory *folder, TString &prefix)
Construct the histograms for this data element.
void SetModuleType(TString ModuleType)
set the type of the beam instrument
virtual const TString & GetElementName() const
Get the name of this element.
void PrintInfo() const
Print multiple lines of information about this data element.
const VQwHardwareChannel * GetEffectiveCharge() const
VQwBPM & operator+=(const VQwBPM &value)
std::vector< const VQwBPM * > fElement
const VQwHardwareChannel * GetSlope(EBeamPositionMonitorAxis axis) const
std::vector< T > fBPMComboElementList
std::vector< Double_t > fQWeights
std::vector< QwErrDBInterface > GetErrDBEntry()
VQwHardwareChannel * GetAngleX()
void InitializeChannel(TString subsystem, TString name, TString type)
std::vector< QwDBInterface > GetDBEntry()
std::vector< Double_t > fYWeights
void LoadChannelParameters(QwParameterFile ¶mfile)
void Ratio(QwCombinedBPM &numer, QwCombinedBPM &denom)
QwCombinedBPM(const QwCombinedBPM &source)
void PrintValue() const
Print single line of value and error of this data element.
void ConstructBranch(TTree *tree, TString &prefix)
void AccumulateRunningSum(const VQwBPM &value)
Int_t ProcessEvBuffer(UInt_t *buffer, UInt_t word_position_in_buffer, UInt_t indexnumber)
Process the CODA event buffer for this element.