JAPAn
Just Another Parity Analyzer
Loading...
Searching...
No Matches
QwScaler Class Reference

Subsystem managing scaler modules and derived rates. More...

#include <QwScaler.h>

+ Inheritance diagram for QwScaler:
+ Collaboration diagram for QwScaler:

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)
 
VQwSubsystemoperator= (VQwSubsystem *value) override
 
VQwSubsystemoperator+= (VQwSubsystem *value) override
 
VQwSubsystemoperator-= (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.
 
- Public Member Functions inherited from VQwSubsystemParity
 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)
 
- Public Member Functions inherited from VQwSubsystem
 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
 
VQwSubsystemGetSibling (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_tGetROCIds () const
 
- Public Member Functions inherited from MQwHistograms
void ShareHistograms (const MQwHistograms *source)
 Share histogram pointers between objects.
 
- Public Member Functions inherited from MQwPublishable_child< QwSubsystemArray, VQwSubsystem >
 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.
 
QwSubsystemArrayGetParent () const
 Get the parent container for this child object.
 
- Public Member Functions inherited from MQwCloneable< VQwSubsystem, QwScaler >
 ~MQwCloneable () override
 Virtual destructor.
 
VQwSubsystemClone () const override
 Concrete clone method.
 
const VQwFactory< VQwSubsystem > * Factory () const override
 Factory getter.
 
- Public Member Functions inherited from VQwCloneable< VQwSubsystem >
virtual ~VQwCloneable ()
 Virtual destructor.
 
std::string GetClassName () const
 Get demangled name of this class.
 

Static Public Member Functions

static void DefineOptions (QwOptions &options)
 
- Static Public Member Functions inherited from VQwSubsystem
static void DefineOptions ()
 Define options function (note: no virtual static functions in C++)
 
- Static Public Member Functions inherited from MQwCloneable< VQwSubsystem, QwScaler >
static VQwSubsystemCreate (const std::string &name)
 Object creation.
 
static QwScalerCast (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)
 
- Protected Member Functions inherited from MQwHistograms
 MQwHistograms ()
 Default constructor.
 
 MQwHistograms (const MQwHistograms &source)
 Copy constructor.
 
virtual ~MQwHistograms ()
 Virtual destructor.
 
MQwHistogramsoperator= (const MQwHistograms &value)
 
void Fill_Pointer (TH1_ptr hist_ptr, Double_t value)
 
void AddHistogram (TH1 *h)
 Register a histogram.
 
- Protected Member Functions inherited from MQwPublishable_child< QwSubsystemArray, VQwSubsystem >
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 VQwHardwareChannelRequestExternalPointer (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.
 
- Protected Attributes inherited from VQwSubsystem
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_tfROC_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.
 
- Protected Attributes inherited from MQwHistograms
std::vector< TH1_ptrfHistograms
 Histograms associated with this data element.
 

Detailed Description

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.

Member Typedef Documentation

◆ Module_Channel_to_Scaler_Map_t

typedef std::map< std::pair<Int_t,Int_t>, Int_t > QwScaler::Module_Channel_to_Scaler_Map_t
private

Definition at line 140 of file QwScaler.h.

◆ Name_to_Scaler_Map_t

typedef std::map< TString, Int_t> QwScaler::Name_to_Scaler_Map_t
private

Definition at line 144 of file QwScaler.h.

◆ Subbank_to_Scaler_Map_t

typedef std::map< Int_t, std::vector< std::vector<Int_t> > > QwScaler::Subbank_to_Scaler_Map_t
private

Definition at line 136 of file QwScaler.h.

Constructor & Destructor Documentation

◆ QwScaler() [1/3]

QwScaler::QwScaler ( )
private

Private default constructor (not implemented, will throw linker error on use)

Referenced by AccumulateRunningSum(), Compare(), DeaccumulateRunningSum(), operator+=(), operator-=(), operator=(), QwScaler(), and Ratio().

+ Here is the caller graph for this function:

◆ QwScaler() [2/3]

QwScaler::QwScaler ( const TString & name)

Constructor with name.

Constructor: initialize scaler subsystem with name.

Definition at line 38 of file QwScaler.cc.

40{
41 // Nothing, really
42}
VQwSubsystemParity()
Private default constructor (not implemented, will throw linker error on use)

References VQwSubsystem::VQwSubsystem(), and VQwSubsystemParity::VQwSubsystemParity().

+ Here is the call graph for this function:

◆ QwScaler() [3/3]

QwScaler::QwScaler ( const QwScaler & source)
inline

Copy constructor.

Definition at line 41 of file QwScaler.h.

42 : VQwSubsystem(source),VQwSubsystemParity(source)
43 {
44 fScaler.resize(source.fScaler.size());
45 for (size_t i = 0; i < fScaler.size(); i++) {
46 VQwScaler_Channel* scaler_tmp = 0;
47 if ((scaler_tmp = dynamic_cast<QwSIS3801D24_Channel*>(source.fScaler.at(i)))) {
48 QwSIS3801D24_Channel* scaler = dynamic_cast<QwSIS3801D24_Channel*>(source.fScaler.at(i));
49 fScaler.at(i) = new QwSIS3801D24_Channel(*scaler);
50 } else if ((scaler_tmp = dynamic_cast<QwSIS3801D32_Channel*>(source.fScaler.at(i)))) {
51 QwSIS3801D32_Channel* scaler = dynamic_cast<QwSIS3801D32_Channel*>(source.fScaler.at(i));
52 fScaler.at(i) = new QwSIS3801D32_Channel(*scaler);
53 }
54 }
55 }
class QwScaler_Channel< 0x00ffffff, 0 > QwSIS3801D24_Channel
class QwScaler_Channel< 0xffffffff, 0 > QwSIS3801D32_Channel
std::vector< VQwScaler_Channel * > fScaler
Definition QwScaler.h:148

References fScaler, QwScaler(), VQwSubsystem::VQwSubsystem(), and VQwSubsystemParity::VQwSubsystemParity().

+ Here is the call graph for this function:

◆ ~QwScaler()

QwScaler::~QwScaler ( )
override

Destructor.

Destructor: clean up all owned scaler channel objects.

Definition at line 47 of file QwScaler.cc.

48{
49 // Delete scalers
50 for (size_t i = 0; i < fScaler.size(); i++) {
51 delete fScaler.at(i);
52 }
53 fScaler.clear();
54}

References fScaler.

Member Function Documentation

◆ AccumulateRunningSum()

void QwScaler::AccumulateRunningSum ( VQwSubsystem * value,
Int_t count = 0,
Int_t ErrorMask = 0xFFFFFFF )
overridevirtual

Accumulate running sums for all scaler channels.

Implements VQwSubsystemParity.

Definition at line 475 of file QwScaler.cc.

476{
477 if (Compare(value)) {
478 QwScaler* scaler = dynamic_cast<QwScaler*>(value);
479 for (size_t i = 0; i < fScaler.size(); i++) {
480 fScaler.at(i)->AccumulateRunningSum(scaler->fScaler.at(i), count, ErrorMask);
481 }
482 }
483}
Bool_t Compare(VQwSubsystem *source)
Definition QwScaler.cc:555
QwScaler()
Private default constructor (not implemented, will throw linker error on use)

References Compare(), fScaler, QwScaler(), and VQwSubsystem::VQwSubsystem().

+ Here is the call graph for this function:

◆ ApplySingleEventCuts()

Bool_t QwScaler::ApplySingleEventCuts ( )
overridevirtual

Apply the single event cuts.

Implements VQwSubsystemParity.

Definition at line 513 of file QwScaler.cc.

514{
515 return true;
516}

◆ CalculateRunningAverage()

void QwScaler::CalculateRunningAverage ( )
overridevirtual

Calculate running averages for all scaler channels.

Implements VQwSubsystemParity.

Definition at line 501 of file QwScaler.cc.

502{
503 for (size_t i = 0; i < fScaler.size(); i++) {
504 fScaler.at(i)->CalculateRunningAverage();
505 }
506}

References fScaler.

◆ CheckForBurpFail()

Bool_t QwScaler::CheckForBurpFail ( const VQwSubsystem * subsys)
inlineoverridevirtual

Report the number of events failed due to HW and event cut failures.

Implements VQwSubsystemParity.

Definition at line 105 of file QwScaler.h.

105 {
106 //QwError << "************* test inside Scaler *****************" << QwLog::endl;
107 return kFALSE;
108 };

References VQwSubsystem::VQwSubsystem().

+ Here is the call graph for this function:

◆ ClearEventData()

void QwScaler::ClearEventData ( )
overridevirtual

Clear event data for all scaler channels and reset good event count.

Implements VQwSubsystem.

Definition at line 278 of file QwScaler.cc.

279{
280 // Clear all scaler channels
281 for (size_t i = 0; i < fScaler.size(); i++) {
282 fScaler.at(i)->ClearEventData();
283 }
284 // Reset good event count
285 fGoodEventCount = 0;
286}
Int_t fGoodEventCount
Definition QwScaler.h:133

References fGoodEventCount, and fScaler.

◆ Compare()

Bool_t QwScaler::Compare ( VQwSubsystem * value)

Compare two scaler objects

Parameters
valueObject to compare with
Returns
kTRUE if the object is equal

Definition at line 555 of file QwScaler.cc.

556{
557 // Immediately fail on null objects
558 if (value == 0) return kFALSE;
559
560 // Continue testing on actual object
561 Bool_t result = kTRUE;
562 if (typeid(*value) != typeid(*this)) {
563 result = kFALSE;
564
565 } else {
566 QwScaler* input = dynamic_cast<QwScaler*> (value);
567 if (input->fScaler.size() != fScaler.size()) {
568 result = kFALSE;
569 }
570 }
571 return result;
572}

References fScaler, QwScaler(), and VQwSubsystem::VQwSubsystem().

Referenced by AccumulateRunningSum(), DeaccumulateRunningSum(), operator+=(), operator-=(), operator=(), and Ratio().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ConstructBranch() [1/2]

void QwScaler::ConstructBranch ( TTree * tree,
TString & prefix )
inlineoverridevirtual

Construct the branch and tree vector.

Construct the branches for this subsystem.

Parameters
treeOutput ROOT tree.
prefixName prefix for all branch names.

Implements VQwSubsystem.

Definition at line 78 of file QwScaler.h.

78{ };

◆ ConstructBranch() [2/2]

void QwScaler::ConstructBranch ( TTree * tree,
TString & prefix,
QwParameterFile & trim_file )
inlineoverridevirtual

Construct the branch and tree vector based on the trim file.

Construct the branches for this subsystem using a trim file.

Parameters
treeOutput ROOT tree.
prefixName prefix for all branch names.
trim_fileTrim file describing which branches to construct.

Implements VQwSubsystem.

Definition at line 79 of file QwScaler.h.

79{ };

◆ ConstructBranchAndVector() [1/2]

virtual void VQwSubsystem::ConstructBranchAndVector ( TTree * tree,
QwRootTreeBranchVector & values )
inlinevirtual

Construct the branch and tree vector.

Reimplemented from VQwSubsystem.

Definition at line 303 of file VQwSubsystem.h.

303 {
304 TString tmpstr("");
305 ConstructBranchAndVector(tree,tmpstr,values);
306 };
void ConstructBranchAndVector(TTree *tree, TString &prefix, QwRootTreeBranchVector &values) override
Definition QwScaler.cc:373

◆ ConstructBranchAndVector() [2/2]

void QwScaler::ConstructBranchAndVector ( TTree * tree,
TString & prefix,
QwRootTreeBranchVector & values )
overridevirtual

Construct TTree branches and backing vectors for all scaler channels.

Implements VQwSubsystem.

Definition at line 373 of file QwScaler.cc.

374{
375 for (size_t i = 0; i < fScaler.size(); i++) {
376 fScaler.at(i)->ConstructBranchAndVector(tree, prefix, values);
377 }
378}

References fScaler.

◆ ConstructHistograms() [1/4]

virtual void VQwSubsystem::ConstructHistograms ( )
inlinevirtual

Construct the histograms for this subsystem.

Reimplemented from VQwSubsystem.

Definition at line 270 of file VQwSubsystem.h.

270 {
271 TString tmpstr("");
272 ConstructHistograms((TDirectory*) NULL, tmpstr);
273 };
virtual void ConstructHistograms()
Construct the histograms for this subsystem.

◆ ConstructHistograms() [2/4]

virtual void VQwSubsystem::ConstructHistograms ( TDirectory * folder)
inlinevirtual

Construct the histograms for this subsystem in a folder.

Reimplemented from VQwSubsystem.

Definition at line 275 of file VQwSubsystem.h.

275 {
276 TString tmpstr("");
277 ConstructHistograms(folder, tmpstr);
278 };

◆ ConstructHistograms() [3/4]

void QwScaler::ConstructHistograms ( TDirectory * folder,
TString & prefix )
overridevirtual

Construct histograms for all scaler channels.

Implements VQwSubsystem.

Definition at line 357 of file QwScaler.cc.

358{
359 for(size_t i = 0; i < fScaler.size(); i++) {
360 fScaler.at(i)->ConstructHistograms(folder, prefix);
361 }
362}

References fScaler.

◆ ConstructHistograms() [4/4]

virtual void VQwSubsystem::ConstructHistograms ( TString & prefix)
inlinevirtual

Construct the histograms for this subsystem with a prefix.

Reimplemented from VQwSubsystem.

Definition at line 280 of file VQwSubsystem.h.

280 {
281 ConstructHistograms((TDirectory*) NULL, prefix);
282 };

◆ DeaccumulateRunningSum()

void QwScaler::DeaccumulateRunningSum ( VQwSubsystem * value,
Int_t ErrorMask = 0xFFFFFFF )
overridevirtual

Deaccumulate running sums for all scaler channels.

Implements VQwSubsystemParity.

Definition at line 488 of file QwScaler.cc.

489{
490 if (Compare(value)) {
491 QwScaler* scaler = dynamic_cast<QwScaler*>(value);
492 for (size_t i = 0; i < fScaler.size(); i++) {
493 fScaler.at(i)->DeaccumulateRunningSum(scaler->fScaler.at(i), ErrorMask);
494 }
495 }
496}

References Compare(), fScaler, QwScaler(), and VQwSubsystem::VQwSubsystem().

+ Here is the call graph for this function:

◆ DefineOptions()

void QwScaler::DefineOptions ( QwOptions & options)
static

QwScaler.cc

Scaler subsystem managing collections of scaler channels with optional normalization, differential operation, and module/channel mapping. Supports SIS3801, STR7200 modules with configurable headers and buffers. Documentation-only edits; runtime behavior unchanged. Define command-line options for scaler subsystem (placeholder).

Definition at line 23 of file QwScaler.cc.

24{
25 // Define command line options
26}

◆ FillHistograms()

void QwScaler::FillHistograms ( )
overridevirtual

Fill histograms for all scaler channels.

Implements VQwSubsystem.

Definition at line 365 of file QwScaler.cc.

366{
367 for(size_t i = 0; i < fScaler.size(); i++) {
368 fScaler.at(i)->FillHistograms();
369 }
370}

References fScaler.

◆ FillTreeVector()

void QwScaler::FillTreeVector ( QwRootTreeBranchVector & values) const
overridevirtual

Fill tree vector with current scaler channel values.

Implements VQwSubsystem.

Definition at line 381 of file QwScaler.cc.

382{
383 for(size_t i = 0; i < fScaler.size(); i++) {
384 fScaler.at(i)->FillTreeVector(values);
385 }
386}

References fScaler.

◆ GetChannelIndex()

Int_t QwScaler::GetChannelIndex ( TString channelName,
UInt_t module_number )

Definition at line 544 of file QwScaler.cc.

545{
546 return 0;
547}

◆ GetDataForChannelInModule()

Double_t QwScaler::GetDataForChannelInModule ( Int_t modnum,
Int_t channum )
inline

Definition at line 123 of file QwScaler.h.

123 {
124 Int_t index = fModuleChannel_Map[std::pair<Int_t,Int_t>(modnum,channum)];
125 return fScaler.at(index)->GetValue();
126 }
Module_Channel_to_Scaler_Map_t fModuleChannel_Map
Definition QwScaler.h:141

References fModuleChannel_Map, and fScaler.

◆ GetEventcutErrorFlag()

UInt_t QwScaler::GetEventcutErrorFlag ( )
overridevirtual

Return the error flag to the top level routines related to stability checks and ErrorFlag updates.

Implements VQwSubsystemParity.

Definition at line 539 of file QwScaler.cc.

540{
541 return 0;
542}

◆ GetRawChannelArray()

Double_t * QwScaler::GetRawChannelArray ( )

◆ IncrementErrorCounters()

void QwScaler::IncrementErrorCounters ( )
overridevirtual

Increment the error counters.

Implements VQwSubsystemParity.

Definition at line 531 of file QwScaler.cc.

532{
533}

◆ LoadChannelMap()

Int_t QwScaler::LoadChannelMap ( TString mapfile)
overridevirtual

Load scaler channel map from file, creating channels and configuring normalization, headers, differential mode, and buffer offsets.

Parameters
mapfilePath to the channel map file.
Returns
0 on success.

Implements VQwSubsystem.

Definition at line 64 of file QwScaler.cc.

65{
66 // Normalization channel (register default token "1")
67 const TString default_norm_channel = "1";
68 fName_Map[default_norm_channel] = -1;
69 Name_to_Scaler_Map_t::iterator current_norm_channel = fName_Map.find(default_norm_channel);
70 double current_norm_factor = 1;
71 // Map with normalizations
72 std::vector<Name_to_Scaler_Map_t::iterator> norm_channel;
73 std::vector<double> norm_factor;
74
75 // Include header for this scaler bank
76 UInt_t header = 1;
77 UInt_t buffer_offset = 0;
78
79 // By default the scalers are not differential
80 Bool_t differential = false;
81
82 // Open the file
83 QwParameterFile mapstr(mapfile.Data());
84 fDetectorMaps.insert(mapstr.GetParamFileNameContents());
85 mapstr.EnableGreediness();
86 mapstr.SetCommentChars("!");
87 mapstr.AddBreakpointKeyword("norm");
88 mapstr.AddBreakpointKeyword("header");
89 mapstr.AddBreakpointKeyword("differential");
90 mapstr.AddBreakpointKeyword("scaler_buffer_offset");
91
92 while (mapstr.ReadNextLine()) {
94
95 mapstr.TrimComment(); // Remove everything after a comment character.
96 mapstr.TrimWhitespace(); // Get rid of leading and trailing whitespace
97 if (mapstr.LineIsEmpty()) continue;
98
99 TString varname, varvalue;
100 if (mapstr.HasVariablePair("=", varname, varvalue)) {
101 // This is a declaration line. Decode it.
102 varname.ToLower();
103 UInt_t value = QwParameterFile::GetUInt(varvalue);
104 if (varname == "norm") {
105 // Normalization line of format: norm = [ 1 | channel / factor ]
106 string dummy = mapstr.GetNextToken("=");
107 string channame = mapstr.GetNextToken("/");
108 string channorm = mapstr.GetNextToken("/");
109 if (fName_Map.count(channame) == 0) {
110 // assign a temporarily pointer
111 fName_Map[channame] = -1;
112 }
113 current_norm_channel = fName_Map.find(channame);
114 try {
115 current_norm_factor = lexical_cast<double>(channorm);
116 } catch (boost::bad_lexical_cast&) {
117 current_norm_factor = 1;
118 }
119 QwMessage << "Normalization channel: " << channame << QwLog::endl;
120 QwMessage << "Normalization factor: " << current_norm_factor << QwLog::endl;
121 } else if (varname == "scaler_buffer_offset") {
122 // Buffer offset
123 buffer_offset = value;
124 } else if (varname == "header") {
125 // Header for this block of channels
126 header = value;
127 QwMessage << "Number of scaler header words: " << header << QwLog::endl;
128 if (header > 32)
129 QwError << "Is that really what you want?" << QwLog::endl;
130 } else if (varname == "differential") {
131 // Differential scaler
132 try {
133 differential = lexical_cast<bool>(varvalue);
134 } catch (boost::bad_lexical_cast&) {
135 differential = false;
136 }
137 if (differential)
138 QwMessage << "Subsequent scalers will be differential." << QwLog::endl;
139 else
140 QwMessage << "Subsequent scalers will not be differential." << QwLog::endl;
141 }
142
143 } else {
144
145 // Break this line into tokens to process it.
146 TString modtype = mapstr.GetTypedNextToken<TString>();
147 UInt_t modnum = mapstr.GetTypedNextToken<UInt_t>();
148 UInt_t channum = mapstr.GetTypedNextToken<UInt_t>();
149 TString dettype = mapstr.GetTypedNextToken<TString>();
150 TString keyword = mapstr.GetTypedNextToken<TString>();
151 modtype.ToUpper();
152 dettype.ToUpper();
153
154 UInt_t offset = 0;
155 if (modtype == "SIS3801" || modtype == "SIS3801D24" || modtype == "SIS3801D32") {
156 offset = QwSIS3801D24_Channel::GetBufferOffset(modnum, channum, header)+buffer_offset;
157 } else if (modtype == "STR7200") {
158 offset = QwSIS3801D32_Channel::GetBufferOffset(modnum, channum, header)+buffer_offset;
159 } else {
160 QwError << "Unrecognized module type " << modtype << QwLog::endl;
161 continue;
162 }
163
164 // Register data channel type
166 if (modnum >= fSubbank_Map[subbank].size())
167 fSubbank_Map[subbank].resize(modnum+1);
168 if (channum >= fSubbank_Map[subbank].at(modnum).size())
169 fSubbank_Map[subbank].at(modnum).resize(channum+1,-1);
170 // Add scaler channel
171 if (fSubbank_Map[subbank].at(modnum).at(channum) < 0) {
172 QwVerbose << "Registering " << modtype << " " << keyword
173 << std::hex
174 << " in ROC 0x" << fCurrentROC_ID << ", bank 0x" << fCurrentBank_ID
175 << std::dec
176 << " at mod " << modnum << ", chan " << channum
177 << QwLog::endl;
178 size_t index = fScaler.size();
179 VQwScaler_Channel* scaler = 0;
180 if (modtype == "SIS3801" || modtype == "SIS3801D24")
181 scaler = new QwSIS3801D24_Channel(keyword);
182 else if (modtype == "SIS3801D32")
183 scaler = new QwSIS3801D32_Channel(keyword);
184 else if (modtype == "STR7200")
185 scaler = new QwSTR7200_Channel(keyword);
186 else {
187 QwError << "Unrecognized module type " << modtype << QwLog::endl;
188 continue;
189 }
190
191 // Differential scaler
192 scaler->SetDifferentialScaler(differential);
193
194 // Register keyword to scaler channel
195 fName_Map[keyword] = index;
196 fSubbank_Map[subbank].at(modnum).at(channum) = index;
197 fModuleChannel_Map[std::pair<Int_t,Int_t>(modnum,channum)] = index;
198 // Store scaler
199 fScaler.push_back(scaler);
200 fNorm.push_back(std::pair<VQwScaler_Channel*,double>(0,1));
201 fBufferOffset.push_back(offset);
202 // Store current normalization
203 norm_channel.push_back(current_norm_channel);
204 norm_factor.push_back(current_norm_factor);
205 }
206 }
207 }
208
209 // Check for normalization names without actual channels
210 for (Name_to_Scaler_Map_t::iterator iter = fName_Map.begin(); iter != fName_Map.end(); iter++) {
211 if (iter->second == -1 && iter->first != default_norm_channel) {
212 QwError << "Normalization channel " << iter->first << " not found!" << QwLog::endl;
213 }
214 }
215
216 // Fill normalization structure
217 fNorm.resize(fScaler.size());
218 for (size_t i = 0; i < fScaler.size(); i++) {
219 Int_t norm_index = norm_channel.at(i)->second;
220 if (norm_index < 0) {
221 // No normalization
222 fNorm.at(i).first = 0;
223 fNorm.at(i).second = 1;
224 } else {
225 // Normalization
226 fNorm.at(i).first = fScaler.at(norm_index);
227 fNorm.at(i).second = norm_factor.at(i);
228 // Prevent corruption of normalization channel itself
229 fNorm.at(norm_index).first = 0;
230 fNorm.at(norm_index).second = 1;
231 }
232 }
233
234 mapstr.Close(); // Close the file (ifstream)
235 return 0;
236}
class QwScaler_Channel< 0xffffffff, 0 > QwSTR7200_Channel
#define QwVerbose
Predefined log drain for verbose messages.
Definition QwLog.h:54
#define QwError
Predefined log drain for errors.
Definition QwLog.h:39
#define QwMessage
Predefined log drain for regular messages.
Definition QwLog.h:49
static std::ostream & endl(std::ostream &)
End of the line.
Definition QwLog.cc:297
static UInt_t GetUInt(const TString &varvalue)
virtual void SetDifferentialScaler(Bool_t diff)
BankID_t fCurrentBank_ID
Bank ID (and Marker word) that is currently being processed;.
Int_t GetSubbankIndex() const
void RegisterRocBankMarker(QwParameterFile &mapstr)
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.
Name_to_Scaler_Map_t fName_Map
Definition QwScaler.h:145
std::vector< std::pair< VQwScaler_Channel *, double > > fNorm
Definition QwScaler.h:150
std::vector< UInt_t > fBufferOffset
Definition QwScaler.h:149
Subbank_to_Scaler_Map_t fSubbank_Map
Definition QwScaler.h:137

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().

+ Here is the call graph for this function:

◆ LoadEventCuts()

Int_t QwScaler::LoadEventCuts ( TString )
overridevirtual

Optional event cut file.

Reimplemented from VQwSubsystem.

Definition at line 508 of file QwScaler.cc.

509{
510 return 0;
511}

◆ LoadInputParameters()

Int_t QwScaler::LoadInputParameters ( TString mapfile)
overridevirtual

Load pedestals and calibration factors for scaler channels.

Returns
0 on success.

Implements VQwSubsystem.

Definition at line 243 of file QwScaler.cc.

244{
245 // Open the file
246 QwParameterFile mapstr(mapfile.Data());
247 fDetectorMaps.insert(mapstr.GetParamFileNameContents());
248 while (mapstr.ReadNextLine()) {
249 mapstr.TrimComment(); // Remove everything after a comment character
250 mapstr.TrimWhitespace(); // Get rid of leading and trailing spaces
251 if (mapstr.LineIsEmpty()) continue;
252
253 TString varname = mapstr.GetTypedNextToken<TString>(); // name of the channel
254 varname.ToLower();
255 varname.Remove(TString::kBoth,' ');
256 Double_t varped = mapstr.GetTypedNextToken<Double_t>(); // value of the pedestal
257 Double_t varcal = mapstr.GetTypedNextToken<Double_t>(); // value of the calibration factor
258 QwVerbose << varname << ": " << QwLog::endl;
259
260 if (fName_Map.count(varname) != 0) {
261 Int_t index = fName_Map[varname];
262 QwMessage << "Parameters scaler channel " << varname << ": "
263 << "ped = " << varped << ", "
264 << "cal = " << varcal << QwLog::endl;
265 fScaler[index]->SetPedestal(varped);
266 fScaler[index]->SetCalibrationFactor(varcal);
267 }
268
269 } // end of loop reading all lines of the pedestal file
270
271 mapstr.Close(); // Close the file (ifstream)
272 return 0;
273}

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().

+ Here is the call graph for this function:

◆ operator+=()

VQwSubsystem & QwScaler::operator+= ( VQwSubsystem * value)
overridevirtual

Addition-assignment: element-wise addition of scaler channels.

Implements VQwSubsystemParity.

Definition at line 422 of file QwScaler.cc.

423{
424 if (Compare(value)) {
425 QwScaler* input = dynamic_cast<QwScaler*>(value);
426 for (size_t i = 0; i < fScaler.size(); i++) {
427 *(fScaler.at(i)) += *(input->fScaler.at(i));
428 }
429 }
430 return *this;
431}

References Compare(), fScaler, QwScaler(), and VQwSubsystem::VQwSubsystem().

+ Here is the call graph for this function:

◆ operator-=()

VQwSubsystem & QwScaler::operator-= ( VQwSubsystem * value)
overridevirtual

Subtraction-assignment: element-wise subtraction of scaler channels.

Implements VQwSubsystemParity.

Definition at line 436 of file QwScaler.cc.

437{
438 if (Compare(value)) {
439 QwScaler* input = dynamic_cast<QwScaler *> (value);
440 for (size_t i = 0; i < fScaler.size(); i++) {
441 *(fScaler.at(i)) -= *(input->fScaler.at(i));
442 }
443 }
444 return *this;
445}

References Compare(), fScaler, QwScaler(), and VQwSubsystem::VQwSubsystem().

+ Here is the call graph for this function:

◆ operator=()

VQwSubsystem & QwScaler::operator= ( VQwSubsystem * value)
overridevirtual

Assignment operator: copy all scaler channel values.

Implements VQwSubsystemParity.

Definition at line 407 of file QwScaler.cc.

408{
409 if (Compare(value)) {
411 QwScaler* input = dynamic_cast<QwScaler*>(value);
412 for (size_t i = 0; i < fScaler.size(); i++) {
413 *(fScaler.at(i)) = *(input->fScaler.at(i));
414 }
415 }
416 return *this;
417}
virtual VQwSubsystem & operator=(VQwSubsystem *value)
Assignment Note: Must be called at the beginning of all subsystems routine call to operator=(VQwSubsy...

References Compare(), fScaler, VQwSubsystem::operator=(), QwScaler(), and VQwSubsystem::VQwSubsystem().

+ Here is the call graph for this function:

◆ PrintErrorCounters()

void QwScaler::PrintErrorCounters ( ) const
overridevirtual

Implements VQwSubsystemParity.

Definition at line 535 of file QwScaler.cc.

536{
537}

◆ PrintInfo()

void QwScaler::PrintInfo ( ) const
overridevirtual

Print some debugging output for the subcomponents

Reimplemented from VQwSubsystem.

Definition at line 577 of file QwScaler.cc.

578{
580
581 QwOut << " there are " << fScaler.size() << " scaler channels" << QwLog::endl;
582
583 for (size_t i = 0; i < fScaler.size(); i++) {
584 QwOut << " scaler " << i << ": ";
585 fScaler.at(i)->PrintInfo();
586 }
587}
#define QwOut
Predefined log drain for explicit output.
Definition QwLog.h:34
virtual void PrintInfo() const
Print some information about the subsystem.

References QwLog::endl(), fScaler, VQwSubsystem::PrintInfo(), and QwOut.

+ Here is the call graph for this function:

◆ PrintValue()

void QwScaler::PrintValue ( ) const
overridevirtual

Print the value for the subcomponents

Reimplemented from VQwSubsystemParity.

Definition at line 592 of file QwScaler.cc.

593{
594 QwMessage << "=== QwScaler: " << GetName() << " ===" << QwLog::endl;
595 for(size_t i = 0; i < fScaler.size(); i++) {
596 fScaler.at(i)->PrintValue();
597 }
598}
TString GetName() const

References QwLog::endl(), fScaler, VQwSubsystem::GetName(), and QwMessage.

+ Here is the call graph for this function:

◆ ProcessConfigurationBuffer()

Int_t QwScaler::ProcessConfigurationBuffer ( const ROCID_t roc_id,
const BankID_t bank_id,
UInt_t * buffer,
UInt_t num_words )
overridevirtual

Process the configuration buffer for this subsystem

Parameters
roc_idROC ID
bank_idSubbank ID
bufferBuffer to read from
num_wordsNumber of words left in buffer
Returns
Number of words read

Implements VQwSubsystem.

Definition at line 296 of file QwScaler.cc.

297{
298 return 0;
299}

◆ ProcessEvBuffer()

Int_t QwScaler::ProcessEvBuffer ( const ROCID_t roc_id,
const BankID_t bank_id,
UInt_t * buffer,
UInt_t num_words )
overridevirtual

Process raw buffer data, routing to registered scaler channels.

Returns
Number of words consumed from the buffer.

Implements VQwSubsystem.

Definition at line 306 of file QwScaler.cc.

307{
308 // TODO fix :-)
309
310 UInt_t words_read = 0;
311
312 // Get the subbank index (or -1 when no match)
313 Int_t subbank = GetSubbankIndex(roc_id, bank_id);
314
315 if (subbank >= 0 && num_words > 0) {
316
317 // Read header word
318 //UInt_t num_events = buffer[words_read];
319 words_read++;
320 // TODO Multiscaler functionality
321
322 // Read scalers
323 for (size_t modnum = 0; modnum < fSubbank_Map[subbank].size(); modnum++) {
324 for (size_t channum = 0; channum < fSubbank_Map[subbank].at(modnum).size(); channum++) {
325 Int_t index = fSubbank_Map[subbank].at(modnum).at(channum);
326 if (index >= 0) {
327 UInt_t offset = fBufferOffset.at(index);
328 words_read += fScaler[index]->ProcessEvBuffer(&(buffer[offset]), num_words - offset);
329 }
330 }
331 }
332 words_read = num_words;
333
334 }
335
336 return words_read;
337}

References fBufferOffset, fScaler, fSubbank_Map, and VQwSubsystem::GetSubbankIndex().

+ Here is the call graph for this function:

◆ ProcessEvent()

void QwScaler::ProcessEvent ( )
overridevirtual

Process all scaler channels and apply normalization if configured.

Implements VQwSubsystem.

Definition at line 340 of file QwScaler.cc.

341{
342 // Process the event
343 for (size_t i = 0; i < fScaler.size(); i++) {
344 fScaler.at(i)->ProcessEvent();
345 }
346
347 // Normalization
348 for (size_t i = 0; i < fScaler.size(); i++) {
349 if (fNorm.at(i).first) {
350 fScaler.at(i)->Scale(fNorm.at(i).second);
351 fScaler.at(i)->DivideBy(*(fNorm.at(i).first));
352 }
353 }
354}

References fNorm, and fScaler.

◆ ProcessOptions()

void QwScaler::ProcessOptions ( QwOptions & options)
overridevirtual

Process command-line options for scaler subsystem (placeholder).

Reimplemented from VQwSubsystem.

Definition at line 29 of file QwScaler.cc.

30{
31 // Handle command line options
32}

◆ Ratio()

void QwScaler::Ratio ( VQwSubsystem * numer,
VQwSubsystem * denom )
overridevirtual

Compute element-wise ratios of scaler channels.

Implements VQwSubsystemParity.

Definition at line 451 of file QwScaler.cc.

452{
453 if (Compare(numer) && Compare(denom)) {
454 QwScaler* innumer = dynamic_cast<QwScaler*>(numer);
455 QwScaler* indenom = dynamic_cast<QwScaler*>(denom);
456 for (size_t i = 0; i < fScaler.size(); i++) {
457 fScaler.at(i)->Ratio(*(innumer->fScaler.at(i)), *(indenom->fScaler.at(i)));
458 }
459 }
460}

References Compare(), fScaler, QwScaler(), and VQwSubsystem::VQwSubsystem().

+ Here is the call graph for this function:

◆ Scale()

void QwScaler::Scale ( Double_t factor)
overridevirtual

Scale all scaler channels by a common factor.

Implements VQwSubsystemParity.

Definition at line 465 of file QwScaler.cc.

466{
467 for (size_t i = 0; i < fScaler.size(); i++) {
468 fScaler.at(i)->Scale(factor);
469 }
470}

References fScaler.

◆ SingleEventCuts()

Bool_t QwScaler::SingleEventCuts ( )

◆ UpdateErrorFlag()

void QwScaler::UpdateErrorFlag ( const VQwSubsystem * ev_error)
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.

115 {
116 };

References VQwSubsystem::VQwSubsystem().

+ Here is the call graph for this function:

Field Documentation

◆ fBufferOffset

std::vector< UInt_t > QwScaler::fBufferOffset
private

Definition at line 149 of file QwScaler.h.

Referenced by LoadChannelMap(), and ProcessEvBuffer().

◆ fGoodEventCount

Int_t QwScaler::fGoodEventCount
private

Definition at line 133 of file QwScaler.h.

Referenced by ClearEventData().

◆ fModuleChannel_Map

Module_Channel_to_Scaler_Map_t QwScaler::fModuleChannel_Map
private

Definition at line 141 of file QwScaler.h.

Referenced by GetDataForChannelInModule(), and LoadChannelMap().

◆ fName_Map

Name_to_Scaler_Map_t QwScaler::fName_Map
private

Definition at line 145 of file QwScaler.h.

Referenced by LoadChannelMap(), and LoadInputParameters().

◆ fNorm

std::vector< std::pair< VQwScaler_Channel*, double > > QwScaler::fNorm
private

Definition at line 150 of file QwScaler.h.

Referenced by LoadChannelMap(), and ProcessEvent().

◆ fScaler

◆ fSubbank_Map

Subbank_to_Scaler_Map_t QwScaler::fSubbank_Map
private

Definition at line 137 of file QwScaler.h.

Referenced by LoadChannelMap(), and ProcessEvBuffer().


The documentation for this class was generated from the following files: