Belle II Software  release-08-01-10
DQMHistAnalysisKLMModule Class Referencefinal

Analysis of KLM DQM histograms. More...

#include <DQMHistAnalysisKLM.h>

Inheritance diagram for DQMHistAnalysisKLMModule:
Collaboration diagram for DQMHistAnalysisKLMModule:

Public Types

enum  EStatus {
  c_StatusTooFew = 0 ,
  c_StatusDefault = 1 ,
  c_StatusGood = 2 ,
  c_StatusWarning = 3 ,
  c_StatusError = 4
}
 Status flag of histogram/canvas. More...
 
enum  EStatusColor {
  c_ColorTooFew = kGray ,
  c_ColorDefault = kWhite ,
  c_ColorGood = kGreen ,
  c_ColorWarning = kYellow ,
  c_ColorError = kRed
}
 Status colors of histogram/canvas (corresponding to status) More...
 
typedef std::map< std::string, HistObjectHistList
 The type of list of histograms.
 
typedef std::map< std::string, MonitoringObject * > MonObjList
 The type of list of MonitoringObjects.
 
typedef std::map< std::string, HistDelta * > DeltaList
 The type of list of delta settings and histograms.
 
typedef std::map< std::string, bool > CanvasUpdatedList
 The type of list of canvas updated status.
 
enum  EModulePropFlags {
  c_Input = 1 ,
  c_Output = 2 ,
  c_ParallelProcessingCertified = 4 ,
  c_HistogramManager = 8 ,
  c_InternalSerializer = 16 ,
  c_TerminateInAllProcesses = 32 ,
  c_DontCollectStatistics = 64
}
 Each module can be tagged with property flags, which indicate certain features of the module. More...
 
typedef ModuleCondition::EAfterConditionPath EAfterConditionPath
 Forward the EAfterConditionPath definition from the ModuleCondition.
 

Public Member Functions

 DQMHistAnalysisKLMModule ()
 Constructor.
 
void initialize () override final
 Initializer.
 
void beginRun () override final
 Called when entering a new run.
 
void event () override final
 This method is called for each event.
 
void endRun () override final
 This method is called if the current run ends.
 
void terminate () override final
 This method is called at the end of the event processing.
 
void setRunType (std::string &t)
 Set the Run Type. More...
 
void setEventProcessed (int e)
 Set the number of processed events. More...
 
TCanvas * findCanvas (TString cname)
 Find canvas by name. More...
 
TH1 * findHistInCanvas (const std::string &hname)
 Find histogram in corresponding canvas. More...
 
double getSigma68 (TH1 *h) const
 Helper function to compute half of the central interval covering 68% of a distribution. More...
 
void clearCanvases (void)
 Clear content of all Canvases.
 
TH1 * getDelta (const std::string &fullname, int n=0, bool onlyIfUpdated=true)
 Get Delta histogram. More...
 
TH1 * getDelta (const std::string &dirname, const std::string &histname, int n=0, bool onlyIfUpdated=true)
 Get Delta histogram. More...
 
void addDeltaPar (const std::string &dirname, const std::string &histname, HistDelta::EDeltaType t, int p, unsigned int a=1)
 Add Delta histogram parameters. More...
 
bool hasDeltaPar (const std::string &dirname, const std::string &histname)
 Check if Delta histogram parameters exist for histogram. More...
 
void UpdateCanvas (std::string name, bool updated=true)
 Mark canvas as updated (or not) More...
 
void UpdateCanvas (TCanvas *canvas, bool updated=true)
 Mark canvas as updated (or not) More...
 
void ExtractRunType (std::vector< TH1 * > &hs)
 Extract Run Type from histogram title, called from input module.
 
void ExtractEvent (std::vector< TH1 * > &hs)
 Extract event processed from daq histogram, called from input module.
 
int registerEpicsPV (std::string pvname, std::string keyname="", bool update_pvs=true)
 EPICS related Functions. More...
 
void setEpicsPV (std::string keyname, double value)
 Write value to a EPICS PV. More...
 
void setEpicsPV (std::string keyname, int value)
 Write value to a EPICS PV. More...
 
void setEpicsPV (int index, double value)
 Write value to a EPICS PV. More...
 
void setEpicsPV (int index, int value)
 Write value to a EPICS PV. More...
 
void setEpicsStringPV (std::string keyname, std::string value)
 Write string to a EPICS PV. More...
 
void setEpicsStringPV (int index, std::string value)
 Write string to a EPICS PV. More...
 
double getEpicsPV (std::string keyname)
 Read value from a EPICS PV. More...
 
double getEpicsPV (int index)
 Read value from a EPICS PV. More...
 
std::string getEpicsStringPV (std::string keyname, bool &status)
 Read value from a EPICS PV. More...
 
std::string getEpicsStringPV (int index, bool &status)
 Read value from a EPICS PV. More...
 
int updateEpicsPVs (float timeout)
 Update all EPICS PV (flush to network) More...
 
chid getEpicsPVChID (std::string keyname)
 Get EPICS PV Channel Id. More...
 
chid getEpicsPVChID (int index)
 Get EPICS PV Channel Id. More...
 
bool requestLimitsFromEpicsPVs (chid id, double &lowerAlarm, double &lowerWarn, double &upperWarn, double &upperAlarm)
 Get Alarm Limits from EPICS PV. More...
 
bool requestLimitsFromEpicsPVs (std::string keyname, double &lowerAlarm, double &lowerWarn, double &upperWarn, double &upperAlarm)
 Get Alarm Limits from EPICS PV. More...
 
bool requestLimitsFromEpicsPVs (int index, double &lowerAlarm, double &lowerWarn, double &upperWarn, double &upperAlarm)
 Get Alarm Limits from EPICS PV. More...
 
void setUseEpics (bool flag)
 Setter for EPICS usage. More...
 
void setUseEpicsReadOnly (bool flag)
 Setter EPICS flag in read only mode. More...
 
bool getUseEpics (void)
 Getter for EPICS usage. More...
 
bool getUseEpicsReadOnly (void)
 Getter EPICS flag in read only mode. More...
 
void cleanupEpicsPVs (void)
 Unsubscribe from EPICS PVs on terminate.
 
std::string & getPVPrefix (void)
 get global Prefix for EPICS PVs More...
 
void setPVPrefix (std::string &prefix)
 set global Prefix for EPICS PVs More...
 
EStatus makeStatus (bool enough, bool warn_flag, bool error_flag)
 Helper function to judge the status for coloring and EPICS. More...
 
void colorizeCanvas (TCanvas *canvas, EStatus status)
 Helper function for Canvas colorization. More...
 
EStatusColor getStatusColor (EStatus status)
 Return color for canvas state. More...
 
void checkPVStatus (void)
 Check the status of all PVs and report if disconnected or not found.
 
void printPVStatus (chid pv, bool onlyError=true)
 check the status of a PVs and report if disconnected or not found More...
 
std::vector< std::string > StringSplit (const std::string &s, const char delim)
 Helper function for string token split. More...
 
virtual std::vector< std::string > getFileNames (bool outputFiles)
 Return a list of output filenames for this modules. More...
 
const std::string & getName () const
 Returns the name of the module. More...
 
