JAPAn
Just Another Parity Analyzer
|
Subsystem managing scaler modules and derived rates. More...
#include <QwScaler.h>
Public Member Functions | |
QwScaler (const TString &name) | |
Constructor with name. | |
QwScaler (const QwScaler &source) | |
Copy constructor. | |
~QwScaler () override | |
Destructor. | |
void | ProcessOptions (QwOptions &options) override |
Int_t | LoadChannelMap (TString mapfile) override |
Int_t | LoadInputParameters (TString pedestalfile) override |
void | ClearEventData () override |
Int_t | ProcessConfigurationBuffer (const ROCID_t roc_id, const BankID_t bank_id, UInt_t *buffer, UInt_t num_words) override |
Int_t | ProcessEvBuffer (const ROCID_t roc_id, const BankID_t bank_id, UInt_t *buffer, UInt_t num_words) override |
void | ProcessEvent () override |
void | ConstructHistograms (TDirectory *folder, TString &prefix) override |
void | FillHistograms () override |
void | ConstructBranchAndVector (TTree *tree, TString &prefix, QwRootTreeBranchVector &values) override |
void | ConstructBranch (TTree *tree, TString &prefix) override |
Construct the branch and tree vector. | |
void | ConstructBranch (TTree *tree, TString &prefix, QwParameterFile &trim_file) override |
Construct the branch and tree vector based on the trim file. | |
void | FillTreeVector (QwRootTreeBranchVector &values) const override |
Bool_t | Compare (VQwSubsystem *source) |
VQwSubsystem & | operator= (VQwSubsystem *value) override |
VQwSubsystem & | operator+= (VQwSubsystem *value) override |
VQwSubsystem & | operator-= (VQwSubsystem *value) override |
void | Ratio (VQwSubsystem *value1, VQwSubsystem *value2) override |
void | Scale (Double_t factor) override |
void | AccumulateRunningSum (VQwSubsystem *value, Int_t count=0, Int_t ErrorMask=0xFFFFFFF) override |
void | DeaccumulateRunningSum (VQwSubsystem *value, Int_t ErrorMask=0xFFFFFFF) override |
void | CalculateRunningAverage () override |
Int_t | LoadEventCuts (TString filename) override |
Optional event cut file. | |
Bool_t | SingleEventCuts () |
Bool_t | ApplySingleEventCuts () override |
Apply the single event cuts. | |
Bool_t | CheckForBurpFail (const VQwSubsystem *subsys) override |
Report the number of events failed due to HW and event cut failures. | |
void | IncrementErrorCounters () override |
Increment the error counters. | |
void | PrintErrorCounters () const override |
UInt_t | GetEventcutErrorFlag () override |
Return the error flag to the top level routines related to stability checks and ErrorFlag updates. | |
void | UpdateErrorFlag (const VQwSubsystem *ev_error) override |
update the error flag in the subsystem level from the top level routines related to stability checks. This will uniquely update the errorflag at each channel based on the error flag in the corresponding channel in the ev_error subsystem | |
void | PrintValue () const override |
void | PrintInfo () const override |
Double_t * | GetRawChannelArray () |
Double_t | GetDataForChannelInModule (Int_t modnum, Int_t channum) |
Int_t | GetChannelIndex (TString channelName, UInt_t module_number) |
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 | ConstructBranchAndVector (TTree *tree, QwRootTreeBranchVector &values) |
Construct the branch and tree vector. | |
![]() | |
VQwSubsystemParity (const TString &name) | |
Constructor with name. | |
VQwSubsystemParity (const VQwSubsystemParity &source) | |
Copy constructor. | |
~VQwSubsystemParity () override | |
Default destructor. | |
virtual void | FillDB_MPS (QwParityDB *, TString) |
Fill the database with MPS-based variables Note that most subsystems don't need to do this. | |
virtual void | FillDB (QwParityDB *, TString) |
Fill the database. | |
virtual void | FillErrDB (QwParityDB *, TString) |
virtual void | Sum (VQwSubsystem *value1, VQwSubsystem *value2) |
virtual void | Difference (VQwSubsystem *value1, VQwSubsystem *value2) |
Int_t | LoadEventCuts (TString filename) override |
Load the event cuts file. | |
virtual void | LoadEventCuts_Init () |
virtual void | LoadEventCuts_Line (QwParameterFile &, TString &, Int_t &) |
virtual void | LoadEventCuts_Fin (Int_t &) |
virtual UInt_t | UpdateErrorFlag () |
Uses the error flags of contained data elements to update Returns the error flag to the top level routines related to stability checks and ErrorFlag updates. | |
virtual void | Blind (const QwBlinder *) |
Blind the asymmetry of this subsystem. | |
virtual void | Blind (const QwBlinder *, const VQwSubsystemParity *) |
Blind the difference of this subsystem. | |
virtual void | WritePromptSummary (QwPromptSummary *, TString) |
virtual Bool_t | CheckForEndOfBurst () const |
virtual void | LoadMockDataParameters (TString) |
![]() | |
VQwSubsystem (const TString &name) | |
Constructor with name. | |
VQwSubsystem (const VQwSubsystem &orig) | |
Copy constructor by object. | |
~VQwSubsystem () override | |
Default destructor. | |
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 | LoadGeometryDefinition (TString) |
Optional geometry definition. | |
virtual Int_t | LoadCrosstalkDefinition (TString) |
Optional crosstalk definition. | |
void | SetEventTypeMask (const UInt_t mask) |
Set event type mask. | |
UInt_t | GetEventTypeMask () const |
Get event type mask. | |
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 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 > &) |
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. | |
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 | 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 | 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. | |
![]() | |
~MQwCloneable () override | |
Virtual destructor. | |
VQwSubsystem * | Clone () const override |
Concrete clone method. | |
const VQwFactory< VQwSubsystem > * | Factory () const override |
Factory getter. | |
![]() | |
virtual | ~VQwCloneable () |
Virtual destructor. | |
std::string | GetClassName () const |
Get demangled name of this class. | |
Static Public Member Functions | |
static void | DefineOptions (QwOptions &options) |
![]() | |
static void | DefineOptions () |
Define options function (note: no virtual static functions in C++) | |
![]() | |
static VQwSubsystem * | Create (const std::string &name) |
Object creation. | |
static QwScaler * | Cast (QwScaler *type) |
Object dynamic cast. | |
Private Types | |
typedef std::map< Int_t, std::vector< std::vector< Int_t > > > | Subbank_to_Scaler_Map_t |
typedef std::map< std::pair< Int_t, Int_t >, Int_t > | Module_Channel_to_Scaler_Map_t |
typedef std::map< TString, Int_t > | Name_to_Scaler_Map_t |
Private Member Functions | |
QwScaler () | |
Private default constructor (not implemented, will throw linker error on use) | |
Private Attributes | |
Int_t | fGoodEventCount |
Subbank_to_Scaler_Map_t | fSubbank_Map |
Module_Channel_to_Scaler_Map_t | fModuleChannel_Map |
Name_to_Scaler_Map_t | fName_Map |
std::vector< VQwScaler_Channel * > | fScaler |
std::vector< UInt_t > | fBufferOffset |
std::vector< std::pair< VQwScaler_Channel *, double > > | fNorm |
Additional Inherited Members | |
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) |
![]() | |
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. | |
![]() | |
std::vector< std::vector< TString > > | fPublishList |
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. | |
![]() | |
std::vector< TH1_ptr > | fHistograms |
Histograms associated with this data element. | |
Subsystem managing scaler modules and derived rates.
Wraps hardware scaler channels, provides per-MPS processing, histogram and tree output, and utilities for normalization and cuts.
Definition at line 30 of file QwScaler.h.
|
private |
Definition at line 140 of file QwScaler.h.
|
private |
Definition at line 144 of file QwScaler.h.
|
private |
Definition at line 136 of file QwScaler.h.
|
private |
Private default constructor (not implemented, will throw linker error on use)
Referenced by AccumulateRunningSum(), Compare(), DeaccumulateRunningSum(), operator+=(), operator-=(), operator=(), QwScaler(), and Ratio().
QwScaler::QwScaler | ( | const TString & | name | ) |
Constructor with name.
Constructor: initialize scaler subsystem with name.
Definition at line 41 of file QwScaler.cc.
References VQwSubsystem::VQwSubsystem(), and VQwSubsystemParity::VQwSubsystemParity().
|
inline |
Copy constructor.
Definition at line 41 of file QwScaler.h.
References fScaler, QwScaler(), VQwSubsystem::VQwSubsystem(), and VQwSubsystemParity::VQwSubsystemParity().
|
override |
|
overridevirtual |
Accumulate running sums for all scaler channels.
Implements VQwSubsystemParity.
Definition at line 478 of file QwScaler.cc.
References Compare(), fScaler, QwScaler(), and VQwSubsystem::VQwSubsystem().
|
overridevirtual |
Apply the single event cuts.
Implements VQwSubsystemParity.
Definition at line 516 of file QwScaler.cc.
|
overridevirtual |
Calculate running averages for all scaler channels.
Implements VQwSubsystemParity.
Definition at line 504 of file QwScaler.cc.
References fScaler.
|
inlineoverridevirtual |
Report the number of events failed due to HW and event cut failures.
Implements VQwSubsystemParity.
Definition at line 105 of file QwScaler.h.
References VQwSubsystem::VQwSubsystem().
|
overridevirtual |
Clear event data for all scaler channels and reset good event count.
Implements VQwSubsystem.
Definition at line 281 of file QwScaler.cc.
References fGoodEventCount, and fScaler.
Bool_t QwScaler::Compare | ( | VQwSubsystem * | value | ) |
Compare two scaler objects
value | Object to compare with |
Definition at line 558 of file QwScaler.cc.
References fScaler, QwScaler(), and VQwSubsystem::VQwSubsystem().
Referenced by AccumulateRunningSum(), DeaccumulateRunningSum(), operator+=(), operator-=(), operator=(), and Ratio().
|
inlineoverridevirtual |
Construct the branch and tree vector.
Construct the branches for this subsystem.
tree | Output ROOT tree. |
prefix | Name prefix for all branch names. |
Implements VQwSubsystem.
Definition at line 78 of file QwScaler.h.
|
inlineoverridevirtual |
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. |
Implements VQwSubsystem.
Definition at line 79 of file QwScaler.h.
|
inlinevirtual |
Construct the branch and tree vector.
Reimplemented from VQwSubsystem.
Definition at line 303 of file VQwSubsystem.h.
|
overridevirtual |
Construct TTree branches and backing vectors for all scaler channels.
Implements VQwSubsystem.
Definition at line 376 of file QwScaler.cc.
References fScaler.
|
inlinevirtual |
Construct the histograms for this subsystem.
Reimplemented from VQwSubsystem.
Definition at line 270 of file VQwSubsystem.h.
|
inlinevirtual |
Construct the histograms for this subsystem in a folder.
Reimplemented from VQwSubsystem.
Definition at line 275 of file VQwSubsystem.h.
|
overridevirtual |
Construct histograms for all scaler channels.
Implements VQwSubsystem.
Definition at line 360 of file QwScaler.cc.
References fScaler.
|
inlinevirtual |
Construct the histograms for this subsystem with a prefix.
Reimplemented from VQwSubsystem.
Definition at line 280 of file VQwSubsystem.h.
|
overridevirtual |
Deaccumulate running sums for all scaler channels.
Implements VQwSubsystemParity.
Definition at line 491 of file QwScaler.cc.
References Compare(), fScaler, QwScaler(), and VQwSubsystem::VQwSubsystem().
|
static |
Define command-line options for scaler subsystem (placeholder).
Definition at line 26 of file QwScaler.cc.
|
overridevirtual |
Fill histograms for all scaler channels.
Implements VQwSubsystem.
Definition at line 368 of file QwScaler.cc.
References fScaler.
|
overridevirtual |
Fill tree vector with current scaler channel values.
Implements VQwSubsystem.
Definition at line 384 of file QwScaler.cc.
References fScaler.
Int_t QwScaler::GetChannelIndex | ( | TString | channelName, |
UInt_t | module_number ) |
Definition at line 547 of file QwScaler.cc.
|
inline |
Definition at line 123 of file QwScaler.h.
References fModuleChannel_Map, and fScaler.
|
overridevirtual |
Return the error flag to the top level routines related to stability checks and ErrorFlag updates.
Implements VQwSubsystemParity.
Definition at line 542 of file QwScaler.cc.
Double_t * QwScaler::GetRawChannelArray | ( | ) |
|
overridevirtual |
Increment the error counters.
Implements VQwSubsystemParity.
Definition at line 534 of file QwScaler.cc.
|
overridevirtual |
Load scaler channel map from file, creating channels and configuring normalization, headers, differential mode, and buffer offsets.
mapfile | Path to the channel map file. |
Implements VQwSubsystem.
Definition at line 67 of file QwScaler.cc.
References QwParameterFile::AddBreakpointKeyword(), QwParameterFile::Close(), QwParameterFile::EnableGreediness(), QwLog::endl(), fBufferOffset, VQwSubsystem::fCurrentBank_ID, VQwSubsystem::fCurrentROC_ID, VQwSubsystem::fDetectorMaps, fModuleChannel_Map, fName_Map, fNorm, fScaler, fSubbank_Map, QwParameterFile::GetNextToken(), QwParameterFile::GetParamFileNameContents(), VQwSubsystem::GetSubbankIndex(), QwParameterFile::GetTypedNextToken(), QwParameterFile::GetUInt(), QwParameterFile::HasVariablePair(), QwParameterFile::LineIsEmpty(), QwError, QwMessage, QwVerbose, QwParameterFile::ReadNextLine(), VQwSubsystem::RegisterRocBankMarker(), QwParameterFile::SetCommentChars(), VQwScaler_Channel::SetDifferentialScaler(), QwParameterFile::TrimComment(), and QwParameterFile::TrimWhitespace().
|
overridevirtual |
Optional event cut file.
Reimplemented from VQwSubsystem.
Definition at line 511 of file QwScaler.cc.
|
overridevirtual |
Load pedestals and calibration factors for scaler channels.
Implements VQwSubsystem.
Definition at line 246 of file QwScaler.cc.
References QwParameterFile::Close(), QwLog::endl(), VQwSubsystem::fDetectorMaps, fName_Map, fScaler, QwParameterFile::GetParamFileNameContents(), QwParameterFile::GetTypedNextToken(), QwParameterFile::LineIsEmpty(), QwMessage, QwVerbose, QwParameterFile::ReadNextLine(), QwParameterFile::TrimComment(), and QwParameterFile::TrimWhitespace().
|
overridevirtual |
Addition-assignment: element-wise addition of scaler channels.
Implements VQwSubsystemParity.
Definition at line 425 of file QwScaler.cc.
References Compare(), fScaler, QwScaler(), and VQwSubsystem::VQwSubsystem().
|
overridevirtual |
Subtraction-assignment: element-wise subtraction of scaler channels.
Implements VQwSubsystemParity.
Definition at line 439 of file QwScaler.cc.
References Compare(), fScaler, QwScaler(), and VQwSubsystem::VQwSubsystem().
|
overridevirtual |
Assignment operator: copy all scaler channel values.
Implements VQwSubsystemParity.
Definition at line 410 of file QwScaler.cc.
References Compare(), fScaler, VQwSubsystem::operator=(), QwScaler(), and VQwSubsystem::VQwSubsystem().
|
overridevirtual |
|
overridevirtual |
Print some debugging output for the subcomponents
Reimplemented from VQwSubsystem.
Definition at line 580 of file QwScaler.cc.
References QwLog::endl(), fScaler, VQwSubsystem::PrintInfo(), and QwOut.
|
overridevirtual |
Print the value for the subcomponents
Reimplemented from VQwSubsystemParity.
Definition at line 595 of file QwScaler.cc.
References QwLog::endl(), fScaler, VQwSubsystem::GetName(), and QwMessage.
|
overridevirtual |
Process the configuration buffer for this subsystem
roc_id | ROC ID |
bank_id | Subbank ID |
buffer | Buffer to read from |
num_words | Number of words left in buffer |
Implements VQwSubsystem.
Definition at line 299 of file QwScaler.cc.
|
overridevirtual |
Process raw buffer data, routing to registered scaler channels.
Implements VQwSubsystem.
Definition at line 309 of file QwScaler.cc.
References fBufferOffset, fScaler, fSubbank_Map, and VQwSubsystem::GetSubbankIndex().
|
overridevirtual |
Process all scaler channels and apply normalization if configured.
Implements VQwSubsystem.
Definition at line 343 of file QwScaler.cc.
|
overridevirtual |
Process command-line options for scaler subsystem (placeholder).
Reimplemented from VQwSubsystem.
Definition at line 32 of file QwScaler.cc.
|
overridevirtual |
Compute element-wise ratios of scaler channels.
Implements VQwSubsystemParity.
Definition at line 454 of file QwScaler.cc.
References Compare(), fScaler, QwScaler(), and VQwSubsystem::VQwSubsystem().
|
overridevirtual |
Scale all scaler channels by a common factor.
Implements VQwSubsystemParity.
Definition at line 468 of file QwScaler.cc.
References fScaler.
Bool_t QwScaler::SingleEventCuts | ( | ) |
|
inlineoverridevirtual |
update the error flag in the subsystem level from the top level routines related to stability checks. This will uniquely update the errorflag at each channel based on the error flag in the corresponding channel in the ev_error subsystem
Implements VQwSubsystemParity.
Definition at line 115 of file QwScaler.h.
References VQwSubsystem::VQwSubsystem().
|
private |
Definition at line 149 of file QwScaler.h.
Referenced by LoadChannelMap(), and ProcessEvBuffer().
|
private |
Definition at line 133 of file QwScaler.h.
Referenced by ClearEventData().
|
private |
Definition at line 141 of file QwScaler.h.
Referenced by GetDataForChannelInModule(), and LoadChannelMap().
|
private |
Definition at line 145 of file QwScaler.h.
Referenced by LoadChannelMap(), and LoadInputParameters().
|
private |
Definition at line 150 of file QwScaler.h.
Referenced by LoadChannelMap(), and ProcessEvent().
|
private |
Definition at line 148 of file QwScaler.h.
Referenced by AccumulateRunningSum(), CalculateRunningAverage(), ClearEventData(), Compare(), ConstructBranchAndVector(), ConstructHistograms(), DeaccumulateRunningSum(), FillHistograms(), FillTreeVector(), GetDataForChannelInModule(), LoadChannelMap(), LoadInputParameters(), operator+=(), operator-=(), operator=(), PrintInfo(), PrintValue(), ProcessEvBuffer(), ProcessEvent(), QwScaler(), Ratio(), Scale(), and ~QwScaler().
|
private |
Definition at line 137 of file QwScaler.h.
Referenced by LoadChannelMap(), and ProcessEvBuffer().