Belle II Software  release-06-02-00
DQMHistAnalysisPXDCMModule Class Reference

DQM Histogram Analysis for PXD Common Modes. More...

#include <DQMHistAnalysisPXDCM.h>

Inheritance diagram for DQMHistAnalysisPXDCMModule:
Collaboration diagram for DQMHistAnalysisPXDCMModule:

Public Types

typedef std::map< std::string, TH1 * > HistList
 The type of list of histograms.
 
typedef std::map< std::string, MonitoringObject * > MonObjList
 The type of list of MonitoringObjects.
 
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

 DQMHistAnalysisPXDCMModule ()
 Constructor.
 
 ~DQMHistAnalysisPXDCMModule ()
 Destructor.
 
void initialize (void) override final
 Initializer. More...
 
void beginRun (void) override final
 Called when entering a new run.
 
void event (void) override final
 This method is called for each event. More...
 
void terminate (void) override final
 This method is called at the end of the event processing.
 
TCanvas * findCanvas (TString cname)
 Find canvas by name. More...
 
virtual std::vector< std::string > getFileNames (bool outputFiles)
 Return a list of output filenames for this modules. More...
 
virtual void endRun ()
 This method is called if the current run ends. 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 const HistListgetHistList ()
 Get the list of the histograms. More...
 
static const MonObjListgetMonObjList ()
 Get the list of MonitoringObjects. More...
 
static TH1 * findHist (const std::string &histname)
 Find histogram. More...
 
static TH1 * findHist (const std::string &dirname, const std::string &histname)
 Find histogram. More...
 
static TH1 * findHist (const TDirectory *histdir, const TString &histname)
 Find histogram. More...
 
static MonitoringObjectfindMonitoringObject (const std::string &objName)
 Find MonitoringObject. More...
 
static void 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 resetHist ()
 Clear and reset 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

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

std::string m_histogramDirectoryName
 name of histogram directory
 
std::string m_pvPrefix
 prefix for EPICS PVs
 
int m_minEntries = 10000
 Update entry intervall.
 
double m_warnMeanAdhoc {}
 warn level for mean adhoc plot
 
double m_errorMeanAdhoc {}
 error level for mean adhoc plot
 
double m_warnOutsideAdhoc {}
 warn level for outside fraction
 
double m_errorOutsideAdhoc {}
 error level for outside fraction
 
int m_upperLineAdhoc {}
 threshold level/line for outside fraction
 
double m_warnMeanFull {}
 warn level for mean adhoc plot
 
double m_errorMeanFull {}
 error level for mean adhoc plot
 
double m_warnOutsideFull {}
 warn level for outside fraction
 
double m_errorOutsideFull {}
 error level for outside fraction
 
int m_upperLineFull {}
 threshold level/line for outside fraction
 
std::vector< std::string > m_par_module_list
 Module list for mask.
 
std::vector< std::vector< int > > m_par_gate_list
 Double-gate list for mask.
 
std::map< VxdID, std::vector< int > > m_masked_gates
 Module wise gate masking in CM plot and alarm.
 
std::vector< VxdIDm_PXDModules
 IDs of all PXD Modules to iterate over.
 
TH2D * m_hCommonMode = nullptr
 histogram covering all modules
 
TH2D * m_hCommonModeDelta = nullptr
 histogram covering all modules
 
TH2D * m_hCommonModeOld = nullptr
 histogram covering all modules
 
TCanvas * m_cCommonMode = nullptr
 Final Canvas.
 
TCanvas * m_cCommonModeDelta = nullptr
 Final Canvas.
 
TLine * m_line1 = nullptr
 Line in the Canvas to guide the eye.
 
TLine * m_lineA = nullptr
 Line in the Canvas to guide the eye.
 
TLine * m_lineF = nullptr
 Line in the Canvas to guide the eye.
 
MonitoringObjectm_monObj {}
 Monitoring Object.
 
bool m_useEpics
 flag if to export to EPICS
 
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 g_hist
 The list of Histograms.
 
static MonObjList g_monObj
 The list of MonitoringObjects.
 

Detailed Description

DQM Histogram Analysis for PXD Common Modes.

Definition at line 36 of file DQMHistAnalysisPXDCM.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.

Member Function Documentation

◆ addHist()

void 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.

Definition at line 46 of file DQMHistAnalysis.cc.

◆ 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.

◆ 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.

◆ endRun()

virtual void endRun ( void  )
inlinevirtualinherited

This method is called if the current run ends.

Use this method to store information, which should be aggregated over one run.

This method can be implemented by subclasses.

Reimplemented in DQMHistOutputToEPICSModule, DQMHistAnalysisRooFitExampleModule, DQMHistAnalysisPXDTrackChargeModule, DQMHistAnalysisPXDChargeModule, vxdDigitMaskingModule, TrackSetEvaluatorHopfieldNNDEVModule, SVDUnpackerDQMModule, PyModule, DQMHistComparitorModule, DQMHistAnalysisSVDDoseModule, DQMHistAnalysisPXDFitsModule, DQMHistAnalysisPXDERModule, DQMHistAnalysisInputRootFileModule, DQMHistAnalysisExampleFlagsModule, DQMHistAnalysisEpicsExampleModule, TRGRAWDATAModule, TRGTOPWaveformPlotterModule, TRGTOPUnpackerWaveformModule, TRGTOPUnpackerModule, TRGTOPTRD2TTSConverterModule, TRGTOPDQMModule, KLMTriggerModule, TRGGRLUnpackerModule, TRGGRLDQMModule, TRGGRLProjectsModule, TRGGRLModule, TRGGRLMatchModule, TRGGDLUnpackerModule, TRGGDLSummaryModule, TRGGDLDSTModule, TRGGDLDQMModule, TRGGDLModule, TRGECLUnpackerModule, TRGECLTimingCalModule, TRGECLRawdataAnalysisModule, TRGECLQAMModule, TRGECLDQMModule, TRGECLBGTCHitModule, TRGECLModule, TRGECLFAMModule, MCMatcherTRGECLModule, TRGCDCTSStreamModule, TRGCDCTSFUnpackerModule, TRGCDCTSFDQMModule, TRGCDCT3DUnpackerModule, TRGCDCT3DDQMModule, TRGCDCT3DConverterModule, TRGCDCT2DDQMModule, TRGCDCETFUnpackerModule, TRGCDCModule, CDCTriggerNDFinderModule, CDCTriggerNeuroDQMModule, FindletModule< AFindlet >, FindletModule< TrackFinderAutomaton >, FindletModule< FacetCreator >, FindletModule< CKFToCDCFromEclFindlet >, FindletModule< AxialTrackCreatorMCTruth >, FindletModule< AxialStraightTrackFinder >, FindletModule< CKFToCDCFindlet >, FindletModule< CKFToSVDSeedFindlet >, FindletModule< SegmentLinker >, FindletModule< TrackCreatorSegmentTripleAutomaton >, FindletModule< TrackCreatorSegmentPairAutomaton >, FindletModule< SegmentOrienter >, FindletModule< SegmentCreatorFacetAutomaton >, FindletModule< TrackFinderSegmentTripleAutomaton >, FindletModule< SegmentFinderFacetAutomaton >, FindletModule< CKFToSVDFindlet >, FindletModule< TrackRejecter >, FindletModule< SegmentCreatorMCTruth >, FindletModule< TrackFinderCosmics >, FindletModule< TrackExporter >, FindletModule< SuperClusterCreator >, FindletModule< AsicBackgroundLibraryCreator >, FindletModule< HitBasedT0Extractor >, FindletModule< TrackFinderSegmentPairAutomaton >, FindletModule< ClusterPreparer >, FindletModule< AxialTrackFinderHough >, FindletModule< CosmicsTrackMergerFindlet >, FindletModule< TrackOrienter >, FindletModule< TrackLinker >, FindletModule< vxdHoughTracking::VXDHoughTracking >, FindletModule< TrackFinder >, FindletModule< SegmentPairCreator >, FindletModule< MonopoleAxialTrackFinderLegendre >, FindletModule< HitReclaimer >, FindletModule< ClusterRefiner< BridgingWireHitRelationFilter > >, FindletModule< AxialTrackFinderLegendre >, FindletModule< AxialTrackCreatorSegmentHough >, FindletModule< TrackQualityEstimator >, FindletModule< StereoHitFinder >, FindletModule< CKFToPXDFindlet >, FindletModule< WireHitPreparer >, FindletModule< TrackFlightTimeAdjuster >, FindletModule< TrackCreatorSingleSegments >, FindletModule< SegmentRejecter >, FindletModule< SegmentFitter >, FindletModule< SegmentTripleCreator >, FindletModule< SegmentTrackCombiner >, FindletModule< MCVXDCDCTrackMergerFindlet >, FindletModule< TrackCombiner >, FindletModule< MonopoleStereoHitFinder >, FindletModule< DATCONFPGAFindlet >, FindletModule< WireHitBackgroundDetector >, FindletModule< AxialSegmentPairCreator >, FindletModule< WireHitCreator >, FindletModule< TrackQualityAsserter >, FindletModule< MonopoleStereoHitFinderQuadratic >, FindletModule< ClusterBackgroundDetector >, FindletModule< CDCTrackingEventLevelMdstInfoFillerFindlet >, VXDTFTrainingDataCollectorModule, SectorMapBootstrapModule, NoKickCutsEvalModule, VXDSimpleClusterizerModule, TrackFinderVXDAnalizerModule, SecMapTrainerVXDTFModule, SecMapTrainerBaseModule, V0findingPerformanceEvaluationModule, TrackingPerformanceEvaluationModule, HitXPModule, EffPlotsModule, TrackFinderMCTruthRecoTracksModule, SVDROIFinderModule, SVDROIFinderAnalysisModule, SVDROIDQMModule, SPTCvirtualIPRemoverModule, SPTCmomentumSeedRetrieverModule, RT2SPTCConverterModule, PXDROIFinderModule, MuidModule, MCTrackCandClassifierModule, MCV0MatcherModule, GenfitVisModule, ExtModule, TOPXTalkChargeShareSetterModule, TOPWaveformQualityPlotterModule, TOPWaveformFeatureExtractorModule, TOPUnpackerModule, TOPTimeBaseCalibratorModule, TOPTBCComparatorModule, TOPRawDigitConverterModule, TOPPackerModule, TOPNtupleModule, TOPMCTrackMakerModule, TOPLaserCalibratorModule, TOPInterimFENtupleModule, TOPLaserHitSelectorModule, TOPGainEfficiencyCalculatorModule, TOPDQMModule, TOPDoublePulseGeneratorModule, TOPTriggerDigitizerModule, TOPChannelT0MCModule, TOPBackgroundModule, OpticalGunModule, SVDUnpackerModule, SVDTriggerQualityGeneratorModule, SVD3SamplesEmulatorModule, SVDRecoDigitCreatorModule, SVDDataFormatCheckModule, SVDCoGTimeEstimatorModule, SVDClusterizerModule, SVDShaperDigitsFromTracksModule, SVDPerformanceModule, SVDOccupancyAnalysisModule, SVDClusterFilterModule, SVDClusterEvaluationTrueInfoModule, SVDClusterEvaluationModule, SVDB4CommissioningPlotsModule, SVDPackerModule, svdDumpModule, SVDTimeCalibrationsMonitorModule, SVDPositionErrorScaleFactorImporterModule, SVDLocalCalibrationsMonitorModule, SVDLatencyCalibrationModule, SVDHotStripFinderModule, SVDClusterCalibrationsMonitorModule, SVDBackgroundModule, FullSimModule, PIDNtupleModule, MdstPIDModule, KlongValidationModule, DataWriterModule, EventT0DQMModule, CDCDedxValidationModule, CDCDedxDQMModule, Root2BinaryModule, PrintEventRateModule, PrintDataModule, Convert2RawDetModule, PXDPerformanceModule, PXDClustersFromTracksModule, PXDBackgroundModule, AWESOMEBasicModule, MCMatcherKLMClustersModule, KLMUnpackerModule, KLMReconstructorModule, KLMPackerModule, KLMDQM2Module, KLMDQMModule, KLMDigitizerModule, KLMClustersReconstructorModule, KLMClusterEfficiencyModule, EKLMDataCheckerModule, EKLMADCModule, BKLMTrackingModule, BKLMSimHistogrammerModule, BKLMDigitAnalyzerModule, BKLMAnaModule, OverrideGenerationFlagsModule, EvtGenDecayModule, TxModule, RxModule, SeqRootOutputModule, SeqRootInputModule, StatisticsSummaryModule, HistoManagerModule, RandomBarrierModule, EventInfoPrinterModule, SwitchDataStoreModule, SubEventModule, HistoModule, MCMatcherECLClustersModule, ECLWaveformFitModule, ECLUnpackerModule, ECLSplitterN2Module, ECLSplitterN1Module, ECLShowerShapeModule, ECLShowerCorrectorModule, ECLShowerCalibratorModule, ECLPackerModule, ECLLocalRunCalibratorModule, ECLLocalMaximumFinderModule, ECLHitDebugModule, ECLFinalizerModule, ECLDQMEXTENDEDModule, ECLDQMModule, EclDisplayModule, ECLDigitizerPureCsIModule, ECLDigitizerModule, ECLDigitCalibratorModule, ECLDataAnalysisModule, ECLCRFinderModule, ECLCovarianceMatrixModule, ECLClusterPSDModule, ECLChargedPIDDataAnalysisValidationModule, ECLChargedPIDDataAnalysisModule, ECLChargedPIDModule, ECLBackgroundModule, PhysicsObjectsMiraBelleModule, PhysicsObjectsMiraBelleDstModule, PhysicsObjectsMiraBelleDst2Module, PhysicsObjectsDQMModule, DQMHistSnapshotsModule, DQMHistDeltaHistoModule, DQMHistAnalysisTRGGDLModule, DQMHistAnalysisTOPModule, DQMHistAnalysisSVDOnMiraBelleModule, DQMHistAnalysisSVDGeneralModule, DQMHistAnalysisSVDEfficiencyModule, DQMHistAnalysisPlotOnlyModule, DQMHistAnalysisOutputRelayMsgModule, DQMHistAnalysisOutputMonObjModule, DQMHistAnalysisOutputFileModule, DQMHistAnalysisMonObjModule, DQMHistAnalysisMiraBelleModule, DQMHistAnalysisKLM2Module, DQMHistAnalysisKLMModule, DQMHistAnalysisInputSrvModule, DQMHistAnalysisInputPVSrvModule, DQMHistAnalysisInputModule, DQMHistAnalysisHLTMonObjModule, DQMHistAnalysisExampleModule, DQMHistAnalysisEventT0Module, DQMHistAnalysisECLShapersModule, DQMHistAnalysisECLModule, DQMHistAnalysisCDCMonObjModule, DQMHistAnalysisCDCDedxModule, DQMHistAnalysisARICHMonObjModule, DQMHistAnalysisARICHModule, HLTDs2ZMQModule, HLTDQM2ZMQModule, CDCUnpackerModule, CDCRecoTrackFilterModule, CDCPackerModule, CDCDQMModule, cdcDQM7Module, CDCCRTestModule, CDCCosmicAnalysisModule, QcsmonitorStudyModule, QcsmonitorDigitizerModule, PlumeDigitizerModule, PindiodeStudyModule, PinDigitizerModule, TPCStudyModule, TpcDigitizerModule, MicrotpcStudyModule, He3tubeStudyModule, He3DigitizerModule, FANGSStudyModule, FANGSDigitizerModule, DosiStudyModule, DosiDigitizerModule, CsIStudyModule, CsiStudy_v2Module, CsiModule, CsIDigitizerModule, CsiDigitizer_v2Module, ClawsStudyModule, ClawsDigitizerModule, ClawStudyModule, ClawDigitizerModule, BgoStudyModule, BgoDigitizerModule, BeamDigitizerModule, BeamabortStudyModule, ReprocessorModule, NtuplePhase1_v6Module, AnalysisPhase1StudyModule, BGOverlayInputModule, BeamBkgTagSetterModule, BeamBkgMixerModule, BeamBkgHitRateMonitorModule, BeamBkgGeneratorModule, BelleMCOutputModule, B2BIIMdstInputModule, B2BIIConvertMdstModule, B2BIIMCParticlesMonitorModule, ARICHUnpackerModule, ARICHRelateModule, ARICHReconstructorModule, ARICHRawUnpackerModule, ARICHRateCalModule, ARICHPackerModule, ARICHNtupleModule, ARICHMCParticlesModule, ARICHFillHitsModule, ARICHDQMModule, ARICHDigitizerModule, arichBtestModule, CurlTaggerModule, CosmicsAlignmentValidationModule, AlignDQMModule, CalibrationCollectorModule, StorageSerializerModule, StorageDeserializerModule, SeqRootMergerModule, PartialSeqRootReaderModule, Ds2RawFileModule, Rbuf2RbufModule, Rbuf2DsModule, RawInputModule, Raw2DsModule, FastRbuf2DsModule, EvReductionModule, Ds2RbufModule, Ds2RawModule, CertifyParallelModule, SerializerModule, Root2RawModule, MonitorDataCOPPERModule, GenRawSendModule, DeSerializerPXDModule, ElapsedTimeModule, ReceiveEventModule, GetEventFromSocketModule, Ds2SampleModule, TrackAnaModule, MonitorDataModule, DqmHistoManagerModule, TxSocketModule, RxSocketModule, DAQPerfModule, SrsensorModule, QcsmonitorModule, PlumeModule, PindiodeModule, Ph1sustrModule, Ph1bpipeModule, MicrotpcModule, He3tubeModule, FANGSModule, DosiModule, CLAWSModule, ClawModule, CaveModule, BgoModule, BeamabortModule, and ARICHBackgroundModule.