const std::string & getType () const
 Returns the type of the module (i.e. More...
 
const std::string & getPackage () const
 Returns the package this module is in.
 
const std::string & getDescription () const
 Returns the description of the module.
 
void setName (const std::string &name)
 Set the name of the module. More...
 
void setPropertyFlags (unsigned int propertyFlags)
 Sets the flags for the module properties. More...
 
LogConfiggetLogConfig ()
 Returns the log system configuration.
 
void setLogConfig (const LogConfig &logConfig)
 Set the log system configuration.
 
void setLogLevel (int logLevel)
 Configure the log level.
 
void setDebugLevel (int debugLevel)
 Configure the debug messaging level.
 
void setAbortLevel (int abortLevel)
 Configure the abort log level.
 
void setLogInfo (int logLevel, unsigned int logInfo)
 Configure the printed log information for the given level. More...
 
void if_value (const std::string &expression, const std::shared_ptr< Path > &path, EAfterConditionPath afterConditionPath=EAfterConditionPath::c_End)
 Add a condition to the module. More...
 
void if_false (const std::shared_ptr< Path > &path, EAfterConditionPath afterConditionPath=EAfterConditionPath::c_End)
 A simplified version to add a condition to the module. More...
 
void if_true (const std::shared_ptr< Path > &path, EAfterConditionPath afterConditionPath=EAfterConditionPath::c_End)
 A simplified version to set the condition of the module. More...
 
bool hasCondition () const
 Returns true if at least one condition was set for the module.
 
const ModuleConditiongetCondition () const
 Return a pointer to the first condition (or nullptr, if none was set)
 
const std::vector< ModuleCondition > & getAllConditions () const
 Return all set conditions for this module.
 
bool evalCondition () const
 If at least one condition was set, it is evaluated and true returned if at least one condition returns true. More...
 
std::shared_ptr< PathgetConditionPath () const
 Returns the path of the last true condition (if there is at least one, else reaturn a null pointer). More...
 
Module::EAfterConditionPath getAfterConditionPath () const
 What to do after the conditional path is finished. More...
 
std::vector< std::shared_ptr< Path > > getAllConditionPaths () const
 Return all condition paths currently set (no matter if the condition is true or not).
 
bool hasProperties (unsigned int propertyFlags) const
 Returns true if all specified property flags are available in this module. More...
 
bool hasUnsetForcedParams () const
 Returns true and prints error message if the module has unset parameters which the user has to set in the steering file.
 
const ModuleParamListgetParamList () const
 Return module param list.
 
template<typename T >
ModuleParam< T > & getParam (const std::string &name) const
 Returns a reference to a parameter. More...
 
bool hasReturnValue () const
 Return true if this module has a valid return value set.
 
int getReturnValue () const
 Return the return value set by this module. More...
 
std::shared_ptr< PathElementclone () const override
 Create an independent copy of this module. More...
 
std::shared_ptr< boost::python::list > getParamInfoListPython () const
 Returns a python list of all parameters. More...
 

Static Public Member Functions

static HistListgetHistList ()
 Get the list of the histograms. More...
 
static const MonObjListgetMonObjList ()
 Get the list of MonitoringObjects. More...
 
static const DeltaListgetDeltaList ()
 Get the list of the delta histograms. More...
 
static const CanvasUpdatedListgetCanvasUpdatedList ()
 Get the list of the canvas update status. More...
 
static const std::string & getRunType (void)
 Get the Run Type. More...
 
static int getEventProcessed (void)
 Get the number of processed events. More...
 
static TH1 * findHist (const std::string &histname, bool onlyIfUpdated=false)
 Get histogram from list (no other search). More...
 
static TH1 * findHist (const std::string &dirname, const std::string &histname, bool onlyIfUpdated=false)
 Find histogram. More...
 
static TH1 * findHistInFile (TFile *file, const std::string &histname)
 Find histogram in specific TFile (e.g. More...
 
static MonitoringObjectfindMonitoringObject (const std::string &objName)
 Find MonitoringObject. More...
 
static bool addHist (const std::string &dirname, const std::string &histname, TH1 *h)
 Add histogram. More...
 
static MonitoringObjectgetMonitoringObject (const std::string &histname)
 Get MonitoringObject with given name (new object is created if non-existing) More...
 
static void initHistListBeforeEvent (void)
 Reset the list of histograms.
 
static void clearHistList (void)
 Clears the list of histograms.
 
static void exposePythonAPI ()
 Exposes methods of the Module class to Python.
 

Protected Member Functions

virtual void def_initialize ()
 Wrappers to make the methods without "def_" prefix callable from Python. More...
 
virtual void def_beginRun ()
 Wrapper method for the virtual function beginRun() that has the implementation to be used in a call from Python.
 
virtual void def_event ()
 Wrapper method for the virtual function event() that has the implementation to be used in a call from Python.
 
virtual void def_endRun ()
 This method can receive that the current run ends as a call from the Python side. More...
 
virtual void def_terminate ()
 Wrapper method for the virtual function terminate() that has the implementation to be used in a call from Python.
 
void setDescription (const std::string &description)
 Sets the description of the module. More...
 
void setType (const std::string &type)
 Set the module type. More...
 
template<typename T >
void addParam (const std::string &name, T &paramVariable, const std::string &description, const T &defaultValue)
 Adds a new parameter to the module. More...
 
template<typename T >
void addParam (const std::string &name, T &paramVariable, const std::string &description)
 Adds a new enforced parameter to the module. More...
 
void setReturnValue (int value)
 Sets the return value for this module as integer. More...
 
void setReturnValue (bool value)
 Sets the return value for this module as bool. More...
 
void setParamList (const ModuleParamList &params)
 Replace existing parameter list.
 

Private Member Functions

double getProcessedEvents ()
 Get number of processed events.
 
void analyseChannelHitHistogram (int subdetector, int section, int sector, int index, TH1 *histogram, TH1 *delta, TCanvas *canvas, TLatex &latex)
 Analyse channel hit histogram. More...
 
void processSpatial2DHitEndcapHistogram (uint16_t section, TH2F *histogram, TCanvas *canvas)
 Process spatial 2D hits histograms for endcap. More...
 
void processTimeHistogram (const std::string &histName)
 Process histogram containing the hit times. More...
 
void processPlaneHistogram (const std::string &histName, TLatex &latex)
 Process histogram containing the number of hits in plane. More...
 
void fillMaskedChannelsHistogram (const std::string &histName)
 Fill histogram containing masked channels per sector. More...
 
void deltaDrawer (TH1 *delta, TH1 *histogram, TCanvas *canvas)
 Scales and draws desired delta histogram for current canvas. More...
 
std::list< ModulePtrgetModules () const override
 no submodules, return empty list
 
std::string getPathString () const override
 return the module name.
 
void setParamPython (const std::string &name, const boost::python::object &pyObj)
 Implements a method for setting boost::python objects. More...
 
void setParamPythonDict (const boost::python::dict &dictionary)
 Implements a method for reading the parameter values from a boost::python dictionary. More...
 

Private Attributes

double m_ProcessedEvents
 Number of processed events.
 
int m_ThresholdForMasked
 Threshold for masked channels.
 
int m_ThresholdForHot
 Threshold for hot channels.
 
int m_ThresholdForLog
 Threshold for log scale.
 
int m_MinHitsForFlagging
 Minimal number of hits for flagging.
 
double m_MinProcessedEventsForMessagesInput
 Input parameter for minimal number of processed events for error messages.
 
double m_MinProcessedEventsForMessages
 Minimal number of processed events for error messages.
 
double m_minEntries
 Minimal number of entries for delta histogram update.
 
std::string m_histogramDirectoryName
 Name of histogram directory.
 
std::string m_refFileName
 Reference Histogram Root file name.
 
TFile * m_refFile = nullptr
 The pointer to the reference file.
 
std::vector< uint16_t > m_DeadBarrelModules
 Vector of dead barrel modules.
 
std::vector< uint16_t > m_DeadEndcapModules
 Vector of dead endcap modules.
 
std::vector< uint16_t > m_MaskedChannels
 Vector of masked channels.
 
TLine m_2DHitsLine
 TLine for background region in 2d hits histograms.
 
TLine m_PlaneLine
 TLine for boundary in plane histograms.
 
TText m_PlaneText
 TText for names in plane histograms.
 
bool m_IsNullRun
 Run type flag for null runs.
 
const KLMChannelArrayIndexm_ChannelArrayIndex
 KLM channel array index.
 
const KLMSectorArrayIndexm_SectorArrayIndex
 KLM sector array index.
 
const KLMElementNumbersm_ElementNumbers
 KLM element numbers.
 
const EKLMElementNumbersm_EklmElementNumbers
 EKLM element numbers.
 
DBObjPtr< KLMElectronicsMapm_ElectronicsMap
 Electronics map.
 
MonitoringObjectm_monObj {}
 Monitoring object.
 
std::string m_name
 The name of the module, saved as a string (user-modifiable)
 
std::string m_type
 The type of the module, saved as a string.
 
std::string m_package
 Package this module is found in (may be empty).
 
std::string m_description
 The description of the module.
 
unsigned int m_propertyFlags
 The properties of the module as bitwise or (with |) of EModulePropFlags.
 
LogConfig m_logConfig
 The log system configuration of the module.
 
ModuleParamList m_moduleParamList
 List storing and managing all parameter of the module.
 
bool m_hasReturnValue
 True, if the return value is set.
 
int m_returnValue
 The return value.
 
std::vector< ModuleConditionm_conditions
 Module condition, only non-null if set.
 

Static Private Attributes

static HistList s_histList
 The list of Histograms.
 
static MonObjList s_monObjList
 The list of MonitoringObjects.
 
static DeltaList s_deltaList
 The list of Delta Histograms and settings.
 
static CanvasUpdatedList s_canvasUpdatedList
 The list of canvas updated status.
 
static int s_eventProcessed = 0
 Number of Events processed to fill histograms. More...
 
static std::string s_runType = ""
 The Run type.
 
static bool m_useEpics = false
 Flag if to use EPICS do not set by yourself, use EpicsEnable module to set.
 
static bool m_epicsReadOnly
 Flag if to use EPICS in ReadOnly mode (for reading limits) do not set by yourself, use EpicsEnable module to set. More...
 
static std::string m_PVPrefix = "TEST:"
 The Prefix for EPICS PVs.
 

Detailed Description

Analysis of KLM DQM histograms.

Definition at line 43 of file DQMHistAnalysisKLM.h.

Member Enumeration Documentation

◆ EModulePropFlags

enum EModulePropFlags
inherited

Each module can be tagged with property flags, which indicate certain features of the module.

Enumerator
c_Input 

This module is an input module (reads data).

c_Output 

This module is an output module (writes data).

c_ParallelProcessingCertified 

This module can be run in parallel processing mode safely (All I/O must be done through the data store, in particular, the module must not write any files.)

c_HistogramManager 

This module is used to manage histograms accumulated by other modules.

c_InternalSerializer 

This module is an internal serializer/deserializer for parallel processing.

c_TerminateInAllProcesses 

When using parallel processing, call this module's terminate() function in all processes().

This will also ensure that there is exactly one process (single-core if no parallel modules found) or at least one input, one main and one output process.

c_DontCollectStatistics 

No statistics is collected for this module.

Definition at line 77 of file Module.h.

◆ EStatus

enum EStatus
inherited

Status flag of histogram/canvas.

Enumerator
c_StatusTooFew 

Not enough entries/event to judge.

c_StatusDefault 

default for non-coloring

c_StatusGood 

Analysis result: Good.

c_StatusWarning 

Analysis result: Warning, there may be minor issues.

c_StatusError 

Analysis result: Severe issue found.

Definition at line 45 of file DQMHistAnalysis.h.

◆ EStatusColor

enum EStatusColor
inherited

Status colors of histogram/canvas (corresponding to status)

Enumerator
c_ColorTooFew 

Not enough entries/event to judge.

c_ColorDefault 

default for non-coloring

c_ColorGood 

Analysis result: Good.

c_ColorWarning 

Analysis result: Warning, there may be minor issues.

c_ColorError 

Analysis result: Severe issue found.

Definition at line 56 of file DQMHistAnalysis.h.

Member Function Documentation

◆ addDeltaPar()

void addDeltaPar ( const std::string &  dirname,
const std::string &  histname,
HistDelta::EDeltaType  t,
int  p,
unsigned int  a = 1 
)
inherited

Add Delta histogram parameters.

Parameters
dirnamedirectory
histnamename of histogram
ttype of delta histogramming
pnumerical parameter depnding on type, e.g. number of entries
aamount of histograms in the past

Definition at line 68 of file DQMHistAnalysis.cc.

◆ addHist()

bool addHist ( const std::string &  dirname,
const std::string &  histname,
TH1 *  h 
)
staticinherited

Add histogram.

Parameters
dirnameThe name of the directory.
histnameThe name of the histogram.
hThe TH1 pointer for the histogram.
Returns
histogram was updated flag

Definition at line 46 of file DQMHistAnalysis.cc.

◆ analyseChannelHitHistogram()

void analyseChannelHitHistogram ( int  subdetector,
int  section,
int  sector,
int  index,
TH1 *  histogram,
TH1 *  delta,
TCanvas *  canvas,
TLatex &  latex 
)
private

Analyse channel hit histogram.

Parameters
[in]subdetectorSubdetector.
[in]sectionSection.
[in]sectorSector.
[in]indexHistogram Index.
[in]histogramHistogram.
[in]deltaDelta Histogram.
[in]canvasCanvas.
[out]latexTLatex to draw messages.

Definition at line 192 of file DQMHistAnalysisKLM.cc.

195 {
196  double x = 0.15;
197  double y = 0.85;
198  int i, n;
199  std::map<KLMModuleNumber, double> moduleHitMap;
200  std::map<KLMModuleNumber, double>::iterator it;
201  double average = 0;
202  int channelSubdetector, channelSection, channelSector;
203  int layer, plane, strip;
204  std::string str;
205  canvas->Clear();
206  canvas->cd();
207  histogram->SetStats(false);
208  canvas->SetLogy(0); //initialize to start without logscale
209  histogram->Draw();
210  deltaDrawer(delta, histogram, canvas); //draw normalized delta on top
211  n = histogram->GetXaxis()->GetNbins();
212 
213  /* call reference histograms */
214  TH1* ref_histogram = nullptr;
215  float ref_average = 0;
216  if (m_refFile && m_refFile->IsOpen()) {
217  ref_histogram = (TH1*)m_refFile->Get(histogram->GetName());
218  if (!ref_histogram) {
219  B2WARNING("Unable to find " << histogram->GetName() << "in reference file.");
220  }
221  }
222 
223  if (ref_histogram != nullptr) {
224  for (i = 1; i <= n; i++) {
225  double nHitsPerModuleRef = ref_histogram->GetBinContent(i);
226  ref_average = ref_average + nHitsPerModuleRef;
227  }
228  }
229 
230  for (i = 1; i <= n; i++) {
231  KLMChannelNumber channelIndex = std::round(histogram->GetBinCenter(i));
232  KLMChannelNumber channelNumber =
233  m_ChannelArrayIndex->getNumber(channelIndex);
234  double nHitsPerModule = histogram->GetBinContent(i);
235  average = average + nHitsPerModule;
237  channelNumber, &channelSubdetector, &channelSection, &channelSector,
238  &layer, &plane, &strip);
239  if ((channelSubdetector != subdetector) ||
240  (channelSection != section) ||
241  (channelSector != sector))
242  B2FATAL("Inconsistent element numbers.");
244  subdetector, section, sector, layer);
245  it = moduleHitMap.find(module);
246  if (it == moduleHitMap.end()) {
247  moduleHitMap.insert(std::pair<KLMModuleNumber, double>(
248  module, nHitsPerModule));
249  } else {
250  it->second += nHitsPerModule;
251  }
252  }
253  unsigned int activeModuleChannels = 0;
254  for (it = moduleHitMap.begin(); it != moduleHitMap.end(); ++it) {
255  KLMModuleNumber moduleNumber = it->first;
256  if (it->second != 0) {
257  activeModuleChannels += m_ElementNumbers->getNChannelsModule(moduleNumber);
258  continue;
259  }
261  moduleNumber, &channelSubdetector, &channelSection, &channelSector, &layer);
262  /* Channel with plane = 1, strip = 1 exists for any BKLM or EKLM module. */
263  KLMChannelNumber channel =
265  channelSubdetector, channelSection, channelSector, layer, 1, 1);
266  const KLMElectronicsChannel* electronicsChannel =
267  m_ElectronicsMap->getElectronicsChannel(channel);
268  if (electronicsChannel == nullptr)
269  B2FATAL("Incomplete KLM electronics map.");
270  str = "No data from lane " + std::to_string(electronicsChannel->getLane());
271  latex.DrawLatexNDC(x, y, str.c_str());
272  y -= 0.05;
273  /* Store the module number, used later in processPlaneHistogram
274  * to color the canvas with red and to raise up an alarm. */
275  if (channelSubdetector == KLMElementNumbers::c_BKLM) {
276  std::vector<KLMModuleNumber>::iterator ite =
277  std::find(m_DeadBarrelModules.begin(),
278  m_DeadBarrelModules.end(),
279  moduleNumber);
280  if (ite == m_DeadBarrelModules.end())
281  m_DeadBarrelModules.push_back(moduleNumber);
282  } else {
283  std::vector<KLMModuleNumber>::iterator ite = std::find(m_DeadEndcapModules.begin(),
284  m_DeadEndcapModules.end(),
285  moduleNumber);
286  if (ite == m_DeadEndcapModules.end())
287  m_DeadEndcapModules.push_back(moduleNumber);
288  }
289  }
290  if (activeModuleChannels == 0)
291  return;
292  average /= activeModuleChannels;
293  ref_average /= activeModuleChannels;
294  for (i = 1; i <= n; ++i) {
295  KLMChannelNumber channelIndex = std::round(histogram->GetBinCenter(i));
296  KLMChannelNumber channelNumber =
297  m_ChannelArrayIndex->getNumber(channelIndex);
298  double nHits = histogram->GetBinContent(i);
300  channelNumber, &channelSubdetector, &channelSection, &channelSector,
301  &layer, &plane, &strip);
302  std::string channelStatus = "Normal";
303  if ((nHits > average * m_ThresholdForMasked) && (nHits > m_MinHitsForFlagging)) {
304  channelStatus = "Masked";
305  std::vector<KLMModuleNumber>::iterator ite =
306  std::find(m_MaskedChannels.begin(),
307  m_MaskedChannels.end(),
308  channelNumber);
309  if (ite == m_MaskedChannels.end())
310  m_MaskedChannels.push_back(channelNumber);
311  B2DEBUG(20, "KLM@MaskMe " << channelNumber);
312  } else if ((nHits > average * m_ThresholdForHot) && (nHits > m_MinHitsForFlagging)) {
313  channelStatus = "Hot";
314  }
315  if (channelStatus != "Normal") {
316  const KLMElectronicsChannel* electronicsChannel =
317  m_ElectronicsMap->getElectronicsChannel(channelNumber);
318  if (electronicsChannel == nullptr)
319  B2FATAL("Incomplete BKLM electronics map.");
320  if (channelStatus == "Masked") {
321  histogram->SetBinContent(i, 0);
322  if (delta != nullptr)
323  delta->SetBinContent(i, 0);
324  }
325  str = channelStatus + " channel: ";
326  // lane, axis, channel
327  str += ("L" + std::to_string(electronicsChannel->getLane()) +
328  " A" + std::to_string(electronicsChannel->getAxis()) +
329  " Ch" + std::to_string(electronicsChannel->getChannel()));
330  latex.DrawLatexNDC(x, y, str.c_str());
331  y -= 0.05;
332  }
333  }
334 
335  if (histogram->GetMaximum()*n > histogram->Integral()*m_ThresholdForLog && average * activeModuleChannels > m_MinHitsForFlagging) {
336  histogram->SetMinimum(1);
337  canvas->SetLogy();
338  } else if (ref_histogram != nullptr) {
339  if (ref_histogram->GetMaximum()*n > ref_histogram->Integral()*m_ThresholdForLog
340  && ref_average * activeModuleChannels > m_MinHitsForFlagging) {
341  histogram->SetMinimum(1);
342  canvas->SetLogy();
343  } else
344  canvas->SetLogy(0);
345  } else
346  canvas->SetLogy(0);
347 
348  canvas->Modified();
349  canvas->Update();
350 
351  /* Drawing dividing lines */
352  int divisions;
353  int bin = 1;
354  double xLine;
355  if (subdetector == 1) {
356  int shift;
357  if (index == 0) {
358  divisions = 7;
359  shift = 1;
360  } else {
361  divisions = 8;
362  shift = 8;
363  }
364  for (int k = 0; k < divisions; k++) {
365  xLine = (histogram->GetXaxis()->GetBinLowEdge(bin) - canvas->GetX1()) / (canvas->GetX2() - canvas->GetX1());
366  m_PlaneLine.DrawLineNDC(xLine, 0.1, xLine, 0.9);
367  bin += BKLMElementNumbers::getNStrips(section, sector, k + shift, 0)
368  + BKLMElementNumbers::getNStrips(section, sector, k + shift, 1);
369  }
370  } else {
371  if ((section == 2) && (index == 0 || index == 1))
372  divisions = 5;
373  else
374  divisions = 4;
375  for (int k = 0; k < divisions; k++) {
376  xLine = (histogram->GetXaxis()->GetBinLowEdge(bin) - canvas->GetX1()) / (canvas->GetX2() - canvas->GetX1());
377  m_PlaneLine.DrawLineNDC(xLine, 0.1, xLine, 0.9);
379  }
380  }
381  canvas->Modified();
382  canvas->Update();
383 
384 }
static int getNStrips(int section, int sector, int layer, int plane)
Get number of strips.
TLine m_PlaneLine
TLine for boundary in plane histograms.
int m_ThresholdForLog
Threshold for log scale.
int m_MinHitsForFlagging
Minimal number of hits for flagging.
const KLMElementNumbers * m_ElementNumbers
KLM element numbers.
void deltaDrawer(TH1 *delta, TH1 *histogram, TCanvas *canvas)
Scales and draws desired delta histogram for current canvas.
std::vector< uint16_t > m_MaskedChannels
Vector of masked channels.
int m_ThresholdForHot
Threshold for hot channels.
std::vector< uint16_t > m_DeadBarrelModules
Vector of dead barrel modules.
DBObjPtr< KLMElectronicsMap > m_ElectronicsMap
Electronics map.
int m_ThresholdForMasked
Threshold for masked channels.
std::vector< uint16_t > m_DeadEndcapModules
Vector of dead endcap modules.
const KLMChannelArrayIndex * m_ChannelArrayIndex
KLM channel array index.
TFile * m_refFile
The pointer to the reference file.
static constexpr int getNStripsSector()
Get number of strips in a sector.
BKLM electronics channel.
int getChannel() const
Get channel.
uint16_t getNumber(uint16_t index) const
Get element number.
KLMChannelNumber channelNumber(int subdetector, int section, int sector, int layer, int plane, int strip) const
Get channel number.
void channelNumberToElementNumbers(KLMChannelNumber channel, int *subdetector, int *section, int *sector, int *layer, int *plane, int *strip) const
Get element numbers by channel number.
unsigned int getNChannelsModule(KLMModuleNumber module) const
Get number of channels in module.
void moduleNumberToElementNumbers(KLMModuleNumber module, int *subdetector, int *section, int *sector, int *layer) const
Get element numbers by module number.
KLMModuleNumber moduleNumber(int subdetector, int section, int sector, int layer) const
Get module number.
TH2 * moduleHitMap(TH1 *hitMap, int moduleID)
Make hit map in HAPD view (12*12 channels)
Definition: hitMapMaker.cc:38
uint16_t KLMChannelNumber
Channel number.
uint16_t KLMModuleNumber
Module number.

