CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | Static Private Attributes
PixelLumiDQM Class Reference

#include <PixelLumiDQM.h>

Inheritance diagram for PixelLumiDQM:
one::DQMEDAnalyzer< edm::one::WatchLuminosityBlocks > one::dqmimplementation::DQMBaseClass< T... >

Classes

class  PixelClusterCount
 

Public Member Functions

 PixelLumiDQM (const edm::ParameterSet &)
 
 ~PixelLumiDQM () override
 
- Public Member Functions inherited from one::DQMEDAnalyzer< edm::one::WatchLuminosityBlocks >
 DQMEDAnalyzer ()=default
 
 DQMEDAnalyzer (DQMEDAnalyzer< T... > const &)=delete
 
 DQMEDAnalyzer (DQMEDAnalyzer< T... > &&)=delete
 
 ~DQMEDAnalyzer () override=default
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Static Public Attributes

static double CM2_TO_NANOBARN = 1.0 / 1.e-33
 
static double FREQ_ORBIT = 11245.5
 
static const unsigned int lastBunchCrossing = 3564
 
static double rXSEC_PIXEL_CLUSTER = 9.4e-24
 
static double rXSEC_PIXEL_CLUSTER_UNC = 0.119e-24
 
static double SECONDS_PER_LS = double(0x40000) / double(FREQ_ORBIT)
 
static double XSEC_PIXEL_CLUSTER = 10.08e-24
 
static double XSEC_PIXEL_CLUSTER_UNC = 0.17e-24
 

Private Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void beginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
unsigned int calculateBunchMask (MonitorElement *, std::vector< bool > &)
 
unsigned int calculateBunchMask (std::vector< float > &, unsigned int, std::vector< bool > &)
 
void dqmBeginRun (edm::Run const &, edm::EventSetup const &) override
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) override
 
void endRun (edm::Run const &, edm::EventSetup const &) override
 

Private Attributes

std::vector< bool > bunchTriggerMask
 
UInt_t fBXNo
 
Double_t fChi2
 
std::vector< uint32_t > fDeadModules
 
UInt_t fEvtNo
 
unsigned int fFillNumber
 
MonitorElementfHistBunchCrossings
 
MonitorElementfHistBunchCrossingsLastLumi
 
MonitorElementfHistClusByLS
 
MonitorElementfHistClusterCountByBxCumulative
 
MonitorElementfHistClusterCountByBxLastLumi
 
std::map< std::string, MonitorElement * > fHistContainerThisRun
 
MonitorElementfHistnBClusVsLS [3]
 
MonitorElementfHistnFMClusVsLS [2]
 
MonitorElementfHistnFPClusVsLS [2]
 
MonitorElementfHistRecordedByBxCumulative
 
MonitorElementfHistRecordedByBxLastLumi
 
MonitorElementfHistTotalRecordedLumiByLS
 
unsigned int filledAndUnmaskedBunches
 
bool fIncludePixelClusterInfo
 
bool fIncludePixelQualCheckHistos
 
bool fIncludeVertexInfo
 
MonitorElementfIntActiveCrossingsFromDB
 
std::string fLogFileName_
 
UInt_t fLSNo
 
double fMinClusterCharge
 
int fMinPixelsPerCluster
 
Double_t fNdof
 
std::map< int, PixelClusterCountfNumPixelClusters
 
UInt_t fNumTrkPerVtx
 
UInt_t fNumVtx
 
UInt_t fNumVtxGood
 
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > fPixelClusterLabel
 
int fResetIntervalInLumiSections
 
UInt_t fRunNo
 
UInt_t fTimestamp
 
Double_t fVtxX
 
Double_t fVtxY
 
Double_t fVtxZ
 
std::ofstream logFile_
 
bool useInnerBarrelLayer
 

Static Private Attributes

static size_t kNumDisks = 12
 
static size_t kNumLayers = 5
 
static size_t kOffsetDisks = 4
 
static size_t kOffsetLayers = 0
 

Detailed Description

PixelLumi/PixelLumiDQM/plugins/PixelLumiDQM.h

Description: DQM Module producing Pixel Cluster Count Luminosity

Implementation notes: 1) Filling scheme is put in by 'hand' for now. Can obtain it from the cluster count but need higher rate in trigger; Best would be to have filling scheme in the DB. 2) Afterglow correction is put in by hand. 3) Currently barrel layer 0 is excluded, but a version using all pixel layers and disks is also in place. 4) A stable beam flag should be obtained from the DB to turn on actual checks. (Pixel Lumi does not make sense outside stable beams.) 5) Need a top module to correlate the info from the three trigger categories. NB: at present the module only uses the ZeroBias trigger providing about 85 Hz.

Definition at line 40 of file PixelLumiDQM.h.

Constructor & Destructor Documentation

PixelLumiDQM::PixelLumiDQM ( const edm::ParameterSet iConfig)
explicit

Definition at line 48 of file PixelLumiDQM.cc.

References fDeadModules, fIncludePixelClusterInfo, fIncludePixelQualCheckHistos, fMinClusterCharge, fMinPixelsPerCluster, and edm::ParameterSet::getUntrackedParameter().

50  iConfig.getUntrackedParameter<edm::InputTag>("pixelClusterLabel", edm::InputTag("siPixelClusters")))),
51  fIncludePixelClusterInfo(iConfig.getUntrackedParameter<bool>("includePixelClusterInfo", true)),
52  fIncludePixelQualCheckHistos(iConfig.getUntrackedParameter<bool>("includePixelQualCheckHistos", true)),
53  fResetIntervalInLumiSections(iConfig.getUntrackedParameter<int>("resetEveryNLumiSections", 1)),
54  fDeadModules(iConfig.getUntrackedParameter<std::vector<uint32_t>>("deadModules", std::vector<uint32_t>())),
55  fMinPixelsPerCluster(iConfig.getUntrackedParameter<int>("minNumPixelsPerCluster", 0)),
56  fMinClusterCharge(iConfig.getUntrackedParameter<double>("minChargePerCluster", 0)),
59  useInnerBarrelLayer(iConfig.getUntrackedParameter<bool>("useInnerBarrelLayer", false)),
60  fLogFileName_(iConfig.getUntrackedParameter<std::string>("logFileName", "/tmp/pixel_lumi.txt")) {
61  edm::LogInfo("Configuration") << "PixelLumiDQM looking for pixel clusters in '"
62  << iConfig.getUntrackedParameter<edm::InputTag>("pixelClusterLabel",
63  edm::InputTag("siPixelClusters"))
64  << "'";
65  edm::LogInfo("Configuration") << "PixelLumiDQM storing pixel cluster info? " << fIncludePixelClusterInfo;
66  edm::LogInfo("Configuration") << "PixelLumiDQM storing pixel cluster quality check histograms? "
68 
69  if (fDeadModules.empty()) {
70  edm::LogInfo("Configuration") << "No pixel modules specified to be ignored";
71  } else {
72  edm::LogInfo("Configuration") << fDeadModules.size() << " pixel modules specified to be ignored:";
73  for (std::vector<uint32_t>::const_iterator it = fDeadModules.begin(); it != fDeadModules.end(); ++it) {
74  edm::LogInfo("Configuration") << " " << *it;
75  }
76  }
77  edm::LogInfo("Configuration") << "Ignoring pixel clusters with less than " << fMinPixelsPerCluster << " pixels";
78  edm::LogInfo("Configuration") << "Ignoring pixel clusters with charge less than " << fMinClusterCharge;
79 }
bool fIncludePixelQualCheckHistos
Definition: PixelLumiDQM.h:135
T getUntrackedParameter(std::string const &, T const &) const
unsigned int filledAndUnmaskedBunches
Definition: PixelLumiDQM.h:168
static const unsigned int lastBunchCrossing
Definition: PixelLumiDQM.h:55
std::vector< uint32_t > fDeadModules
Definition: PixelLumiDQM.h:142
int fResetIntervalInLumiSections
Definition: PixelLumiDQM.h:136
bool useInnerBarrelLayer
Definition: PixelLumiDQM.h:169
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > fPixelClusterLabel
Definition: PixelLumiDQM.h:116
double fMinClusterCharge
Definition: PixelLumiDQM.h:150
std::vector< bool > bunchTriggerMask
Definition: PixelLumiDQM.h:167
bool fIncludePixelClusterInfo
Definition: PixelLumiDQM.h:134
std::string fLogFileName_
Definition: PixelLumiDQM.h:171
int fMinPixelsPerCluster
Definition: PixelLumiDQM.h:147
PixelLumiDQM::~PixelLumiDQM ( )
override

