80 Bool_t ldebug = kFALSE;
89 std::cout<<
"\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n";
110 Bool_t ldebug = kFALSE;
118 std::cout<<
"\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n";
120 std::cout<<
" is rotated by angle = "<<rotation_angle<<std::endl;
135 if(pos.Contains(
"X"))
fGains[0] = value;
136 if(pos.Contains(
"Y"))
fGains[1] = value;
222 if(prefix.Contains(
"diff_")||prefix.Contains(
"yield_")|| prefix.Contains(
"asym_"))
269 Bool_t localDebug = kFALSE;
271 if( localDebug )
QwMessage<<
"Creating BPM of type: "<<type<<
" with name: "<<
272 name<<
". Subsystem Name: " <<subsystemname<<
"\n";
275 if( type ==
"VQWK") {
277 }
else if ( type ==
"SIS3801" ) {
279 }
else if ( type ==
"SCALER" || type ==
"SIS3801D24" ) {
281 }
else if ( type ==
"MOLLERADC" ) {
284 QwWarning <<
"BPM of type="<<type<<
" is UNSUPPORTED!!\n";
291 Bool_t localDebug = kFALSE;
297 if( type ==
"VQWK") {
299 }
else if ( type ==
"SIS3801" ) {
301 }
else if ( type ==
"SCALER" || type ==
"SIS3801D24" ) {
303 }
else if ( type ==
"MOLLERADC" ) {
306 QwWarning <<
"BPM of type="<<type<<
" is UNSUPPORTED!!\n";
317 Bool_t localDebug = kFALSE;
319 if( localDebug )
QwMessage<<
"Creating CombinedBPM of type: "<<type<<
" with name: "<<
320 name<<
". Subsystem Name: " <<subsystemname<<
"\n";
323 if( type ==
"VQWK") {
325 }
else if (type ==
"SIS3801" ) {
327 }
else if ( type ==
"SCALER" || type ==
"SIS3801D24" ) {
329 }
else if ( type ==
"MOLLERADC" ) {
332 QwWarning <<
"BPM of type="<<type<<
" is UNSUPPORTED!!\n";
339 Bool_t localDebug = kFALSE;
345 if( type ==
"VQWK") {
347 }
else if ( type ==
"SIS3801" ) {
349 }
else if ( type ==
"SCALER" || type ==
"SIS3801D24" ) {
351 }
else if ( type ==
"MOLLERADC" ) {
354 QwWarning <<
"BPM of type="<<type<<
" is UNSUPPORTED!!\n";
A logfile class, based on an identical class in the Hermes analyzer.
#define QwWarning
Predefined log drain for warnings.
#define QwMessage
Predefined log drain for regular messages.
Decoding and management for VQWK ADC channels (6x32-bit datawords)
static const UInt_t kBPMErrorFlag
Decoding and management for Moller ADC channels (6x32-bit datawords)
Base and derived classes for scaler channel data handling.
Stripline beam position monitor implementation.
Virtual base class for beam position monitors.
Combined beam position monitor using weighted average.
static std::ostream & endl(std::ostream &)
End of the line.
virtual const TString & GetElementName() const
Get the name of this element.
void SetElementName(const TString &name)
Set the name of this element.
TString GetModuleType() const
Return the type of the beam instrument.
Abstract base for concrete hardware channels implementing dual-operator pattern.
void SetSingleEventCuts(Double_t min, Double_t max)
Set the upper and lower limits (fULimit and fLLimit) for this channel.
Double_t fPositionCenter[3]
friend class QwCombinedBPM
friend class QwBPMStripline
void GetSurveyOffsets(Double_t Xoffset, Double_t Yoffset, Double_t Zoffset)
Store geometry/survey offsets for absolute position calibration.
void SetRotation(Double_t)
Set detector rotation angle and update cached trigonometric values.
Double_t fQwStriplineCalibration
void SetRootSaveStatus(TString &prefix)
static const TString kAxisLabel[2]
void SetSingleEventCuts(TString, Double_t, Double_t)
static VQwBPM * CreateCombo(TString subsystemname, TString type, TString name)
A fast way of creating a BPM stripline of specified type.
Double_t fRelativeGains[2]
void InitializeChannel(TString name)
Initialize common BPM state and set the element name.
void GetElectronicFactors(Double_t BSENfactor, Double_t AlphaX, Double_t AlphaY)
Apply per-detector electronic calibration and relative gains.
virtual VQwHardwareChannel * GetSubelementByName(TString ch_name)=0
void SetGains(TString pos, Double_t value)
Double_t fQwStriplineCorrection
static VQwBPM * CreateStripline(TString subsystemname, TString type, TString name)
A fast way of creating a BPM stripline of specified type.
static const TString axis[3]
virtual VQwBPM & operator=(const VQwBPM &value)=0