◆ clone()

std::shared_ptr< PathElement > clone ( ) const
overridevirtualinherited

Create an independent copy of this module.

Note that parameters are shared, so changing them on a cloned module will also affect the original module.

Implements PathElement.

Definition at line 179 of file Module.cc.

◆ colorizeCanvas()

void colorizeCanvas ( TCanvas *  canvas,
EStatus  status 
)
inherited

Helper function for Canvas colorization.

Parameters
canvasCanvas to change
statusstatus to color

Definition at line 668 of file DQMHistAnalysis.cc.

◆ def_endRun()

virtual void def_endRun ( )
inlineprotectedvirtualinherited

This method can receive that the current run ends as a call from the Python side.

For regular C++-Modules that forwards the call to the regular endRun() method.

Reimplemented in PyModule.

Definition at line 439 of file Module.h.

◆ def_initialize()

virtual void def_initialize ( )
inlineprotectedvirtualinherited

Wrappers to make the methods without "def_" prefix callable from Python.

Overridden in PyModule. Wrapper method for the virtual function initialize() that has the implementation to be used in a call from Python.

Reimplemented in PyModule.

Definition at line 420 of file Module.h.

◆ deltaDrawer()

void deltaDrawer ( TH1 *  delta,
TH1 *  histogram,
TCanvas *  canvas 
)
private

