13 #ifndef __QwMollerDetector__
14 #define __QwMollerDetector__
20 #include <boost/multi_array.hpp>
52 QwMessage <<
"***************************************" << std::endl;
92 Int_t
ProcessEvBuffer(UInt_t roc_id, UInt_t bank_id, UInt_t *buffer, UInt_t num_words);
93 Int_t
ProcessEvBuffer(UInt_t ev_type, UInt_t roc_id, UInt_t bank_id, UInt_t* buffer, UInt_t num_words);
107 void Scale(Double_t);
158 #endif // __QwMollerDetector__
#define QwMessage
Predefined log drain for regular messages.
Bool_t ApplySingleEventCuts()
Apply the single event cuts.
Bool_t Compare(VQwSubsystem *source)
void ProcessOptions(QwOptions &options)
Process the command line options.
VQwSubsystem & operator-=(VQwSubsystem *value)
float GetDataForChannelInModule(Int_t module_number, Int_t channel_index)
VQwSubsystem & operator+=(VQwSubsystem *value)
void Ratio(VQwSubsystem *value1, VQwSubsystem *value2)
Int_t LoadChannelMap(TString mapfile)
float * GetRawChannelArray()
void DeaccumulateRunningSum(VQwSubsystem *value)
remove one entry from the running sums for devices
void FillTreeVector(std::vector< Double_t > &values) const
Fill the tree vector.
QwMollerDetector(const QwMollerDetector &source)
Copy constructor.
Virtual base class for the parity subsystems.
void Sum(VQwSubsystem *value1, VQwSubsystem *value2)
void AccumulateRunningSum(VQwSubsystem *value)
Update the running sums for devices.
virtual void ConstructHistograms()
Construct the histograms for this subsystem.
static const Bool_t bDEBUG
float GetDataForChannelInModule(Int_t module_number, TString channel_name)
void FillHistograms()
Fill the histograms for this subsystem.
void IncrementErrorCounters()
Increment the error counters.
QwMollerDetector(const TString &name)
Constructor with name.
void PrintErrorCounters() const
Report the number of events failed due to HW and event cut failures.
Int_t LoadEventCuts(TString &filename)
Int_t GetChannelIndex(TString channelName, UInt_t module_number)
VQwSubsystem & operator=(VQwSubsystem *value)
Assignment Note: Must be called at the beginning of all subsystems routine call to operator=(VQwSubsy...
UInt_t GetEventcutErrorFlag()
Return the error flag to the top level routines related to stability checks and ErrorFlag updates...
Int_t ProcessConfigurationBuffer(const UInt_t roc_id, const UInt_t bank_id, UInt_t *buffer, UInt_t num_words)
std::vector< std::vector< QwSTR7200_Channel > > fSTR7200_Channel
The pure virtual base class of all subsystems.
virtual ~QwMollerDetector()
Virtual destructor.
Implementation of the analysis of Moller data (copied from QwComptonElectronDetector.h)
Int_t fQwMollerErrorCount
virtual void ConstructBranchAndVector(TTree *tree, TString &prefix, std::vector< Double_t > &values)=0
Construct the branch and tree vector.
QwMollerDetector()
Private default constructor (not implemented, will throw linker error on use)
std::vector< QwMollerChannelID > fMollerChannelID
void Difference(VQwSubsystem *value1, VQwSubsystem *value2)
std::vector< std::vector< QwSTR7200_Channel > > fPrevious_STR7200_Channel
void ConstructBranchAndVector(TTree *, TString &, std::vector< double, std::allocator< double > > &)
void UpdateErrorFlag(const VQwSubsystem *ev_error)
update the error flag in the subsystem level from the top level routines related to stability checks...
void ConstructBranch(TTree *tree, TString &prefix)
Construct the branch and tree vector.
void CalculateRunningAverage()
Calculate the average for all good events.
void PrintValue() const
Print values of all channels.
Int_t ProcessEvBuffer(UInt_t roc_id, UInt_t bank_id, UInt_t *buffer, UInt_t num_words)
TODO: The non-event-type-aware ProcessEvBuffer routine should be replaced with the event-type-aware v...
void ConstructBranch(TTree *tree, TString &prefix, QwParameterFile &trim_file)
Construct the branch and tree vector based on the trim file.
Int_t LoadInputParameters(TString pedestalfile)
Mandatory parameter file definition.