81 Bool_t ldebug = kFALSE;
90 std::cout<<
"\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n";
111 Bool_t ldebug = kFALSE;
119 std::cout<<
"\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n";
121 std::cout<<
" is rotated by angle = "<<rotation_angle<<std::endl;
136 if(pos.Contains(
"X"))
fGains[0] = value;
137 if(pos.Contains(
"Y"))
fGains[1] = value;
223 if(prefix.Contains(
"diff_")||prefix.Contains(
"yield_")|| prefix.Contains(
"asym_"))
270 Bool_t localDebug = kFALSE;
272 if( localDebug )
QwMessage<<
"Creating BPM of type: "<<type<<
" with name: "<<
273 name<<
". Subsystem Name: " <<subsystemname<<
"\n";
276 if( type ==
"VQWK") {
278 }
else if ( type ==
"SIS3801" ) {
280 }
else if ( type ==
"SCALER" || type ==
"SIS3801D24" ) {
282 }
else if ( type ==
"MOLLERADC" ) {
285 QwWarning <<
"BPM of type="<<type<<
" is UNSUPPORTED!!\n";
292 Bool_t localDebug = kFALSE;
298 if( type ==
"VQWK") {
300 }
else if ( type ==
"SIS3801" ) {
302 }
else if ( type ==
"SCALER" || type ==
"SIS3801D24" ) {
304 }
else if ( type ==
"MOLLERADC" ) {
307 QwWarning <<
"BPM of type="<<type<<
" is UNSUPPORTED!!\n";
313 Bool_t localdebug = kFALSE;
315 if( localdebug )
QwMessage<<
"Create Linear Diode Array of type: "<<type<<
". Subsystem Name: "<<subsystemname<<
"\n";
316 if( type ==
"VQWK") {
318 }
else if( type ==
"MOLLERADC" ) {
321 QwWarning<<
"Linear Diode Array of type="<<type<<
" is UNSUPPORTED!!\n";
327 Bool_t localdebug = kFALSE;
331 if( type ==
"VQWK") {
333 }
else if( type ==
"MOLLERADC" ) {
336 QwWarning<<
"Linear Diode Array of type="<<type<<
" is UNSUPPORTED!!\n";
347 Bool_t localDebug = kFALSE;
349 if( localDebug )
QwMessage<<
"Creating CombinedBPM of type: "<<type<<
" with name: "<<
350 name<<
". Subsystem Name: " <<subsystemname<<
"\n";
353 if( type ==
"VQWK") {
355 }
else if (type ==
"SIS3801" ) {
357 }
else if ( type ==
"SCALER" || type ==
"SIS3801D24" ) {
359 }
else if ( type ==
"MOLLERADC" ) {
362 QwWarning <<
"BPM of type="<<type<<
" is UNSUPPORTED!!\n";
369 Bool_t localDebug = kFALSE;
375 if( type ==
"VQWK") {
377 }
else if ( type ==
"SIS3801" ) {
379 }
else if ( type ==
"SCALER" || type ==
"SIS3801D24" ) {
381 }
else if ( type ==
"MOLLERADC" ) {
384 QwWarning <<
"BPM of type="<<type<<
" is UNSUPPORTED!!\n";
Decoding and management for VQWK ADC channels (6x32-bit datawords)
static const UInt_t kBPMErrorFlag
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.
Base and derived classes for scaler channel data handling.
Decoding and management for Moller ADC channels (6x32-bit datawords)
Virtual base class for beam position monitors.
Stripline beam position monitor implementation.
Linear diode array beam position monitor implementation.
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.
Linear diode array beam position monitor implementation.
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]
static VQwBPM * CreateCombo(TString subsystemname, TString name, TString type)
A fast way of creating a BPM stripline of specified type.
void SetSingleEventCuts(TString, Double_t, Double_t)
Double_t fRelativeGains[2]
void InitializeChannel(TString name)
Initialize common BPM state and set the element name.
static VQwBPM * CreateLinearDiodeArray(TString subsystemname, TString name, TString type)
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 name, TString type)
A fast way of creating a BPM stripline of specified type.
static const TString axis[3]
virtual VQwBPM & operator=(const VQwBPM &value)=0