Scales and draws desired delta histogram for current canvas.

Parameters
[in]deltaDelta histogram.
[in]histogramBase histogram (for normalization).
[in]canvasCanvas with delta histogram.

Definition at line 178 of file DQMHistAnalysisKLM.cc.

◆ evalCondition()

bool evalCondition ( ) const
inherited

If at least one condition was set, it is evaluated and true returned if at least one condition returns true.

If no condition or result value was defined, the method returns false. Otherwise, the condition is evaluated and true returned, if at least one condition returns true. To speed up the evaluation, the condition strings were already parsed in the method if_value().

Returns
True if at least one condition and return value exists and at least one condition expression was evaluated to true.

Definition at line 96 of file Module.cc.

◆ fillMaskedChannelsHistogram()

void fillMaskedChannelsHistogram ( const std::string &  histName)
private

Fill histogram containing masked channels per sector.

Parameters
[in]histNameHistogram name.

Definition at line 430 of file DQMHistAnalysisKLM.cc.

◆ findCanvas()

TCanvas * findCanvas ( TString  cname)
inherited

Find canvas by name.

Parameters
cnameName of the canvas
Returns
The pointer to the canvas, or nullptr if not found.

Definition at line 128 of file DQMHistAnalysis.cc.

◆ findHist() [1/2]

TH1 * findHist ( const std::string &  dirname,
const std::string &  histname,
bool  onlyIfUpdated = false 
)
staticinherited

Find histogram.

Parameters
dirnameThe name of the directory.
histnameThe name of the histogram.
onlyIfUpdatedreq only updated hists, return nullptr otherwise
Returns
The found histogram, or nullptr if not found.

Definition at line 156 of file DQMHistAnalysis.cc.

◆ findHist() [2/2]

TH1 * findHist ( const std::string &  histname,
bool  onlyIfUpdated = false 
)
staticinherited

Get histogram from list (no other search).

Parameters
histnameThe name of the histogram (incl dir).
onlyIfUpdatedreq only updated hists, return nullptr otherwise
Returns
The found histogram, or nullptr if not found.

Definition at line 142 of file DQMHistAnalysis.cc.

◆ findHistInCanvas()

TH1 * findHistInCanvas ( const std::string &  hname)
inherited

Find histogram in corresponding canvas.

Parameters
hnameName of the histogram (dir+name)
Returns
The pointer to the histogram, or nullptr if not found.

Definition at line 164 of file DQMHistAnalysis.cc.

◆ findHistInFile()

TH1 * findHistInFile ( TFile *  file,
const std::string &  histname 
)
staticinherited

Find histogram in specific TFile (e.g.

ref file).

Parameters
fileThe TFile to search.
histnameThe name of the histogram, can incl directory
Returns
The found histogram, or nullptr if not found.

Definition at line 190 of file DQMHistAnalysis.cc.

◆ findMonitoringObject()

MonitoringObject * findMonitoringObject ( const std::string &  objName)
staticinherited

Find MonitoringObject.

Parameters
objNameThe name of the MonitoringObject.
Returns
The found MonitoringObject, or nullptr if not found.

Definition at line 211 of file DQMHistAnalysis.cc.

◆ getAfterConditionPath()

Module::EAfterConditionPath getAfterConditionPath ( ) const
inherited

What to do after the conditional path is finished.

(defaults to c_End if no condition is set)

Definition at line 133 of file Module.cc.

◆ getCanvasUpdatedList()

static const CanvasUpdatedList& getCanvasUpdatedList ( )
inlinestaticinherited

Get the list of the canvas update status.

Returns
The list of the canvases.

Definition at line 165 of file DQMHistAnalysis.h.

◆ getConditionPath()

std::shared_ptr< Path > getConditionPath ( ) const
inherited

Returns the path of the last true condition (if there is at least one, else reaturn a null pointer).


Definition at line 113 of file Module.cc.