Definition at line 81 of file PixelLumiDQM.cc.

81 {}

Member Function Documentation

void PixelLumiDQM::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 89 of file PixelLumiDQM.cc.

References edmNew::DetSetVector< T >::begin(), edm::EventBase::bunchCrossing(), ALCARECOTkAlJpsiMuMu_cff::charge, TrackerGeometry::dets(), edmNew::DetSetVector< T >::end(), edm::EventID::event(), fBXNo, fDeadModules, fEvtNo, fHistBunchCrossings, fHistBunchCrossingsLastLumi, fHistContainerThisRun, MonitorElement::Fill(), fIncludePixelClusterInfo, fIncludePixelQualCheckHistos, spr::find(), fLSNo, fMinClusterCharge, fMinPixelsPerCluster, fNumPixelClusters, fPixelClusterLabel, fRunNo, fTimestamp, edm::EventSetup::get(), edm::Event::getByToken(), edm::Event::getLuminosityBlock(), mps_fire::i, edm::EventBase::id(), TrackerGeometry::idToDet(), GeomDetEnumerators::isTrackerPixel(), kNumDisks, kNumLayers, kOffsetDisks, kOffsetLayers, PixelBarrelNameUpgrade::layerName(), Topology::localPosition(), edm::LuminosityBlockBase::luminosityBlock(), PixelEndcapNameUpgrade::mI, PixelEndcapNameUpgrade::mO, PV3DBase< T, PVType, FrameType >::phi(), PixelEndcapNameUpgrade::pI, PixelSubdetector::PixelBarrel, HiRegitMuonDetachedTripletStep_cff::pixelClusters, PixelSubdetector::PixelEndcap, PixelEndcapNameUpgrade::pO, edm::EventID::run(), findQualityFiles::size, PixelGeomDetUnit::specificTopology(), mathSSE::sqrt(), AlCaHLTBitMon_QueryRunRegistry::string, DetId::subdetId(), GeomDet::surface(), edm::EventBase::time(), Surface::toGlobal(), edm::Timestamp::unixTime(), x, PV3DBase< T, PVType, FrameType >::x(), y, PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

