11#include "TDirectory.h"
96 if (map.
GetLine().find(
'=') != std::string::npos)
continue;
99 if (token.empty())
continue;
127 if (dv_ptr == NULL) {
128 QwWarning <<
"QwTrendHandler::ConnectChannels(event): channel "
160 TString name = prefix +
fName +
"_" + channel;
161 TString title = TString(
"Trend ") + channel
162 +
";event index;" + channel;
172 if (folder == NULL && gDirectory) {
173 TString unique = name;
175 while (gDirectory->FindObject(unique) != NULL) {
176 unique = name + Form(
"_%d", ++dup);
197 prof->SetCanExtend(TH1::kXaxis);
198 prof->SetDirectory(folder);
214 const Long64_t span =
226 for (
size_t i = 0; i <
fTrend.size(); i++) {
232 const Int_t bin =
fTrend.at(i)->GetXaxis()->FindBin(xpos);
Parameter file parsing and management.
A logfile class, based on an identical class in the Hermes analyzer.
#define QwWarning
Predefined log drain for warnings.
#define QwMessage
Predefined log drain for regular messages.
Data handler that books time-ordered TProfile "strip charts".
static std::ostream & endl(std::ostream &)
End of the line.
Configuration file parser with flexible tokenization and search capabilities.
Bool_t LineHasSectionHeader()
void TrimWhitespace(TString::EStripType head_tail=TString::kBoth)
void TrimComment(const char commentchar)
std::string GetNextToken(const std::string &separatorchars)
Get next token as a string.
static UInt_t GetUInt(const TString &varvalue)
Bool_t FileHasVariablePair(const std::string &separatorchars, const std::string &varname, std::string &varvalue)
Abstract base for concrete hardware channels implementing dual-operator pattern.
Subsystem array container specialized for parity analysis with asymmetry calculations.
const UInt_t * GetEventcutErrorFlagPointer() const
Long64_t fCounter
Time-ordering index incremented once per filled event/pattern.
std::vector< TH1 * > fTrend
~QwTrendHandler() override
Virtual destructor.
void ProcessData() override
Read the current value of each connected channel.
Int_t ConnectChannels(QwSubsystemArrayParity &event) override
Connect to channels from the per-MPS (event) subsystem array.
Int_t fNbins
Number of x bins for the strip-chart profiles (bounded storage)
void FillHistograms() override
Fill each strip chart at the current time-ordering index.
QwTrendHandler(const TString &name)
Constructor with name.
void ConstructHistograms(TDirectory *folder, TString &prefix) override
Book one TProfile strip chart per connected channel.
UInt_t fErrorFlagMask
Skip filling when (errorflag & mask) != 0 (0 disables the check)
QwTrendHandler()
Default constructor (protected for factory/child access)
std::vector< std::string > fDependentFull
void SetEventcutErrorFlagPointer(const UInt_t *errorflagptr)
std::vector< Double_t > fDependentValues
std::vector< const VQwHardwareChannel * > fDependentVar
VQwDataHandler(const TString &name)
const UInt_t * fErrorFlagPtr
Error flag pointer.
std::string ParseSeparator
std::pair< EQwHandleType, std::string > ParseHandledVariable(const std::string &variable)
std::vector< EQwHandleType > fDependentType
std::vector< std::string > fDependentName