◆ getDelta() [1/2]

TH1 * getDelta ( const std::string &  dirname,
const std::string &  histname,
int  n = 0,
bool  onlyIfUpdated = true 
)
inherited

Get Delta histogram.

Parameters
dirnamedirectory
histnamename of histogram
nindex of delta histogram, 0 is most recent one
onlyIfUpdatedreq only updated deltas, return nullptr otherwise
Returns
delta histogram or nullptr

Definition at line 91 of file DQMHistAnalysis.cc.

◆ getDelta() [2/2]

TH1 * getDelta ( const std::string &  fullname,
int  n = 0,
bool  onlyIfUpdated = true 
)
inherited

Get Delta histogram.

Parameters
fullnamedirectory+name of histogram
nindex of delta histogram, 0 is most recent one
onlyIfUpdatedreq only updated deltas, return nullptr otherwise
Returns
delta histogram or nullptr

Definition at line 102 of file DQMHistAnalysis.cc.

◆ getDeltaList()

static const DeltaList& getDeltaList ( )
inlinestaticinherited

Get the list of the delta histograms.

Returns
The list of the delta histograms.

Definition at line 159 of file DQMHistAnalysis.h.

◆ getEpicsPV() [1/2]

double getEpicsPV ( int  index)
inherited

Read value from a EPICS PV.

Parameters
indexindex of PV
Returns
value or NAN if not existing

Definition at line 440 of file DQMHistAnalysis.cc.

◆ getEpicsPV() [2/2]

double getEpicsPV ( std::string  keyname)
inherited

Read value from a EPICS PV.

Parameters
keynamekey name (or full PV name) of PV
Returns
value or NAN if not existing

Definition at line 415 of file DQMHistAnalysis.cc.

◆ getEpicsPVChID() [1/2]

chid getEpicsPVChID ( int  index)
inherited

Get EPICS PV Channel Id.

Parameters
indexindex of PV
Returns
Channel ID is written on success, otherwise nullptr

Definition at line 533 of file DQMHistAnalysis.cc.

◆ getEpicsPVChID() [2/2]

chid getEpicsPVChID ( std::string  keyname)
inherited

Get EPICS PV Channel Id.

Parameters
keynamekey name (or full PV name) of PV
Returns
Channel ID is written on success, otherwise nullptr

Definition at line 519 of file DQMHistAnalysis.cc.

◆ getEpicsStringPV() [1/2]

std::string getEpicsStringPV ( int  index,
bool &  status 
)
inherited

Read value from a EPICS PV.

Parameters
indexindex of PV
statusreturn status (true on success)
Returns
string value (empty string if non existing)

Definition at line 492 of file DQMHistAnalysis.cc.

◆ getEpicsStringPV() [2/2]

std::string getEpicsStringPV ( std::string  keyname,
bool &  status 
)
inherited

Read value from a EPICS PV.

Parameters
keynamekey name (or full PV name) of PV
statusreturn status (true on success)
Returns
string value (empty string if non existing)

Definition at line 465 of file DQMHistAnalysis.cc.

◆ getEventProcessed()

static int getEventProcessed ( void  )
inlinestaticinherited

Get the number of processed events.

(Attention, asynch histogram updates!)

Returns
Processed events.

Definition at line 177 of file DQMHistAnalysis.h.

◆ getFileNames()

virtual std::vector<std::string> getFileNames ( bool  outputFiles)
inlinevirtualinherited

Return a list of output filenames for this modules.

This will be called when basf2 is run with "--dry-run" if the module has set either the c_Input or c_Output properties.

If the parameter outputFiles is false (for modules with c_Input) the list of input filenames should be returned (if any). If outputFiles is true (for modules with c_Output) the list of output files should be returned (if any).

If a module has sat both properties this member is called twice, once for each property.

The module should return the actual list of requested input or produced output filenames (including handling of input/output overrides) so that the grid system can handle input/output files correctly.

This function should return the same value when called multiple times. This is especially important when taking the input/output overrides from Environment as they get consumed when obtained so the finalized list of output files should be stored for subsequent calls.

Reimplemented in RootOutputModule, StorageRootOutputModule, and RootInputModule.

Definition at line 134 of file Module.h.

◆ getHistList()

static HistList& getHistList ( )
inlinestaticinherited

Get the list of the histograms.

Returns
The list of the histograms.

Definition at line 147 of file DQMHistAnalysis.h.

◆ getMonitoringObject()

MonitoringObject * getMonitoringObject ( const std::string &  histname)
staticinherited

Get MonitoringObject with given name (new object is created if non-existing)

Parameters
histnamename of MonitoringObject to get
Returns
The MonitoringObject

Definition at line 112 of file DQMHistAnalysis.cc.

◆ getMonObjList()

static const MonObjList& getMonObjList ( )
inlinestaticinherited

Get the list of MonitoringObjects.

Returns
The list of the MonitoringObjects.

Definition at line 153 of file DQMHistAnalysis.h.

◆ getName()

const std::string& getName ( ) const
inlineinherited

Returns the name of the module.

This can be changed via e.g. set_name() in the steering file to give more useful names if there is more than one module of the same type.

For identifying the type of a module, using getType() (or type() in Python) is recommended.

Definition at line 187 of file Module.h.

◆ getParamInfoListPython()

std::shared_ptr< boost::python::list > getParamInfoListPython ( ) const
inherited

Returns a python list of all parameters.

Each item in the list consists of the name of the parameter, a string describing its type, a python list of all default values and the description of the parameter.

Returns
A python list containing the parameters of this parameter list.

Definition at line 279 of file Module.cc.

◆ getPVPrefix()

std::string& getPVPrefix ( void  )
inlineinherited

get global Prefix for EPICS PVs

Returns
prefix in use

Definition at line 514 of file DQMHistAnalysis.h.

◆ getReturnValue()

int getReturnValue ( ) const
inlineinherited

Return the return value set by this module.

This value is only meaningful if hasReturnValue() is true

Definition at line 381 of file Module.h.

◆ getRunType()

static const std::string& getRunType ( void  )
inlinestaticinherited

Get the Run Type.

Returns
Run type string.

Definition at line 171 of file DQMHistAnalysis.h.

◆ getSigma68()

double getSigma68 ( TH1 *  h) const
inherited

Helper function to compute half of the central interval covering 68% of a distribution.

This quantity is an alternative to the standard deviation.

Parameters
hhistogram
Returns
Half of the central interval covering 68% of a distribution.

Definition at line 225 of file DQMHistAnalysis.cc.

◆ getStatusColor()

DQMHistAnalysisModule::EStatusColor getStatusColor ( EStatus  status)
inherited

Return color for canvas state.

Parameters
statuscanvas status
Returns
alarm color

Definition at line 641 of file DQMHistAnalysis.cc.

◆ getType()

const std::string & getType ( ) const
inherited

Returns the type of the module (i.e.

class name minus 'Module')

Definition at line 41 of file Module.cc.

◆ getUseEpics()

bool getUseEpics ( void  )
inlineinherited

Getter for EPICS usage.

Returns
flag is in use

Definition at line 497 of file DQMHistAnalysis.h.

◆ getUseEpicsReadOnly()

bool getUseEpicsReadOnly ( void  )
inlineinherited

Getter EPICS flag in read only mode.

Returns
flag if read only

Definition at line 503 of file DQMHistAnalysis.h.