89  {
90  // Collect all bookkeeping information.
91  fRunNo = iEvent.id().run();
92  fEvtNo = iEvent.id().event();
94  fBXNo = iEvent.bunchCrossing();
95  fTimestamp = iEvent.time().unixTime();
98  // This serves as event counter to compute luminosity from cluster counts.
99  std::map<int, PixelClusterCount>::iterator it = fNumPixelClusters.find(fBXNo);
100  if (it == fNumPixelClusters.end())
101  fNumPixelClusters[fBXNo] = PixelClusterCount();
102 
104  // Find tracker geometry.
106  iSetup.get<TrackerDigiGeometryRecord>().get(trackerGeo);
107 
108  // Find pixel clusters.
110  iEvent.getByToken(fPixelClusterLabel, pixelClusters);
111 
112  // Loop over entire tracker geometry.
113  for (TrackerGeometry::DetContainer::const_iterator i = trackerGeo->dets().begin(); i != trackerGeo->dets().end();
114  ++i) {
115  // See if this is a pixel unit(?).
116 
117  if (GeomDetEnumerators::isTrackerPixel((*i)->subDetector())) {
118  DetId detId = (*i)->geographicalId();
119  // Find all clusters on this detector module.
120  edmNew::DetSetVector<SiPixelCluster>::const_iterator iSearch = pixelClusters->find(detId);
121  if (iSearch != pixelClusters->end()) {
122  // Count the number of clusters with at least a minimum
123  // number of pixels per cluster and at least a minimum charge.
124  size_t numClusters = 0;
125  for (edmNew::DetSet<SiPixelCluster>::const_iterator itClus = iSearch->begin(); itClus != iSearch->end();
126  ++itClus) {
127  if ((itClus->size() >= fMinPixelsPerCluster) && (itClus->charge() >= fMinClusterCharge)) {
128  ++numClusters;
129  }
130  }
131  // DEBUG DEBUG DEBUG
132  assert(numClusters <= iSearch->size());
133  // DEBUG DEBUG DEBUG end
134 
135  // Add up the cluster count based on the position of this detector
136  // element.
137  if (detId.subdetId() == PixelSubdetector::PixelBarrel) {
139  int layer = detName.layerName() - kOffsetLayers;
140  fNumPixelClusters[fBXNo].numB.at(layer) += numClusters;
141  fNumPixelClusters[fBXNo].dnumB.at(layer) += sqrt(numClusters);
142  } else {
143  // DEBUG DEBUG DEBUG
144  assert(detId.subdetId() == PixelSubdetector::PixelEndcap);
145  // DEBUG DEBUG DEBUG end
146 
148  PixelEndcapNameUpgrade::HalfCylinder halfCylinder = detName.halfCylinder();
149  int disk = detName.diskName() - kOffsetDisks;
150  switch (halfCylinder) {
153  fNumPixelClusters[fBXNo].numFM.at(disk) += numClusters;
154  fNumPixelClusters[fBXNo].dnumFM.at(disk) += sqrt(numClusters);
155  break;
158  fNumPixelClusters[fBXNo].numFP.at(disk) += numClusters;
159  fNumPixelClusters[fBXNo].dnumFP.at(disk) += sqrt(numClusters);
160  break;
161  default:
162  assert(false);
163  break;
164  }
165  }
166  }
167  }
168  }
169  }
170  // ----------
171 
172  // Fill some pixel cluster quality check histograms if requested.
174  // Find tracker geometry.
176  iSetup.get<TrackerDigiGeometryRecord>().get(trackerGeo);
177 
178  // Find pixel clusters.
180  iEvent.getByToken(fPixelClusterLabel, pixelClusters);
181 
182  bool filterDeadModules = (!fDeadModules.empty());
183  std::vector<uint32_t>::const_iterator deadModulesBegin = fDeadModules.begin();
184  std::vector<uint32_t>::const_iterator deadModulesEnd = fDeadModules.end();
185 
186  // Loop over entire tracker geometry.
187  for (TrackerGeometry::DetContainer::const_iterator i = trackerGeo->dets().begin(); i != trackerGeo->dets().end();
188  ++i) {
189  // See if this is a pixel module.
190  if (GeomDetEnumerators::isTrackerPixel((*i)->subDetector())) {
191  DetId detId = (*i)->geographicalId();
192 
193  // Skip this module if it's on the list of modules to be ignored.
194  if (filterDeadModules && find(deadModulesBegin, deadModulesEnd, detId()) != deadModulesEnd) {
195  continue;
196  }
197 
198  // Find all clusters in this module.
199  edmNew::DetSetVector<SiPixelCluster>::const_iterator iSearch = pixelClusters->find(detId);
200 
201  // Loop over all clusters in this module.
202  if (iSearch != pixelClusters->end()) {
203  for (edmNew::DetSet<SiPixelCluster>::const_iterator clus = iSearch->begin(); clus != iSearch->end(); ++clus) {
204  if ((clus->size() >= fMinPixelsPerCluster) && (clus->charge() >= fMinClusterCharge)) {
205  PixelGeomDetUnit const *theGeomDet = dynamic_cast<PixelGeomDetUnit const *>(trackerGeo->idToDet(detId));
206  PixelTopology const *topol = &(theGeomDet->specificTopology());
207  double x = clus->x();
208  double y = clus->y();
209  LocalPoint clustLP = topol->localPosition(MeasurementPoint(x, y));
210  GlobalPoint clustGP = theGeomDet->surface().toGlobal(clustLP);
211  double charge = clus->charge() / 1.e3;
212  int size = clus->size();
213 
214  if (detId.subdetId() == PixelSubdetector::PixelBarrel) {
216  unsigned int layer = detName.layerName() - kOffsetLayers;
217  if (layer < kNumLayers) {
218  std::string histName;
219  histName = "clusPosBarrel" + std::to_string(layer);
220  fHistContainerThisRun[histName]->Fill(clustGP.z(), clustGP.phi());
221  histName = "clusChargeBarrel" + std::to_string(layer);
222  fHistContainerThisRun[histName]->Fill(iEvent.bunchCrossing(), charge);
223  histName = "clusSizeBarrel" + std::to_string(layer);
224  fHistContainerThisRun[histName]->Fill(iEvent.bunchCrossing(), size);
225  } else {
226  edm::LogWarning("pixelLumi") << "higher layer number, " << layer << ", than layers";
227  }
228  } else {
229  // DEBUG DEBUG DEBUG
230  assert(detId.subdetId() == PixelSubdetector::PixelEndcap);
231  // DEBUG DEBUG DEBUG end
232 
234  unsigned int disk = detName.diskName() - kOffsetDisks;
235  if (disk < kNumDisks) {
236  std::string histName;
237  histName = "clusPosEndCap" + std::to_string(disk);
238  fHistContainerThisRun[histName]->Fill(clustGP.x(), clustGP.y());
239  histName = "clusChargeEndCap" + std::to_string(disk);
240  fHistContainerThisRun[histName]->Fill(iEvent.bunchCrossing(), charge);
241  histName = "clusSizeEndCap" + std::to_string(disk);
242  fHistContainerThisRun[histName]->Fill(iEvent.bunchCrossing(), size);
243  } else {
244  edm::LogWarning("pixelLumi")
245  << "higher disk number, " << disk << ", than disks," << kNumDisks << std::endl;
246  }
247  }
248  }
249  }
250  }
251  }
252  }
253  }
254 }
RunNumber_t run() const
Definition: EventID.h:39
size
Write out results.
bool fIncludePixelQualCheckHistos
Definition: PixelLumiDQM.h:135
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:106
EventNumber_t event() const
Definition: EventID.h:41
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
const_iterator end(bool update=false) const
std::vector< uint32_t > fDeadModules
Definition: PixelLumiDQM.h:142
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
static size_t kOffsetDisks
Definition: PixelLumiDQM.h:79
Geom::Phi< T > phi() const
Definition: PV3DBase.h:69
T y() const
Definition: PV3DBase.h:63
int bunchCrossing() const
Definition: EventBase.h:64
data_type const * const_iterator
Definition: DetSetNew.h:30
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:20
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:42
void Fill(long long x)
LuminosityBlockNumber_t luminosityBlock() const
const DetContainer & dets() const override
Returm a vector of all GeomDet (including all GeomDetUnits)
Measurement2DPoint MeasurementPoint
Measurement points are two-dimensional by default.
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > fPixelClusterLabel
Definition: PixelLumiDQM.h:116
T sqrt(T t)
Definition: SSEVec.h:18
T z() const
Definition: PV3DBase.h:64
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:41
unsigned int unixTime() const
Time in seconds since January 1, 1970.
Definition: Timestamp.h:46
LuminosityBlock const & getLuminosityBlock() const
Definition: Event.h:97
std::map< std::string, MonitorElement * > fHistContainerThisRun
Definition: PixelLumiDQM.h:138
double fMinClusterCharge
Definition: PixelLumiDQM.h:150
Definition: DetId.h:18
bool fIncludePixelClusterInfo
Definition: PixelLumiDQM.h:134
MonitorElement * fHistBunchCrossings
Definition: PixelLumiDQM.h:158
MonitorElement * fHistBunchCrossingsLastLumi
Definition: PixelLumiDQM.h:159
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
UInt_t fTimestamp
Definition: PixelLumiDQM.h:122
virtual LocalPoint localPosition(const MeasurementPoint &) const =0
static size_t kNumLayers
Definition: PixelLumiDQM.h:76
edm::EventID id() const
Definition: EventBase.h:59
std::map< int, PixelClusterCount > fNumPixelClusters
Definition: PixelLumiDQM.h:131
int fMinPixelsPerCluster
Definition: PixelLumiDQM.h:147
T get() const
Definition: EventSetup.h:71
const TrackerGeomDet * idToDet(DetId) const override
static size_t kOffsetLayers
Definition: PixelLumiDQM.h:78
static size_t kNumDisks
Definition: PixelLumiDQM.h:77
T x() const
Definition: PV3DBase.h:62
int layerName() const
layer id
edm::Timestamp time() const
Definition: EventBase.h:60
bool isTrackerPixel(GeomDetEnumerators::SubDetector m)
const_iterator begin(bool update=false) const
void PixelLumiDQM::beginLuminosityBlock ( edm::LuminosityBlock const &  lumiBlock,
edm::EventSetup const &   
)
overrideprivate

Definition at line 387 of file PixelLumiDQM.cc.

References fHistBunchCrossingsLastLumi, fHistClusterCountByBxLastLumi, fHistRecordedByBxLastLumi, fResetIntervalInLumiSections, eostools::ls(), edm::LuminosityBlockAuxiliary::luminosityBlock(), edm::LuminosityBlock::luminosityBlockAuxiliary(), and MonitorElement::Reset().

387  {
388  // Only reset and fill every fResetIntervalInLumiSections (default is 1 LS)
389  // Return unless the PREVIOUS LS was at the right modulo value
390  // (e.g. is resetinterval = 5 the rest will only be executed at LS=6
391  // NB: reset is done here so the histograms by LS are sent before resetting.
392  // NB: not being used for now since default is 1 LS. There is a bug here.
393 
394  unsigned int ls = lumiBlock.luminosityBlockAuxiliary().luminosityBlock();
395 
396  if ((ls - 1) % fResetIntervalInLumiSections == 0) {
400  }
401 }
int fResetIntervalInLumiSections
Definition: PixelLumiDQM.h:136
MonitorElement * fHistClusterCountByBxLastLumi
Definition: PixelLumiDQM.h:160
void Reset()
reset ME (ie. contents, errors, etc)
def ls(path, rec=False)
Definition: eostools.py:349
MonitorElement * fHistBunchCrossingsLastLumi
Definition: PixelLumiDQM.h:159
MonitorElement * fHistRecordedByBxLastLumi
Definition: PixelLumiDQM.h:164
void PixelLumiDQM::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  run,
edm::EventSetup const &   
)
overrideprivate

Definition at line 256 of file PixelLumiDQM.cc.

References DQMStore::IBooker::book1D(), DQMStore::IBooker::book2D(), fHistBunchCrossings, fHistBunchCrossingsLastLumi, fHistClusByLS, fHistClusterCountByBxCumulative, fHistClusterCountByBxLastLumi, fHistContainerThisRun, fHistnBClusVsLS, fHistnFMClusVsLS, fHistnFPClusVsLS, fHistRecordedByBxCumulative, fHistRecordedByBxLastLumi, fHistTotalRecordedLumiByLS, fIncludePixelQualCheckHistos, printsummarytable::folder, mps_fire::i, edm::RunBase::id(), crabWrapper::key, kNumDisks, kNumLayers, lastBunchCrossing, dataset::name, Geom::pi(), edm::RunID::run(), edm::RunBase::run(), DQMStore::IBooker::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, and fftjetcommon_cfi::title.

258  {
259  edm::LogInfo("Status") << "Starting processing of run #" << run.id().run();
260 
261  // Top folder containing high-level information about pixel and HF lumi.
262  std::string folder = "PixelLumi/";
263  ibooker.setCurrentFolder(folder);
264 
265  fHistTotalRecordedLumiByLS = ibooker.book1D("totalPixelLumiByLS", "Pixel Lumi in nb vs LS", 8000, 0.5, 8000.5);
266  fHistRecordedByBxCumulative = ibooker.book1D("PXLumiByBXsum",
267  "Pixel Lumi in nb by BX Cumulative vs LS",
269  0.5,
270  float(lastBunchCrossing) + 0.5);
271 
272  std::string subfolder = folder + "lastLS/";
273  ibooker.setCurrentFolder(subfolder);
275  "PXByBXLastLumi", "Pixel By BX Last Lumi", lastBunchCrossing + 1, -0.5, float(lastBunchCrossing) + 0.5);
276 
277  subfolder = folder + "ClusterCountingDetails/";
278  ibooker.setCurrentFolder(subfolder);
279 
280  fHistnBClusVsLS[0] = ibooker.book1D("nBClusVsLS_0", "Fraction of Clusters vs LS Barrel layer 0", 8000, 0.5, 8000.5);
281  fHistnBClusVsLS[1] = ibooker.book1D("nBClusVsLS_1", "Fraction of Clusters vs LS Barrel layer 1", 8000, 0.5, 8000.5);
282  fHistnBClusVsLS[2] = ibooker.book1D("nBClusVsLS_2", "Fraction of Clusters vs LS Barrel layer 2", 8000, 0.5, 8000.5);
283  fHistnFPClusVsLS[0] = ibooker.book1D("nFPClusVsLS_0", "Fraction of Clusters vs LS Barrel layer 0", 8000, 0.5, 8000.5);
284  fHistnFPClusVsLS[1] = ibooker.book1D("nFPClusVsLS_1", "Fraction of Clusters vs LS Barrel layer 1", 8000, 0.5, 8000.5);
285  fHistnFMClusVsLS[0] = ibooker.book1D("nFMClusVsLS_0", "Fraction of Clusters vs LS Barrel layer 0", 8000, 0.5, 8000.5);
286  fHistnFMClusVsLS[1] = ibooker.book1D("nFMClusVsLS_1", "Fraction of Clusters vs LS Barrel layer 1", 8000, 0.5, 8000.5);
287  fHistBunchCrossings = ibooker.book1D(
288  "BunchCrossings", "Cumulative Bunch Crossings", lastBunchCrossing, 0.5, float(lastBunchCrossing) + 0.5);
290  "BunchCrossingsLL", "Bunch Crossings Last Lumi", lastBunchCrossing, 0.5, float(lastBunchCrossing) + 0.5);
292  "ClusterCountByBxLL", "Cluster Count by BX Last Lumi", lastBunchCrossing, 0.5, float(lastBunchCrossing) + 0.5);
294  "ClusterCountByBxSum", "Cluster Count by BX Cumulative", lastBunchCrossing, 0.5, float(lastBunchCrossing) + 0.5);
295  fHistClusByLS = ibooker.book1D("totalClusByLS", "Number of Clusters all dets vs LS", 8000, 0.5, 8000.5);
296 
297  // Add some pixel cluster quality check histograms (in a subfolder).
298  subfolder = folder + "qualityChecks/";
299  ibooker.setCurrentFolder(subfolder);
300 
302  // Create histograms for this run if not already present in our list.
303  edm::LogInfo("Status") << "Creating histograms for run #" << run.id().run();
304 
305  // Pixel cluster positions in the barrel - (z, phi).
306  for (size_t i = 0; i <= kNumLayers; ++i) {
307  std::stringstream key;
308  key << "clusPosBarrel" << i;
309  std::stringstream name;
310  name << key.str() << "_" << run.run();
311  std::stringstream title;
312  title << "Pixel cluster position - barrel layer " << i;
313  fHistContainerThisRun[key.str()] =
314  ibooker.book2D(name.str().c_str(), title.str().c_str(), 100, -30., 30., 64, -Geom::pi(), Geom::pi());
315  }
316 
317  // Pixel cluster positions in the endcaps (x, y).
318  for (size_t i = 0; i <= kNumDisks; ++i) {
319  std::stringstream key;
320  key << "clusPosEndCap" << i;
321  std::stringstream name;
322  name << key.str() << "_" << run.run();
323  std::stringstream title;
324  title << "Pixel cluster position - endcap disk " << i;
325  fHistContainerThisRun[key.str()] =
326  ibooker.book2D(name.str().c_str(), title.str().c_str(), 100, -20., 20., 100, -20., 20.);
327  }
328 
329  // Pixel cluster charge in the barrel, per bx.
330  for (size_t i = 0; i <= kNumLayers; ++i) {
331  std::stringstream key;
332  key << "clusChargeBarrel" << i;
333  std::stringstream name;
334  name << key.str() << "_" << run.run();
335  std::stringstream title;
336  title << "Pixel cluster charge - barrel layer " << i;
337  fHistContainerThisRun[key.str()] =
338  ibooker.book2D(name.str().c_str(), title.str().c_str(), 3564, .5, 3564.5, 100, 0., 100.);
339  }
340 
341  // Pixel cluster charge in the endcaps, per bx.
342  for (size_t i = 0; i <= kNumDisks; ++i) {
343  std::stringstream key;
344  key << "clusChargeEndCap" << i;
345  std::stringstream name;
346  name << key.str() << "_" << run.run();
347  std::stringstream title;
348  title << "Pixel cluster charge - endcap disk " << i;
349  fHistContainerThisRun[key.str()] =
350  ibooker.book2D(name.str().c_str(), title.str().c_str(), 3564, .5, 3564.5, 100, 0., 100.);
351  }
352 
353  // Pixel cluster size in the barrel, per bx.
354  for (size_t i = 0; i <= kNumLayers; ++i) {
355  std::stringstream key;
356  key << "clusSizeBarrel" << i;
357  std::stringstream name;
358  name << key.str() << "_" << run.run();
359  std::stringstream title;
360  title << "Pixel cluster size - barrel layer " << i;
361  fHistContainerThisRun[key.str()] =
362  ibooker.book2D(name.str().c_str(), title.str().c_str(), 3564, .5, 3564.5, 100, 0., 100.);
363  }
364 
365  // Pixel cluster size in the endcaps, per bx.
366  for (size_t i = 0; i <= kNumDisks; ++i) {
367  std::stringstream key;
368  key << "clusSizeEndCap" << i;
369  std::stringstream name;
370  name << key.str() << "_" << run.run();
371  std::stringstream title;
372  title << "Pixel cluster size - endcap disk " << i;
373  fHistContainerThisRun[key.str()] =
374  ibooker.book2D(name.str().c_str(), title.str().c_str(), 3564, .5, 3564.5, 100, 0., 100.);
375  }
376  }
377 }
bool fIncludePixelQualCheckHistos
Definition: PixelLumiDQM.h:135
static const unsigned int lastBunchCrossing
Definition: PixelLumiDQM.h:55
MonitorElement * fHistRecordedByBxCumulative
Definition: PixelLumiDQM.h:165
MonitorElement * fHistClusByLS
Definition: PixelLumiDQM.h:162
void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:268
MonitorElement * fHistnFMClusVsLS[2]
Definition: PixelLumiDQM.h:157
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:106
MonitorElement * fHistClusterCountByBxLastLumi
Definition: PixelLumiDQM.h:160
MonitorElement * fHistTotalRecordedLumiByLS
Definition: PixelLumiDQM.h:163
MonitorElement * fHistClusterCountByBxCumulative
Definition: PixelLumiDQM.h:161
MonitorElement * fHistnBClusVsLS[3]
Definition: PixelLumiDQM.h:155
std::map< std::string, MonitorElement * > fHistContainerThisRun
Definition: PixelLumiDQM.h:138
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:109
MonitorElement * fHistBunchCrossings
Definition: PixelLumiDQM.h:158
MonitorElement * fHistBunchCrossingsLastLumi
Definition: PixelLumiDQM.h:159
static size_t kNumLayers
Definition: PixelLumiDQM.h:76
MonitorElement * fHistRecordedByBxLastLumi
Definition: PixelLumiDQM.h:164
static size_t kNumDisks
Definition: PixelLumiDQM.h:77
constexpr double pi()
Definition: Pi.h:31
MonitorElement * fHistnFPClusVsLS[2]
Definition: PixelLumiDQM.h:156
unsigned int PixelLumiDQM::calculateBunchMask ( MonitorElement e,
std::vector< bool > &  mask 
)
private

Definition at line 564 of file PixelLumiDQM.cc.

References MonitorElement::getBinContent(), MonitorElement::getNbinsX(), mps_fire::i, and pileupCalc::nbins.

Referenced by endLuminosityBlock().

564  {
565  unsigned int nbins = e->getNbinsX();
566  std::vector<float> ar(nbins, 0.);
567  for (unsigned int i = 1; i <= nbins; i++) {
568  ar[i] = e->getBinContent(i);
569  }
570  return calculateBunchMask(ar, nbins, mask);
571 }
unsigned int calculateBunchMask(MonitorElement *, std::vector< bool > &)
double getBinContent(int binx) const
get content of bin (1-D)
int getNbinsX() const
get # of bins in X-axis
unsigned int PixelLumiDQM::calculateBunchMask ( std::vector< float > &  e,
unsigned int  nbins,
std::vector< bool > &  mask 
)
private

Definition at line 572 of file PixelLumiDQM.cc.

References funct::abs(), stringResolutionProvider_cfi::bin, DEFINE_FWK_MODULE, trackingPlots::fit, mps_fire::i, SiStripPI::mean, and pileupCalc::nbins.

572  {
573  // Take the cumulative cluster count histogram and find max and average of
574  // non-empty bins.
575  unsigned int active_count = 0;
576  double maxc = 0.0;
577  double ave = 0.0; // Average of non-empty bins
578  unsigned int non_empty_bins = 0;
579 
580  for (unsigned int i = 1; i <= nbins; i++) {
581  double bin = e[i];
582  if (bin != 0.0) {
583  if (maxc < bin)
584  maxc = bin;
585  ave += bin;
586  non_empty_bins++;
587  }
588  }
589 
590  ave /= non_empty_bins;
591  edm::LogWarning("pixelLumi") << "Bunch mask finder - non empty bins " << non_empty_bins
592  << " average of non empty bins " << ave << " max content of one bin " << maxc;
593  double mean = 0.;
594  double sigma = 0.;
595  if (non_empty_bins < 50) {
596  mean = maxc;
597  sigma = (maxc) / 20;
598  } else {
599  TH1F dist("dist", "dist", 500, 0., maxc + (maxc / 500.) * 20.);
600  for (unsigned int i = 1; i <= nbins; i++) {
601  double bin = e[i];
602  dist.Fill(bin);
603  }
604  TF1 fit("plgaus", "gaus");
605  dist.Fit(&fit, "", "", fmax(0., ave - (maxc - ave) / 5.), maxc);
606  mean = fit.GetParameter("Mean");
607  sigma = fit.GetParameter("Sigma");
608  }
609  edm::LogWarning("pixelLumi") << "Bunch mask will use mean" << mean << " sigma " << sigma;
610  // Active BX defined as those which have nclus within fixed standard
611  // deviations of peak.
612  for (unsigned int i = 1; i <= nbins; i++) {
613  double bin = e[i];
614  if (bin > 0. && std::abs(bin - mean) < 5. * (sigma)) {
615  mask[i] = true;
616  active_count++;
617  }
618  }
619  edm::LogWarning("pixelLumi") << "Bunch mask finds " << active_count << " active bunch crossings ";
620  // edm::LogWarning("pixelLumi") << "this is the full bx mask " ;
621  // for(unsigned int i = 1; i<= nbins; i++)
622  // edm::LogWarning("pixelLumi") << ((mask[i]) ? 1:0);
623  return active_count;
624 }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bin
set the eta bin as selection string.
void PixelLumiDQM::dqmBeginRun ( edm::Run const &  ,
edm::EventSetup const &   
)
overrideprivate

Definition at line 380 of file PixelLumiDQM.cc.

380 {}
void PixelLumiDQM::endLuminosityBlock ( edm::LuminosityBlock const &  lumiBlock,
edm::EventSetup const &  es 
)
overrideprivate

Definition at line 405 of file PixelLumiDQM.cc.

