QwAnalysis
|
The pure virtual base class of all subsystems. More...
#include <VQwSubsystem.h>
Public Member Functions | |
VQwSubsystem (const TString &name) | |
Constructor with name. More... | |
VQwSubsystem (const VQwSubsystem &orig) | |
Copy constructor by object. More... | |
virtual | ~VQwSubsystem () |
Default destructor. More... | |
virtual void | ProcessOptions (QwOptions &options) |
Process the command line options. More... | |
TString | GetSubsystemName () const |
Bool_t | HasDataLoaded () const |
void | SetParent (QwSubsystemArray *parent) |
Set the parent of this subsystem to the specified array. More... | |
QwSubsystemArray * | GetParent (const unsigned int parent=0) const |
Get the parent of this subsystem. More... | |
VQwSubsystem * | GetSibling (const std::string &name) const |
Get the sibling with specified name. More... | |
Bool_t | PublishInternalValue (const TString &name, const TString &desc, const VQwHardwareChannel *value) const |
Publish a variable name to the parent subsystem array. More... | |
virtual Bool_t | PublishInternalValues () const |
Publish all variables of the subsystem. More... | |
virtual Bool_t | PublishByRequest (TString device_name) |
Try to publish an internal variable matching the submitted name. More... | |
Bool_t | RequestExternalValue (const TString &name, VQwHardwareChannel *value) const |
Request a named value which is owned by an external subsystem; the request will be handled by the parent subsystem array. More... | |
virtual const VQwHardwareChannel * | ReturnInternalValue (const TString &name) const |
Return a pointer to a varialbe to the parent subsystem array to be delivered to a different subsystem. More... | |
virtual Bool_t | ReturnInternalValue (const TString &name, VQwHardwareChannel *value) const |
Return a named value to the parent subsystem array to be delivered to a different subsystem. More... | |
virtual std::vector< TString > | GetParamFileNameList () |
virtual std::map< TString, TString > | GetDetectorMaps () |
virtual Int_t | LoadDetectorMaps (QwParameterFile &file) |
Parse parameter file to find the map files. More... | |
virtual Int_t | LoadChannelMap (TString mapfile)=0 |
Mandatory map file definition. More... | |
virtual Int_t | LoadInputParameters (TString mapfile)=0 |
Mandatory parameter file definition. More... | |
virtual Int_t | LoadGeometryDefinition (TString mapfile) |
Optional geometry definition. More... | |
virtual Int_t | LoadCrosstalkDefinition (TString mapfile) |
Optional crosstalk definition. More... | |
virtual Int_t | LoadEventCuts (TString mapfile) |
Optional event cut file. More... | |
void | SetEventTypeMask (const UInt_t mask) |
Set event type mask. More... | |
UInt_t | GetEventTypeMask () const |
Get event type mask. More... | |
virtual void | ClearEventData ()=0 |
virtual Int_t | ProcessConfigurationBuffer (const UInt_t roc_id, const UInt_t bank_id, UInt_t *buffer, UInt_t num_words)=0 |
virtual Int_t | ProcessEvBuffer (const UInt_t event_type, const UInt_t roc_id, const UInt_t bank_id, UInt_t *buffer, UInt_t num_words) |
virtual Int_t | ProcessEvBuffer (const UInt_t roc_id, const UInt_t bank_id, UInt_t *buffer, UInt_t num_words)=0 |
TODO: The non-event-type-aware ProcessEvBuffer routine should be replaced with the event-type-aware version. More... | |
virtual void | ProcessEvent ()=0 |
virtual void | ExchangeProcessedData () |
Request processed data from other subsystems for internal use in the second event processing stage. Not all derived classes will require data from other subsystems. More... | |
virtual void | ProcessEvent_2 () |
Process the event data again, including data from other subsystems. Not all derived classes will require a second stage of event data processing. More... | |
virtual void | AtEndOfEventLoop () |
Perform actions at the end of the event loop. More... | |
virtual void | RandomizeEventData (int helicity=0, double time=0.0) |
virtual void | EncodeEventData (std::vector< UInt_t > &buffer) |
virtual void | PrintInfo () const |
Print some information about the subsystem. More... | |
virtual VQwSubsystem & | operator= (VQwSubsystem *value) |
Assignment Note: Must be called at the beginning of all subsystems routine call to operator=(VQwSubsystem *value) by VQwSubsystem::operator=(value) More... | |
virtual void | PrintDetectorMaps (Bool_t status) const |
Histogram construction and maintenance | |
virtual void | ConstructHistograms () |
Construct the histograms for this subsystem. More... | |
virtual void | ConstructHistograms (TDirectory *folder) |
Construct the histograms for this subsystem in a folder. More... | |
virtual void | ConstructHistograms (TString &prefix) |
Construct the histograms for this subsystem with a prefix. More... | |
virtual void | ConstructHistograms (TDirectory *folder, TString &prefix)=0 |
Construct the histograms for this subsystem in a folder with a prefix. More... | |
virtual void | FillHistograms ()=0 |
Fill the histograms for this subsystem. More... | |
Tree and branch construction and maintenance | |
The methods should exist for all subsystems and are therefore defined as pure virtual. | |
virtual void | ConstructBranchAndVector (TTree *tree, TString &prefix, std::vector< Double_t > &values)=0 |
Construct the branch and tree vector. More... | |
virtual void | ConstructBranchAndVector (TTree *tree, std::vector< Double_t > &values) |
Construct the branch and tree vector. More... | |
virtual void | ConstructBranch (TTree *tree, TString &prefix)=0 |
Construct the branch and tree vector. More... | |
virtual void | ConstructBranch (TTree *tree, TString &prefix, QwParameterFile &trim_file)=0 |
Construct the branch and tree vector based on the trim file. More... | |
virtual void | FillTreeVector (std::vector< Double_t > &values) const =0 |
Fill the tree vector. More... | |
Expert tree construction and maintenance | |
These functions are not purely virtual, since not every subsystem is expected to implement them. They are intended for expert output to trees. | |
virtual void | ConstructTree () |
Construct the tree for this subsystem. More... | |
virtual void | ConstructTree (TDirectory *folder) |
Construct the tree for this subsystem in a folder. More... | |
virtual void | ConstructTree (TString &prefix) |
Construct the tree for this subsystem with a prefix. More... | |
virtual void | ConstructTree (TDirectory *folder, TString &prefix) |
Construct the tree for this subsystem in a folder with a prefix. More... | |
virtual void | FillTree () |
Fill the tree for this subsystem. More... | |
virtual void | DeleteTree () |
Delete the tree for this subsystem. More... | |
![]() | |
void | ShareHistograms (const MQwHistograms *source) |
Share histogram pointers between objects. More... | |
Static Public Member Functions | |
static void | DefineOptions () |
Define options function (note: no virtual static functions in C++) More... | |
Protected Member Functions | |
void | UpdatePublishedValue (const TString &name, VQwHardwareChannel *data_channel) |
void | ClearAllBankRegistrations () |
Clear all registration of ROC and Bank IDs for this subsystem. More... | |
virtual Int_t | RegisterROCNumber (const UInt_t roc_id, const UInt_t bank_id=0) |
Tell the object that it will decode data from this ROC and sub-bank. More... | |
Int_t | RegisterSubbank (const UInt_t bank_id) |
Tell the object that it will decode data from this sub-bank in the ROC currently open for registration. More... | |
Int_t | GetSubbankIndex () const |
Int_t | GetSubbankIndex (const UInt_t roc_id, const UInt_t bank_id) const |
void | SetDataLoaded (Bool_t flag) |
Int_t | FindIndex (const std::vector< UInt_t > &myvec, const UInt_t value) const |
Bool_t | Compare (VQwSubsystem *source) |
![]() | |
MQwHistograms () | |
Default constructor. More... | |
MQwHistograms (const MQwHistograms &source) | |
Copy constructor. More... | |
virtual | ~MQwHistograms () |
Virtual destructor. More... | |
virtual MQwHistograms & | operator= (const MQwHistograms &value) |
void | Fill_Pointer (TH1_ptr hist_ptr, Double_t value) |
void | AddHistogram (TH1 *h) |
Register a histogram. More... | |
Protected Attributes | |
std::map< TString, VQwHardwareChannel * > | fPublishedInternalValues |
Map of published internal values. More... | |
std::vector< std::vector < TString > > | fPublishList |
List of parameters to be published (loaded at the channel map) More... | |
TString | fSystemName |
Name of this subsystem. More... | |
UInt_t | fEventTypeMask |
Mask of event types. More... | |
Bool_t | fIsDataLoaded |
Has this subsystem gotten data to be processed? More... | |
std::vector< TString > | fDetectorMapsNames |
std::map< TString, TString > | fDetectorMaps |
Int_t | fCurrentROC_ID |
ROC ID that is currently being processed. More... | |
Int_t | fCurrentBank_ID |
Bank ID that is currently being processed. More... | |
std::vector< UInt_t > | fROC_IDs |
Vector of ROC IDs associated with this subsystem. More... | |
std::vector< std::vector < UInt_t > > | fBank_IDs |
Vector of Bank IDs per ROC ID associated with this subsystem. More... | |
std::vector< QwSubsystemArray * > | fArrays |
Vector of pointers to subsystem arrays that contain this subsystem. More... | |
![]() | |
std::vector< TH1_ptr > | fHistograms |
Histograms associated with this data element. More... | |
Private Member Functions | |
VQwSubsystem () | |
The pure virtual base class of all subsystems.
Virtual base class for the classes containing the event-based information from each tracking subsystem and the parity analysis. The subclasses VQwSubsystemTracking and VQwSubsystemParity are base classes for the classes containing the event-based information from each tracking subsystem and parity analysis, respectively.
This will define the interfaces used in communicating with the CODA routines.
Definition at line 59 of file VQwSubsystem.h.
|
inline |
Constructor with name.
Definition at line 64 of file VQwSubsystem.h.
References ClearAllBankRegistrations().
|
inline |
Copy constructor by object.
Definition at line 71 of file VQwSubsystem.h.
|
inlinevirtual |
|
private |
|
inlinevirtual |
Perform actions at the end of the event loop.
Reimplemented in QwBeamMod.
Definition at line 198 of file VQwSubsystem.h.
References QwLog::endl(), fSystemName, and QwDebug.
Referenced by QwSubsystemArray::AtEndOfEventLoop().
|
protected |
Clear all registration of ROC and Bank IDs for this subsystem.
Definition at line 229 of file VQwSubsystem.cc.
References fBank_IDs, fCurrentBank_ID, fCurrentROC_ID, and fROC_IDs.
Referenced by QwSciFiDetector::ClearAllBankRegistrations(), QwRaster::ClearAllBankRegistrations(), QwDriftChamber::ClearAllBankRegistrations(), QwMainDetector::ClearAllBankRegistrations(), QwTriggerScintillator::ClearAllBankRegistrations(), QwScanner::ClearAllBankRegistrations(), and VQwSubsystem().
|
pure virtual |
Implemented in QwScanner, QwLumi, QwRegressionSubsystem, QwIntegratedRaster, QwComptonElectronDetector, QwBeamMod, QwMollerDetector, QwBeamLine, QwMainCerenkovDetector, QwHelicity, QwDriftChamber, QwMainDetector, QwSciFiDetector, QwTriggerScintillator, QwComptonPhotonDetector, QwRaster, QwScaler, QwDriftChamberVDC, QwDriftChamberHDC, and QwFakeHelicity.
Referenced by QwSubsystemArray::ClearEventData().
|
inlineprotected |
Definition at line 340 of file VQwSubsystem.h.
|
pure virtual |
Construct the branch and tree vector.
Implemented in QwComptonElectronDetector, QwLumi, QwHelicity, QwIntegratedRaster, QwBeamMod, QwMollerDetector, QwBeamLine, QwComptonPhotonDetector, QwMainCerenkovDetector, QwRegressionSubsystem, VQwSubsystemTracking, and QwScaler.
Referenced by QwSubsystemArray::ConstructBranch().
|
pure virtual |
Construct the branch and tree vector based on the trim file.
Implemented in QwComptonElectronDetector, QwLumi, QwHelicity, QwIntegratedRaster, QwBeamMod, QwMollerDetector, QwBeamLine, QwComptonPhotonDetector, QwMainCerenkovDetector, QwRegressionSubsystem, VQwSubsystemTracking, and QwScaler.
|
pure virtual |
Construct the branch and tree vector.
Implemented in QwComptonElectronDetector, QwLumi, QwScanner, QwHelicity, QwIntegratedRaster, QwBeamMod, QwBeamLine, QwComptonPhotonDetector, QwMainCerenkovDetector, QwRegressionSubsystem, QwRaster, VQwSubsystemTracking, QwScaler, QwMainDetector, QwTriggerScintillator, and QwSciFiDetector.
Referenced by QwSubsystemArray::ConstructBranchAndVector(), and ConstructBranchAndVector().
|
inlinevirtual |
Construct the branch and tree vector.
Definition at line 236 of file VQwSubsystem.h.
References ConstructBranchAndVector().
|
inlinevirtual |
Construct the histograms for this subsystem.
Definition at line 209 of file VQwSubsystem.h.
Referenced by QwComptonPhotonDetector::ConstructHistograms(), QwMainCerenkovDetector::ConstructHistograms(), QwBeamLine::ConstructHistograms(), QwIntegratedRaster::ConstructHistograms(), QwLumi::ConstructHistograms(), and ConstructHistograms().
|
inlinevirtual |
Construct the histograms for this subsystem in a folder.
Reimplemented in QwMainCerenkovDetector.
Definition at line 214 of file VQwSubsystem.h.
References ConstructHistograms().
|
inlinevirtual |
Construct the histograms for this subsystem with a prefix.
Definition at line 219 of file VQwSubsystem.h.
References ConstructHistograms().
|
pure virtual |
Construct the histograms for this subsystem in a folder with a prefix.
Implemented in QwComptonElectronDetector, QwLumi, QwScanner, QwHelicity, QwIntegratedRaster, QwBeamMod, QwBeamLine, QwDriftChamber, QwMainCerenkovDetector, QwComptonPhotonDetector, QwMollerDetector, QwRegressionSubsystem, QwDriftChamberVDC, QwRaster, QwScaler, QwMainDetector, QwTriggerScintillator, QwSciFiDetector, and QwDriftChamberHDC.
|
inlinevirtual |
Construct the tree for this subsystem.
Definition at line 257 of file VQwSubsystem.h.
Referenced by ConstructTree().
|
inlinevirtual |
Construct the tree for this subsystem in a folder.
Definition at line 262 of file VQwSubsystem.h.
References ConstructTree().
|
inlinevirtual |
Construct the tree for this subsystem with a prefix.
Definition at line 267 of file VQwSubsystem.h.
References ConstructTree().
|
inlinevirtual |
Construct the tree for this subsystem in a folder with a prefix.
Reimplemented in QwComptonElectronDetector, and QwComptonPhotonDetector.
Definition at line 271 of file VQwSubsystem.h.
|
inlinestatic |
Define options function (note: no virtual static functions in C++)
Definition at line 88 of file VQwSubsystem.h.
Referenced by DefineOptionsParity(), and DefineOptionsTracking().
|
inlinevirtual |
Delete the tree for this subsystem.
Reimplemented in QwComptonElectronDetector, and QwComptonPhotonDetector.
Definition at line 275 of file VQwSubsystem.h.
Referenced by QwSubsystemArray::DeleteTree().
|
inlinevirtual |
Reimplemented in QwLumi, QwIntegratedRaster, QwComptonElectronDetector, QwMainCerenkovDetector, QwBeamLine, QwHelicity, and QwComptonPhotonDetector.
Definition at line 203 of file VQwSubsystem.h.
|
inlinevirtual |
Request processed data from other subsystems for internal use in the second event processing stage. Not all derived classes will require data from other subsystems.
Reimplemented in QwLumi, QwIntegratedRaster, QwBeamMod, and QwMainCerenkovDetector.
Definition at line 189 of file VQwSubsystem.h.
Referenced by QwSubsystemArray::ProcessEvent().
|
pure virtual |
Fill the histograms for this subsystem.
Implemented in QwComptonElectronDetector, QwLumi, QwScanner, QwHelicity, QwIntegratedRaster, QwBeamMod, QwBeamLine, QwDriftChamber, QwMainCerenkovDetector, QwComptonPhotonDetector, QwMollerDetector, QwRegressionSubsystem, QwDriftChamberVDC, QwRaster, QwScaler, QwMainDetector, QwTriggerScintillator, QwSciFiDetector, and QwDriftChamberHDC.
Referenced by QwSubsystemArray::FillHistograms().
|
inlinevirtual |
Fill the tree for this subsystem.
Reimplemented in QwComptonElectronDetector, and QwComptonPhotonDetector.
Definition at line 273 of file VQwSubsystem.h.
Referenced by QwSubsystemArray::FillTree().
|
pure virtual |
Fill the tree vector.
Implemented in QwComptonElectronDetector, QwLumi, QwScanner, QwHelicity, QwIntegratedRaster, QwBeamMod, QwMollerDetector, QwBeamLine, QwMainCerenkovDetector, QwComptonPhotonDetector, QwRegressionSubsystem, VQwSubsystemTracking, QwRaster, QwScaler, QwMainDetector, QwTriggerScintillator, and QwSciFiDetector.
Referenced by QwSubsystemArray::FillTreeVector().
|
protected |
Definition at line 237 of file VQwSubsystem.cc.
Referenced by GetSubbankIndex(), and RegisterROCNumber().
|
virtual |
|
inline |
Get event type mask.
Definition at line 168 of file VQwSubsystem.h.
References fEventTypeMask.
Referenced by QwHelicity::ProcessEvBuffer(), ProcessEvBuffer(), and QwSubsystemArray::UpdateEventTypeMask().
|
virtual |
Definition at line 353 of file VQwSubsystem.cc.
References fDetectorMapsNames.
QwSubsystemArray * VQwSubsystem::GetParent | ( | const unsigned int | parent = 0 | ) | const |
Get the parent of this subsystem.
Get the parent of this subsystem, and print an error if no parent is defined.
parent | Parent number (default = 0) |
Definition at line 151 of file VQwSubsystem.cc.
References QwLog::endl(), fArrays, GetSubsystemName(), and QwError.
Referenced by QwMainDetector::AddSoftwareMeantimeToHits(), QwTriggerScintillator::AddSoftwareMeantimeToHits(), GetSibling(), PublishInternalValue(), and RequestExternalValue().
VQwSubsystem * VQwSubsystem::GetSibling | ( | const std::string & | name | ) | const |
Get the sibling with specified name.
Get the sibling of this subsystem with the specified name. If no parents is defined, an error is printed by GetParent(). If no sibling with that name exists, the null pointer is returned.
name | Name of the sibling subsystem |
Definition at line 170 of file VQwSubsystem.cc.
References GetParent(), and QwSubsystemArray::GetSubsystemByName().
|
inlineprotected |
Definition at line 303 of file VQwSubsystem.h.
References fCurrentBank_ID, fCurrentROC_ID, and GetSubbankIndex().
Referenced by GetSubbankIndex(), QwScaler::LoadChannelMap(), QwHelicity::LoadChannelMap(), QwComptonPhotonDetector::LoadChannelMap(), QwBeamLine::LoadChannelMap(), QwMainCerenkovDetector::LoadChannelMap(), QwIntegratedRaster::LoadChannelMap(), QwBeamMod::LoadChannelMap(), QwMollerDetector::LoadChannelMap(), QwLumi::LoadChannelMap(), QwTriggerScintillator::ProcessConfigurationBuffer(), QwSciFiDetector::ProcessConfigurationBuffer(), QwMainDetector::ProcessConfigurationBuffer(), QwDriftChamber::ProcessConfigurationBuffer(), QwScanner::ProcessConfigurationBuffer(), QwScaler::ProcessEvBuffer(), QwRaster::ProcessEvBuffer(), QwSciFiDetector::ProcessEvBuffer(), QwTriggerScintillator::ProcessEvBuffer(), QwDriftChamber::ProcessEvBuffer(), QwComptonPhotonDetector::ProcessEvBuffer(), QwMainDetector::ProcessEvBuffer(), QwHelicity::ProcessEvBuffer(), QwMainCerenkovDetector::ProcessEvBuffer(), QwBeamLine::ProcessEvBuffer(), QwBeamMod::ProcessEvBuffer(), QwIntegratedRaster::ProcessEvBuffer(), QwLumi::ProcessEvBuffer(), QwScanner::ProcessEvBuffer(), QwRaster::RegisterROCNumber(), QwSciFiDetector::RegisterSubbank(), QwDriftChamber::RegisterSubbank(), QwMainDetector::RegisterSubbank(), QwTriggerScintillator::RegisterSubbank(), QwScanner::RegisterSubbank(), QwTriggerScintillator::ReportConfiguration(), QwSciFiDetector::ReportConfiguration(), QwMainDetector::ReportConfiguration(), QwDriftChamber::ReportConfiguration(), and QwScanner::ReportConfiguration().
|
protected |
Definition at line 249 of file VQwSubsystem.cc.
References fBank_IDs, FindIndex(), and fROC_IDs.
|
inline |
Definition at line 93 of file VQwSubsystem.h.
References fSystemName.
Referenced by QwMainDetector::AddSoftwareMeantimeToHits(), QwTriggerScintillator::AddSoftwareMeantimeToHits(), QwBeamLine::AddToElementList(), QwSubsystemArray::ConstructBranch(), QwDriftChamberHDC::ConstructHistograms(), QwDriftChamberVDC::ConstructHistograms(), QwMainCerenkovDetector::ExchangeProcessedData(), QwBeamLine::GetChannel(), QwBeamLine::GetElement(), GetParent(), QwBeamLine::LoadChannelMap(), QwMainCerenkovDetector::LoadChannelMap(), QwIntegratedRaster::LoadChannelMap(), QwBeamMod::LoadChannelMap(), QwLumi::LoadChannelMap(), QwSubsystemArray::LoadSubsystemsFromParameterFile(), QwHelicity::operator+=(), QwBeamLine::PrintValue(), QwIntegratedRaster::PrintValue(), QwLumi::PrintValue(), QwMainCerenkovDetector::PrintValue(), QwTriggerScintillator::ProcessConfigurationBuffer(), QwSciFiDetector::ProcessConfigurationBuffer(), QwMainDetector::ProcessConfigurationBuffer(), QwDriftChamber::ProcessConfigurationBuffer(), QwScanner::ProcessConfigurationBuffer(), QwSciFiDetector::ProcessEvBuffer(), QwDriftChamber::ProcessEvBuffer(), QwMainDetector::ProcessEvBuffer(), PublishInternalValue(), QwSubsystemArray::push_back(), QwHelicityPattern::QwHelicityPattern(), QwTriggerScintillator::ReportConfiguration(), QwSciFiDetector::ReportConfiguration(), QwMainDetector::ReportConfiguration(), QwDriftChamber::ReportConfiguration(), QwDriftChamberHDC::SubtractReferenceTimes(), QwDriftChamberVDC::SubtractReferenceTimes(), QwSciFiDetector::SubtractReferenceTimes(), QwMainDetector::SubtractReferenceTimes(), QwTriggerScintillator::SubtractReferenceTimes(), and QwScanner::SubtractReferenceTimes().
|
inline |
Definition at line 94 of file VQwSubsystem.h.
References fIsDataLoaded.
Referenced by QwLumi::ExchangeProcessedData(), QwDriftChamberHDC::FillHistograms(), QwSciFiDetector::FillHistograms(), QwTriggerScintillator::FillHistograms(), QwMainDetector::FillHistograms(), QwRaster::FillHistograms(), QwDriftChamberVDC::FillHistograms(), QwBeamMod::FillHistograms(), QwIntegratedRaster::FillHistograms(), QwScanner::FillHistograms(), QwLumi::FillHistograms(), QwSciFiDetector::FillTreeVector(), QwTriggerScintillator::FillTreeVector(), QwMainDetector::FillTreeVector(), QwRaster::FillTreeVector(), QwIntegratedRaster::FillTreeVector(), QwScanner::FillTreeVector(), QwLumi::FillTreeVector(), QwHelicityPattern::LoadEventData(), QwDriftChamberHDC::ProcessEvent(), QwDriftChamberVDC::ProcessEvent(), QwRaster::ProcessEvent(), QwTriggerScintillator::ProcessEvent(), QwSciFiDetector::ProcessEvent(), QwMainDetector::ProcessEvent(), QwHelicity::ProcessEvent(), QwIntegratedRaster::ProcessEvent(), QwLumi::ProcessEvent(), QwScanner::ProcessEvent(), and QwLumi::ProcessEvent_2().
|
pure virtual |
Mandatory map file definition.
Implemented in QwScanner, QwRegressionSubsystem, QwComptonElectronDetector, QwLumi, QwMollerDetector, QwBeamMod, QwIntegratedRaster, QwMainCerenkovDetector, QwBeamLine, QwComptonPhotonDetector, QwHelicity, QwMainDetector, QwRaster, QwTriggerScintillator, QwScaler, QwSciFiDetector, QwDriftChamberVDC, and QwDriftChamberHDC.
Referenced by LoadDetectorMaps().
|
inlinevirtual |
Optional crosstalk definition.
Reimplemented in VQwSubsystemTracking.
Definition at line 161 of file VQwSubsystem.h.
Referenced by LoadDetectorMaps().
|
virtual |
Parse parameter file to find the map files.
Definition at line 37 of file VQwSubsystem.cc.
References QwParameterFile::GetUInt(), QwParameterFile::HasVariablePair(), LoadChannelMap(), LoadCrosstalkDefinition(), LoadEventCuts(), LoadGeometryDefinition(), LoadInputParameters(), PrintDetectorMaps(), QwParameterFile::ReadNextLine(), QwParameterFile::RewindToFileStart(), SetEventTypeMask(), QwParameterFile::TrimComment(), and QwParameterFile::TrimWhitespace().
Referenced by QwSubsystemArray::LoadSubsystemsFromParameterFile().
|
inlinevirtual |
Optional event cut file.
Reimplemented in QwComptonElectronDetector, QwMollerDetector, QwRegressionSubsystem, QwScanner, QwLumi, QwBeamMod, QwIntegratedRaster, QwScaler, QwComptonPhotonDetector, VQwSubsystemParity, QwMainCerenkovDetector, QwBeamLine, QwHelicity, and QwRaster.
Definition at line 163 of file VQwSubsystem.h.
Referenced by LoadDetectorMaps().
|
inlinevirtual |
Optional geometry definition.
Reimplemented in QwScanner, VQwSubsystemTracking, and QwBeamLine.
Definition at line 159 of file VQwSubsystem.h.
Referenced by LoadDetectorMaps().
|
pure virtual |
Mandatory parameter file definition.
Implemented in QwScanner, QwRegressionSubsystem, QwComptonElectronDetector, QwLumi, QwBeamMod, QwMollerDetector, QwIntegratedRaster, QwMainCerenkovDetector, QwBeamLine, QwComptonPhotonDetector, QwDriftChamber, QwHelicity, QwMainDetector, QwRaster, QwTriggerScintillator, QwScaler, and QwSciFiDetector.
Referenced by LoadDetectorMaps().
|
virtual |
Assignment Note: Must be called at the beginning of all subsystems routine call to operator=(VQwSubsystem *value) by VQwSubsystem::operator=(value)
Reimplemented in QwMainCerenkovDetector, QwLumi, QwIntegratedRaster, QwComptonElectronDetector, QwHelicity, QwBeamMod, QwMollerDetector, QwBeamLine, QwComptonPhotonDetector, QwRegressionSubsystem, QwScaler, VQwSubsystemParity, and QwScanner.
Definition at line 345 of file VQwSubsystem.cc.
References fIsDataLoaded.
Referenced by QwScanner::operator=(), QwScaler::operator=(), QwHelicity::operator=(), QwComptonElectronDetector::operator=(), QwIntegratedRaster::operator=(), and QwLumi::operator=().
|
virtual |
Definition at line 367 of file VQwSubsystem.cc.
References QwLog::endl(), fDetectorMaps, fSystemName, and QwMessage.
Referenced by LoadDetectorMaps().
|
virtual |
Print some information about the subsystem.
Reimplemented in QwScanner, QwMainCerenkovDetector, QwLumi, QwIntegratedRaster, QwBeamLine, QwComptonPhotonDetector, and QwScaler.
Definition at line 331 of file VQwSubsystem.cc.
References fArrays, fBank_IDs, fROC_IDs, and fSystemName.
Referenced by QwScaler::PrintInfo(), and QwComptonPhotonDetector::PrintInfo().
|
pure virtual |
Implemented in QwScanner, QwRegressionSubsystem, QwLumi, QwIntegratedRaster, QwComptonElectronDetector, QwBeamMod, QwMollerDetector, QwBeamLine, QwMainCerenkovDetector, QwHelicity, QwDriftChamber, QwMainDetector, QwComptonPhotonDetector, QwSciFiDetector, QwTriggerScintillator, QwRaster, and QwScaler.
|
inlinevirtual |
TODO: Subsystems should be changing their ProcessEvBuffer routines to take the event_type as the first argument. But in the meantime, default to just calling the non-event-type-aware ProcessEvBuffer routine.
Reimplemented in QwMollerDetector, and QwHelicity.
Definition at line 175 of file VQwSubsystem.h.
References GetEventTypeMask().
|
pure virtual |
TODO: The non-event-type-aware ProcessEvBuffer routine should be replaced with the event-type-aware version.
Implemented in QwScanner, QwRegressionSubsystem, QwLumi, QwIntegratedRaster, QwComptonElectronDetector, QwBeamMod, QwMollerDetector, QwBeamLine, QwMainCerenkovDetector, QwHelicity, QwMainDetector, QwComptonPhotonDetector, QwDriftChamber, QwTriggerScintillator, QwSciFiDetector, QwRaster, and QwScaler.
|
pure virtual |
Implemented in QwScanner, QwRegressionSubsystem, QwLumi, QwIntegratedRaster, QwBeamMod, QwComptonElectronDetector, QwMollerDetector, QwBeamLine, QwMainCerenkovDetector, QwHelicity, QwDriftChamber, QwMainDetector, QwComptonPhotonDetector, QwSciFiDetector, QwTriggerScintillator, QwRaster, QwScaler, QwDriftChamberVDC, QwDriftChamberHDC, and QwFakeHelicity.
Referenced by QwSubsystemArray::ProcessEvent().
|
inlinevirtual |
Process the event data again, including data from other subsystems. Not all derived classes will require a second stage of event data processing.
Reimplemented in QwLumi, QwIntegratedRaster, QwBeamMod, and QwMainCerenkovDetector.
Definition at line 194 of file VQwSubsystem.h.
Referenced by QwSubsystemArray::ProcessEvent().
|
inlinevirtual |
Process the command line options.
Reimplemented in QwLumi, QwMollerDetector, QwIntegratedRaster, QwMainDetector, QwBeamMod, QwTriggerScintillator, QwMainCerenkovDetector, QwBeamLine, QwScanner, QwComptonPhotonDetector, QwHelicity, QwRegressionSubsystem, QwScaler, QwDriftChamberVDC, QwRaster, and QwDriftChamberHDC.
Definition at line 90 of file VQwSubsystem.h.
Referenced by QwSubsystemArray::ProcessOptionsSubsystems().
|
inlinevirtual |
Try to publish an internal variable matching the submitted name.
Reimplemented in QwLumi, and QwBeamLine.
Definition at line 113 of file VQwSubsystem.h.
Bool_t VQwSubsystem::PublishInternalValue | ( | const TString & | name, |
const TString & | desc, | ||
const VQwHardwareChannel * | value | ||
) | const |
Publish a variable name to the parent subsystem array.
Publish a variable name to the subsystem array
name | Name of the variable |
desc | Description of the variable |
value | Channel to publish |
Definition at line 208 of file VQwSubsystem.cc.
References QwLog::endl(), GetParent(), GetSubsystemName(), QwSubsystemArray::PublishInternalValue(), and QwError.
Referenced by QwBeamLine::PublishByRequest(), QwLumi::PublishByRequest(), QwBeamLine::PublishInternalValues(), and QwMainCerenkovDetector::PublishInternalValues().
|
inlinevirtual |
Publish all variables of the subsystem.
Reimplemented in QwLumi, QwMainCerenkovDetector, and QwBeamLine.
Definition at line 109 of file VQwSubsystem.h.
Referenced by QwSubsystemArray::LoadSubsystemsFromParameterFile().
|
inlinevirtual |
Reimplemented in QwLumi, QwIntegratedRaster, and QwBeamLine.
Definition at line 202 of file VQwSubsystem.h.
|
protectedvirtual |
Tell the object that it will decode data from this ROC and sub-bank.
Reimplemented in QwDriftChamber.
Definition at line 275 of file VQwSubsystem.cc.
References QwLog::endl(), ERROR, fBank_IDs, fCurrentBank_ID, fCurrentROC_ID, FindIndex(), fROC_IDs, and QwError.
Referenced by QwScaler::LoadChannelMap(), QwHelicity::LoadChannelMap(), QwComptonPhotonDetector::LoadChannelMap(), QwBeamLine::LoadChannelMap(), QwMainCerenkovDetector::LoadChannelMap(), QwIntegratedRaster::LoadChannelMap(), QwBeamMod::LoadChannelMap(), QwMollerDetector::LoadChannelMap(), QwLumi::LoadChannelMap(), QwSciFiDetector::RegisterROCNumber(), QwRaster::RegisterROCNumber(), QwDriftChamber::RegisterROCNumber(), QwMainDetector::RegisterROCNumber(), QwTriggerScintillator::RegisterROCNumber(), QwScanner::RegisterROCNumber(), and RegisterSubbank().
|
protected |
Tell the object that it will decode data from this sub-bank in the ROC currently open for registration.
Definition at line 311 of file VQwSubsystem.cc.
References QwLog::endl(), ERROR, fCurrentBank_ID, fCurrentROC_ID, QwError, and RegisterROCNumber().
Referenced by QwScaler::LoadChannelMap(), QwHelicity::LoadChannelMap(), QwComptonPhotonDetector::LoadChannelMap(), QwBeamLine::LoadChannelMap(), QwMainCerenkovDetector::LoadChannelMap(), QwIntegratedRaster::LoadChannelMap(), QwBeamMod::LoadChannelMap(), QwMollerDetector::LoadChannelMap(), QwLumi::LoadChannelMap(), QwSciFiDetector::RegisterSubbank(), QwRaster::RegisterSubbank(), QwDriftChamber::RegisterSubbank(), QwMainDetector::RegisterSubbank(), QwTriggerScintillator::RegisterSubbank(), and QwScanner::RegisterSubbank().
Bool_t VQwSubsystem::RequestExternalValue | ( | const TString & | name, |
VQwHardwareChannel * | value | ||
) | const |
Request a named value which is owned by an external subsystem; the request will be handled by the parent subsystem array.
Get the value corresponding to some variable name from a different subsystem.
name | Name of the desired variable |
value | Pointer to the value to be filled by the call |
Definition at line 188 of file VQwSubsystem.cc.
References GetParent(), and QwSubsystemArray::RequestExternalValue().
Referenced by QwMainCerenkovDetector::ExchangeProcessedData(), QwBeamMod::ExchangeProcessedData(), and QwLumi::ExchangeProcessedData().
|
inlinevirtual |
Return a pointer to a varialbe to the parent subsystem array to be delivered to a different subsystem.
Definition at line 124 of file VQwSubsystem.h.
|
inlinevirtual |
Return a named value to the parent subsystem array to be delivered to a different subsystem.
Definition at line 132 of file VQwSubsystem.h.
|
inlineprotected |
Definition at line 305 of file VQwSubsystem.h.
References fIsDataLoaded.
Referenced by QwDriftChamberHDC::ClearEventData(), QwDriftChamberVDC::ClearEventData(), QwRaster::ClearEventData(), QwTriggerScintillator::ClearEventData(), QwSciFiDetector::ClearEventData(), QwMainDetector::ClearEventData(), QwHelicity::ClearEventData(), QwIntegratedRaster::ClearEventData(), QwLumi::ClearEventData(), QwScanner::ClearEventData(), QwRaster::ProcessEvBuffer(), QwSciFiDetector::ProcessEvBuffer(), QwTriggerScintillator::ProcessEvBuffer(), QwDriftChamber::ProcessEvBuffer(), QwMainDetector::ProcessEvBuffer(), QwHelicity::ProcessEvBuffer(), QwBeamMod::ProcessEvBuffer(), QwIntegratedRaster::ProcessEvBuffer(), QwLumi::ProcessEvBuffer(), and QwScanner::ProcessEvBuffer().
|
inline |
Set event type mask.
Definition at line 166 of file VQwSubsystem.h.
References fEventTypeMask.
Referenced by LoadDetectorMaps(), QwMainDetector::QwMainDetector(), QwSciFiDetector::QwSciFiDetector(), QwTriggerScintillator::QwTriggerScintillator(), VQwSubsystemParity::VQwSubsystemParity(), and VQwSubsystemTracking::VQwSubsystemTracking().
void VQwSubsystem::SetParent | ( | QwSubsystemArray * | parent | ) |
Set the parent of this subsystem to the specified array.
Set the parent of this subsystem to the specified parent array. A subsystem can have multiple parents, but that is not recommended.
parent | Parent array |
Definition at line 130 of file VQwSubsystem.cc.
References fArrays.
|
inlineprotected |
Definition at line 146 of file VQwSubsystem.h.
References fPublishedInternalValues.
|
protected |
Vector of pointers to subsystem arrays that contain this subsystem.
Definition at line 334 of file VQwSubsystem.h.
Referenced by GetParent(), PrintInfo(), and SetParent().
|
protected |
Vector of Bank IDs per ROC ID associated with this subsystem.
Definition at line 331 of file VQwSubsystem.h.
Referenced by ClearAllBankRegistrations(), GetSubbankIndex(), PrintInfo(), RegisterROCNumber(), QwTriggerScintillator::ReportConfiguration(), QwSciFiDetector::ReportConfiguration(), QwMainDetector::ReportConfiguration(), QwDriftChamber::ReportConfiguration(), and QwScanner::ReportConfiguration().
|
protected |
Bank ID that is currently being processed.
Definition at line 326 of file VQwSubsystem.h.
Referenced by ClearAllBankRegistrations(), QwComptonPhotonDetector::EncodeEventData(), QwHelicity::EncodeEventData(), QwBeamLine::EncodeEventData(), QwMainCerenkovDetector::EncodeEventData(), QwIntegratedRaster::EncodeEventData(), QwLumi::EncodeEventData(), GetSubbankIndex(), RegisterROCNumber(), and RegisterSubbank().
|
protected |
ROC ID that is currently being processed.
Definition at line 325 of file VQwSubsystem.h.
Referenced by ClearAllBankRegistrations(), QwComptonPhotonDetector::EncodeEventData(), QwHelicity::EncodeEventData(), QwBeamLine::EncodeEventData(), QwMainCerenkovDetector::EncodeEventData(), QwIntegratedRaster::EncodeEventData(), QwLumi::EncodeEventData(), GetSubbankIndex(), RegisterROCNumber(), QwSciFiDetector::RegisterSubbank(), QwDriftChamber::RegisterSubbank(), QwMainDetector::RegisterSubbank(), QwTriggerScintillator::RegisterSubbank(), QwScanner::RegisterSubbank(), and RegisterSubbank().
|
protected |
Definition at line 322 of file VQwSubsystem.h.
Referenced by GetDetectorMaps(), QwDriftChamberHDC::LoadChannelMap(), QwDriftChamberVDC::LoadChannelMap(), QwSciFiDetector::LoadChannelMap(), QwScaler::LoadChannelMap(), QwTriggerScintillator::LoadChannelMap(), QwRaster::LoadChannelMap(), QwMainDetector::LoadChannelMap(), QwHelicity::LoadChannelMap(), QwComptonPhotonDetector::LoadChannelMap(), QwBeamLine::LoadChannelMap(), QwMainCerenkovDetector::LoadChannelMap(), QwIntegratedRaster::LoadChannelMap(), QwBeamMod::LoadChannelMap(), QwLumi::LoadChannelMap(), QwScanner::LoadChannelMap(), VQwSubsystemTracking::LoadCrosstalkDefinition(), QwBeamLine::LoadEventCuts(), QwMainCerenkovDetector::LoadEventCuts(), QwIntegratedRaster::LoadEventCuts(), QwBeamMod::LoadEventCuts(), QwLumi::LoadEventCuts(), QwBeamLine::LoadGeometryDefinition(), VQwSubsystemTracking::LoadGeometryDefinition(), QwScaler::LoadInputParameters(), QwRaster::LoadInputParameters(), QwComptonPhotonDetector::LoadInputParameters(), QwBeamLine::LoadInputParameters(), QwMainCerenkovDetector::LoadInputParameters(), QwIntegratedRaster::LoadInputParameters(), QwLumi::LoadInputParameters(), QwScanner::LoadInputParameters(), QwDriftChamberHDC::LoadTimeWireOffset(), QwDriftChamberVDC::LoadTimeWireOffset(), QwDriftChamberHDC::LoadTtoDParameters(), QwDriftChamberVDC::LoadTtoDParameters(), PrintDetectorMaps(), and QwDriftChamberVDC::ReadEvent().
|
protected |
Definition at line 321 of file VQwSubsystem.h.
Referenced by GetParamFileNameList(), and QwMollerDetector::LoadChannelMap().
|
protected |
Mask of event types.
Definition at line 317 of file VQwSubsystem.h.
Referenced by GetEventTypeMask(), QwScanner::QwScanner(), and SetEventTypeMask().
|
protected |
Has this subsystem gotten data to be processed?
Definition at line 319 of file VQwSubsystem.h.
Referenced by HasDataLoaded(), operator=(), and SetDataLoaded().
|
protected |
Map of published internal values.
Definition at line 142 of file VQwSubsystem.h.
Referenced by UpdatePublishedValue().
|
protected |
List of parameters to be published (loaded at the channel map)
Definition at line 144 of file VQwSubsystem.h.
Referenced by QwBeamLine::LoadChannelMap(), QwMainCerenkovDetector::LoadChannelMap(), QwBeamLine::operator+=(), QwBeamLine::operator-=(), QwBeamLine::operator=(), QwBeamLine::PublishByRequest(), QwBeamLine::PublishInternalValues(), and QwMainCerenkovDetector::PublishInternalValues().
|
protected |
Vector of ROC IDs associated with this subsystem.
Definition at line 329 of file VQwSubsystem.h.
Referenced by ClearAllBankRegistrations(), GetSubbankIndex(), PrintInfo(), RegisterROCNumber(), QwTriggerScintillator::ReportConfiguration(), QwSciFiDetector::ReportConfiguration(), QwMainDetector::ReportConfiguration(), QwDriftChamber::ReportConfiguration(), and QwScanner::ReportConfiguration().
|
protected |
Name of this subsystem.
Definition at line 315 of file VQwSubsystem.h.
Referenced by AtEndOfEventLoop(), GetSubsystemName(), QwBeamMod::Print(), PrintDetectorMaps(), QwRaster::PrintInfo(), QwBeamLine::PrintInfo(), QwIntegratedRaster::PrintInfo(), QwLumi::PrintInfo(), QwMainCerenkovDetector::PrintInfo(), QwScanner::PrintInfo(), and PrintInfo().