◆ hasDeltaPar()

bool hasDeltaPar ( const std::string &  dirname,
const std::string &  histname 
)
inherited

Check if Delta histogram parameters exist for histogram.

Parameters
dirnamedirectory
histnamename of histogram
Returns
true if parameters have been set already

Definition at line 80 of file DQMHistAnalysis.cc.

◆ hasProperties()

bool hasProperties ( unsigned int  propertyFlags) const
inherited

Returns true if all specified property flags are available in this module.

Parameters
propertyFlagsOred EModulePropFlags which should be compared with the module flags.

Definition at line 160 of file Module.cc.

◆ if_false()

void if_false ( const std::shared_ptr< Path > &  path,
EAfterConditionPath  afterConditionPath = EAfterConditionPath::c_End 
)
inherited

A simplified version to add a condition to the module.

Please note that successive calls of this function will add more than one condition to the module. If more than one condition results in true, only the last of them will be used.

Please be careful: Avoid creating cyclic paths, e.g. by linking a condition to a path which is processed before the path where this module is located in.

It is equivalent to the if_value() method, using the expression "<1". This method is meant to be used together with the setReturnValue(bool value) method.

Parameters
pathShared pointer to the Path which will be executed if the return value is false.
afterConditionPathWhat to do after executing 'path'.

Definition at line 85 of file Module.cc.

◆ if_true()

void if_true ( const std::shared_ptr< Path > &  path,
EAfterConditionPath  afterConditionPath = EAfterConditionPath::c_End 
)
inherited

A simplified version to set the condition of the module.

Please note that successive calls of this function will add more than one condition to the module. If more than one condition results in true, only the last of them will be used.

Please be careful: Avoid creating cyclic paths, e.g. by linking a condition to a path which is processed before the path where this module is located in.

It is equivalent to the if_value() method, using the expression ">=1". This method is meant to be used together with the setReturnValue(bool value) method.

Parameters
pathShared pointer to the Path which will be executed if the return value is true.
afterConditionPathWhat to do after executing 'path'.

Definition at line 90 of file Module.cc.

◆ if_value()

void if_value ( const std::string &  expression,
const std::shared_ptr< Path > &  path,
EAfterConditionPath  afterConditionPath = EAfterConditionPath::c_End 
)
inherited

Add a condition to the module.

Please note that successive calls of this function will add more than one condition to the module. If more than one condition results in true, only the last of them will be used.

See https://confluence.desy.de/display/BI/Software+ModCondTut or ModuleCondition for a description of the syntax.

Please be careful: Avoid creating cyclic paths, e.g. by linking a condition to a path which is processed before the path where this module is located in.

Parameters
expressionThe expression of the condition.
pathShared pointer to the Path which will be executed if the condition is evaluated to true.
afterConditionPathWhat to do after executing 'path'.

Definition at line 79 of file Module.cc.

◆ makeStatus()

DQMHistAnalysisModule::EStatus makeStatus ( bool  enough,
bool  warn_flag,
bool  error_flag 
)
inherited

Helper function to judge the status for coloring and EPICS.

Parameters
enoughenough events for judging
warn_flagoutside of expected range
error_flagoutside of warning range
Returns
the status

Definition at line 623 of file DQMHistAnalysis.cc.

◆ printPVStatus()

void printPVStatus ( chid  pv,
bool  onlyError = true 
)
inherited

check the status of a PVs and report if disconnected or not found

Parameters
pvthe chid of the PV to check
onlyErrorprint only if in error condition (default)

Definition at line 690 of file DQMHistAnalysis.cc.

◆ processPlaneHistogram()

void processPlaneHistogram ( const std::string &  histName,
TLatex &  latex 
)
private

Process histogram containing the number of hits in plane.

Parameters
[in]histNameHistogram name.
[out]latexTLatex to draw messages.

Definition at line 468 of file DQMHistAnalysisKLM.cc.

◆ processSpatial2DHitEndcapHistogram()

void processSpatial2DHitEndcapHistogram ( uint16_t  section,
TH2F *  histogram,
TCanvas *  canvas 
)
private

Process spatial 2D hits histograms for endcap.

Parameters
[in]sectionSection.
[in]histogramHistogram.
[in]canvasCanvas.

Definition at line 386 of file DQMHistAnalysisKLM.cc.

◆ processTimeHistogram()

void processTimeHistogram ( const std::string &  histName)
private

Process histogram containing the hit times.

Parameters
[in]histNameHistogram name.

Definition at line 403 of file DQMHistAnalysisKLM.cc.

◆ registerEpicsPV()

int registerEpicsPV ( std::string  pvname,
std::string  keyname = "",
bool  update_pvs = true 
)
inherited

EPICS related Functions.

Register a PV with its name and a key name

If you register large number of PVs at once, consider setting update_pvs = false and explicitly running updateEpicsPVs()

Parameters
pvnamefull PV name
keynamekey name for easier access
update_pvsif true, update all PVs (flush network) after new PV is registered
Returns
an index which can be used to access the PV instead of key name, -1 if failure

Definition at line 306 of file DQMHistAnalysis.cc.

◆ requestLimitsFromEpicsPVs() [1/3]

bool requestLimitsFromEpicsPVs ( chid  id,
double &  lowerAlarm,
double &  lowerWarn,
double &  upperWarn,
double &  upperAlarm 
)
inherited

Get Alarm Limits from EPICS PV.

Parameters
idChannel ID
&lowerAlarmreturn low Alarm limit (lolo) if set, not changed otherwise
&lowerWarnreturn low Warning limit (low) if set, not changed otherwise
&upperWarnreturn upper Warning limit (high) if set, not changed otherwise
&upperAlarmreturn upper Alarm limit (hihi) if set, not changed otherwise
Returns
true if limits could be read (even if there are none set)

Definition at line 586 of file DQMHistAnalysis.cc.

◆ requestLimitsFromEpicsPVs() [2/3]

bool requestLimitsFromEpicsPVs ( int  index,
double &  lowerAlarm,
double &  lowerWarn,
double &  upperWarn,
double &  upperAlarm 
)
inherited

Get Alarm Limits from EPICS PV.

Parameters
indexindex of PV
&lowerAlarmreturn low Alarm limit (lolo) if set, not changed otherwise
&lowerWarnreturn low Warning limit (low) if set, not changed otherwise
&upperWarnreturn upper Warning limit (high) if set, not changed otherwise
&upperAlarmreturn upper Alarm limit (hihi) if set, not changed otherwise
Returns
true if limits could be read (even if there are none set)

Definition at line 580 of file DQMHistAnalysis.cc.

◆ requestLimitsFromEpicsPVs() [3/3]

bool requestLimitsFromEpicsPVs ( std::string  keyname,
double &  lowerAlarm,
double &  lowerWarn,
double &  upperWarn,
double &  upperAlarm 
)
inherited

Get Alarm Limits from EPICS PV.

Parameters
keynamekey name (or full PV name) of PV
&lowerAlarmreturn low Alarm limit (lolo) if set, not changed otherwise
&lowerWarnreturn low Warning limit (low) if set, not changed otherwise
&upperWarnreturn upper Warning limit (high) if set, not changed otherwise
&upperAlarmreturn upper Alarm limit (hihi) if set, not changed otherwise
Returns
true if limits could be read (even if there are none set)