References bunchTriggerMask, calculateBunchMask(), CM2_TO_NANOBARN, fHistBunchCrossingsLastLumi, fHistClusByLS, fHistClusterCountByBxCumulative, fHistClusterCountByBxLastLumi, fHistnBClusVsLS, fHistnFMClusVsLS, fHistnFPClusVsLS, fHistRecordedByBxCumulative, fHistRecordedByBxLastLumi, fHistTotalRecordedLumiByLS, filledAndUnmaskedBunches, fLogFileName_, fNumPixelClusters, FREQ_ORBIT, fResetIntervalInLumiSections, fRunNo, MonitorElement::getBinContent(), MonitorElement::getBinError(), mps_fire::i, lastBunchCrossing, logFile_, eostools::ls(), edm::LuminosityBlockAuxiliary::luminosityBlock(), edm::LuminosityBlock::luminosityBlockAuxiliary(), rXSEC_PIXEL_CLUSTER, rXSEC_PIXEL_CLUSTER_UNC, SECONDS_PER_LS, MonitorElement::setBinContent(), MonitorElement::setBinError(), mathSSE::sqrt(), pileupDistInMC::total, estimatePileup_makeJSON::trunc, useInnerBarrelLayer, XSEC_PIXEL_CLUSTER, and XSEC_PIXEL_CLUSTER_UNC.

405  {
406  unsigned int ls = lumiBlock.luminosityBlockAuxiliary().luminosityBlock();
407 
408  // Only fill every fResetIntervalInLumiSections (default is 1 LS)
409  if (ls % fResetIntervalInLumiSections != 0)
410  return;
411 
412  printf("Lumi Block = %d\n", ls);
413 
414  if ((ls - 1) % fResetIntervalInLumiSections == 0) {
415  }
416 
417  unsigned int nBClus[3] = {0, 0, 0};
418  unsigned int nFPClus[2] = {0, 0};
419  unsigned int nFMClus[2] = {0, 0};
420 
421  double total_recorded = 0.;
422  double total_recorded_unc_square = 0.;
423 
424  // Obtain bunch-by-bunch cluster counts and compute totals for lumi
425  // calculation.
426  double totalcounts = 0.0;
427  double etotalcounts = 0.0;
428  double totalevents = 0.0;
429  double lumi_factor_per_bx = 0.0;
432  else
434 
435  for (std::map<int, PixelClusterCount>::iterator it = fNumPixelClusters.begin(); it != fNumPixelClusters.end(); it++) {
436  // Sum all clusters for this BX.
437  unsigned int total = (*it).second.numB.at(1) + (*it).second.numB.at(2) + (*it).second.numFP.at(0) +
438  (*it).second.numFP.at(1) + (*it).second.numFM.at(0) + (*it).second.numFM.at(1);
440  total += (*it).second.numB.at(0);
441  totalcounts += total;
442  double etotal = (*it).second.dnumB.at(1) + (*it).second.dnumB.at(2) + (*it).second.dnumFP.at(0) +
443  (*it).second.dnumFP.at(1) + (*it).second.dnumFM.at(0) + (*it).second.dnumFM.at(1);
445  etotal = (*it).second.dnumB.at(0);
446  etotalcounts += etotal;
447  etotal = sqrt(etotal);
448 
449  fHistClusterCountByBxLastLumi->setBinContent((*it).first, total);
450  fHistClusterCountByBxLastLumi->setBinError((*it).first, etotal);
453 
454  unsigned int events_per_bx = fHistBunchCrossingsLastLumi->getBinContent((*it).first);
455  totalevents += events_per_bx;
456  double average_cluster_count = events_per_bx != 0 ? double(total) / events_per_bx : 0.;
457  double average_cluster_count_unc = events_per_bx != 0 ? etotal / events_per_bx : 0.;
458  double pixel_bx_lumi_per_ls = lumi_factor_per_bx * average_cluster_count / CM2_TO_NANOBARN;
459  double pixel_bx_lumi_per_ls_unc = 0.0;
461  pixel_bx_lumi_per_ls_unc = sqrt(lumi_factor_per_bx * lumi_factor_per_bx *
462  (average_cluster_count_unc * average_cluster_count_unc +
463  (average_cluster_count * XSEC_PIXEL_CLUSTER_UNC / XSEC_PIXEL_CLUSTER) *
464  (average_cluster_count * XSEC_PIXEL_CLUSTER / XSEC_PIXEL_CLUSTER))) /
466  else
467  pixel_bx_lumi_per_ls_unc = sqrt(lumi_factor_per_bx * lumi_factor_per_bx *
468  (average_cluster_count_unc * average_cluster_count_unc +
469  (average_cluster_count * rXSEC_PIXEL_CLUSTER_UNC / rXSEC_PIXEL_CLUSTER) *
470  (average_cluster_count * rXSEC_PIXEL_CLUSTER / rXSEC_PIXEL_CLUSTER))) /
472 
473  fHistRecordedByBxLastLumi->setBinContent((*it).first, pixel_bx_lumi_per_ls);
474  fHistRecordedByBxLastLumi->setBinError((*it).first, pixel_bx_lumi_per_ls_unc);
475 
477  (*it).first, fHistRecordedByBxCumulative->getBinContent((*it).first) + pixel_bx_lumi_per_ls);
478 
479  /*
480  if(fHistRecordedByBxLastLumi->getBinContent((*it).first)!=0.)
481  fHistRecordedByBxLastLumi->getBinContent((*it).first));
482  if(fHistRecordedByBxCumulative->getBinContent((*it).first)!=0.)
483  fHistRecordedByBxCumulative->getBinContent((*it).first));
484  */
485 
486  nBClus[0] += (*it).second.numB.at(0);
487  nBClus[1] += (*it).second.numB.at(1);
488  nBClus[2] += (*it).second.numB.at(2);
489  nFPClus[0] += (*it).second.numFP.at(0);
490  nFPClus[1] += (*it).second.numFP.at(1);
491  nFMClus[0] += (*it).second.numFM.at(0);
492  nFMClus[1] += (*it).second.numFM.at(1);
493 
494  // Reset counters
495  (*it).second.Reset();
496 
497  // edm::LogWarning("pixelLumi") << "bx="<< (*it).first << " clusters=" <<
498  // (*it).second.numB.at(0));
499  }
500 
502  for (unsigned int i = 0; i <= lastBunchCrossing; i++) {
503  if (bunchTriggerMask[i]) {
504  double err = fHistRecordedByBxLastLumi->getBinError(i);
505  total_recorded += fHistRecordedByBxLastLumi->getBinContent(i);
506  total_recorded_unc_square += err * err;
507  }
508  }
509 
510  // Replace the total obtained by summing over BXs with the average per BX
511  // from the total cluster count and rescale
512 
513  if (totalevents > 10) {
514  total_recorded = lumi_factor_per_bx * totalcounts / totalevents / CM2_TO_NANOBARN;
515  } else
516  total_recorded = 0.0;
517 
518  edm::LogWarning("pixelLumi") << " Total recorded " << total_recorded;
519  fHistTotalRecordedLumiByLS->setBinContent(ls, total_recorded);
520  fHistTotalRecordedLumiByLS->setBinError(ls, sqrt(total_recorded_unc_square));
521  }
522  // fill cluster counts by detector regions for sanity checks
523  unsigned int all_detectors_counts = 0;
524  for (unsigned int i = 0; i < 3; i++) {
525  all_detectors_counts += nBClus[i];
526  }
527  for (unsigned int i = 0; i < 2; i++) {
528  all_detectors_counts += nFPClus[i];
529  }
530  for (unsigned int i = 0; i < 2; i++) {
531  all_detectors_counts += nFMClus[i];
532  }
533 
534  fHistClusByLS->setBinContent(ls, all_detectors_counts);
535 
536  for (unsigned int i = 0; i < 3; i++) {
537  fHistnBClusVsLS[i]->setBinContent(ls, float(nBClus[i]) / float(all_detectors_counts));
538  }
539  for (unsigned int i = 0; i < 2; i++) {
540  fHistnFPClusVsLS[i]->setBinContent(ls, float(nFPClus[i]) / float(all_detectors_counts));
541  }
542  for (unsigned int i = 0; i < 2; i++) {
543  fHistnFMClusVsLS[i]->setBinContent(ls, float(nFMClus[i]) / float(all_detectors_counts));
544  }
545 
547 
548  timeval tv;
549  gettimeofday(&tv, nullptr);
550  tm *ts = gmtime(&tv.tv_sec);
551  char datestring[256];
552  strftime(datestring, sizeof(datestring), "%Y.%m.%d %T GMT %s", ts);
553  logFile_ << "RunNumber " << fRunNo << std::endl;
554  logFile_ << "EndTimeOfFit " << datestring << std::endl;
555  logFile_ << "LumiRange " << ls << "-" << ls << std::endl;
556  logFile_ << "Fill " << -99 << std::endl;
557  logFile_ << "ActiveBunchCrossings " << filledAndUnmaskedBunches << std::endl;
558  logFile_ << "PixelLumi " << fHistTotalRecordedLumiByLS->getBinContent(ls) * 0.98 << std::endl;
559  logFile_ << "HFLumi " << -99 << std::endl;
560  logFile_ << "Ratio " << -99 << std::endl;
561  logFile_.close();
562 }
static double SECONDS_PER_LS
Definition: PixelLumiDQM.h:45
unsigned int filledAndUnmaskedBunches
Definition: PixelLumiDQM.h:168
void setBinContent(int binx, double content)
set content of bin (1-D)
static const unsigned int lastBunchCrossing
Definition: PixelLumiDQM.h:55
int fResetIntervalInLumiSections
Definition: PixelLumiDQM.h:136
MonitorElement * fHistRecordedByBxCumulative
Definition: PixelLumiDQM.h:165
bool useInnerBarrelLayer
Definition: PixelLumiDQM.h:169
MonitorElement * fHistClusByLS
Definition: PixelLumiDQM.h:162
MonitorElement * fHistnFMClusVsLS[2]
Definition: PixelLumiDQM.h:157
unsigned int calculateBunchMask(MonitorElement *, std::vector< bool > &)
static double rXSEC_PIXEL_CLUSTER
Definition: PixelLumiDQM.h:52
T sqrt(T t)
Definition: SSEVec.h:18
MonitorElement * fHistClusterCountByBxLastLumi
Definition: PixelLumiDQM.h:160
MonitorElement * fHistTotalRecordedLumiByLS
Definition: PixelLumiDQM.h:163
static double FREQ_ORBIT
Definition: PixelLumiDQM.h:44
static double XSEC_PIXEL_CLUSTER_UNC
Definition: PixelLumiDQM.h:49
void setBinError(int binx, double error)
set uncertainty on content of bin (1-D)
MonitorElement * fHistClusterCountByBxCumulative
Definition: PixelLumiDQM.h:161
MonitorElement * fHistnBClusVsLS[3]
Definition: PixelLumiDQM.h:155
std::vector< bool > bunchTriggerMask
Definition: PixelLumiDQM.h:167
def ls(path, rec=False)
Definition: eostools.py:349
static double CM2_TO_NANOBARN
Definition: PixelLumiDQM.h:54
static double XSEC_PIXEL_CLUSTER
Definition: PixelLumiDQM.h:48
double getBinError(int binx) const
get uncertainty on content of bin (1-D) - See TH1::GetBinError for details
MonitorElement * fHistBunchCrossingsLastLumi
Definition: PixelLumiDQM.h:159
std::string fLogFileName_
Definition: PixelLumiDQM.h:171
static double rXSEC_PIXEL_CLUSTER_UNC
Definition: PixelLumiDQM.h:53
double getBinContent(int binx) const
get content of bin (1-D)
std::map< int, PixelClusterCount > fNumPixelClusters
Definition: PixelLumiDQM.h:131
MonitorElement * fHistRecordedByBxLastLumi
Definition: PixelLumiDQM.h:164
MonitorElement * fHistnFPClusVsLS[2]
Definition: PixelLumiDQM.h:156
std::ofstream logFile_
Definition: PixelLumiDQM.h:173
void PixelLumiDQM::endRun ( edm::Run const &  ,
edm::EventSetup const &   
)
overrideprivate