Definition at line 166 of file Module.h.

◆ 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.

◆ event()

void event ( void  )
finaloverridevirtual

This method is called for each event.

use flags set above

use flags set above

Reimplemented from Module.

Definition at line 178 of file DQMHistAnalysisPXDCM.cc.

179 {
180  double all_outside = 0.0, all = 0.0;
181  double all_cm = 0.0;
182  bool error_full_flag = false;
183  bool warn_full_flag = false;
184  bool error_adhoc_flag = false;
185  bool warn_adhoc_flag = false;
186  bool anyupdate = false;
187  if (!m_cCommonMode) return;
188  m_hCommonMode->Reset(); // dont sum up!!!
189 
190  auto leg = new TPaveText(0.1, 0.6, 0.90, 0.95, "NDC");
191  leg->SetFillStyle(0);
192  leg->SetBorderSize(0);
193 
194  for (unsigned int i = 0; i < m_PXDModules.size(); i++) {
195  auto modname = (std::string)m_PXDModules[i];
196  std::string name = "PXDDAQCM_" + modname;
197  // std::replace( name.begin(), name.end(), '.', '_');
198 
199  TH1* hh1 = findHist(name);
200  if (hh1 == NULL) {
201  hh1 = findHist(m_histogramDirectoryName, name);
202  }
203  if (hh1) {
204  double current_full = 0.0;
205  double outside_full = 0.0;
206 
207  auto nevent = hh1->GetBinContent(0); // misuse underflow as event counter
208  double scale = nevent - m_hCommonModeOld->GetBinContent(i + 1, 0); // number of new events for delta
209  bool update = scale > m_minEntries ;
210  anyupdate |= update;
211  if (update) m_hCommonModeOld->SetBinContent(i + 1, 0, nevent);
212  if (scale > 0) scale = 1.0 / scale;
213  else scale = 1.; // worst case, no events at run start
214 
215  auto& gm = m_masked_gates[m_PXDModules[i]];
216  // We loop over a 2d histogram!
217  // loop CM values
218  double dhpc = 0.0;
219  for (int bin = 1; bin <= 64; bin++) { // including CM63!!!
220  // loop gates*asics
221  double v = 0;
222  for (int gate = 0; gate < 192; gate++) {
223  // attention, gate is not bin nr!
224  if (std::find(gm.begin(), gm.end(), gate) == gm.end()) {
225  v += hh1->GetBinContent(hh1->GetBin(gate + 1 + 192 * 0, bin)) +
226  hh1->GetBinContent(hh1->GetBin(gate + 1 + 192 * 1, bin)) +
227  hh1->GetBinContent(hh1->GetBin(gate + 1 + 192 * 2, bin)) +
228  hh1->GetBinContent(hh1->GetBin(gate + 1 + 192 * 3, bin));
229  }
230  }
231  m_hCommonMode->SetBinContent(i + 1, bin, v); // attention, mixing bin nr and index
232  // integration intervalls depend on CM default value, this seems to be agreed =10
233  // FIXME currently we have to much noise below the line ... thus excluding this to avoid false alarms
234  // outside_full += hh1->Integral(1 /*0*/, 5); /// FIXME we exclude bin 0 as we use it for debugging/timing pixels
235  // attention, n bins!
236  // we integrate up including value 62 (cm overflow), but not 63 (fifo full)
237  if (bin == 63 + 1) { // CM63
238  dhpc += v;
239  } else { // excluding CM63
240  current_full += v;
241  if (bin > m_upperLineFull + 1) outside_full += v;
242  }
243  if (nevent < m_minEntries) {
244  m_hCommonModeDelta->SetBinContent(i + 1, bin, v * scale); // attention, mixing bin nr and index
245  } else if (update) {
246  auto old = m_hCommonModeOld->GetBinContent(i + 1, bin); // attention, mixing bin nr and index
247  m_hCommonModeDelta->SetBinContent(i + 1, bin, (v - old)*scale); // attention, mixing bin nr and index
248  m_hCommonModeOld->SetBinContent(i + 1, bin, v); // attention, mixing bin nr and index
249  }
250  }
251 
252  all_outside += outside_full;
253  all += current_full;
254  all_cm += dhpc;
255  if (current_full > 1) {
256  error_full_flag |= (outside_full / current_full > m_errorOutsideFull);
257  warn_full_flag |= (outside_full / current_full > m_warnOutsideFull);
258  }
259 
260  if (update) {
261  Double_t mean_adhoc = 0.;
262  Double_t entries_adhoc = 0.;
263  Double_t outside_adhoc = 0.;
264 
265  // Attention, Bins
266  // we do not need to re-scale it as the scale is the same for all bins
267  for (int cm_y = 0; cm_y < m_upperLineAdhoc; cm_y++) {
268  auto v = m_hCommonModeDelta->GetBinContent(m_hCommonModeDelta->GetBin(i + 1, cm_y + 1));
269  entries_adhoc += v;
270  mean_adhoc += v * (cm_y + 1);
271  }
272  // Attention, Bins
273  // We ignore CM63 in outside and overall count
274  for (int cm_y = m_upperLineAdhoc; cm_y < 63; cm_y++) {
275  auto v = m_hCommonModeDelta->GetBinContent(m_hCommonModeDelta->GetBin(i + 1, cm_y + 1));
276  entries_adhoc += v;
277  outside_adhoc += v;
278  }
279  if (entries_adhoc > 0 && scale < 1e-3) { // ignore modules with minimum events
280  // scale <1e-3 == >1000 events
281  mean_adhoc /= entries_adhoc; // calculate mean
282  auto warn_tmp_m = fabs(10.0 - mean_adhoc) > m_warnMeanAdhoc;
283  auto err_tmp_m = fabs(10.0 - mean_adhoc) > m_errorMeanAdhoc;
284  auto warn_tmp_os = outside_adhoc / entries_adhoc > m_warnOutsideAdhoc;
285  auto err_tmp_os = outside_adhoc / entries_adhoc > m_errorOutsideAdhoc;
286  warn_adhoc_flag |= warn_tmp_m || warn_tmp_os;
287  error_adhoc_flag |= err_tmp_m || err_tmp_os;
288 
289  if (warn_tmp_m || err_tmp_m) {
290  TString tmp;
291  tmp.Form("%s: Mean %f", modname.c_str(), mean_adhoc);
292  leg->AddText(tmp);
293  B2INFO(name << " Mean " << mean_adhoc << " " << warn_tmp_m << err_tmp_m);
294  }
295  if (warn_tmp_os || err_tmp_os) {
296  TString tmp;
297  tmp.Form("%s: Outside %f %%", modname.c_str(), 100. * outside_adhoc / entries_adhoc);
298  leg->AddText(tmp);
299  B2INFO(name << " Outside " << outside_adhoc / entries_adhoc << " (" << outside_adhoc << "/" << entries_adhoc << ") " << warn_tmp_os
300  << err_tmp_os);
301  }
302  m_monObj->setVariable(("cm_" + modname).c_str(), mean_adhoc);
303 #ifdef _BELLE2_EPICS
304  if (m_useEpics) {
305  auto my = mychid_mean[m_PXDModules[i]];
306  if (my) SEVCHK(ca_put(DBR_DOUBLE, my, (void*)&mean_adhoc), "ca_set failure");
307  }
308 #endif
309  }
310  }
311  }
312  }
313 
314  int status = 0;
315  {
316  m_cCommonMode->cd();
317  // not enough Entries
318  if (all < 100.) {
319  m_cCommonMode->Pad()->SetFillColor(kGray);// Magenta or Gray
320  status = 0; // default
321  } else {
323  if (all_outside / all > m_errorOutsideFull || error_full_flag) {
324  m_cCommonMode->Pad()->SetFillColor(kRed);// Red
325  status = 4;
326  } else if (all_outside / all > m_warnOutsideFull || warn_full_flag) {
327  m_cCommonMode->Pad()->SetFillColor(kYellow);// Yellow
328  status = 3;
329  } else if (all_outside == 0. /*&& all_cm == 0.*/) {
330  // do not react on all_cm, we better monitor it elsewhere for clearity
331  m_cCommonMode->Pad()->SetFillColor(kGreen);// Green
332  status = 2;
333  } else { // between 0 and 50 ...
334  m_cCommonMode->Pad()->SetFillColor(kWhite);// White
335  status = 1;
336  }
337  }
338 
339  if (m_hCommonMode) {
340  m_hCommonMode->Draw("colz");
341  m_line1->Draw();
342  m_lineA->Draw();
343  }
344 
345  auto tt = new TLatex(5.5, 3, "1.3.2 Module is excluded, please ignore");
346  tt->SetTextAngle(90);// Rotated
347  tt->SetTextAlign(12);// Centered
348  tt->Draw();
349 
350  m_cCommonMode->Modified();
351  m_cCommonMode->Update();
352  }
353 
354  {
355  int status_adhoc = 0;
356  m_cCommonModeDelta->cd();
357  // not enough Entries
358 
359  if (all < 100.) { // delta cannot be more than all
360  m_cCommonModeDelta->Pad()->SetFillColor(kGray);// Magenta or Gray
361  status_adhoc = 0; // default
362  } else {
364  if (error_adhoc_flag) {
365  m_cCommonModeDelta->Pad()->SetFillColor(kRed);// Red
366  status_adhoc = 4;
367  } else if (warn_adhoc_flag) {
368  m_cCommonModeDelta->Pad()->SetFillColor(kYellow);// Yellow
369  status_adhoc = 3;
370  } else {
371  m_cCommonModeDelta->Pad()->SetFillColor(kGreen);// Green
372  status_adhoc = 2;
373  /* } else { // between 0 and 50 ...
374  m_cCommonModeDelta->Pad()->SetFillColor(kWhite);// White
375  status_adhoc = 1;*/
376  }
377  }
378 #ifdef _BELLE2_EPICS
379  if (m_useEpics && anyupdate) SEVCHK(ca_put(DBR_INT, mychid[3], (void*)&status_adhoc), "ca_set failure");
380 #endif
381  if (m_hCommonModeDelta) {
382  m_hCommonModeDelta->Draw("colz");
383  leg->Draw();
384  m_line1->Draw();
385  m_lineA->Draw();
386  }
387 
388  // keep this commented code as we may have excluded modules in phase4
389 // auto tt = new TLatex(5.5, 3, "1.3.2 Module is excluded, please ignore");
390 // tt->SetTextAngle(90);// Rotated
391 // tt->SetTextAlign(12);// Centered
392 // tt->Draw();
393 
394  m_cCommonModeDelta->Modified();
395  m_cCommonModeDelta->Update();
396  }
397 
398 #ifdef _BELLE2_EPICS
399  if (m_useEpics) {
400  double data = all > 0 ? (all_outside / all) : 0;
401  double data2 = all > 0 ? (all_cm / all) : 0;
402  SEVCHK(ca_put(DBR_DOUBLE, mychid[0], (void*)&data), "ca_set failure");
403  SEVCHK(ca_put(DBR_INT, mychid[1], (void*)&status), "ca_set failure");
404  SEVCHK(ca_put(DBR_DOUBLE, mychid[2], (void*)&data2), "ca_set failure");
405  SEVCHK(ca_pend_io(5.0), "ca_pend_io failure");
406  }
407 #endif
408 }
static TH1 * findHist(const std::string &histname)
Find histogram.
int m_minEntries
Update entry intervall.
double m_warnMeanAdhoc
warn level for mean adhoc plot
double m_errorMeanAdhoc
error level for mean adhoc plot
double m_warnOutsideFull
warn level for outside fraction
TH2D * m_hCommonModeOld
histogram covering all modules
TLine * m_lineA
Line in the Canvas to guide the eye.
MonitoringObject * m_monObj
Monitoring Object.
std::map< VxdID, std::vector< int > > m_masked_gates
Module wise gate masking in CM plot and alarm.
TH2D * m_hCommonModeDelta
histogram covering all modules
std::vector< VxdID > m_PXDModules
IDs of all PXD Modules to iterate over.
std::string m_histogramDirectoryName
name of histogram directory
int m_upperLineAdhoc
threshold level/line for outside fraction
double m_errorOutsideAdhoc
error level for outside fraction
bool m_useEpics
flag if to export to EPICS
TLine * m_line1
Line in the Canvas to guide the eye.
TH2D * m_hCommonMode
histogram covering all modules
int m_upperLineFull
threshold level/line for outside fraction
double m_errorOutsideFull
error level for outside fraction
double m_warnOutsideAdhoc
warn level for outside fraction
void setVariable(const std::string &var, float val, float upErr=-1., float dwErr=-1)
set value to float variable (new variable is made if not yet existing)

