JAPAn
Just Another Parity Analyzer
|
Base class for subsystems implementing container-delegation pattern. More...
#include <VQwSubsystem.h>
Public Member Functions | |
VQwSubsystem (const TString &name) | |
Constructor with name. | |
VQwSubsystem (const VQwSubsystem &orig) | |
Copy constructor by object. | |
~VQwSubsystem () override | |
Default destructor. | |
virtual void | ProcessOptions (QwOptions &) |
Process the command line options. | |
TString | GetName () const |
Bool_t | HasDataLoaded () const |
VQwSubsystem * | GetSibling (const std::string &name) const |
Get the sibling with specified name. | |
virtual std::vector< TString > | GetParamFileNameList () |
virtual std::map< TString, TString > | GetDetectorMaps () |
Bool_t | PublishByRequest (TString) override |
Try to publish an internal variable matching the submitted name. | |
Bool_t | PublishInternalValues () const override |
Publish all variables of the subsystem. | |
virtual Int_t | LoadDetectorMaps (QwParameterFile &file) |
Parse parameter file to find the map files. | |
virtual Int_t | LoadChannelMap (TString mapfile)=0 |
Mandatory map file definition. | |
virtual Int_t | LoadInputParameters (TString mapfile)=0 |
Mandatory parameter file definition. | |
virtual Int_t | LoadGeometryDefinition (TString) |
Optional geometry definition. | |
virtual Int_t | LoadCrosstalkDefinition (TString) |
Optional crosstalk definition. | |
virtual Int_t | LoadEventCuts (TString) |
Optional event cut file. | |
void | SetEventTypeMask (const UInt_t mask) |
Set event type mask. | |
UInt_t | GetEventTypeMask () const |
Get event type mask. | |
virtual void | ClearEventData ()=0 |
virtual Int_t | ProcessConfigurationBuffer (const ROCID_t roc_id, const BankID_t bank_id, UInt_t *buffer, UInt_t num_words)=0 |
virtual Int_t | ProcessEvBuffer (const UInt_t event_type, const ROCID_t roc_id, const BankID_t bank_id, UInt_t *buffer, UInt_t num_words) |
virtual Int_t | ProcessEvBuffer (const ROCID_t roc_id, const BankID_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. | |
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. | |
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. | |
virtual void | AtEndOfEventLoop () |
Perform actions at the end of the event loop. | |
virtual void | RandomizeEventData (int=0, double=0.0) |
virtual void | EncodeEventData (std::vector< UInt_t > &) |
Objects construction and maintenance | |
virtual void | ConstructObjects () |
Construct the objects for this subsystem. | |
virtual void | ConstructObjects (TDirectory *folder) |
Construct the objects for this subsystem in a folder. | |
virtual void | ConstructObjects (TString &prefix) |
Construct the objects for this subsystem with a prefix. | |
virtual void | ConstructObjects (TDirectory *, TString &) |
Construct the objects for this subsystem in a folder with a prefix. | |
Histogram construction and maintenance | |
virtual void | ConstructHistograms () |
Construct the histograms for this subsystem. | |
virtual void | ConstructHistograms (TDirectory *folder) |
Construct the histograms for this subsystem in a folder. | |
virtual void | ConstructHistograms (TString &prefix) |
Construct the histograms for this subsystem with a prefix. | |
virtual void | ConstructHistograms (TDirectory *folder, TString &prefix)=0 |
Construct the histograms for this subsystem in a folder with a prefix. | |
virtual void | FillHistograms ()=0 |
Fill the histograms for this subsystem. | |
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, QwRootTreeBranchVector &values)=0 |
Construct the branch and tree vector. | |
virtual void | ConstructBranchAndVector (TTree *tree, QwRootTreeBranchVector &values) |
Construct the branch and tree vector. | |
virtual void | ConstructBranch (TTree *tree, TString &prefix)=0 |
Construct the branch and tree vector. | |
virtual void | ConstructBranch (TTree *tree, TString &prefix, QwParameterFile &trim_file)=0 |
Construct the branch and tree vector based on the trim file. | |
virtual void | FillTreeVector (QwRootTreeBranchVector &values) const =0 |
Fill the tree vector. | |
![]() | |
void | ShareHistograms (const MQwHistograms *source) |
Share histogram pointers between objects. | |
![]() | |
MQwPublishable_child () | |
Default constructor Initializes the child object and sets up self-reference for publishing. | |
MQwPublishable_child (const MQwPublishable_child &source) | |
Copy constructor. | |
virtual | ~MQwPublishable_child () |
Virtual destructor. | |
void | SetParent (QwSubsystemArray *parent) |
Set the parent container for this child object. | |
QwSubsystemArray * | GetParent () const |
Get the parent container for this child object. | |
Static Public Member Functions | |
static void | DefineOptions () |
Define options function (note: no virtual static functions in C++) | |
Protected Attributes | |
std::vector< std::vector< TString > > | fPublishList |
![]() | |
std::vector< TH1_ptr > | fHistograms |
Histograms associated with this data element. | |
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. | |
TString | fSystemName |
Name of this subsystem. | |
UInt_t | fEventTypeMask |
Mask of event types. | |
Bool_t | fIsDataLoaded |
Has this subsystem gotten data to be processed? | |
std::vector< TString > | fDetectorMapsNames |
Names of loaded detector map files. | |
std::map< TString, TString > | fDetectorMaps |
Map of file name to full path or content. | |
ROCID_t | fCurrentROC_ID |
ROC ID that is currently being processed. | |
BankID_t | fCurrentBank_ID |
Bank ID (and Marker word) that is currently being processed;. | |
std::vector< ROCID_t > | fROC_IDs |
Vector of ROC IDs associated with this subsystem. | |
std::vector< std::vector< BankID_t > > | fBank_IDs |
Vector of Bank IDs per ROC ID associated with this subsystem. | |
std::vector< std::vector< std::vector< UInt_t > > > | fMarkerWords |
Vector of marker words per ROC & subbank associated with this subsystem. | |
virtual void | ConstructTree () |
Construct the tree for this subsystem. | |
virtual void | ConstructTree (TDirectory *folder) |
Construct the tree for this subsystem in a folder. | |
virtual void | ConstructTree (TString &prefix) |
Construct the tree for this subsystem with a prefix. | |
virtual void | ConstructTree (TDirectory *, TString &) |
Construct the tree for this subsystem in a folder with a prefix. | |
virtual void | FillTree () |
Fill the tree for this subsystem. | |
virtual void | DeleteTree () |
Delete the tree for this subsystem. | |
virtual void | PrintInfo () const |
Print some information about the subsystem. | |
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) | |
virtual void | PrintDetectorMaps (Bool_t status) const |
void | GetMarkerWordList (const ROCID_t roc_id, const BankID_t bank_id, std::vector< UInt_t > &marker) const |
std::vector< ROCID_t > | GetROCIds () const |
void | ClearAllBankRegistrations () |
Clear all registration of ROC and Bank IDs for this subsystem. | |
virtual Int_t | RegisterROCNumber (const ROCID_t roc_id, const BankID_t bank_id=0) |
Tell the object that it will decode data from this ROC and sub-bank. | |
Int_t | RegisterSubbank (const BankID_t bank_id) |
Tell the object that it will decode data from this sub-bank in the ROC currently open for registration. | |
Int_t | RegisterMarkerWord (const UInt_t markerword) |
void | RegisterRocBankMarker (QwParameterFile &mapstr) |
Int_t | GetSubbankIndex () const |
Int_t | GetSubbankIndex (const ROCID_t roc_id, const BankID_t bank_id) const |
void | SetDataLoaded (Bool_t flag) |
template<class T> | |
Int_t | FindIndex (const std::vector< T > &myvec, const T value) const |
Bool_t | Compare (VQwSubsystem *source) |
VQwSubsystem () | |
Additional Inherited Members | |
![]() | |
MQwHistograms () | |
Default constructor. | |
MQwHistograms (const MQwHistograms &source) | |
Copy constructor. | |
virtual | ~MQwHistograms () |
Virtual destructor. | |
MQwHistograms & | operator= (const MQwHistograms &value) |
void | Fill_Pointer (TH1_ptr hist_ptr, Double_t value) |
void | AddHistogram (TH1 *h) |
Register a histogram. | |
![]() | |
Bool_t | RequestExternalValue (const TString &name, VQwHardwareChannel *value) const |
Retrieve the variable name from other subsystem arrays Get the value corresponding to some variable name from a different data array. | |
const VQwHardwareChannel * | RequestExternalPointer (const TString &name) const |
Retrieve a pointer to an external variable by name Requests a direct pointer to a variable from sibling subsystems via the parent container. | |
Bool_t | PublishInternalValue (const TString name, const TString desc, const VQwHardwareChannel *element) const |
Publish a variable from this child into the parent container. | |
Base class for subsystems implementing container-delegation pattern.
VQwSubsystem serves as the foundation for all analysis subsystems and implements the container-delegation architectural pattern. Unlike individual data elements that use the dual-operator pattern, subsystems delegate arithmetic operations to their contained elements and avoid virtual operators.
Key Design Principles:
Definition at line 114 of file VQwSubsystem.h.
|
inline |
Constructor with name.
Definition at line 119 of file VQwSubsystem.h.
References ClearAllBankRegistrations(), fCurrentBank_ID, fCurrentROC_ID, fEventTypeMask, fIsDataLoaded, fSystemName, MQwHistograms::MQwHistograms(), MQwPublishable_child< QwSubsystemArray, VQwSubsystem >::MQwPublishable_child(), and VQwSubsystem().
Referenced by QwBeamLine::AccumulateRunningSum(), QwBeamMod::AccumulateRunningSum(), QwCombinerSubsystem::AccumulateRunningSum(), QwHelicity::AccumulateRunningSum(), QwIntegratedRaster::AccumulateRunningSum(), QwMollerDetector::AccumulateRunningSum(), QwScaler::AccumulateRunningSum(), VQwDetectorArray::AccumulateRunningSum(), VQwSubsystemParity::AccumulateRunningSum(), QwBeamLine::CheckForBurpFail(), QwBeamMod::CheckForBurpFail(), QwCombinerSubsystem::CheckForBurpFail(), QwFakeHelicity::CheckForBurpFail(), QwHelicity::CheckForBurpFail(), QwIntegratedRaster::CheckForBurpFail(), QwMollerDetector::CheckForBurpFail(), QwScaler::CheckForBurpFail(), VQwDetectorArray::CheckForBurpFail(), VQwSubsystemParity::CheckForBurpFail(), QwHelicity::CheckPatternNum(), QwBeamLine::Compare(), QwBeamMod::Compare(), QwHelicity::Compare(), QwIntegratedRaster::Compare(), QwMollerDetector::Compare(), QwScaler::Compare(), VQwDetectorArray::Compare(), Compare(), QwBeamLine::CopyTemplatedDataElements(), QwBeamLine::DeaccumulateRunningSum(), QwBeamMod::DeaccumulateRunningSum(), QwCombinerSubsystem::DeaccumulateRunningSum(), QwHelicity::DeaccumulateRunningSum(), QwIntegratedRaster::DeaccumulateRunningSum(), QwMollerDetector::DeaccumulateRunningSum(), QwScaler::DeaccumulateRunningSum(), VQwDetectorArray::DeaccumulateRunningSum(), VQwSubsystemParity::DeaccumulateRunningSum(), QwIntegratedRaster::Difference(), VQwSubsystemParity::Difference(), GetSibling(), QwBeamMod::LoadGeometry(), QwHelicity::MatchActualHelicity(), QwHelicity::MergeCounters(), QwCombinerSubsystem::operator*=(), QwBeamLine::operator+=(), QwBeamMod::operator+=(), QwCombinerSubsystem::operator+=(), QwHelicity::operator+=(), QwIntegratedRaster::operator+=(), QwMollerDetector::operator+=(), QwScaler::operator+=(), VQwDetectorArray::operator+=(), VQwSubsystemParity::operator+=(), QwBeamLine::operator-=(), QwBeamMod::operator-=(), QwCombinerSubsystem::operator-=(), QwHelicity::operator-=(), QwIntegratedRaster::operator-=(), QwMollerDetector::operator-=(), QwScaler::operator-=(), VQwDetectorArray::operator-=(), VQwSubsystemParity::operator-=(), QwCombinerSubsystem::operator/=(), QwBeamLine::operator=(), QwBeamMod::operator=(), QwCombinerSubsystem::operator=(), QwHelicity::operator=(), QwIntegratedRaster::operator=(), QwMollerDetector::operator=(), QwScaler::operator=(), VQwDetectorArray::operator=(), operator=(), VQwSubsystemParity::operator=(), QwBeamLine::QwBeamLine(), QwBeamLine::QwBeamLine(), QwBeamMod::QwBeamMod(), QwBeamMod::QwBeamMod(), QwBlindDetectorArray::QwBlindDetectorArray(), QwBlindDetectorArray::QwBlindDetectorArray(), QwCombinerSubsystem::QwCombinerSubsystem(), QwCombinerSubsystem::QwCombinerSubsystem(), QwDetectorArray::QwDetectorArray(), QwDetectorArray::QwDetectorArray(), QwFakeHelicity::QwFakeHelicity(), QwHelicity::QwHelicity(), QwHelicity::QwHelicity(), QwIntegratedRaster::QwIntegratedRaster(), QwIntegratedRaster::QwIntegratedRaster(), QwMollerDetector::QwMollerDetector(), QwMollerDetector::QwMollerDetector(), QwScaler::QwScaler(), QwScaler::QwScaler(), QwBeamLine::Ratio(), QwBeamMod::Ratio(), QwCombinerSubsystem::Ratio(), QwHelicity::Ratio(), QwIntegratedRaster::Ratio(), QwMollerDetector::Ratio(), QwScaler::Ratio(), VQwDetectorArray::Ratio(), VQwSubsystemParity::Ratio(), QwBeamLine::SetRandomEventAsymmetry(), QwMollerDetector::SingleEventCuts(), QwIntegratedRaster::Sum(), VQwSubsystemParity::Sum(), QwBeamLine::UpdateErrorFlag(), QwBeamMod::UpdateErrorFlag(), QwCombinerSubsystem::UpdateErrorFlag(), QwHelicity::UpdateErrorFlag(), QwIntegratedRaster::UpdateErrorFlag(), QwMollerDetector::UpdateErrorFlag(), QwScaler::UpdateErrorFlag(), VQwDetectorArray::UpdateErrorFlag(), VQwSubsystemParity::UpdateErrorFlag(), VQwDetectorArray::VQwDetectorArray(), VQwDetectorArray::VQwDetectorArray(), VQwSubsystem(), VQwSubsystem(), VQwSubsystemParity::VQwSubsystemParity(), and VQwSubsystemParity::VQwSubsystemParity().
|
inline |
Copy constructor by object.
Definition at line 127 of file VQwSubsystem.h.
References fBank_IDs, fCurrentBank_ID, fCurrentROC_ID, fIsDataLoaded, fMarkerWords, fPublishList, fROC_IDs, fSystemName, MQwHistograms::MQwHistograms(), MQwPublishable_child< QwSubsystemArray, VQwSubsystem >::MQwPublishable_child(), and VQwSubsystem().
|
inlineoverride |
|
private |
|
inlinevirtual |
Perform actions at the end of the event loop.
Definition at line 238 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.
Clear all registration of ROC and Bank IDs for this subsystem and reset current ROC/bank IDs to null.
Definition at line 143 of file VQwSubsystem.cc.
References fBank_IDs, fCurrentBank_ID, fCurrentROC_ID, fROC_IDs, kNullBankID, and kNullROCID.
Referenced by VQwSubsystem().
|
pure virtual |
Implemented in QwBeamLine, QwBeamMod, QwCombinerSubsystem, QwFakeHelicity, QwHelicity, QwIntegratedRaster, QwMollerDetector, QwScaler, and VQwDetectorArray.
Referenced by QwSubsystemArray::ClearEventData().
|
inlineprotected |
Definition at line 506 of file VQwSubsystem.h.
References VQwSubsystem().
Referenced by VQwSubsystemParity::Difference(), and VQwSubsystemParity::Sum().
|
pure virtual |
Construct the branch and tree vector.
Construct the branches for this subsystem.
tree | Output ROOT tree. |
prefix | Name prefix for all branch names. |
Implemented in QwBeamLine, QwBeamMod, QwCombinerSubsystem, QwHelicity, QwIntegratedRaster, QwMollerDetector, QwScaler, and VQwDetectorArray.
Referenced by QwSubsystemArray::ConstructBranch(), and QwSubsystemArray::ConstructBranch().
|
pure virtual |
Construct the branch and tree vector based on the trim file.
Construct the branches for this subsystem using a trim file.
tree | Output ROOT tree. |
prefix | Name prefix for all branch names. |
trim_file | Trim file describing which branches to construct. |
Implemented in QwBeamLine, QwBeamMod, QwCombinerSubsystem, QwHelicity, QwIntegratedRaster, QwMollerDetector, QwScaler, and VQwDetectorArray.
|
inlinevirtual |
Construct the branch and tree vector.
Reimplemented in QwBeamLine, QwBeamMod, QwHelicity, QwMollerDetector, QwScaler, and VQwDetectorArray.
Definition at line 303 of file VQwSubsystem.h.
References ConstructBranchAndVector().
|
pure virtual |
Construct the branch and tree vector.
Construct the branch and fill the provided values vector.
tree | Output ROOT tree to which branches are added. |
prefix | Name prefix for all branch names. |
values | Vector that will be filled by FillTreeVector. |
Implemented in QwBeamLine, QwBeamMod, QwCombinerSubsystem, QwHelicity, QwIntegratedRaster, QwMollerDetector, QwScaler, and VQwDetectorArray.
Referenced by QwSubsystemArray::ConstructBranchAndVector(), ConstructBranchAndVector(), QwBeamMod::LoadGeometry(), and QwBeamLine::SetRandomEventAsymmetry().
|
inlinevirtual |
Construct the histograms for this subsystem.
Reimplemented in QwBeamLine, QwBeamMod, QwHelicity, QwIntegratedRaster, QwMollerDetector, QwScaler, and VQwDetectorArray.
Definition at line 270 of file VQwSubsystem.h.
References ConstructHistograms().
Referenced by ConstructHistograms(), ConstructHistograms(), ConstructHistograms(), QwBeamMod::LoadGeometry(), QwIntegratedRaster::Scale(), QwBeamLine::SetRandomEventAsymmetry(), and QwMollerDetector::SingleEventCuts().
|
inlinevirtual |
Construct the histograms for this subsystem in a folder.
Reimplemented in QwBeamLine, QwBeamMod, QwHelicity, QwIntegratedRaster, QwMollerDetector, QwScaler, and VQwDetectorArray.
Definition at line 275 of file VQwSubsystem.h.
References ConstructHistograms().
|
pure virtual |
Construct the histograms for this subsystem in a folder with a prefix.
Implemented in QwBeamLine, QwBeamMod, QwCombinerSubsystem, QwHelicity, QwIntegratedRaster, QwMollerDetector, QwScaler, and VQwDetectorArray.
|
inlinevirtual |
Construct the histograms for this subsystem with a prefix.
Reimplemented in QwBeamLine, QwBeamMod, QwHelicity, QwIntegratedRaster, QwMollerDetector, QwScaler, and VQwDetectorArray.
Definition at line 280 of file VQwSubsystem.h.
References ConstructHistograms().
|
inlinevirtual |
Construct the objects for this subsystem.
Definition at line 249 of file VQwSubsystem.h.
References ConstructObjects().
Referenced by ConstructObjects(), ConstructObjects(), and ConstructObjects().
|
inlinevirtual |
Construct the objects for this subsystem in a folder with a prefix.
Definition at line 263 of file VQwSubsystem.h.
|
inlinevirtual |
Construct the objects for this subsystem in a folder.
Definition at line 254 of file VQwSubsystem.h.
References ConstructObjects().
|
inlinevirtual |
Construct the objects for this subsystem with a prefix.
Definition at line 259 of file VQwSubsystem.h.
References ConstructObjects().
|
inlinevirtual |
Construct the tree for this subsystem.
Definition at line 362 of file VQwSubsystem.h.
References ConstructTree().
Referenced by ConstructTree(), ConstructTree(), and ConstructTree().
|
inlinevirtual |
Construct the tree for this subsystem in a folder with a prefix.
Definition at line 376 of file VQwSubsystem.h.
|
inlinevirtual |
Construct the tree for this subsystem in a folder.
Definition at line 367 of file VQwSubsystem.h.
References ConstructTree().
|
inlinevirtual |
Construct the tree for this subsystem with a prefix.
Definition at line 372 of file VQwSubsystem.h.
References ConstructTree().
|
inlinestatic |
Define options function (note: no virtual static functions in C++)
Definition at line 146 of file VQwSubsystem.h.
Referenced by DefineOptionsParity().
|
inlinevirtual |
Delete the tree for this subsystem.
Definition at line 380 of file VQwSubsystem.h.
Referenced by QwSubsystemArray::DeleteTree().
|
inlinevirtual |
Reimplemented in QwBeamLine, QwHelicity, QwIntegratedRaster, and VQwDetectorArray.
Definition at line 243 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 QwIntegratedRaster, and VQwDetectorArray.
Definition at line 229 of file VQwSubsystem.h.
Referenced by QwSubsystemArray::ProcessEvent().
|
pure virtual |
Fill the histograms for this subsystem.
Implemented in QwBeamLine, QwBeamMod, QwCombinerSubsystem, QwHelicity, QwIntegratedRaster, QwMollerDetector, QwScaler, and VQwDetectorArray.
Referenced by QwSubsystemArray::FillHistograms().
|
inlinevirtual |
Fill the tree for this subsystem.
Definition at line 378 of file VQwSubsystem.h.
Referenced by QwSubsystemArray::FillTree().
|
pure virtual |
Fill the tree vector.
Fill the tree export vector with the current event values.
values | Output vector to be filled. |
Implemented in QwBeamLine, QwBeamMod, QwCombinerSubsystem, QwHelicity, QwIntegratedRaster, QwMollerDetector, QwScaler, and VQwDetectorArray.
Referenced by QwSubsystemArray::FillTreeVector().
|
inlineprotected |
Definition at line 467 of file VQwSubsystem.h.
Referenced by GetMarkerWordList(), GetSubbankIndex(), RegisterMarkerWord(), and RegisterROCNumber().
|
virtual |
Definition at line 311 of file VQwSubsystem.cc.
References fDetectorMaps.
|
inline |
Get event type mask.
Definition at line 208 of file VQwSubsystem.h.
References fEventTypeMask.
Referenced by QwHelicity::ProcessEvBuffer(), ProcessEvBuffer(), and QwSubsystemArray::UpdateEventTypeMask().
|
inline |
Definition at line 454 of file VQwSubsystem.h.
References fBank_IDs, FindIndex(), fMarkerWords, and fROC_IDs.
|
inline |
Definition at line 151 of file VQwSubsystem.h.
References fSystemName.
Referenced by QwBeamLine::AddToElementList(), QwBeamLine::AddToElementList(), QwBeamLine::AddToElementList(), QwBeamLine::AddToElementList(), QwSubsystemArray::ConstructBranch(), VQwDetectorArray::ExchangeProcessedData(), QwBeamLine::GetChannel(), QwBeamLine::GetElement(), QwBeamLine::LoadChannelMap(), QwBeamMod::LoadChannelMap(), VQwDetectorArray::LoadChannelMap(), QwSubsystemArray::LoadSubsystemsFromParameterFile(), QwHelicity::operator+=(), QwBeamLine::PrintValue(), QwScaler::PrintValue(), VQwDetectorArray::PrintValue(), QwSubsystemArray::push_back(), QwHelicity::QwHelicity(), and VQwDetectorArray::RandomizeMollerEvent().
|
virtual |
Definition at line 303 of file VQwSubsystem.cc.
References fDetectorMapsNames.
|
inline |
VQwSubsystem * VQwSubsystem::GetSibling | ( | const std::string & | name | ) | const |
Get the sibling with specified name.
Get a sibling subsystem by name from the parent array.
name | Name of the sibling subsystem. |
Definition at line 129 of file VQwSubsystem.cc.
References MQwPublishable_child< QwSubsystemArray, VQwSubsystem >::GetParent(), QwSubsystemArray::GetSubsystemByName(), and VQwSubsystem().
|
inlineprotected |
Get the current flat subbank index (based on current ROC/bank).
Definition at line 443 of file VQwSubsystem.h.
References fCurrentBank_ID, fCurrentROC_ID, and GetSubbankIndex().
Referenced by GetSubbankIndex(), QwBeamLine::LoadChannelMap(), QwBeamMod::LoadChannelMap(), QwHelicity::LoadChannelMap(), QwMollerDetector::LoadChannelMap(), QwScaler::LoadChannelMap(), VQwDetectorArray::LoadChannelMap(), QwBeamLine::ProcessEvBuffer(), QwBeamMod::ProcessEvBuffer(), QwHelicity::ProcessEvBuffer(), QwScaler::ProcessEvBuffer(), and VQwDetectorArray::ProcessEvBuffer().
|
protected |
Compute the flat subbank index from ROC and bank IDs.
roc_id | ROC identifier. |
bank_id | Subbank identifier within the ROC. |
Definition at line 152 of file VQwSubsystem.cc.
References fBank_IDs, FindIndex(), and fROC_IDs.
|
inline |
Definition at line 152 of file VQwSubsystem.h.
References fIsDataLoaded.
Referenced by QwBeamMod::FillHistograms(), QwHelicityPattern::LoadEventData(), and QwHelicity::ProcessEvent().
|
pure virtual |
Mandatory map file definition.
Implemented in QwBeamLine, QwBeamMod, QwCombinerSubsystem, QwHelicity, QwIntegratedRaster, QwMollerDetector, QwScaler, and VQwDetectorArray.
Referenced by LoadDetectorMaps().
|
inlinevirtual |
Optional crosstalk definition.
Definition at line 201 of file VQwSubsystem.h.
Referenced by LoadDetectorMaps().
|
virtual |
Parse parameter file to find the map files.
Parse a parameter file and dispatch to the appropriate loaders based on key-value pairs (map, param, eventcut, geom, cross, mask).
file | Parameter file to read and parse. |
Definition at line 41 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 QwCombinerSubsystem, QwHelicity, QwIntegratedRaster, QwMollerDetector, QwScaler, and VQwSubsystemParity.
Definition at line 203 of file VQwSubsystem.h.
Referenced by LoadDetectorMaps().
|
inlinevirtual |
Optional geometry definition.
Reimplemented in QwBeamLine.
Definition at line 199 of file VQwSubsystem.h.
Referenced by LoadDetectorMaps().
|
pure virtual |
Mandatory parameter file definition.
Implemented in QwBeamLine, QwBeamMod, QwCombinerSubsystem, QwHelicity, QwIntegratedRaster, QwMollerDetector, QwScaler, and VQwDetectorArray.
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 QwBeamLine, QwBeamMod, QwCombinerSubsystem, QwHelicity, QwIntegratedRaster, QwMollerDetector, QwScaler, VQwDetectorArray, and VQwSubsystemParity.
Definition at line 295 of file VQwSubsystem.cc.
References fIsDataLoaded, and VQwSubsystem().
Referenced by QwHelicity::operator=(), and QwScaler::operator=().
|
virtual |
Definition at line 319 of file VQwSubsystem.cc.
References QwLog::endl(), fDetectorMaps, fSystemName, and QwMessage.
Referenced by LoadDetectorMaps().
|
virtual |
Print some information about the subsystem.
Print some information about the subsystem (name, ROCs/banks, parent).
Reimplemented in QwBeamLine, QwIntegratedRaster, QwScaler, and VQwDetectorArray.
Definition at line 281 of file VQwSubsystem.cc.
References fBank_IDs, fROC_IDs, fSystemName, and MQwPublishable_child< QwSubsystemArray, VQwSubsystem >::GetParent().
Referenced by QwScaler::PrintInfo().
|
pure virtual |
Implemented in QwBeamLine, QwBeamMod, QwCombinerSubsystem, QwHelicity, QwIntegratedRaster, QwMollerDetector, QwScaler, and VQwDetectorArray.
|
pure virtual |
TODO: The non-event-type-aware ProcessEvBuffer routine should be replaced with the event-type-aware version.
Implemented in QwBeamLine, QwBeamMod, QwCombinerSubsystem, QwHelicity, QwIntegratedRaster, QwMollerDetector, QwScaler, and VQwDetectorArray.
|
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 QwHelicity, and QwMollerDetector.
Definition at line 215 of file VQwSubsystem.h.
References GetEventTypeMask(), and ProcessEvBuffer().
Referenced by ProcessEvBuffer().
|
pure virtual |
Implemented in QwBeamLine, QwBeamMod, QwCombinerSubsystem, QwFakeHelicity, QwHelicity, QwIntegratedRaster, QwMollerDetector, QwScaler, and VQwDetectorArray.
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 QwBeamMod, QwIntegratedRaster, and VQwDetectorArray.
Definition at line 234 of file VQwSubsystem.h.
Referenced by QwSubsystemArray::ProcessEvent().
|
inlinevirtual |
Process the command line options.
Reimplemented in QwBeamLine, QwBeamMod, QwHelicity, QwIntegratedRaster, QwMollerDetector, QwScaler, and VQwDetectorArray.
Definition at line 148 of file VQwSubsystem.h.
Referenced by QwSubsystemArray::ProcessOptionsSubsystems().
|
inlineoverridevirtual |
Try to publish an internal variable matching the submitted name.
Implements MQwPublishable_child< QwSubsystemArray, VQwSubsystem >.
Definition at line 170 of file VQwSubsystem.h.
|
inlineoverridevirtual |
Publish all variables of the subsystem.
Implements MQwPublishable_child< QwSubsystemArray, VQwSubsystem >.
Definition at line 175 of file VQwSubsystem.h.
Referenced by QwSubsystemArray::LoadSubsystemsFromParameterFile().
|
inlinevirtual |
Reimplemented in QwBeamLine, and QwIntegratedRaster.
Definition at line 242 of file VQwSubsystem.h.
|
protected |
Register a marker word within the current ROC/bank context.
markerword | Marker word value. |
Definition at line 241 of file VQwSubsystem.cc.
References QwLog::endl(), ERROR, fBank_IDs, fCurrentBank_ID, fCurrentROC_ID, FindIndex(), fMarkerWords, fROC_IDs, kNullBankID, kNullROCID, QwError, and RegisterSubbank().
Referenced by RegisterRocBankMarker().
|
protected |
Parse and register ROC/bank/marker entries from a map string.
mapstr | Parameter string positioned at a registration line. |
Definition at line 267 of file VQwSubsystem.cc.
References QwParameterFile::PopValue(), RegisterMarkerWord(), RegisterROCNumber(), and RegisterSubbank().
Referenced by QwBeamLine::LoadChannelMap(), QwBeamMod::LoadChannelMap(), QwHelicity::LoadChannelMap(), QwMollerDetector::LoadChannelMap(), QwScaler::LoadChannelMap(), and VQwDetectorArray::LoadChannelMap().
|
protectedvirtual |
Tell the object that it will decode data from this ROC and sub-bank.
Register that this subsystem will decode data from a specific ROC/bank.
roc_id | ROC identifier. |
bank_id | Subbank identifier within the ROC (default 0). |
Definition at line 179 of file VQwSubsystem.cc.
References QwLog::endl(), ERROR, fBank_IDs, fCurrentBank_ID, fCurrentROC_ID, FindIndex(), fMarkerWords, fROC_IDs, kNullBankID, kNullROCID, and QwError.
Referenced by RegisterRocBankMarker(), and RegisterSubbank().
|
protected |
Tell the object that it will decode data from this sub-bank in the ROC currently open for registration.
Register a subbank under the current ROC registration.
bank_id | Subbank identifier to register. |
Definition at line 219 of file VQwSubsystem.cc.
References QwLog::endl(), ERROR, fCurrentBank_ID, fCurrentROC_ID, kNullBankID, kNullROCID, QwError, and RegisterROCNumber().
Referenced by RegisterMarkerWord(), and RegisterRocBankMarker().
|
inlineprotected |
Definition at line 451 of file VQwSubsystem.h.
References fIsDataLoaded.
Referenced by QwHelicity::ClearEventData(), QwBeamMod::ProcessEvBuffer(), and QwHelicity::ProcessEvBuffer().
|
inline |
Set event type mask.
Definition at line 206 of file VQwSubsystem.h.
References fEventTypeMask.
Referenced by LoadDetectorMaps(), and VQwSubsystemParity::VQwSubsystemParity().
|
protected |
Vector of Bank IDs per ROC ID associated with this subsystem.
Definition at line 497 of file VQwSubsystem.h.
Referenced by ClearAllBankRegistrations(), GetMarkerWordList(), GetSubbankIndex(), PrintInfo(), RegisterMarkerWord(), RegisterROCNumber(), and VQwSubsystem().
|
protected |
Bank ID (and Marker word) that is currently being processed;.
Definition at line 492 of file VQwSubsystem.h.
Referenced by ClearAllBankRegistrations(), QwBeamLine::EncodeEventData(), QwHelicity::EncodeEventData(), VQwDetectorArray::EncodeEventData(), GetSubbankIndex(), QwBeamLine::LoadChannelMap(), QwBeamMod::LoadChannelMap(), QwHelicity::LoadChannelMap(), QwMollerDetector::LoadChannelMap(), QwScaler::LoadChannelMap(), VQwDetectorArray::LoadChannelMap(), RegisterMarkerWord(), RegisterROCNumber(), RegisterSubbank(), VQwSubsystem(), and VQwSubsystem().
|
protected |
ROC ID that is currently being processed.
Definition at line 491 of file VQwSubsystem.h.
Referenced by ClearAllBankRegistrations(), QwBeamLine::EncodeEventData(), QwHelicity::EncodeEventData(), VQwDetectorArray::EncodeEventData(), GetSubbankIndex(), QwBeamLine::LoadChannelMap(), QwBeamMod::LoadChannelMap(), QwHelicity::LoadChannelMap(), QwMollerDetector::LoadChannelMap(), QwScaler::LoadChannelMap(), VQwDetectorArray::LoadChannelMap(), RegisterMarkerWord(), RegisterROCNumber(), RegisterSubbank(), VQwSubsystem(), and VQwSubsystem().
|
protected |
Map of file name to full path or content.
Definition at line 488 of file VQwSubsystem.h.
Referenced by GetDetectorMaps(), QwBeamLine::LoadChannelMap(), QwBeamMod::LoadChannelMap(), QwHelicity::LoadChannelMap(), QwScaler::LoadChannelMap(), VQwDetectorArray::LoadChannelMap(), VQwSubsystemParity::LoadEventCuts(), QwBeamLine::LoadGeometryDefinition(), QwBeamLine::LoadInputParameters(), QwScaler::LoadInputParameters(), VQwDetectorArray::LoadInputParameters(), QwBeamLine::LoadMockDataParameters(), VQwDetectorArray::LoadMockDataParameters(), and PrintDetectorMaps().
|
protected |
Names of loaded detector map files.
Definition at line 487 of file VQwSubsystem.h.
Referenced by GetParamFileNameList(), and QwMollerDetector::LoadChannelMap().
|
protected |
Mask of event types.
Definition at line 483 of file VQwSubsystem.h.
Referenced by GetEventTypeMask(), SetEventTypeMask(), and VQwSubsystem().
|
protected |
Has this subsystem gotten data to be processed?
Definition at line 485 of file VQwSubsystem.h.
Referenced by HasDataLoaded(), operator=(), SetDataLoaded(), VQwSubsystem(), and VQwSubsystem().
|
protected |
Vector of marker words per ROC & subbank associated with this subsystem.
Definition at line 499 of file VQwSubsystem.h.
Referenced by GetMarkerWordList(), RegisterMarkerWord(), RegisterROCNumber(), and VQwSubsystem().
|
protected |
Definition at line 181 of file VQwSubsystem.h.
Referenced by QwBeamLine::LoadChannelMap(), VQwDetectorArray::LoadChannelMap(), QwBeamLine::operator+=(), QwBeamLine::operator-=(), QwBeamLine::operator=(), QwBeamLine::PublishByRequest(), QwBeamLine::PublishInternalValues(), VQwDetectorArray::PublishInternalValues(), and VQwSubsystem().
|
protected |
Vector of ROC IDs associated with this subsystem.
Definition at line 495 of file VQwSubsystem.h.
Referenced by ClearAllBankRegistrations(), GetMarkerWordList(), GetROCIds(), GetSubbankIndex(), PrintInfo(), RegisterMarkerWord(), RegisterROCNumber(), and VQwSubsystem().
|
protected |
Name of this subsystem.
Definition at line 481 of file VQwSubsystem.h.
Referenced by AtEndOfEventLoop(), GetName(), QwBeamMod::Print(), PrintDetectorMaps(), QwBeamLine::PrintInfo(), VQwDetectorArray::PrintInfo(), PrintInfo(), VQwSubsystem(), and VQwSubsystem().