Definition at line 383 of file PixelLumiDQM.cc.

383 {}
void PixelLumiDQM::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 83 of file PixelLumiDQM.cc.

References edm::ConfigurationDescriptions::addDefault(), and edm::ParameterSetDescription::setUnknown().

83  {
85  desc.setUnknown();
86  descriptions.addDefault(desc);
87 }
void addDefault(ParameterSetDescription const &psetDescription)

Member Data Documentation

std::vector<bool> PixelLumiDQM::bunchTriggerMask
private

Definition at line 167 of file PixelLumiDQM.h.

Referenced by endLuminosityBlock().

double PixelLumiDQM::CM2_TO_NANOBARN = 1.0 / 1.e-33
static

Definition at line 54 of file PixelLumiDQM.h.

Referenced by endLuminosityBlock().

UInt_t PixelLumiDQM::fBXNo
private

Definition at line 121 of file PixelLumiDQM.h.

Referenced by analyze().

Double_t PixelLumiDQM::fChi2
private

Definition at line 129 of file PixelLumiDQM.h.

std::vector<uint32_t> PixelLumiDQM::fDeadModules
private

Definition at line 142 of file PixelLumiDQM.h.

Referenced by analyze(), and PixelLumiDQM().

UInt_t PixelLumiDQM::fEvtNo
private

Definition at line 119 of file PixelLumiDQM.h.

Referenced by analyze().

unsigned int PixelLumiDQM::fFillNumber
private

Definition at line 170 of file PixelLumiDQM.h.

MonitorElement* PixelLumiDQM::fHistBunchCrossings
private

Definition at line 158 of file PixelLumiDQM.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* PixelLumiDQM::fHistBunchCrossingsLastLumi
private

Definition at line 159 of file PixelLumiDQM.h.

Referenced by analyze(), beginLuminosityBlock(), bookHistograms(), and endLuminosityBlock().

MonitorElement* PixelLumiDQM::fHistClusByLS
private

Definition at line 162 of file PixelLumiDQM.h.

Referenced by bookHistograms(), and endLuminosityBlock().

MonitorElement* PixelLumiDQM::fHistClusterCountByBxCumulative
private

Definition at line 161 of file PixelLumiDQM.h.

Referenced by bookHistograms(), and endLuminosityBlock().