◆ 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 71 of file DQMHistAnalysis.cc.

◆ findHist() [1/3]

TH1 * findHist ( const std::string &  dirname,
const std::string &  histname 
)
staticinherited

Find histogram.

Parameters
dirnameThe name of the directory.
histnameThe name of the histogram.
Returns
The found histogram, or nullptr if not found.

Definition at line 132 of file DQMHistAnalysis.cc.

◆ findHist() [2/3]

TH1 * findHist ( const std::string &  histname)
staticinherited

Find histogram.

Parameters
histnameThe name of the histogram.
Returns
The found histogram, or nullptr if not found.

Definition at line 85 of file DQMHistAnalysis.cc.

◆ findHist() [3/3]

TH1 * findHist ( const TDirectory *  histdir,
const TString &  histname 
)
staticinherited

Find histogram.

Parameters
histdirThe TDirectory of the directory.
histnameThe name of the histogram.
Returns
The found histogram, or nullptr if not found.

Definition at line 140 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 154 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.

◆ 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.

◆ 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, and RootInputModule.

Definition at line 134 of file Module.h.

◆ getHistList()

static const HistList& getHistList ( )
inlinestaticinherited

Get the list of the histograms.

Returns
The list of the histograms.

Definition at line 61 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

Definition at line 55 of file DQMHistAnalysis.cc.

◆ getMonObjList()

static const MonObjList& getMonObjList ( )
inlinestaticinherited

Get the list of MonitoringObjects.

Returns
The list of the MonitoringObjects.

Definition at line 67 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.

◆ 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.

◆ 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.

◆ 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.

◆ initialize()

void initialize ( void  )
finaloverridevirtual

Initializer.

FIXME were to put the lines depends ...

Reimplemented from Module.

Definition at line 71 of file DQMHistAnalysisPXDCM.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.

◆ 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.

◆ 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.

◆ 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.


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