Description: Product to represent DQM data in LuminosityBlocks and Runs. The MonitorElements are represented by a simple struct that only contains the required fields to represent a ME. The only opration allowed on these objects is merging, which is a important part of the DQM functionality and should be handled by EDM. Once a MonitorElement enters this product, it is immutable. During event processing, the ROOT objects need to be protectd by locks. These locks are not present in this structure: Any potential modification needs to be done as a copy-on-write and create a new MonitorElement. The file IO for these objects should still be handled by the DQMIO classes (DQMRootOutputModule and DQMRootSource), so persistent=false would be ok for this class. However, if we can get EDM IO cheaply, it could be useful to handle corner cases like MEtoEDM more cleanly.
Usage: This product should only be handled by the DQMStore, which provides access to the MEs inside. The DQMStore will wrap the MonitorElementData in real MonitorElements, which allow various operations on the underlying histograms, depending on the current stage of processing: In the RECO step, only filling is allowed, while in HARVESTING, the same data will be wrapped in a MonitorElement that also allows access to the ROOT objects. We only use pointers to MonitorElementData, to allow replacing it with a variable-size templated version later. That could eliminate one level of indirection in accessing histograms.
Definition at line 184 of file MonitorElementCollection.h.