MonitorElement* PixelLumiDQM::fHistClusterCountByBxLastLumi
private

Definition at line 160 of file PixelLumiDQM.h.

Referenced by beginLuminosityBlock(), bookHistograms(), and endLuminosityBlock().

std::map<std::string, MonitorElement *> PixelLumiDQM::fHistContainerThisRun
private

Definition at line 138 of file PixelLumiDQM.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* PixelLumiDQM::fHistnBClusVsLS[3]
private

Definition at line 155 of file PixelLumiDQM.h.

Referenced by bookHistograms(), and endLuminosityBlock().

MonitorElement* PixelLumiDQM::fHistnFMClusVsLS[2]
private

Definition at line 157 of file PixelLumiDQM.h.

Referenced by bookHistograms(), and endLuminosityBlock().

MonitorElement* PixelLumiDQM::fHistnFPClusVsLS[2]
private

Definition at line 156 of file PixelLumiDQM.h.

Referenced by bookHistograms(), and endLuminosityBlock().

MonitorElement* PixelLumiDQM::fHistRecordedByBxCumulative
private

Definition at line 165 of file PixelLumiDQM.h.

Referenced by bookHistograms(), and endLuminosityBlock().

MonitorElement* PixelLumiDQM::fHistRecordedByBxLastLumi
private

Definition at line 164 of file PixelLumiDQM.h.

Referenced by beginLuminosityBlock(), bookHistograms(), and endLuminosityBlock().

MonitorElement* PixelLumiDQM::fHistTotalRecordedLumiByLS
private

Definition at line 163 of file PixelLumiDQM.h.

Referenced by bookHistograms(), and endLuminosityBlock().

unsigned int PixelLumiDQM::filledAndUnmaskedBunches
private

Definition at line 168 of file PixelLumiDQM.h.

Referenced by endLuminosityBlock().

bool PixelLumiDQM::fIncludePixelClusterInfo
private

Definition at line 134 of file PixelLumiDQM.h.

Referenced by analyze(), and PixelLumiDQM().

bool PixelLumiDQM::fIncludePixelQualCheckHistos
private

Definition at line 135 of file PixelLumiDQM.h.

Referenced by analyze(), bookHistograms(), and PixelLumiDQM().

bool PixelLumiDQM::fIncludeVertexInfo
private

Definition at line 133 of file PixelLumiDQM.h.

MonitorElement* PixelLumiDQM::fIntActiveCrossingsFromDB
private

Definition at line 154 of file PixelLumiDQM.h.

std::string PixelLumiDQM::fLogFileName_
private

Definition at line 171 of file PixelLumiDQM.h.

Referenced by endLuminosityBlock().

UInt_t PixelLumiDQM::fLSNo
private

Definition at line 120 of file PixelLumiDQM.h.

Referenced by analyze().

double PixelLumiDQM::fMinClusterCharge
private

Definition at line 150 of file PixelLumiDQM.h.

Referenced by analyze(), and PixelLumiDQM().

int PixelLumiDQM::fMinPixelsPerCluster
private

Definition at line 147 of file PixelLumiDQM.h.

Referenced by analyze(), and PixelLumiDQM().

Double_t PixelLumiDQM::fNdof
private

Definition at line 130 of file PixelLumiDQM.h.

std::map<int, PixelClusterCount> PixelLumiDQM::fNumPixelClusters
private

Definition at line 131 of file PixelLumiDQM.h.

Referenced by analyze(), and endLuminosityBlock().

UInt_t PixelLumiDQM::fNumTrkPerVtx
private

Definition at line 125 of file PixelLumiDQM.h.

UInt_t PixelLumiDQM::fNumVtx
private

Definition at line 123 of file PixelLumiDQM.h.

UInt_t PixelLumiDQM::fNumVtxGood
private

Definition at line 124 of file PixelLumiDQM.h.

edm::EDGetTokenT<edmNew::DetSetVector<SiPixelCluster> > PixelLumiDQM::fPixelClusterLabel
private

Definition at line 116 of file PixelLumiDQM.h.

Referenced by analyze().

double PixelLumiDQM::FREQ_ORBIT = 11245.5
static

Definition at line 44 of file PixelLumiDQM.h.

Referenced by endLuminosityBlock().

int PixelLumiDQM::fResetIntervalInLumiSections
private

Definition at line 136 of file PixelLumiDQM.h.

Referenced by beginLuminosityBlock(), and endLuminosityBlock().

UInt_t PixelLumiDQM::fRunNo
private

Definition at line 118 of file PixelLumiDQM.h.

Referenced by analyze(), and endLuminosityBlock().

UInt_t PixelLumiDQM::fTimestamp
private

Definition at line 122 of file PixelLumiDQM.h.

Referenced by analyze().

Double_t PixelLumiDQM::fVtxX
private

Definition at line 126 of file PixelLumiDQM.h.

Double_t PixelLumiDQM::fVtxY
private

Definition at line 127 of file PixelLumiDQM.h.

Double_t PixelLumiDQM::fVtxZ
private

Definition at line 128 of file PixelLumiDQM.h.

size_t PixelLumiDQM::kNumDisks = 12
staticprivate

Definition at line 77 of file PixelLumiDQM.h.

Referenced by analyze(), and bookHistograms().

size_t PixelLumiDQM::kNumLayers = 5
staticprivate

Definition at line 76 of file PixelLumiDQM.h.

Referenced by analyze(), and bookHistograms().

size_t PixelLumiDQM::kOffsetDisks = 4
staticprivate

Definition at line 79 of file PixelLumiDQM.h.

Referenced by analyze().

size_t PixelLumiDQM::kOffsetLayers = 0
staticprivate

Definition at line 78 of file PixelLumiDQM.h.

Referenced by analyze().

const unsigned int PixelLumiDQM::lastBunchCrossing = 3564
static

Definition at line 55 of file PixelLumiDQM.h.

Referenced by bookHistograms(), and endLuminosityBlock().

std::ofstream PixelLumiDQM::logFile_
private

Definition at line 173 of file PixelLumiDQM.h.

Referenced by endLuminosityBlock().

double PixelLumiDQM::rXSEC_PIXEL_CLUSTER = 9.4e-24
static

Definition at line 52 of file PixelLumiDQM.h.

Referenced by endLuminosityBlock().

double PixelLumiDQM::rXSEC_PIXEL_CLUSTER_UNC = 0.119e-24
static

Definition at line 53 of file PixelLumiDQM.h.

Referenced by endLuminosityBlock().

double PixelLumiDQM::SECONDS_PER_LS = double(0x40000) / double(FREQ_ORBIT)
static

Definition at line 45 of file PixelLumiDQM.h.

Referenced by endLuminosityBlock().

bool PixelLumiDQM::useInnerBarrelLayer
private

Definition at line 169 of file PixelLumiDQM.h.

Referenced by endLuminosityBlock().

double PixelLumiDQM::XSEC_PIXEL_CLUSTER = 10.08e-24
static

Definition at line 48 of file PixelLumiDQM.h.

Referenced by endLuminosityBlock().

double PixelLumiDQM::XSEC_PIXEL_CLUSTER_UNC = 0.17e-24
static

Definition at line 49 of file PixelLumiDQM.h.

Referenced by endLuminosityBlock().