19 #include "TProfile2D.h"
128 Int_t
ProcessEvBuffer(
const UInt_t roc_id,
const UInt_t bank_id, UInt_t* buffer, UInt_t num_words);
154 Bool_t status = kTRUE;
155 for (
size_t i=0; i<
fADCs.size(); i++)
157 status &=
fADCs.at(i).ApplyHWChecks();
165 void FillRawTDCWord(Int_t bank_index, Int_t slot_num, Int_t chan, UInt_t data);
218 std::vector< std::vector<QwPMT_Channel> >
fPMTs;
220 std::vector<QwSIS3801D24_Channel>
fSCAs;
232 void FillRawWord(Int_t bank_index, Int_t slot_num, Int_t chan, UInt_t data);
251 std::vector< std::vector< std::pair< EQwModuleType, Int_t> > >
fModulePtrs;
UInt_t GetEventcutErrorFlag()
Return the error flag to the top level routines related to stability checks and ErrorFlag updates...
Int_t RegisterROCNumber(const UInt_t roc_id)
Int_t RegisterSubbank(const UInt_t bank_id)
Int_t ProcessEvBuffer(const UInt_t roc_id, const 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 ConstructBranchAndVector(TTree *tree, TString &prefix, std::vector< Double_t > &values)
Construct the branch and tree vector.
std::vector< QwHit > fTDCHits
F1TDCs configuration and reference siganls container.
void DeaccumulateRunningSum(VQwSubsystem *value)
remove one entry from the running sums for devices
Double_t fCal_Factor_VQWK_X
void Scale(Double_t factor)
Bool_t Compare(VQwSubsystem *value)
Bool_t ApplySingleEventCuts()
Apply the single event cuts.
void FillHistograms()
Fill the histograms for this subsystem.
Double_t fHelicityFrequency
variables for calibrating and calculating scanner positions
Bool_t CheckRunningAverages(Bool_t)
void SubtractReferenceTimes()
Int_t RegisterSlotNumber(const UInt_t slot_id)
VQwSubsystem & operator+=(VQwSubsystem *value)
std::vector< std::vector< std::pair< EQwModuleType, Int_t > > > fModulePtrs
std::vector< QwVQWK_Channel > fADCs
Int_t LinkChannelToSignal(const UInt_t chan, const TString &name)
std::vector< Int_t > fADCs_offset
Int_t fCurrentBankIndex
Name of this subsystem (the region).
Int_t LoadInputParameters(TString parameterfile)
Mandatory parameter file definition.
Double_t fCal_Factor_QDC_Y
virtual ~QwScanner()
Virtual destructor.
Virtual base class for the parity subsystems.
static const Bool_t bStoreRawData
std::vector< std::vector< Double_t > > fReferenceData
void AccumulateRunningSum(VQwSubsystem *value)
Update the running sums for devices.
static const Int_t kF1ReferenceChannelNumber
void ReportConfiguration(Bool_t verbose)
EQwModuleType RegisterModuleType(TString moduletype)
std::vector< std::pair< Int_t, Int_t > > fReferenceChannels
Bool_t IsSlotRegistered(Int_t bank_index, Int_t slot_num) const
void FillTreeVector(std::vector< Double_t > &values) const
Fill the tree vector.
void InitializeChannel(TString name, TString datatosave)
virtual void ConstructHistograms()
Construct the histograms for this subsystem.
void SetPedestal(Double_t ped)
void FillRawWord(Int_t bank_index, Int_t slot_num, Int_t chan, UInt_t data)
Int_t ProcessConfigurationBuffer(const UInt_t roc_id, const UInt_t bank_id, UInt_t *buffer, UInt_t num_words)
std::vector< Int_t > fSCAs_offset
Double_t fCal_Factor_QDC_X
void Difference(VQwSubsystem *value1, VQwSubsystem *value2)
void ClearAllBankRegistrations()
Double_t fVoltage_Offset_X
Double_t fMeanPositionY_ADC
Draft skeleton for the decoding-to-QTR interface class.
void ProcessOptions(QwOptions &options)
Process the command line options.
std::vector< TString > fParameterFileNames
std::map< TString, size_t > fADCs_map
void UpdateErrorFlag(const VQwSubsystem *ev_error)
update the error flag in the subsystem level from the top level routines related to stability checks...
Int_t LoadEventCuts(TString filename)
Load the event cuts file.
TH1F * fParameterFileNamesHist
void FillHardwareErrorSummary()
Hardware error summary.
VQwSubsystem & operator=(VQwSubsystem *value)
Assignment Note: Must be called at the beginning of all subsystems routine call to operator=(VQwSubsy...
void PrintValue() const
Print values of all channels.
std::vector< std::vector< QwPMT_Channel > > fPMTs
Int_t LoadGeometryDefinition(TString filename)
Optional geometry definition.
Double_t fChannel_Offset_X
Int_t GetModuleIndex(size_t bank_index, size_t slot_num) const
void IncrementErrorCounters()
Increment the error counters.
Double_t fChannel_Offset_Y
The pure virtual base class of all subsystems.
UInt_t kMaxNumberOfChannelsPerModule
Double_t fCal_Factor_VQWK_Y
EQwModuleType fCurrentType
void FillDB(QwParityDB *db, TString type)
Fill the database.
void Ratio(VQwSubsystem *numer, VQwSubsystem *denom)
Int_t fCurrentModuleIndex
virtual void ConstructBranchAndVector(TTree *tree, TString &prefix, std::vector< Double_t > &values)=0
Construct the branch and tree vector.
void PrintInfo() const
Print some information about the subsystem.
void CalculateRunningAverage()
Calculate the average for all good events.
void PrintErrorCounters() const
Report the number of events failed due to HW and event cut failures.
std::vector< std::vector< QwDetectorID > > fDetectorIDs
static const UInt_t kMaxNumberOfModulesPerROC
Double_t fMeanPositionX_ADC
Bool_t IsF1ReferenceChannel(Int_t slot, Int_t chan)
Int_t LoadChannelMap(TString mapfile)
Mandatory map file definition.
std::vector< std::vector< Int_t > > fModuleIndex
Int_t FindSignalIndex(const EQwModuleType modtype, const TString &name) const
void Append(const QwHitContainer &mylist)
std::vector< QwSIS3801D24_Channel > fSCAs
QwF1TDContainer * fF1TDContainer
VQwSubsystem & operator-=(VQwSubsystem *value)
Double_t fVoltage_Offset_Y
void FillRawTDCWord(Int_t bank_index, Int_t slot_num, Int_t chan, UInt_t data)
void GetHitList(QwHitContainer &grandHitContainer)
Get the hit list.
std::map< TString, size_t > fSCAs_map
QwScanner()
Private default constructor (not implemented, will throw linker error on use)
void Sum(VQwSubsystem *value1, VQwSubsystem *value2)
std::vector< EQwModuleType > fModuleTypes
Module index, indexed by bank_index and slot_number.
void SetCalibrationFactor(Double_t calib)