13 #include <boost/shared_ptr.hpp>
65 for (
size_t i = 0; i < 3; i++)
86 virtual void Scale(Double_t factor) {
87 std::cerr <<
"Scale for VQwBPM not implemented!\n";
89 void SetGains(TString pos, Double_t value);
140 std::cerr <<
"AccumulateRunningSum not implemented for BPM named="
149 std::vector<Double_t> &values) = 0;
153 virtual void FillTreeVector(std::vector<Double_t> &values)
const = 0;
155 virtual std::vector<QwDBInterface>
GetDBEntry() = 0;
159 std::cerr <<
"Ratio() is not defined for BPM named="<<
GetElementName()<<
"\n";
169 std::cerr <<
"GetSubElementName() is not implemented!!\n";
170 return TString(
"OBJECT_UNDEFINED");
173 std::cerr <<
"GetAbsolutePosition() is not implemented!!\n";
177 std::cerr <<
"PrintErrorCounters() is not implemented!!\n";
185 std::cerr <<
"GetAngleX() is not implemented for VQwBPM, must be"
186 "used in a CombinedBPM!\n";
190 std::cerr <<
"GetAngleY() is not implemented for VQwBPM, must be"
191 "used in a CombinedBPM!\n";
195 Double_t x_weight, Double_t y_weight,Double_t sumqw) {
196 std::cerr <<
"VQwBPM::SetBPMForCombo only defined for CombinedBPM's!!!\n";
201 std::cerr <<
"SetDefaultSampleSize() is undefined!!!\n";
204 std::cerr<<
"SetRandomEventParameters undefined!!\n";
207 std::cerr <<
"RandomizeEventData is undefined!!!\n";
210 std::cerr <<
"EncodeEventData is undefined!!!\n";
213 std::cerr <<
"SetSubElementPedestal is undefined!!!\n";
216 std::cerr <<
"SetSubElementCalibrationFactor is undefined!!!\n";
219 std::cout<<
"PrintInfo() for VQwBPM not impletemented\n";
235 for(Short_t i=0;i<2;i++) {
Double_t fQwStriplineCalibration
virtual void CalculateRunningAverage()=0
virtual std::vector< QwErrDBInterface > GetErrDBEntry()=0
Double_t fRelativeGains[2]
virtual void ProcessEvent()=0
virtual std::vector< QwDBInterface > GetDBEntry()=0
void SetRootSaveStatus(TString &prefix)
static const Bool_t bDEBUG
virtual void ConstructBranchAndVector(TTree *tree, TString &prefix, std::vector< Double_t > &values)=0
virtual void DeaccumulateRunningSum(VQwBPM &value)=0
virtual VQwHardwareChannel * GetSubelementByName(TString ch_name)=0
virtual void ConstructHistograms(TDirectory *folder, TString &prefix)=0
Construct the histograms for this data element.
virtual void PrintInfo() const
Print multiple lines of information about this data element.
virtual void LoadChannelParameters(QwParameterFile ¶mfile)=0
Double_t GetPositionInZ() const
virtual const VQwHardwareChannel * GetEffectiveCharge() const =0
void SetSingleEventCuts(TString, Double_t, Double_t)
void GetSurveyOffsets(Double_t Xoffset, Double_t Yoffset, Double_t Zoffset)
virtual void SetSubElementCalibrationFactor(Int_t j, Double_t value)
Double_t fPositionCenter[3]
virtual Bool_t ApplySingleEventCuts()=0
static const TString kAxisLabel[2]
virtual void SetRandomEventParameters(Double_t meanX, Double_t sigmaX, Double_t meanY, Double_t sigmaY)
virtual const VQwHardwareChannel * GetPosition(EBeamPositionMonitorAxis axis) const =0
virtual void FillHistograms()=0
Fill the histograms for this data element.
virtual void PrintErrorCounters() const
report number of events failed due to HW and event cut failure
Definition of the pure virtual base class of all data elements.
virtual UInt_t UpdateErrorFlag()=0
Update the error flag based on the error flags of internally contained objects Return paramter is the...
The pure virtual base class of all data elements.
virtual const VQwHardwareChannel * GetAngleX() const
virtual VQwBPM & operator-=(const VQwBPM &value)=0
virtual TString GetSubElementName(Int_t subindex)
virtual void FillTreeVector(std::vector< Double_t > &values) const =0
void SetRotation(Double_t)
virtual void SetSubElementPedestal(Int_t j, Double_t value)
virtual void Scale(Double_t factor)
virtual void EncodeEventData(std::vector< UInt_t > &buffer)
virtual void AccumulateRunningSum(const VQwBPM &value)
virtual void SetDefaultSampleSize(Int_t sample_size)
static const TString axis[3]
void InitializeChannel_base()
VQwBPM(const VQwBPM &source)
void InitializeChannel(TString name)
virtual void SetEventCutMode(Int_t bcuts)=0
virtual void IncrementErrorCounters()=0
virtual const VQwHardwareChannel * GetAngleY() const
virtual VQwBPM & operator+=(const VQwBPM &value)=0
std::vector< TString > fSubelementNames
virtual const TString & GetElementName() const
Get the name of this element.
static VQwBPM * CreateCombo(TString subsystemname, TString type, TString name)
A fast way of creating a BPM stripline of specified type.
void SetGains(TString pos, Double_t value)
virtual void SetBPMForCombo(const VQwBPM *bpm, Double_t charge_weight, Double_t x_weight, Double_t y_weight, Double_t sumqw)
static VQwBPM * CreateStripline(TString subsystemname, TString type, TString name)
A fast way of creating a BPM stripline of specified type.
virtual void Ratio(VQwBPM &numer, VQwBPM &denom)
virtual VQwBPM & operator=(const VQwBPM &value)=0
virtual void RandomizeEventData(int helicity=0, double time=0.0)
boost::shared_ptr< VQwBPM > VQwBPM_ptr
void GetElectronicFactors(Double_t BSENfactor, Double_t AlphaX, Double_t AlphaY)
virtual void ConstructBranch(TTree *tree, TString &prefix)=0
virtual void GetAbsolutePosition()
VQwHardwareChannel * GetSubelementByIndex(size_t index)