Definition at line 574 of file DQMHistAnalysis.cc.

◆ setDescription()

void setDescription ( const std::string &  description)
protectedinherited

Sets the description of the module.

Parameters
descriptionA description of the module.

Definition at line 214 of file Module.cc.

◆ setEpicsPV() [1/4]

void setEpicsPV ( int  index,
double  value 
)
inherited

Write value to a EPICS PV.

Parameters
indexindex of PV
valuevalue to write

Definition at line 377 of file DQMHistAnalysis.cc.

◆ setEpicsPV() [2/4]

void setEpicsPV ( int  index,
int  value 
)
inherited

Write value to a EPICS PV.

Parameters
indexindex of PV
valuevalue to write

Definition at line 389 of file DQMHistAnalysis.cc.

◆ setEpicsPV() [3/4]

void setEpicsPV ( std::string  keyname,
double  value 
)
inherited

Write value to a EPICS PV.

Parameters
keynamekey name (or full PV name) of PV
valuevalue to write

Definition at line 335 of file DQMHistAnalysis.cc.

◆ setEpicsPV() [4/4]

void setEpicsPV ( std::string  keyname,
int  value 
)
inherited

Write value to a EPICS PV.

Parameters
keynamekey name (or full PV name) of PV
valuevalue to write

Definition at line 347 of file DQMHistAnalysis.cc.

◆ setEpicsStringPV() [1/2]

void setEpicsStringPV ( int  index,
std::string  value 
)
inherited

Write string to a EPICS PV.

Parameters
indexindex of PV
valuestring to write

Definition at line 401 of file DQMHistAnalysis.cc.

◆ setEpicsStringPV() [2/2]

void setEpicsStringPV ( std::string  keyname,
std::string  value 
)
inherited

Write string to a EPICS PV.

Parameters
keynamekey name (or full PV name) of PV
valuestring to write

Definition at line 359 of file DQMHistAnalysis.cc.

◆ setEventProcessed()

void setEventProcessed ( int  e)
inlineinherited

Set the number of processed events.

(Attention, asynch histogram updates!)

e Processed events.

Definition at line 189 of file DQMHistAnalysis.h.

◆ setLogInfo()

void setLogInfo ( int  logLevel,
unsigned int  logInfo 
)
inherited

Configure the printed log information for the given level.

Parameters
logLevelThe log level (one of LogConfig::ELogLevel)
logInfoWhat kind of info should be printed? ORed combination of LogConfig::ELogInfo flags.

Definition at line 73 of file Module.cc.

◆ setName()

void setName ( const std::string &  name)
inlineinherited

Set the name of the module.

Note
The module name is set when using the REG_MODULE macro, but the module can be renamed before calling process() using the set_name() function in your steering file.
Parameters
nameThe name of the module

Definition at line 214 of file Module.h.

◆ setParamPython()

void setParamPython ( const std::string &  name,
const boost::python::object &  pyObj 
)
privateinherited

Implements a method for setting boost::python objects.

The method supports the following types: list, dict, int, double, string, bool The conversion of the python object to the C++ type and the final storage of the parameter value is done in the ModuleParam class.

Parameters
nameThe unique name of the parameter.
pyObjThe object which should be converted and stored as the parameter value.

Definition at line 234 of file Module.cc.

◆ setParamPythonDict()

void setParamPythonDict ( const boost::python::dict &  dictionary)
privateinherited

Implements a method for reading the parameter values from a boost::python dictionary.

The key of the dictionary has to be the name of the parameter and the value has to be of one of the supported parameter types.

Parameters
dictionaryThe python dictionary from which the parameter values are read.

Definition at line 249 of file Module.cc.

◆ setPropertyFlags()

void setPropertyFlags ( unsigned int  propertyFlags)
inherited

Sets the flags for the module properties.

Parameters
propertyFlagsbitwise OR of EModulePropFlags

Definition at line 208 of file Module.cc.

◆ setPVPrefix()

void setPVPrefix ( std::string &  prefix)
inlineinherited

set global Prefix for EPICS PVs

Parameters
prefixPrefix to set

Definition at line 520 of file DQMHistAnalysis.h.

◆ setReturnValue() [1/2]

void setReturnValue ( bool  value)
protectedinherited

Sets the return value for this module as bool.

The bool value is saved as an integer with the convention 1 meaning true and 0 meaning false. The value can be used in the steering file to divide the analysis chain into several paths.

Parameters
valueThe value of the return value.

Definition at line 227 of file Module.cc.

◆ setReturnValue() [2/2]

void setReturnValue ( int  value)
protectedinherited

Sets the return value for this module as integer.

The value can be used in the steering file to divide the analysis chain into several paths.

Parameters
valueThe value of the return value.

Definition at line 220 of file Module.cc.

◆ setRunType()

void setRunType ( std::string &  t)
inlineinherited

Set the Run Type.

t Run type string.

Definition at line 183 of file DQMHistAnalysis.h.

◆ setType()

void setType ( const std::string &  type)
protectedinherited

Set the module type.

Only for use by internal modules (which don't use the normal REG_MODULE mechanism).

Definition at line 48 of file Module.cc.

◆ setUseEpics()

void setUseEpics ( bool  flag)
inlineinherited

Setter for EPICS usage.

Parameters
flagset in use

Definition at line 485 of file DQMHistAnalysis.h.

◆ setUseEpicsReadOnly()

void setUseEpicsReadOnly ( bool  flag)
inlineinherited

Setter EPICS flag in read only mode.

Parameters
flagset read only

Definition at line 491 of file DQMHistAnalysis.h.

◆ StringSplit()

std::vector< std::string > StringSplit ( const std::string &  s,
const char  delim 
)
inherited

Helper function for string token split.

Parameters
sString to split
delimdelimiter
Returns
vector of strings

Definition at line 234 of file DQMHistAnalysis.cc.

◆ UpdateCanvas() [1/2]

void UpdateCanvas ( std::string  name,
bool  updated = true 
)
inherited

Mark canvas as updated (or not)

Parameters
namename of Canvas
updatedwas updated

Definition at line 271 of file DQMHistAnalysis.cc.

◆ UpdateCanvas() [2/2]

void UpdateCanvas ( TCanvas *  canvas,
bool  updated = true 
)
inherited

Mark canvas as updated (or not)

Parameters
canvasCanvas from which to take the name for update
updatedwas updated

Definition at line 276 of file DQMHistAnalysis.cc.

◆ updateEpicsPVs()

int updateEpicsPVs ( float  timeout)
inherited

Update all EPICS PV (flush to network)

Parameters
timeoutmaximum time until timeout in s
Returns
status of ca_pend_io

Definition at line 547 of file DQMHistAnalysis.cc.

Member Data Documentation

◆ m_epicsReadOnly

bool m_epicsReadOnly
staticprivateinherited
Initial value:
=
false

Flag if to use EPICS in ReadOnly mode (for reading limits) do not set by yourself, use EpicsEnable module to set.

Definition at line 127 of file DQMHistAnalysis.h.

◆ s_eventProcessed

int s_eventProcessed = 0
inlinestaticprivateinherited

Number of Events processed to fill histograms.

Attention: histograms are updates asynchronously Thus the number for a specific histogram may be lower or higher. If you need precise number, you must fill it in the histogram itself (e.g. underflow bin)

Definition at line 110 of file DQMHistAnalysis.h.


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